openwrt软路由实现ipv6 nat 上网配置

1、介绍

   之前写的 《openwrt软路由实现ipv6上网配置》文档,经过长期的使用测试和网友评论反馈,之前写的配置方法没有实现必然ipv6上网,重启路由器后就会导致不能ipv6上网,经过查找文章,找到了 ipv6 nat 上网配置方式,ipv4就是使用nat模式上网,nat模式上网是一个非常稳定方法,不会像ipv6直通模式有时能上网,有时不能上网,非常不稳定。
   为了解决 ipv6 直通模式上网不稳定问题,换成了 nat模式,经过多此重启路由器和长期使用测试,非常稳定,每一次路由器启动后就能通过ipv6上网。

2、参考文档

wherelse 博主文章: Openwrt的IPV6 NAT的实现 ;直接按照此文章配置就能实现ipv6 nat 上网

3、资源准备

准备一台安装好了openwrt软路由的电脑或刷好openwrt系统路由器
本人使用是openwrt系统版为:sirpdboy大神发布的openwrt x86版软路由系统,地址https://www.right.com.cn/forum/thread-4053752-1-1.html

4、开始配置

直接说重点核心配置
1、在 网络->接口 中, 设置全局网络选项中的 IPv6 ULA 前缀 , 将开头的 f 改成 d 或者改为:dd00:101:101::/48
在这里插入图片描述
2、在 网络->接口->LAN 中,设置 DHCP 服务器,将路由器通告服务、DHCPv6 服务选为服务器模式,NDP 代理选为已禁用,DHCPv6 模式选为有状态(或则 无状态+有状态 ),同时勾选 总是通过默认路由。
在这里插入图片描述
3、在 网络->防火墙->自定义规则 中添加以下内容:

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

配置好这个就可以实现ipv6 nat模式上网

4、修改正错误的路由
此步骤不是必须的,上面的步骤都配置好了无法ipv6上网可以检查路由是否正确
在终端中输入: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"
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值