背景:校园网最多支持6台设备的无感认证,需要使用路由器(本人使用openwrt系统)为更多的设备提供网络,但校园网分配的ipv6地址子网为/128,不能为路由器下的设备分配全球ipv6地址,因此需要使用nat6转发下游设备的局域网ipv6地址,使下游设备能够访问ipv6网络。
参考:【老湿基】IPv6 竟然也可以开 NAT|OpenWRT IPv6 NAT 手把手教学
环境:openwrt-23.05
配置步骤:
- 安装ip6tables
opkg update
opkg ip6tables
- 打开nat6,其中eth1是连接校园网的网卡(可以用ifconfig命令查看哪个网卡获取到了10开头的校园网ip)
ip6tables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
- 编辑/etc/config/dhcp文件,检查dhcp 'lan’中dhcpv6, ra, ra_management, ra_default这几项,如果没有就手动添加。
- 编辑/etc/config/network文件,重点关注红色箭头所指的两项,没有的话手动添加。
- 配置网关
- 首先查看ipv6路由表的default项,此时会返回“default from [openwrt ipv6地址] via [openwrt ipv6网关] dev [出口网卡] metric xx”
ip -6 route | grep default
# 我的返回值:
# default from 2001:da8:xxx:xxx::x via fe80::5616:51ff:fe56:8fb9 dev eth1 metric 512
- 利用上面获得的 [openwrt ipv6网关] dev [出口网卡] 构造命令:
route -A inet6 add default gw [openwrt ipv6网关] dev [出口网卡]
# 例如:
# route -A inet6 add default gw fe80::5616:51ff:fe56:8fb9 dev eth1
- 使用openwrt下游设备前往ipv6测试站测试连通性