これは私のインターフェースファイルです。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth0:0
iface eth0:0 inet static
address 10.20.8.231
netmask 255.255.255.0
gateway 10.20.8.1
up /sbin/route add 1.2.3.4 gw 10.20.8.1
down /sbin/route del 1.2.3.4 gw 10.20.8.1
オンラインで見つかったいくつかの例では、eth0:0が表示されたときにパスを追加する必要がありますが、何らかの理由で機能しません。
インターフェイスを開こうとすると、次の結果ifup eth0:0
が表示されます。
RTNETLINK answers: File exists
Failed to bring up eth0:0.
これifconfig
でeth0:0が動作していますが、route -n
新しいパスは表示されません。実際、それが示したパスは前のパスとまったく同じでした。変更なし。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.20.8.1 0.0.0.0 UG 0 0 0 eth0
10.20.8.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
この設定は、SSHを介してのみアクセスできるリモートシステムで使用されます。全体的なアイデアは、サイトネットワークが変更され(2回発生)、静的IPに接続できなくなる場合に備えて、eth0をdhcpにバックアップに設定することです。問題は、SSH(組み込みプロセスで使用)がeth0を介したデフォルトパスを使用することです。ファイアウォール(私たちが管理していない)がeth0:0の固定IPのみを許可するように設定されているため、これは機能しないことです。 SSHを使用してください。
注:上記の例では、1.2.3.4はSSHサーバーを表し、単一のホストに対してeth0:0を介してトラフィックをルーティングしようとしていますが、テスト後にeth0:0を使用するようにデフォルトパスを設定したい場合があります。私も試してみましたが、同じように失敗しました。私は次の行を使用しています:
up route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.20.8.1
助けてくれてありがとう。
答え1
セカンダリIPアドレスを優先的に配置することは特に良い考えではないと思います。
eth0が最初のインターフェイスであり、別のネットワークにルーティングするときは、ソースIPがDHCP IPアドレスであるため、eth0のデフォルトパスを使用する場合よりもはるかに大きいです。実は10.20.8.231の代わりに。
したがって、eth0:0の代わりにeth0に固定アドレスを配置することをお勧めします。次のように構成されます。
auto eth0
iface eth0 inet static
address 10.20.8.231
netmask 255.255.255.0
gateway 10.20.8.1
auto eth0:0
iface eth0:0 inet dhcp
答え2
そうだ上下なら次の下位レベルのツールでは正しく機能しません。IP ルート 2またはネットワークツール。それは警告と呼ばれますDebian 公式ドキュメント:
警告する
ifconfig(8) や ip(8) コマンドなどの低レベル設定ツールを使用してインターフェイスを動作状態に設定しないでください。
ネットワークインターフェイスを使用する前に、手動で更新して無効にしてみてください。上下なら問題を解決してください:
# ip addr flush dev [interface_name]
# ip link set down dev [interface_name]
# ifdown [interface_name]
# ifup [interface_name]