论 NAT6(IPv6 NAT)

《ER-X 折腾计划》便讲过。

实际上这次的教程可以适配任何 OpenWrt 支持的设备,不仅限于 ER-X。

要进行 IPv6 NAT,就必须安装上 kmod-ipt-nat6,而这个包 OpenWrt 不自带,所以:

opkg update
opkg install kmod-ipt-nat6

或者在 LuCI 拉取软件源,然后查找 kmod-ipt-nat6 安装:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f31332f66393261323231323464306563626235353663326461623462343836316164393062336166632e706e67.png

非常地简单(大嘘)

然后我们要注意,如果 LAN 的地址段属于 ULA,那么 OpenWrt 便不会公布网关,所以需要勾选:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f66302f30666563306466623062623164366337616132656361336538613233616535363232666362382e706e67.png

那么如何开启 NAT6 呢?在防火墙的自定义规则加如下:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f66372f33656434363663626334366539316464346234366430626265363738336463393730656637312e706e67.png

# 定义 IPv6 WAN 接口名(Linux)
iface_linux=pppoe-wan
# 建立 IPv6 NAT
ip6tables -t nat -A POSTROUTING -o $iface_linux -j MASQUERADE

其中 iface_linux 便是:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f38352f32346134313866366262396232323165343365363638366664613562363433616332643032352e706e67.png

こ↑こ↓。按下「重启防火墙」保存。

但是一般我们拨号拨出来的网关是 fe80 开头的网关,所以可以在 /etc/hotplug.d/iface 建立个脚本,来自动添加路由表。

先在 /etc/hotplug.d/iface 建立 99-ipv6。当然 hotplug 的脚本其实不必 chmod +x。

脚本内容如下:

#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
# 定义 IPv6 WAN 接口名(UCI)
iface_uci=wan_6
# 定义 IPv6 WAN 接口名(Linux)
iface_linux=pppoe-wan
[ -z "$iface_uci" -o "$INTERFACE" = "$iface_uci" ] || exit 0
ip -6 route add `ip -6 route | grep $iface_linux | grep via | sed -e 's/from [^ ]* //' | sed -e '2,$d'`
logger -t IPv6 "Add IPv6 default route."

iface_linux 已经讲过了,但是 iface_uci 又没讲过。其实:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f61312f66393663383961376536306236363063393539383763646132303663616163383766363662612e706e67.png

但是泽个东西 LuCI 在显示的时候全部转成了大写,就会踩到大小写民感的雷。

68747470733a2f2f696d672e76696d2d636e2e636f6d2f65632f37656636306663323137396539333739373665656263666562336261353639653261303162342e706e67.png

然后看看地址栏。

68747470733a2f2f696d672e76696d2d636e2e636f6d2f64382f35636261376531323939623039323731663262623137316561616430373139363966316431302e706e67.png

嗯,所以是小写的「wan」。那么上面的脚本为什么写「wan_6」?

因为 OpenWrt 对 PPPoE 会虚拟出一个 IPv6 接口,其 UCI 名是原本的名称后面接上「_6」。如果是 DHCPv6 客户端模式就不用加。

然后重启路由器,不出意外的话 NAT6 就成功了:

68747470733a2f2f696d672e76696d2d636e2e636f6d2f34362f38336530663236393332306638666232353966393261653831626563383732323438393134642e706e67.png

68747470733a2f2f696d672e76696d2d636e2e636f6d2f36302f31326664366236306266303936393164323433613135636566646631356238303436303632392e706e67.png

68747470733a2f2f696d672e76696d2d636e2e636f6d2f37332f39656137613539643635303765313261343332653530343764363536316466646330636331302e706e67.png

68747470733a2f2f696d672e76696d2d636e2e636f6d2f32332f30363038353361633435636666343130316161336335333261343261666266333038366665322e706e67.png

(由此还能看出电信的 IPv6 还跑到了 CERNET(教育网)……其实三大运营商的 IPv6 差不多都是)

最后看完这篇的大佬们,谢谢茄子,,,

(2018 年 7 月 4 日)

首先要补充的是,如果地址是 ULA 的话,那么像 Android 等系统可能会优先解析 IPv4。为了避免这种情况,只好不使用 ULA 了。

但是这个地址也不能乱设,不然冲突了就不好了。所以我们从

这个有 Note 的区块我们也不方便用,因为应该是有了用途的。那么我们可以瞄一个无 Note 的区块。

68747470733a2f2f696d672e76696d2d636e2e636f6d2f32622f65616137323966366563336364386461626439623539303966366634393830396361303235642e706e67.png

这块可以有!

事实上

(按:d000::/4 显然属于 c000::/3 的一部分)

当然,其实我不建议滥用地址,但是迫不得已的情况下不影响到他人(冲突)就没事。

那么我来谈谈为什么要用 IPv6 NAT。

事实上,家用 IPv6 的前缀会变化。而且你也保不准会不会拿到 /128 的地址。

拿到 /128 也只好自认倒楣了。而前缀变化意味着……试想你 IPv6 上得好好的,断线重连原来的地址就失效了(

所以我的意思很明白了,,,这种情况下用 Relay 反而不太方便,,,

(2018 年 7 月 31 日)

今天,OpenWrt 18.06.0 发布!

其实单是对比 RC2 和 RC1,LuCI 也有了明显变动。

68747470733a2f2f696d672e76696d2d636e2e636f6d2f31322f63353364356233323462663262313732623731393937623964613135393965316666373262652e706e67.png

而且 RC2 引入的 LuCI 版本已经明确显示了虚拟的 PPPoE IPv6 接口。

68747470733a2f2f696d672e76696d2d636e2e636f6d2f32662f32323938373964326131316533383939356135663738373537313561353262303533396630392e706e67.png

注意「协议:虚拟动态接口(DHCPv6 客户端)」这一点。这无疑为我们对虚拟接口的判断提供了便利。

目前我先升级了 RC2,至于正式版等待编译完毕再说吧。将在《ER-X 折腾计划》持续更新。

(2018 年 8 月 11 日)

除了安装 kmod-ipt-nat6 外,我们还可以选择安装 ip6tables-mod-nat,这样应该就能扩展 DNPT 和 SNPT 了。

0
分享
2018-06-29

4 个评论

搞这个ipv6能给ps4翻墙吗?
如果 PS4 支持的话没问题的,主要还得在路由器上搞 Hosts。
路由器上怎么弄hosts
在 DNS 设置指定一个额外的 hosts 文件,然后编辑文件就行了。

要回复文章请先登录注册

捐赠我们获取翻墙工具@新蛤社