私の目標は、2つの異なるポートに2つのイーサネットインターフェイスを設定し、同じネットワークに2つの異なる静的IPを設定することです。問題は、一方のポートが2つのIPによって到達可能になり、もう一方は到達できないということです。/etc/network/interfacesファイルと/etc/init.d/networkingrestart呼び出しを続行します。 ifupdown呼び出しも試してみました。これが私が進む方法です:
ネットワーク構成なしでDebian3.16OSをインストールしました。デバイスには2つのイーサネットポートがあります。
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:30:18:cd:49:77 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 00:30:18:cd:49:76 brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether bc:30:7e:c0:e6:ba brd ff:ff:ff:ff:ff:ff
ifconfig
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3172 (3.0 KiB) TX bytes:3172 (3.0 KiB)
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
すべてが順調に見えます。ネットワークに接続するための新しいイーサネットインターフェイスを追加したいので、/ etc/network/interfacesファイルを次のように変更します。
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.160
netmask 255.255.255.0
gateway 192.168.1.1
私のデバイスはイーサネットポートで到達可能になりました。たとえば、IP 192.168.1.160のAで、ifconfigも問題ありません。次に、新しいインターフェイスを追加し、/ etc/network/interfacesを次のように変更します。
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.160
netmask 255.255.255.0
gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 192.168.1.161
netmask 255.255.255.0
gateway 192.168.1.1
ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:18:cd:49:77
inet adr:192.168.1.160 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::230:18ff:fecd:4977/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6550 errors:0 dropped:8 overruns:0 frame:0
TX packets:819 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:584489 (570.7 KiB) TX bytes:106896 (104.3 KiB)
Interruption:18 Mémoire:d0700000-d0720000
eth1 Link encap:Ethernet HWaddr 00:30:18:cd:49:76
inet adr:192.168.1.161 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:222 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:20241 (19.7 KiB) TX bytes:1500 (1.4 KiB)
Interruption:19 Mémoire:d0600000-d0620000
lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:31 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:3172 (3.0 KiB) TX bytes:3172 (3.0 KiB)
ポートAで.160、ポートBで.161でデバイスに到達する予定です。しかし、実際には、ポートAで.160と.161の両方を使用してデバイスに到達し、ポートBでは到達しません。
編集:イーサネットケーブルを物理ポートAに接続すると、IP 192.168でデバイスに参加(pingまたはssh接続)できるようになります.1.160。イーサネットケーブルを物理ポートBに接続する場合、IP 192.168.1.161でデバイスに参加(pingまたはssh接続)できるようにしたいです。 (ネットワークは192.168.1.0/24です)
私の質問は:
もちろん:
あなたの質問の用語は明確ではありません、あなたが何を意味するのか
"ポートAの.160とポートBの.161でデバイスに到達する予定ですが、実際にはポートAの.160と。の両方でデバイスに到達します。 161、ポートBにはありません。 "
これが明らかになる場合は、正確な手順を提供できます。
Linuxでのポリシーベースのルーティングを探してください。以下はあなたを助けることができるかもしれません: https://www.novell.com/support/kb/doc.php?id=7008874
http://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
あなたが言ったように、あなたはアクティブなインターフェースでのみ単一のゲートウェイで試したので、それはうまくいくはずです。ここでの問題はネットワークにあり、これは両方のインターフェースで同じです。この例で試すことができます:
ifconfig eth0 192.168.1.161/24 up
route add default gw 192.168.1.1 dev eth0
ifconfig eth1 192.168.1.162/24 up
そして、ifconfigでeth0とeth1を1つずつダウンしてテストします
両方のインターフェースにLANを接続し、pingまたはsshで試すこともできます。
基本的に、これはルーティングに関するものだと思います。言及した2つのIPと同じLANセグメント(つまり、ブロードキャストドメイン)を使用していない限り、トラフィックをルーティングする必要があります。
短いバージョンでは、両方のポートにデフォルトゲートウェイを設定しました。それはあなたができることです(しかし、AFAIKではNICの1つのコストを指定する必要があります)が、それでも同じことが起こる可能性が高いです
構成では、eth0が最初に構成されます。これは、デフォルトゲートウェイがあることを発表していることを意味していると思います。つまり、eth1のゲートウェイは無視されます。これはip r
で確認できます。
より一般的には、ルーティングされたネットワーク(同じブロードキャストドメインにいる場合は、ネットワークアドレス/ IPではなく物理アドレス/ MACを使用するため、別の問題です)では、常に優先パスがあります。そしてあなたのトラフィックは単にその優先パスを使用しています。
事実上、あなたが見ているのは、あなたのeth0がeth0とeth1のIPアドレスへのアクセスを提供しているということだけです。なぜなら、それは両方へのルートを知っており、あなたのIPに戻るからです。
したがって、ここでは何も問題はありません。少なくとも、私が言えることではありません。
可用性の理由でこれらすべてを実行している場合は、代わりにNICを結合し、単一のIPを使用することを検討してください。これは、そのセットアップの変数が少ないためです。