一、邻居管理存在状态
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