邢台做网站建设优化制作公司金信,wordpress 怎么样,世界500强企业正威集团生死局,网站备案中的网站名称原来有一段时间在做扩充产品的VLAN个数#xff0c;然后就遇到过一个问题#xff1a;说这个Linux的默认配置里#xff0c;会为每一个网络接口添加一个link-local的地址#xff0c;就是FE80::开头的地址#xff0c;在RFC-4291里有如下的定义#xff1a;
Link-Local unicas…原来有一段时间在做扩充产品的VLAN个数然后就遇到过一个问题说这个Linux的默认配置里会为每一个网络接口添加一个link-local的地址就是FE80::开头的地址在RFC-4291里有如下的定义
Link-Local unicast 1111111010 FE80::/10 2.5.6而这个配置是网络接口级别的一个配置可用使用ip命令来做修改如ip link set dev X addrgenmode none。如果设置为none就是不要自动产生link-local地址。其他模式
支持的模式eui64 |none |stable_secret |random
eui64: use a Modified EUI-64 format interface identifier none: disable automatic address generation stable_secret: generate the interface identifier based on preset /proc/sys/net/ipv6/conf/{default,DEV}/stable_secret random: like stable_secret, but auto-generate a new random secret if none is set
另一个产生问题的必要条件是Linux系统会默认为每一条link-local地址创建一个路由记录到这个地址。如下
fe80::/64 dev eth0 proto kernel metric 256 pref medium fe80::/64 dev eth1 proto kernel metric 256 pref medium fe80::/64 dev eth1.61 proto kernel metric 256 pref medium
这时候如果要在虚拟机上添加4096个VLAN接口的话就会有4096个link-local地址也会生成4096个相关的路有记录然后就会导致Linux内核里的一系列的问题尤其是在netlink的处理上是一个不小的负担。
为了解决这个问题还想着不行就把这个local-link的IP地址删掉不让它自动生成就不会存在这个路由记录。就不会有着netlink的负担。当时感觉感动太大没敢这么改如果当时这么改肯定会遇到很多问题。
最近看IPv6的ND的时候发现这个link-local的地址还有其他作用也就是如果删掉会有副作用。比如ND协议源地址选择协议等等里面都有提到这个地址的用途。现在想想还有些后怕幸亏没有删掉这个地址。
最后是通过一个netlink的优化选项解决的路由太多的问题。设置netlink的socket选项 https://mzhan017.blog.csdn.net/article/details/120567610 if (setsockopt(nl_socket, SOL_NETLINK, NETLINK_DUMP_STRICT_CHK, optval, sizeof(optval)) 0) {