[運用日誌] 宅内コアL3SW(Allied telesys x510)のログ問題

導入以来、長年頭を悩ませていた宅内コアL3SW(Allied telesys x510)の謎のログ問題がようやく解決したのでメモとして残しておきます。あとで必要になったら図版等も追加する方向で。

どういうログかというと、

2023 Mar 01 04:08:52 kern.err x510-01 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:08:52 local3.err x510-01-2 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:11:26 kern.err x510-01 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:11:26 local3.err x510-01-2 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:14:25 kern.err x510-01 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:14:25 local3.err x510-01-2 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:17:23 kern.err x510-01 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:17:23 local3.err x510-01-2 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:20:01 kern.err x510-01 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route
2023 Mar 01 04:20:01 local3.err x510-01-2 kernel: ICMPv6: RA: ndisc_router_discovery failed to add default route

こういうログがおよそ3分ごとにsyslogへ吐き出される、というもの。ICMPv6の文字でわかる通りIPv6の問題です。このとき、x510の経路情報がどうなっていたかというと;

x510-01#show ipv6 ro
Codes: C – connected, S – static, R – RIP, B – BGP
O – OSPF, D – DHCP, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, L1 – IS-IS level 1, L2 – IS-IS level 2, ia – IS-IS inter area

O E1 ::/0 [110/2001] via fe80::649:131:1, vlan131, 00:00:41

このように、OSPFv3で得た経路をデフォルトルートとしていました。が、結果として、この措置は不要でした。ついついIPv4のときのように、デフォルト経路も広告してやらないと、コアSWからエッジルータを介して外部への通信がうまくいかなくなる、と思い込んでいたわけです。

決め手になったのは、こちらの記事でした。Ian D. Allen氏のコメント、すなわち;

Yes, don’t set your own default gateway because if you do then the incoming ICMPv6 RA from your router can’t set it and you get that ndisc_router_discovery failed to add default route error message. Delete your gateway and wait for your router to re-send the RA to set your default gateway. When it happens, it will look something like this (note the proto ra): default via fe80::xxxx:xxxx:xxxx:xxxx dev eth3 proto ra metric 1024 expires 1796sec hoplimit 64 pref low

この文章を見てからもう一度エッジルータ(Cisco 841M)の設定を見たら、あったんですね、OSPFv3によるデフォルトルートの再広告設定が。

router ospfv3 1
!
address-family ipv6 unicast vrf ocn-vrf
passive-interface default
no passive-interface Vlan331
no passive-interface Tunnel1007
no passive-interface Tunnel1101
default-information originate always metric 2000 metric-type 1
redistribute connected
redistribute static
router-id 10.0.131.1
capability vrf-lite
area 0 normal
exit-address-family
!

おっふ。これか。ということで、上記の設定を削除…したつもりだったのですが。

router ospfv3 1
!
address-family ipv6 unicast vrf ocn-vrf
passive-interface default
no passive-interface Vlan331
no passive-interface Tunnel1007
no passive-interface Tunnel1101
default-information originate
redistribute connected
redistribute static
router-id 10.0.131.1
capability vrf-lite
area 0 normal
exit-address-family
!

消えないんです、一発では。
ということで、no default-information originate を実行。さらに、コアSW側でルータと対抗する側のインタフェイスに入れていた ipv6 nd suppress-ra も削除、念のためコアSWを再起動。

ここまできてようやく、

x510-01#sh ipv6 ro
Codes: C – connected, S – static, R – RIP, B – BGP
O – OSPF, D – DHCP, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, L1 – IS-IS level 1, L2 – IS-IS level 2, ia – IS-IS inter area

C ::/0 via fe80::649:131:1, vlan131

というように、OSPFv3でのデフォルートルートが消え、なおかつコアSWのログ上からも一定間隔でエラーログが吐かれる、という事象を抑制することに成功しました。

宅内NWでは諸事情により冗長性は考慮しない設計としているのですが、そういう場合については、ルータ同士の話し合いで自動的に決まる結果に任せた方がよい、と思いました。逆に冗長性の考慮を要する設計の場合にルータ広告でどこまでよきに計らってくれるかは、自分で手を動かしてみる必要がありそうです。

(2023/3/1 12:50ころ追記)
改めて考え直してみるといろいろ間違ってることに気づきましたので、あとで修正します…恥ずかしい。

カテゴリー: IPv6, Network, 運用 パーマリンク