eth0
現在、イーサネットケーブルを使用して(ネットワークインターフェイス)にインターフェイスするようにルータを設定しようとしています。ルーターはインターネットにアクセスできません。
これで、ワイヤレスインターフェイスを介してインターネットにアクセスできる他のネットワーク(他のIP範囲など)にアクセスできるようになりますwlan0
。
eth0
設定したいルーターとwlan0
残りの部分に接続するためにのみ使用したいと思います。これにより、ルータを設定しようとしたときにいくつかの調査を行うことができます。
ある種のルーティングで可能だと確信していますが、まだ機能しているものが見つかりませんでした。問題は、イーサネットケーブルを接続すると、システムがeth
すべてのタスクにその接続を使用し始めるということです。
結論として:
ルータのアドレスが10.0.0.1であると仮定すると、そのインターフェイスを介してeth0
トラフィックを10.0.0.1にルーティングし、他のものを介してトラフィックをルーティングする方法はありますかwlan0
?
私はDebianスクイーズを使用しています。
答え1
最も簡単な方法は次のとおりです。
- eth0でDHCPを無効にするか、インターフェイスをシャットダウンします(ネットワークマネージャから切断または使用
ifdown eth0
など)。 ip -4 addr add 10.0.0.2/30 dev eth0
ip link set eth0 up
または古いものを好むifconfig
ならifconfig eth0 10.0.0.2 netmask 255.255.255.252 up
最後の方法として、ネットワーク管理者を使用する場合(GUIを使用してネットワークを構成する場合)、静的IPアドレスが10.0.0.2でネットマスクが255.255.255.252のeth0の構成ファイルを設定します。 。デフォルトパスとDNSサーバーを空白のままにします。
上記のいずれかの操作を完了した後は、10.0.0.1でpingを実行でき、残りのインターネットには引き続きアクセスできます。
これがうまくいくのはなぜですか?
(これは単純化されています。Linuxでのルーティングには実際にたくさんオプションの複雑さがあります。 ) カーネルが IP パケットを送信しようとすると、ルーティングテーブルを参照してパケットを送信するインターフェイスを決定します。
ルーティングテーブルには通常、各インターフェイスのローカルサブネットへのパスが含まれます。上記のコマンドはすべて、eth0にサブネット10.0.0.0/30を配置します。 A / 30は4つのIPアドレスです(この例では10.0.0.0〜10.0.0.3)。これにはルーター(.1)とボックス(.2)が含まれて便利です。ほとんどのサブネットでは、最初の(.0 = "network")アドレスと最後の(.3 = "broadcast")アドレスは特別に予約された意味を持つため、使用できません。
ローカルサブネットへのパスに加えて、ユーザーが設定する固定パスとルーティングプロトコルのパスもあります(これはユーザーまたは99%のユーザーには適用されません)。
最後に、残りのトラフィックをどこに送信するかを示す「デフォルト」ルートがあります。このパスは実際には特別なものではありません。 0.0.0.0/0 (つまり、IPv4 アドレス空間全体) へのパスです。ルートルックアップがどのように機能するか、これがデフォルトです...
デフォルトでは、次の順序で確認します。
- ローカルIPアドレス(つまり、このデバイスのIPアドレス)ですか?それなら私に伝えてください。
- 次に、最も具体的な(IPアドレスが最も少ないサブネット)から最も特定の少ない(IPアドレスが最も多いサブネット)順にすべてのパスの順序を指定します。
- 一番上から始めて、一致するものがあるまでソートされたリストをたどります。
- 一致するものがない場合は、放棄してアクセスできないエラーを生成します。
したがって、パス 0.0.0.0/0 がリストの一番下にソートされているので、デフォルトです。 10.0.0.0/30 ルートは最上位ではなくても、リスト内のかなり高い位置にあります。デフォルトでは、その機能は例外です。 「インターネットにトラフィックを送り、〜しない限り10.0.0.0/30"に適しています
この奇妙なこと/30のものは何ですか?
/X(「CIDR表記法」とも呼ばれます)は、ネットワークマスクを指定する簡単な方法です。 metmask に設定されたビット数を計算します。したがって、ネットマスク255.255.255.255(単一IP)はすべてのビットが設定されているため/ 32です。 ... 254(IP 2)は/ 31、... 252は/ 30、最大0.0.0.0(すべてのIPv4アドレス)は/ 0です。一般的な255.255.255.0は/ 24です。
答え2
可能なオプションは次のとおりです。
1
eth0 の設定に DHCP を使用しないでください。代わりに静的構成を使用し、ゲートウェイを設定しないでください。 DHCPは、コンピュータがすべてのトラフィックにそれを使用するようにルータのデフォルトゲートウェイを設定します。ゲートウェイが設定されていない場合は、そのインターフェイスのみを使用してそのネットワーク上のホストと通信します。
2
ルータに自分自身をゲートウェイに通知しないように指示します。これはほとんどのルータでは不可能なので、まったくオプションではないかもしれません。
サム
Debian は DHCP を介してルータが通知するゲートウェイ設定を無視することができますが、私は Debian を使用していないのでわかりません。これは、Debian がネットワークデバイスの設定に使用するものによって異なります。
4
Debian の場合、インターフェイスを呼び出した後でスクリプトを実行し、DHCP から追加したゲートウェイパスを削除することもできます。