interface の IP address に対してセグメントの異なる ARP を学習している場合、その ARP に対する FIB が unresolved state となり以下のようなROUTING-FIB-4-RETRYDB_NONEMPTY ログが継続して発生します。
RP/0/RP0/CPU0:Jul 12 12:04:59.430 JST: fib_mgr[417]: %ROUTING-FIB-4-RETRYDB_NONEMPTY : One or more FIB object(s) have been in IPv4 retry queue for at least 120 seconds
RP/0/RP0/CPU0:Jul 12 12:08:59.430 JST: fib_mgr[417]: %ROUTING-FIB-4-RETRYDB_NONEMPTY : One or more FIB object(s) have been in IPv4 retry queue for at least 240 seconds
RP/0/RP0/CPU0:Jul 12 12:16:59.430 JST: fib_mgr[417]: %ROUTING-FIB-4-RETRYDB_NONEMPTY : One or more FIB object(s) have been in IPv4 retry queue for at least 480 seconds
RP/0/RP0/CPU0:Jul 12 12:32:59.430 JST: fib_mgr[417]: %ROUTING-FIB-4-RETRYDB_NONEMPTY : One or more FIB object(s) have been in IPv4 retry queue for at least 960 seconds
具体的には以下のように interface のセグメントは 198.51.100.0/24 であるのに対し、セグメントの異なる 192.0.2.1 の ARP を学習しています。
RP/0/RP0/CPU0:IOS-XR#show run interface mgmtEth 0/RP0/CPU0/0
Wed Jul 12 12:02:50.345 JST
interface MgmtEth0/RP0/CPU0/0
vrf MGMT
ipv4 address 198.51.100.1 255.255.255.0
RP/0/RP0/CPU0:IOS-XR#show arp vrf MGMT
Wed Jul 12 12:03:01.515 JST
-------------------------------------------------------------------------------
0/RP0/CPU0
-------------------------------------------------------------------------------
Address Age Hardware Addr State Type Interface
192.0.2.1 00:00:04 XXXX.XXXX.XXXX Dynamic ARPA MgmtEth0/RP0/CPU0/0
どの FIB が unresolved となっているかは、以下コマンドで確認できます。
RP/0/RP0/CPU0:IOS-XR#show cef vrf MGMT unresolved location 0/rP0/CPU0
Wed Jul 12 12:33:28.240 JST
IPV4:
-----
Prefix Next Hop Interface
------------------- ------------------- ------------------
192.0.2.1/32 192.0.2.1/32 (?) MgmtEth0/RP0/CPU0/0
本動作は実装動作となり、対処としては対象の ARP を学習している interface にて "arp learning local" を設定しセグメントの異なる ARP を学習しないようにするか、secondary address を設定することで unresolved state が解消しログが出力されなくなります。以下実施例となります。
< 例:arp learning local >
# secondary address 設定前。 Mgmt IF の IP とは異なるセグメントの ARP 192.0.2.1 を保持しているため unresolved になっている #
RP/0/RP0/CPU0:IOS-XR#sh cef vrf MGMT unresolved location 0/rP0/CPU0
Wed Jul 12 13:05:36.543 JST
IPV4:
-----
Prefix Next Hop Interface
------------------- ------------------- ------------------
192.0.2.1/32 192.0.2.1/32 (?) MgmtEth0/RP0/CPU0/0
# 異なるセグメントの ARP 学習を防ぐため、arp learning local を設定 #
RP/0/RP0/CPU0:IOS-XR(config)#int mgmtEth 0/RP0/CPU0/0
RP/0/RP0/CPU0:IOS-XR(config-if)#arp learning local
RP/0/RP0/CPU0:IOS-XR(config-if)#commit
Wed Jul 12 13:06:02.335 JST
# 設定後、unresolved state が解消している #
RP/0/RP0/CPU0:IOS-XR#sh cef vrf MGMT unresolved location 0/rP0/CPU0
Wed Jul 12 13:06:06.516 JST
IPV4:
-----
# syslog からも resolve したことが確認できる #
RP/0/RP0/CPU0:Jul 12 13:06:02.413 JST: fib_mgr[417]: %ROUTING-FIB-6-RETRYDB_OK : All objects in FIB IPv4 retry queue are resolved now.
< 例:secondary address >
# secondary address 設定前。 Mgmt IF の IP とは異なるセグメントの ARP 192.0.2.1 を保持しているため unresolved になっている #
RP/0/RP0/CPU0:IOS-XR#sh cef vrf MGMT unresolved location 0/rP0/CPU0
Wed Jul 12 12:33:28.240 JST
IPV4:
-----
Prefix Next Hop Interface
------------------- ------------------- ------------------
192.0.2.1/32 192.0.2.1/32 (?) MgmtEth0/RP0/CPU0/0
# 192.0.2.1 と同一セグメントである 192.0.2.2 を secondary address として設定 #
RP/0/RP0/CPU0:IOS-XR(config)#int mgmtEth 0/RP0/CPU0/0
RP/0/RP0/CPU0:IOS-XR(config-if)#ipv4 address 192.0.2.2/24 secondary
RP/0/RP0/CPU0:IOS-XR(config-if)#commit
Wed Jul 12 12:38:18.260 JST
# 設定後、unresolved state が解消している #
RP/0/RP0/CPU0:IOS-XR#show cef vrf MGMT unresolved location 0/rP0/CPU0
Wed Jul 12 12:38:27.240 JST
IPV4:
-----
# syslog からも resolve したことが確認できる #
RP/0/RP0/CPU0:Jul 12 12:38:18.359 JST: fib_mgr[417]: %ROUTING-FIB-6-RETRYDB_OK : All objects in FIB IPv4 retry queue are resolved now.