Openwrt's implementation of IPV6 NAT
身处校园网环境,只能通过 PPPOE 获取到一个 /64 的 IPV6 地址,如果想使用路由器则只能通过 IPV6 NAT 或者 relay 中继的方式获得地址。relay方式可以获得公网地址,但是我尝试了很多次,即时获得了公网地址,也不能成功的上网,不知问题出在何处,转而继续研究 IPV6 NAT。
IPV6 NAT 其实并不推荐,因为路由下的设备就不能获得公网的 IPV6 地址了,就失去了使用 IPV6 的一大意义,这个只推荐在校园网环境下折中这样使用了,公网家庭宽带条件下还是推荐使用穿透模式或者直接通过 DHCPV6 直接分发公网 IPV6 地址。
我这里使用的 Openwrt 的版本是 Lienol 的 19.07 ,下面的方法在我使用的这个镜像中成功实现。
网络->接口
中, 设置全局网络选项中的 IPv6 ULA 前缀
, 将其改为:dd00:101:101::/48
。网络->接口->LAN
中,设置 DHCP 服务器,将路由器通告服务、DHCPv6 服务选为服务器模式,NDP 代理选为已禁用,DHCPv6 模式选为无状态+有状态,同时勾选 总是通过默认路由
。网络->防火墙->自定义规则
中添加以下内容:WAN6=pppoe-wan
LAN=br-lan
ip6tables -t nat -A POSTROUTING -o $WAN6 -j MASQUERADE
ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i $LAN -j ACCEPT
WAN6=pppoe-wan
这里需要根据自己路由器的实际情况进行修改,如果是 PPPOE 拨号,则一般为 pppoe-wan 。
一部分情况下,NAT 就已经可以使用了,但是有时因为路由表的原因还是会导致无法上网,需要进行进一步的处理。这里开始需要使用 SSH 或者网页的 TTYD 终端连接到路由器。
ip -6 route
, 查看自己的 IPV6 网关,在 PPPOE 拨号情况下正常的网关应该类似于:default via fe80::96db:daff:fe3e:8fcf dev pppoe-wan proto ra metric 1024 ······
但是可能会存在错误的网关,如:
default from 2001:xxx:xxxx:xxxx::/64 via fe80::96db:daff:fe3e:8fcf dev pppoe-wan proto static metric 512 pref medium
这些会导致路由可以正常使用 IPV6 而通过 NAT 分配的设备无法正常使用 IPV6,我们需要使用脚本将错误的网关进行更改。
vi /etc/hotplug.d/iface/99-ipv6
, 进入编辑界面,将以下内容复制进去:#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
iface=wan6
[ -z "$iface" -o "$INTERFACE" = "$iface" ] || exit 0
# Bad route 1
bad=$(ip -6 route show default | grep -v "pppoe-wan" | sed 's/expire.*//')
logger -t IPv6 "Old IPv6 route w/o PPPoE: $bad"
if [ "x$bad" != "x" ]; then
logger -t IPv6 "Remove old IPv6 route..."
status=$(ip -6 route delete $bad 2>&1)
logger -t IPv6 "Done: $status"
fi
# Bad route 2
good=$(ip -6 route show default | grep "pppoe-wan" | sed 's/from [^ ]* //' | head -n1)
logger -t IPv6 "Good route is: $good"
logger -t IPv6 "Add good IPv6 route..."
status=$(ip -6 route add $good 2>&1)
logger -t IPv6 "Done: $status"
使用 :wq
保存退出。
chmod +x /etc/hotplug.d/iface/99-ipv6
https://gitlab.com/XDOSC/WIFI/-/wikis/tips/ipv-6-router
https://www.jianshu.com/p/eb07eaac6167
本网站文章版权均为本人所有,未经同意不得私自搬运复制,欢迎注明引用出处的合理转载,图片转载请留言。文章内容仅用于技术研究和探索,不得用于违法目的。