ブリッジされたネットワークを持つホストには仮想マシンがあります(したがって、独自のMACアドレスがあります)。ホストマシンと仮想マシンの両方がCentOSを実行しています。彼らのネットワークは単純なファイルで管理されています/etc/sysconfig/network-scripts/ifcfg-enpXsY
。 IPv4はうまく動作します。
VMにIPv6アドレス(ホストコンピュータにもアドレスがあります)を割り当て、データセンターで正しくルーティングされます。ただし、ほとんどの接続はIPv4を使用しています(マシンにはまだDNS AAAAエントリがなく、まだIPv6をテストしています)。
仮想マシンを起動すると、完全なIPv6接続が可能になります。しかし、一定時間が経過すると、IPv6接続は機能しません。(IPv6魔法?)。問題の範囲をネイバー (ARP/NDISC キャッシュ) データに絞り込みました。
動作せず、IPv6入出力を介してpingまたは接続できません。
# ip -6 neighbour
fe80::1 dev enp1s2 lladdr 0c:86:72:2e:04:28 router STALE
キャッシュを更新する修正/解決方法:
# ip -6 neighbour flush dev enp1s2
# ip -6 neighbour
(empty, as expected)
その後、ホストはping6
VM内でキャッシュを埋めます。
# ping6 2912:1375:23:9a6c::2
PING 2912:1375:23:9a6c::2(2912:1375:23:9a6c::2) 56 data bytes
64 bytes from 2912:1375:23:9a6c::2: icmp_seq=1 ttl=64 time=2.35 ms
64 bytes from 2912:1375:23:9a6c::2: icmp_seq=2 ttl=64 time=0.468 ms
^C
# ip -6 neighbour
fe80::1 dev enp1s2 lladdr 0c:86:72:2e:04:28 router REACHABLE
2912:1375:23:9a6c::2 dev enp1s2 lladdr 08:21:4b:b7:f8:31 DELAY
IPv6隣接/ ARPテーブルが再び有効になり、接続が機能しています!
だから私の質問は次のようになります
- キャッシュが古い理由は何ですか?
- それを防ぐにはどうすればよいですか?
もちろん、cron
タスク内でこれらのコマンドを実行できますが(どのくらいの頻度ですか?)、IPv6では通常はそうする必要はないと思いますか?
PS:テストにスクリプトを使用しました。IPv6スタックは約20分ごとにクラッシュします。。 RFCを説明できますか?