关于Openwrt里的ipv6设置
注意
本篇文章内容是在“光猫使用桥接模式
,由路由器拨号”这个大前提下进行的。光猫使用路由模式
的用户请勿参考。
ipv6相关设置
ipv6地址获取
之前我在PVE/物理机安装OpenWrt以及各种设置里讲过最基本的ipv6地址获取方法,选择“自动”时,openwrt会创建一个隐藏接口wan-6
来进行ipv6地址的获取。而我需要更高的可自定义性,于是搜到另一个和“自动”选项类似的可以自动获取ipv6的设置方法。
- 首先把
自动
改为手动
- 新建一个接口,命名随便,我使用
wan6
,新的接口协议
选择DHCPv6 client
,物理设置
选择自定义接口
,并填写@wan
- 提交,然后保存并应用
关于“使用内置的IPv6管理”选项
网上有人说勾选有人说不勾选,这个其实要看你使用的是谁编译的固件而自行选择,我这里的情况时勾选与不勾选都没有区别,都可以正常使用ipv6地址。
关于公网访问
- 如果你使用的是
openwrt
,一定要把网络
->防火墙
->基本设置
->转发
这项设置设为接受
。稍微解释一下,转发的意思是,收到了不是对本机(软路由自身)的请求,而是对内网设备的请求,由路由将此请求转发给内网设备。其作用实质上与IPv4的端口转发
类似,端口转发
也是把外网对路由的某个端口的请求,转发到对内网设备某个端口的请求。如果此处不为接受
,那么路由看到不是对自己的请求就直接无视或者扔了,这样即使内网设备有公网IPv6,外网也无法访问内网设备。具体可参考本链接内容 - 如果你使用的是
华硕路由
,我自己是刷了梅林固件的,需要在防火墙
->一般设置
->IPv6 防火墙
->传入防火墙规则
中把你需要允许外网访问的设备v6地址添加进去,当然,如果不怕死的可以直接关了防火墙。
IPv6地址区别
一般设置好ipv6以后是这样的,你会得到3个v6地址。前2个是可以公网访问的,区别在于:
IPv6 地址
是由SLAAC(Stateless Address Autoconfiguration)
机制分配的v6地址,即无状态地址自动配置
,具体内容可自行搜索。此地址可以被公网访问。临时 IPv6 地址
是用网设备生成的,访问外网使用的真正的地址,使用网络上的ipv6查询工具可以查到的地址。顾名思义,此地址会频繁更改,目的是保护隐私。此地址同样可以被公网访问。- fe80开头的是一种本地连接地址,即”link-local” 地址。内网可用,外网无法访问。通常可以被理解为v4地址中的169.254.0.0/16
还会出现这种情况。注意到出现了2个前三段相同的地址,一长一短。长的即为上面所说的由SLAAC
分配的;短的是由DHCPv6分配的,与IPv4的DHCP类似,全称Stateful Address Autoconfiguration
,即有状态地址自动配置
。这2个对应openwrt
->网络->
接口->
LAN->
DHCP服务器->
IPv6设置->
DHCPv6模式->无状态的 + 有状态的
。如果你选择其中一个,那么用网设备获取到的v6地址也只会有对应的那一个。这2个v6地址与临时 IPv6 地址
都可以被公网访问。
其余的,前三段与临时 IPv6 地址
的前三段不一样的v6地址,是无法由公网访问到的。图中最后一个IPv6 地址
的前三段与临时 IPv6 地址
的前三段相同,那么此地址则可以由公网访问到。这些前三段不一样的v6地址是否能内网访问我没有进行测试,别问,问就是懒。
不过至于为什么一台设备会获取如此之多的v6地址,以及前三段不同的地址为什么不能被公网访问,这些问题我暂时还没有研究,如果之后有时间可能会自己搜搜补充上。
IPv6 DDNS
待更新
2024/08/01更新
“强制链路”设置相关
强制链路
通俗的讲,就是无论物理接口是否连接,路由里的逻辑接口设置都保持应用状态。举个例子,如果你wan
口开了强制链路
,那么在你插上网线的时候wan
口会获取到一个ip地址,如果此时你拔掉了网线,wan
口依然会保留这个ip地址的设置,而不会显示断开连接,即使已经没有网了,直到你下一次插上网线,wan
口获取新的ip地址。
对于这个设置项,大多建议都是:wan
口关闭,lan
口开启。这个是合理的,因为一般wan
口需要实时更新链路状态,而lan
口链接的设备我们一般是不会总动它的。我的理解是,在内网NAT的设备开启DHCP获取ip,可以依靠这个选项保持设备每次开机ip地址不会频繁变更。不过我并没有非常深入的了解DHCP的工作原理,也有可能对于同一MAC地址,DHCP租约分配的ip会保持不变。但对我来说其实无所谓了,因为我内网设备全是自己手动设置ipv4地址的。