OpenWRT下IPV6网路设置
现在IPV6支持的越来越完善了 但是在OpenWRT系统(以下简称OP)中 除了上游公告PD地址可以自动设置以外 其他时候都需要手动配置IPV6 以达到下方设备能够通过IPV6访问网路 1.IPV6 Relay Relay的原理很简单 因为上游默认现在都不会只公告/12…
现在IPV6支持的越来越完善了
但是在OpenWRT系统(以下简称OP)中
除了上游公告PD地址可以自动设置以外
其他时候都需要手动配置IPV6
以达到下方设备能够通过IPV6访问网路
1.IPV6 Relay
Relay的原理很简单
因为上游默认现在都不会只公告/128地址
所以在有大于/128的掩码下
可以通过Relay可以将掩码组内的其他IP分配给内网的设备
1-1.在LUCI的页面中将LAN接口的DHCP设定中
IPV6模式分别设定为:
路由通告服务:中继
DHCPv6服务:中继
NDP代理:中继
此操作会自动将/etc/config/dhcp文档中
’lan’ 下的模式修改为relay mode:
config dhcp 'lan'
option ra "relay"
option dhcp "relay"
option ndp "relay"
1-2.在/etc/config/dhcp文档中
添加wan口作为bridge的master
因为我用的是LTE的CDC网路卡默认接口为usb0
接口名称为lte6 协议为HDCPv6
请自行修改为相关网路接口:
config dhcp 'lte6'
option interface 'lte6'
option dhcpv6 'relay'
option ra 'relay'
option ndp 'relay'
option master '1'
1-3.reboot设备后
将可以在内网设备中获取到上游公告的IPV6地址即为成功
注意:因为OP默认会添加from整个网段via gw的route
需要在在计划任务中添加以下命令:
* * * * * /root/ipv6-bridge.sh
/root/ipv6-bridge.sh的内容如下
#!/bin/sh
if [ -n "`ip -6 route show default|grep from -m 1`" ];then
logger -t "IPV6" change default gateway without from source
DEFAULT=`ip -6 route show default|grep from -m 1`
#刪除默認路由
ip -6 route del ${DEFAULT}
#添加無from source路由
ip -6 route add `echo ${DEFAULT}|sed -e 's/from [^ ]* //'`
#添加子網内設備通過br-lan訪問
ip -6 route add `echo ${DEFAULT}|grep from|awk '{printf $3}'` dev br-lan metric 128
fi
#刪除之前自動添加的錯誤路由
ip -6 route list|grep -v default|grep -v br-lan|grep static|while read -r s; do ip -6 route del $s; done
#可選:可以根據需求自定義SUBNETEX的值
SUBNETEX="240e:"
ip -6 route list|grep -v default|grep -v br-lan|grep ${SUBNETEX}|while read -r s; do ip -6 route del $s; done
添加运行权限
chmod +x /root/ipv6-bridge.sh
从而使用IPV6
2.IPV6 Nat6
NAT推荐只在上游分发/128掩码的情况下使用
2-1.设置IPv6 ULA前缀为fd00::/48
内网设备重新连接OP之后可以分配到fd00::/48内部IP
2-2.开启NAT
ip6tables -t nat -A POSTROUTING -s fd00::/48 -j MASQUERADE
2-3.因为OP的BUG
连接上之后路由表有限制sourceIP
需要通过一下命令修复路由
if [ -n "`ip -6 route show default|grep from -m 1`" ];then
logger -t "IPV6" change default gateway without from source
DEFAULT=`ip -6 route show default|grep from -m 1`
#刪除默認路由
ip -6 route del ${DEFAULT}
#添加無from source路由
ip -6 route add `echo ${DEFAULT}|sed -e 's/from [^ ]* //'`
fi