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.html4、开始配置直接说重点核心配置1、在 网络-接口 中, 设置全局网络选项中的 IPv6 ULA 前缀 , 将开头的 f 改成 d 或者改为dd00:101:101::/482、在 网络-接口-LAN 中设置 DHCP 服务器将路由器通告服务、DHCPv6 服务选为服务器模式NDP 代理选为已禁用DHCPv6 模式选为有状态或则 无状态有状态 同时勾选 总是通过默认路由。3、在 网络-防火墙-自定义规则 中添加以下内容WAN6pppoe-wan LANbr-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[$ACTIONifup]||exit0ifacewan6[-z$iface-o$INTERFACE$iface]||exit0# Bad route 1bad$(ip-6 route show default|grep-vpppoe-wan|seds/expire.*//)logger -t IPv6Old IPv6 route w/o PPPoE:$badif[x$bad!x];thenlogger -t IPv6Remove old IPv6 route...status$(ip-6 route delete $bad21)logger -t IPv6Done:$statusfi# Bad route 2good$(ip-6 route show default|greppppoe-wan|seds/from [^ ]* //|head-n1)logger -t IPv6Good route is:$goodlogger -t IPv6Add good IPv6 route...status$(ip-6 routeadd$good21)logger -t IPv6Done:$status