問題の概要:ping
からのclient
はrpi1
に移動せず、そのARP呼び出しsrv
では回答されません。
Host0
とtap0
はbr0
によってブリッジされます。vpnin
とlan0
は2つの独立したインターフェースです。srv
で許可されます(IP転送が有効になっており、rpi1
と、ここに表示されていない他のインターフェイス、特にインターネットへのゲートウェイとの間のトラフィックが成功しています)詳細:client
は正常にpingを実行します(10.20.1.2
)、10.20.1.1
、10.20.1.254
、および10.10.10.254
。 10.10.10.11
にpingを実行しようとすると:
root@client:~# ping 10.10.10.11
PING 10.10.10.11 (10.10.10.11) 56(84) bytes of data.
From 10.20.1.1: icmp_seq=2 Redirect Host(New nexthop: 10.10.10.11)
From 10.20.1.1 icmp_seq=1 Destination Host Unreachable
From 10.20.1.2 icmp_seq=3 Destination Host Unreachable
From 10.20.1.2 icmp_seq=4 Destination Host Unreachable
From 10.20.1.2 icmp_seq=5 Destination Host Unreachable
10.20.1.1
と10.20.1.2
の間のFrom
のフリップフラップに注意してください。
tcpdump
on srv
(ping機能が失われている場合)を実行すると、ARP要求が表示されますが、応答がありません。
root@srv ~# tcpdump -i vpnin -nn
17:10:54.463072 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:55.459489 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:56.459459 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:56.473683 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28
17:10:57.469788 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28
17:10:58.469608 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28
繰り返しますが、10.20.1.1
と10.20.1.2
の両方が回答を要求します。
srv
のARPテーブルには答えがあります
root@srv ~# arp -a
(...)
rpi1.10.in-addr.arpa (10.10.10.11) at f4:f2:6d:09:35:1b [ether] on lan0
理由は何ですか
10.20.1.1
と10.20.1.2
の間のこの奇妙な切り替えのために?ARP要求はブロードキャストであるため、ARPは同じLAN(レイヤー2ブロードキャストドメイン)でのみ機能します。ブロードキャストはレイヤー3の境界を越えません。 MACアドレスはレイヤー2アドレスであり、同じレイヤー2ブロードキャストドメインでのみ重要であるか、見られることさえあります。
別のレイヤー3ネットワークにトラフィックを送信することを希望するホストは、必要に応じて、ARPを使用して構成済みゲートウェイのレイヤー2アドレスを検索し、構成済みゲートウェイのレイヤー2アドレスにトラフィックを送信します。次に、宛先へのパス上のネクストホップへのトラフィックを取得するのは、設定されたゲートウェイの責任です。
トラフィックが別のネットワークにルーティングされることになっている場合は、ホスト上のゲートウェイを、ネットワークが出会うポイントで、ホストが存在するレイヤー3ネットワークのアドレスになるように構成する必要があります(srv
)。 client
の構成済みゲートウェイは10.20.1.254
である必要があり、rp1
の構成済みゲートウェイは10.10.10.254
である必要があります。