VXLANを使用してオーバーレイネットワークを操作しようとしています。全体的には非常に簡単な設定ですが、奇妙な理由で起動時に正しく動作しません。
ホストAとBは2つ(実際には6つですが、ここでは重要ではありません)があります。両方の構成は似ています。
ip -6 link add vx1 type vxlan id 99 dstport 4789 local <local-ipv6-address>
bridge fdb append 00:00:00:00:00:00 dev vx1 dst <remote-ipv6-address>
ip link set up dev vx1
ip -6 addr add <random-ula>::10/64 dev vx1
明らかに、ローカル/リモート交換と最後の段階で異なるアドレスを使用することは除外されます。
AからBへping6を実行し、インターフェースが機能して実行されたら、ホストBのトラフィックを見ることができました(tcpdump
)。だがBはAに返事をしなかった。状況は似ていた。LinuxがVxLANのICMP要求に応答しないのはなぜですか?しかし、これは役に立ちません。手動または/etc/network/interfaces
。
私はルーティング、iptables、fdb、そして私が考えることができるすべてを確認しました。単にインターフェイスを呼び出すことと最初の「修正ping」を送信することの間には、どの構成でも変更されたものはないようです。私の問題はもちろん、再起動することです。この問題を正しく解決するために確認して実行できるものはありますか? 1つのオプションは、オーバーレイの他のすべてのホストにpingメッセージを送信することです。しかし、これはせいぜい不器用なように見え、ほとんど信頼できる解決策ではありません。特に大きなオーバーレイを構築する場合はそうです。
答え1
あなたの場合はわかりませんが、私の場合はvxlan側の設定が間違っています。 1ノードの(A)転送データベース(bridge fdb
を使用して表示できます)
無効な転送ルールを使用して削除すると、正しい値を追加してbridge fdb append 00:00:00:00:00:00 dev <VXLAN INTERFACE> dst <IP ADDRESS>
機能します。
pingは、ピアがMACブロードキャストを中継することなくIP <-> MACアドレスマッピングを取得できるようにするという点で、「正しい」動作をトリガします。