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
本動作は実装動作となります。
本ドキュメントでは MGMT IF を例にとって説明していますが、LC interface でも同様です。
LC interface の場合以下のように syslog が LC から出力されます。
# MGMT IF の場合、syslog が RP/RSP から出力される #
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
# LC IF の場合、syslog が LC から出力される #
LC/0/0/CPU0:Jul 8 15:10:09.867 EDT: fib_mgr[301]: %ROUTING-FIB-4-RETRYDB_NONEMPTY : One or more FIB object(s) have been in IPv4 retry queue for at least 960 seconds
対処としては対象の ARP を学習している interface にて "arp learning local" を設定しセグメントの異なる ARP を学習しないようにするか、secondary address を設定することで unresolved state が解消しログが出力されなくなります。
なお、"arp learning local" はセグメントの異なる ARP を学習しないようにする設定となり、その他の ARP において影響が想定されるような設定ではありません。
以下実施例となります。
< 例: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.