npu-neighbor-update
2025/12/15网络管理≥ 7.0.14, ≥ 7.2.8, ≥ 7.4.4大约 5 分钟
npu-neighbor-update
网络需求
在 FortiGate 上,流量在条件满足时会从 CPU 转发路径迁移到 NP(Network Processor)硬件加速,提升性能。
但在某些“单向/弱回包”业务(最常见是 UDP 单向发送,如 UDP Syslog)中,如果会话被 NP 加速,如下所示的场景中:

- Syslog Sender 持续向 UDP Syslog Server 发送系统日志流量(UDP 端口 514)。UDP Syslog Server 不会主动发送任何数据包。
- 默认配置下,在建立 UDP 会话且 UDP 流量经 NP 加速后,FortiGate 将不再对目标 IP(UDP Syslog Server)发送 ARP 探测。
- 此期间因 Syslog Server 无任何数据发送,其在 L2 Switch MAC 地址表中的条目将超时删除(因为交换机是通过源 MAC 地址来学习 MAC 地址表)。
- 随后发往该交换机的 UDP 流量将泛洪至交换机的所有端口,可能导致其他业务流量受阻。
解决方法
npu-neighbor-update 的目标就是:在这些 NP 加速会话存在时,通过主动探测来更新邻居信息,降低上述风险。该功能默认关闭,当 npu-neighbor-update 启用后:
config system global
set npu-neighbor-update [enable/disable]
end- 对 IPv4:FortiGate 会周期性发送 ARP 探测来更新邻居(ARP 表项/可达性)。
- 对 IPv6:FortiGate 会周期性发送 ICMPv6 NDP 探测(Neighbor Solicitation/Advertisement) 来更新邻居。
效果验证
可使用
diagnose sys session list相关命令查看会话 NP 加速状态,可以看到 Syslog 流量被 NP 单向加速。session info: proto=17 proto_state=00 duration=33 expire=147 timeout=0 refresh_dir=both flags=00000000 socktype=0 sockport=0 av_idx=0 use=3 origin-shaper= reply-shaper= per_ip_shaper= class_id=0 ha_id=0 policy_dir=0 tunnel=/ vlan_cos=0/255 state=log may_dirty npu f00 statistic(bytes/packets/allow_err): org=1056/2/1 reply=0/0/0 tuples=2 tx speed(Bps/kbps): 0/0 rx speed(Bps/kbps): 0/0 orgin->sink: org pre->post, reply pre->post dev=44->8/8->44 gwy=10.10.13.1/0.0.0.0 hook=pre dir=org act=noop 192.168.100.110:161->10.10.13.100:514(0.0.0.0:0) hook=post dir=reply act=noop 10.10.13.100:514->192.168.100.110:161(0.0.0.0:0) misc=0 policy_id=11 pol_uuid_idx=674 auth_info=0 chk_client_info=0 vd=0 serial=000014bf tos=ff/ff app_list=0 app=0 url_cat=0 rpdb_link_id=00000000 ngfwid=n/a npu_state=0x000400 ofld-O npu info: flag=0x81/0x00, offload=8/0, ips_offload=0/0, epid=67/0, ipid=95/0, vlan=0x0000/0x0000 vlifid=95/0, vtag_in=0x0000/0x0000 in_npu=1/0, out_npu=1/0, fwd_en=0/0, qid=5/0 no_ofld_reason:抓包观察是否存在探测报文:
IPv4(ARP):
diagnose sniffer packet <egress-intf> 'arp and host <dst-ip>' 6 0 l。可以看到仅首次 ARP 探测为广播数据包,后续 ARP 探测数据包均为单播数据包。因此对网络影响甚微。FortiGate # diagnose sniffer packet wan2 'arp and host 10.10.13.100' 6 0 l interfaces=[wan2] filters=[arp and host 10.10.13.100] 2023-09-22 09:29:55.517446 wan2 -- arp who-has 10.10.13.100 tell 10.10.13.2 0x0000 ffff ffff ffff e023 ff67 e39d 0806 0001 .......#.g...... 0x0010 0800 0604 0001 e023 ff67 e39d 0a0a 0d02 .......#.g...... 0x0020 0000 0000 0000 0a0a 0d64 .........d 2023-09-22 09:29:55.517581 wan2 -- arp reply 10.10.13.100 is-at 00:09:0f:09:00:04 0x0000 e023 ff67 e39d 0009 0f09 0004 0806 0001 .#.g............ 0x0010 0800 0604 0002 0009 0f09 0004 0a0a 0d64 ...............d 0x0020 e023 ff67 e39d 0a0a 0d02 0000 0000 0000 .#.g............ 0x0030 0000 0000 0000 0000 0000 0000 ............ 2023-09-22 09:30:28.630294 wan2 -- arp who-has 10.10.13.100 tell 10.10.13.2 0x0000 0009 0f09 0004 e023 ff67 e39d 0806 0001 .......#.g...... 0x0010 0800 0604 0001 e023 ff67 e39d 0a0a 0d02 .......#.g...... 0x0020 0000 0000 0000 0a0a 0d64 .........d 2023-09-22 09:30:28.630416 wan2 -- arp reply 10.10.13.100 is-at 00:09:0f:09:00:04 0x0000 e023 ff67 e39d 0009 0f09 0004 0806 0001 .#.g............ 0x0010 0800 0604 0002 0009 0f09 0004 0a0a 0d64 ...............d 0x0020 e023 ff67 e39d 0a0a 0d02 0000 0000 0000 .#.g............ 0x0030 0000 0000 0000 0000 0000 0000 ............ 2023-09-22 09:31:01.750293 wan2 -- arp who-has 10.10.13.100 tell 10.10.13.2 0x0000 0009 0f09 0004 e023 ff67 e39d 0806 0001 .......#.g...... 0x0010 0800 0604 0001 e023 ff67 e39d 0a0a 0d02 .......#.g...... 0x0020 0000 0000 0000 0a0a 0d64 .........d 2023-09-22 09:31:01.750406 wan2 -- arp reply 10.10.13.100 is-at 00:09:0f:09:00:04 0x0000 e023 ff67 e39d 0009 0f09 0004 0806 0001 .#.g............ 0x0010 0800 0604 0002 0009 0f09 0004 0a0a 0d64 ...............d 0x0020 e023 ff67 e39d 0a0a 0d02 0000 0000 0000 .#.g............ 0x0030 0000 0000 0000 0000 0000 0000 ............ ......IPv6(NDP/ICMPv6):
diagnose sniffer packet <egress-intf> 'icmp6 and host <dst-ipv6>' 4 0 l。FortiGate (Interim)# diagnose sniffer packet wan2 'host 2200::64' 4 0 l interfaces=[wan2] filters=[host 2200::64] 2023-09-21 10:59:29.680777 wan2 -- fe80::e223:ffff:fe67:e39d -> 2200::64: icmp6: neighbor sol: who has 2200::64 2023-09-21 10:59:29.680929 wan2 -- 2200::64 -> fe80::e223:ffff:fe67:e39d: icmp6: neighbor adv: tgt is 2200::64 2023-09-21 11:00:04.640780 wan2 -- fe80::e223:ffff:fe67:e39d -> 2200::64: icmp6: neighbor sol: who has 2200::64 2023-09-21 11:00:04.640949 wan2 -- 2200::64 -> fe80::e223:ffff:fe67:e39d: icmp6: neighbor adv: tgt is 2200::64 2023-09-21 11:00:39.600781 wan2 -- fe80::e223:ffff:fe67:e39d -> 2200::64: icmp6: neighbor sol: who has 2200::64 2023-09-21 11:00:39.600920 wan2 -- 2200::64 -> fe80::e223:ffff:fe67:e39d: icmp6: neighbor adv: tgt is 2200::64 ......
期望现象:
- 关闭时:一般只会看到业务自身触发的 ARP/NDP(或几乎看不到主动探测)。
- 开启后:可观察到由 FortiGate 发起的周期性 ARP probe 或 ICMPv6 邻居探测,从而帮助交换机刷新邻居可达性。
注意事项
该功能启用后会带来额外的 ARP/ICMPv6 探测流量与一定系统开销,建议只在问题场景中开启:
- 业务以 UDP 单向发送(如 UDP Syslog)为主、对端回包极少或没有。
- 会话被 NP 加速。
- 网络中存在对 MAC/邻居老化较敏感的二层域(例如交换机 MAC 表老化 导致的异常)。
如果您的业务本身是双向频繁通信(TCP 大量回包等),通常邻居/二层学习自然更稳定,一般不需要开启该功能。
VM 或关闭会话加速的场景下,由 CPU 维护邻居更新(无法关闭),不需要开启npu-neighbor-update 。