一、邻居管理存在状态
1、NUD_NONE
: 初始状态。当一个新的路由缓存条目被创建时,arp_bind_neighbour()函数被调用.如果找不到相匹配的ARP缓存条目, neigh_alloc()将创建一个新的ARP缓存条目并设置状态为NUD_NONE.
2、NUD_INCOMPLETE
:未完成状态。当第一个包发送需要新的ARP缓存条目neigh_resolve_output()被调用.最后实际调用的是neigh_event_send()函数,它发送一个ARP请求并置传输状NUD_INCOMPLETE.
3、NUD_REACHABLE
:可达状态。当收到ARP响应时,邻居表进入NUD_REACHABLE状态.
4、NUD_STALE
:过期状态。当定时器触发neigh_periodic_timer()函数扫描到邻居表条目的最后时间超过可达时间参数时,它设置条目状态为过期状态.
5、NUD_DELAY
:延迟状态。当在NUD_STALE状态下有报文需要发送时,调用neigh_resolve_output()函数发送数据,在发送报文同时,将状态迁移到这个状态,同时启动一个定时器。
6、NUD_PROBE
:探测状态。NUD_DELAY的定时器到时调用neigh_timer_handler()迁移到这个状态,这个状态下,发送ARP请求并等待响应。
7、NUD_FAILED
: 失败状态。连续重发多次都没有响应
8、NUD_NOARP
:不需要解析,如PPP接入
9、NUD_PERMANEN
T:静态ARP
10、NUD_IN_TIMER
:定时器状态。表示邻居系统正在运行一个定时器
11、NUD_VALID
:有效状态。表示邻居表有一个可用地址
12、NUD_CONNECTED
:连接状态。表示可以直接根据邻居系统发送数据包
二、查看、添加和修改
1、查看:ip neigh show
既可以显示ipv4也可以显示ipv6
2、设置静态记录:
sudo ip neigh add fe80::cc47:88ff:e5fd:2ea lladdr 00:12:ac:3d:a1:11 dev eth0
3、删除记录:
sudo ip neigh del 192.168.36.1 dev eth0
引用1:ip命令规范