同じIPサブネット上にインターフェイスが必要なサーバーをセットアップしようとしていますが、VLANは異なります。
eth1.102 Link encap:Ethernet HWaddr 00:50:56:b1:00:0f
inet addr:10.1.1.6 Bcast:10.1.1.255 Mask:255.255.255.0
eth1.103 Link encap:Ethernet HWaddr 00:50:56:b1:00:0f
inet addr:10.1.1.12 Bcast:10.1.1.255 Mask:255.255.255.0
私が見ている問題は、ARP要求が一方のサブネット上のデバイスから着信すると、サーバーは一方のインターフェースのARPにのみ応答し、もう一方のインターフェースのARPを無視しているように見えることです。
1番目のインターフェース:
# ping -I eth1.102 10.1.1.1
PING 10.1.1.1 (10.1.1.1) from 10.1.1.6 eth1.102: 56(84) bytes of data.
^C
--- 10.1.1.1 ping statistics ---
8 packets transmitted, 0 received, 100% packet loss, time 7008ms
2番目のインターフェース:
# ping -I eth1.103 10.1.1.1
PING 10.1.1.1 (10.1.1.1) from 10.1.1.12 eth1.103: 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.400 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.332 ms
^C
(記録として、10.1.1.1は両方のVLANの両方のサブネットに存在します)
# arp -an
? (10.1.1.1) at 02:00:1a:f2:00:02 [ether] on eth1.103
? (10.1.1.1) at 02:00:72:a3:00:08 [ether] on eth1.102
クライアントデバイスからサーバーインターフェイスの特定のIPにpingを実行しても、一方は無視され、もう一方は応答します。
Ubuntuにはデフォルトでいくつかのarp /スプーフィングフィルターがあるので、見つけたものをオフにしました。
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
同様の問題についてかなりの数の質問を見てきましたが、同じセグメント(VLANで区切られていない)とARP要求が両方によって応答されているため、通常はARPフラックスに関するものですが、ここではそうではありません。両方のインターフェイスをtcpdumpすると、応答されないARPは、他のインターフェイスのどこにも表示されません(別のインターフェイスで応答していると考えてください)。要求を黙って無視しているように見えます。
誰かがこれに遭遇する前に?
編集:
ちょっとばかみたいに感じますが、他の人を助けるかもしれません...
私はrp_filterを無効にすることで適切な領域にいましたが、おそらくUbuntuでデフォルトでオンになっているため、すべてのインターフェイスに適用されていたため、上記の2つのエントリにrp_filter = 0を設定しましたが、インターフェイスごとの設定はまだ1、したがって..
# sysctl -w net.ipv4.conf.eth1/102.rp_filter=0
# sysctl -w net.ipv4.conf.eth1/103.rp_filter=0
...トリックをしました。
個々のインターフェイスごとにリバースパスフィルター(rp_filter)を無効にする必要があります
# sysctl -w net.ipv4.conf.eth1/102.rp_filter=0
# sysctl -w net.ipv4.conf.eth1/103.rp_filter=0