路由器仅通过 SLAAC 方式为局域网设备配置 IPv6 地址,由于开放端口的需要便通过 option ip6ifaceid '::192' 参数将路由器的 br-lan 接口配置成了固定后缀,目前需求实现且正常。
新需求:目前路由器 br-lan 接口只有一个公网 v6 地址,对外的 v6 流量源地址都是这个,现在想让路由器自身对外的 v6 流量源地址变成定时变换的随机地址,即在 br-lan 接口上开启 IPv6 隐私扩展模式,目前尝试了如下的方法:
1. 使用 Linux 常规的方式,修改 sysctl 配置文件
net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.default.use_tempaddr=2
net.ipv6.conf.br-lan.use_tempaddr=2
结果:无效
2. 打算通过 hotplug + shell 的方式自己实现,核心就通过如下命令
ip -6 address add 2000:306:513:c00:880 ...
结果:正常配置双地址
问题:随机后缀生成,去重等要考虑的问题比较多!
3. 为接口配置 Aliases (别名)
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6ifaceid '::192'
config interface 'lan2'
option device 'br-lan'
option proto 'static'
option ip6ifaceid 'random'
结果:路由器 br-lan 接口可以正确配置一固定一随机两个后缀的 IPv6 地址;
问题:1 )这样配置 WEB 管理界面上就多了一个接口,看起来怪怪的!
2 )路由器下局域网设备会生成两组 IPv6 地址(格式规律就是 前缀 + 接口 ID + ****),感觉是这两个公用 br-lan 的接口分别向局域网设备通告了一次自己,增加了 option delegate '0' 参数不知道是不是没有重启路由器的缘故还是得修改其他参数总之问题依旧。
总结如下,同时希望大佬指点指点:
目前感觉第三方案最接近但还需要细节上调整主要是不重复通告的问题不知道是否在 odhcp dnsmasq 服务的配置文件能找到答案,如果能在管理界面上不显示别名的接口就更好了
方案 2 中使用 ip 命令添加得时候可能是没有加 noprefixroute 参数原因系统路由表发生了改变,现象就是 br-lan 接口外出流量源地址变成了 pppoe-wan ( wan_6 )口的地址,其实如果通过修改路由表或者是某个参数也算一个曲线救国得方法,但是不知道怎么弄
1
lcdtyph 2023-05-18 02:04:59 +08:00 via iPhone
第三种方法,在 /etc/config/dhcp 加上
config dhcp lan2 option interface lan2 option ignore 1 或者第二种方法反过来,脚本里 assign 固定后缀就好了,不用自己随机生成 |
3
lovelylain 2023-05-18 13:02:51 +08:00 via Android
开放端口为什么不开放 pppoe-wan 而要用
br-lan 的,本来就一个 br-lan 一个 pppoe-wan 完美符合需求吧,硬是被你都用 br-lan 整出一堆奇怪问题。 |
4
acbot OP @lovelylain 对于举例的需求来说接口分开也算一种思路!但我不是很确定 pppoe-wan 虚接口生成的 v6 地址后缀是否可控或可配置,如果不可控防火墙这里不好限定后缀;
另外,如果我们把问题的重点落实在“开启接口隐私扩展”上,那么有思路吗? 毕竟这是一个标准且 linux 和 windows 本身都支持吧! |