
邻居子系统
redwingz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
邻居表的proxy_qlen长度和proxy_delay延时参数
proxy_qlen控制邻居代理缓存的报文数量,proxy_delay定义处理需要代理的arp报文的时间间隔。对于arp协议,内核默认的proxy_qlen为64,proxy_delay为80。通过PROC文件proxy_qlen可查看和修改其值。$ cat /proc/sys/net/ipv4/neigh/ens33/proxy_qlen 64$ cat /proc/sys/net/ipv4/neigh/ens33/proxy_delay 80在arp邻居表arp_tbl中将NEIGH_VA原创 2020-11-24 22:52:23 · 1017 阅读 · 0 评论 -
邻居表项的unres_qlen_bytes长度
对于每个未解析的邻居地址,变量unres_qlen和unres_qlen_bytes分别控制可换成的报文数量和报文字节数量,其中前者unres_qlen在内核linux-3.3版本已经废弃,应使用后一个变量unres_qlen_bytes,其默认值为SK_WMEM_MAX(即net.core.wmem_default),内核建议此值的设置应能够容纳256个中型长度的报文。通过PROC文件unres_qlen和unres_qlen_bytes可查看和修改其值。$ cat /proc/sys/net/ipv原创 2020-11-19 20:04:14 · 1104 阅读 · 0 评论 -
邻居表项的回收控制
内核中存在3个阈值控制邻居表项的回收:gc_thresh1 表示最小可保留的表项数量,如果表项数量小于此值GC(Garbage collector)不进行回收操作,默认为128;gc_thresh2 当表项数量超过此值时,GC将会清空大于5秒的表项,默认为512;gc_thresh3 最大可允许的非永久表项数量。如果系统拥有庞大的接口数量,或者直连了大量的设备,应增大此值。默认值为1024。另外,gc_interval不太清楚有什么用处,默认值为30秒钟。对于IPv4,可通过以下PROC原创 2020-11-14 07:08:35 · 3319 阅读 · 0 评论 -
邻居表项的retrans_time时长
retrans_time控制在发送过邻居地址探测报文之后,经过多长时间检测邻居表项的变化,如果检测不成功,进行重新探测,对于arp协议,内核默认的retrans_time为1秒钟。通过PROC文件retrans_time可查看和修改其值,单位时USR_HZ(100),PROC文件的内容为毫秒值,这里为默认的1000ms。$ cat /proc/sys/net/ipv4/neigh/ens33/retrans_time100$ cat /proc/sys/net/ipv4/neigh/ens33/re原创 2020-11-12 20:15:49 · 1694 阅读 · 0 评论 -
邻居表项的ucast_solicit数量
ucast_solicit控制使用单播发送邻居地址探测报文的次数,对于arp协议,内核默认的ucast_solicit为3。通过PROC文件app_solicit可查看和修改其值,如下,修改为1。$ cat /proc/sys/net/ipv4/neigh/ens33/ucast_solicit 3 $ echo 1 > /proc/sys/net/ipv4/neigh/ens33/ucast_resolicit在arp邻居表arp_tbl中将NEIGH_VAR_UCAST_PROBES索原创 2020-11-10 20:35:31 · 1064 阅读 · 0 评论 -
邻居表项的mcast_solicit数量
mcast_solicit和mcast_resolicit控制使用多播发送邻居地址探测报文的次数,对于arp协议,内核默认的mcast_solicit为3。通过PROC文件app_solicit可查看和修改其值,如下,修改为1。$ cat /proc/sys/net/ipv4/neigh/ens33/mcast_solicit 3 $ cat /proc/sys/net/ipv4/neigh/ens33/mcast_resolicit 0在arp邻居表arp_tbl中将NEIGH_VAR_MC原创 2020-11-05 22:24:44 · 1205 阅读 · 2 评论 -
邻居表项的app_solicit数量
app_solicit控制上层应用发送邻居地址探测报文的数量,对于arp协议,内核默认的app_solicit为零,在arp邻居表arp_tbl中没有对NEIGH_VAR_APP_PROBES索引所对应的表项赋值,即将app_solict对于的值设置为了零,如果上层应用可完成地址探测,可将app_solicit修改为非零。通过PROC文件app_solicit可查看和修改其值,如下,修改为1。$ cat /proc/sys/net/ipv4/neigh/ens33/app_solicit 0 $ e原创 2020-11-04 23:03:10 · 839 阅读 · 0 评论 -
邻居表项的delay_probe_time时长
delay_probe_time控制首次发送邻居请求报文的等待时长,对于arp协议,内核默认的delay_probe_time时长为5秒钟。struct neigh_table arp_tbl = { .family = AF_INET, .key_len = 4, .protocol = cpu_to_be16(ETH_P_IP), .hash = arp_hash, .key_eq = arp_key_eq, .co原创 2020-11-03 22:39:41 · 1506 阅读 · 1 评论 -
GARP(Gratuitous ARP)
内核函数arp_is_garp判断ARP报文是否为GARP,先决条件是发送者IP和目标IP地址相同,另外,对于ARP回复(REPLAY)报文,要求如果目标硬件地址存在,需要与发送者硬件地址相等。最后,要求ARP报文的发送者IP为单播地址,否则,判定报文不是garp。static bool arp_is_garp(struct net *net, struct net_device *dev, int *addr_type, __be16 ar_op, __b原创 2020-10-29 20:30:47 · 2836 阅读 · 1 评论 -
邻居表项的locktime时长
如果内核在locktime时间内接收到多个ARP报文,仅首个报文生效。对于arp协议,内核默认的locktime时长为1秒钟,可通过PROC文件或者ip命令进行修改。struct neigh_table arp_tbl = { .family = AF_INET, .key_len = 4, .protocol = cpu_to_be16(ETH_P_IP), .hash = arp_hash, .key_eq = arp_ke原创 2020-10-28 20:31:30 · 903 阅读 · 0 评论 -
邻居表项的STALE状态超时时间
对于arp协议,内核默认的STALE状态超时时长为60秒钟。struct neigh_table arp_tbl = { .family = AF_INET, .key_len = 4, .protocol = cpu_to_be16(ETH_P_IP), ... .id = "arp_cache", .parms = { ... .data = { ...原创 2020-10-21 19:36:45 · 3523 阅读 · 0 评论