openwrt ipv6的 nat 以及 转发问题
注意:
必须在外部测试,转发后默认无法nat回流。建议 v4 直接用 op 的防护墙界面转发,24 以后的 op 已经可以在界面做 v6 的转发。
如果你只是自己打开个网页,那没必要这么麻烦,当你需要记录外网访问来源并且对并发有要求才需要这么搞。
如果你真的那么想要 nat 回流,用 lucky 绑定路由器 ip 吧,域名内网重写为路由器 ip(记录不了内网地址)。或者直接重写域名 ip 为服务 ip,这样也能记录内网地址。

ipv6nat
- 添加全局 ULA,例如
fd12:3456:789a::/48 - 防火墙添加规则
ip6tables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE
- 添加无源地址限制的 v6 路由
ip -6 route add default dev pppoe-wan
- 如果想开机就能用,可以添加规则
# /etc/hotplug.d/iface/99-ipv6-nat
#!/bin/sh
[ "$DEVICE" = "pppoe-wan" ] && [ "$ACTION" = "ifup" ] && {
sleep 2
ip -6 route add default dev pppoe-wan 2>/dev/null || true
}
- 如果不想让内网设备有公网v6,重设 wan6
只需要禁用“请求指定长度的 IPv6 前缀”就行,pppoe 拨号的需要关闭 pppoe 的内置 v6 管理,ppp 协商 v6 改成手动。新建 wan6 设备写 pppoe-wan
ipv6转发
- 防火墙添加规则, 下面是示例
ip6tables -t nat -A PREROUTING -p tcp --dport 63820 -j DNAT --to-destination [fd12:3456:789a:0:be24:11ff:fe9c:112c]:63820
ip6tables -I zone_wan_forward -d fd12:3456:789a:0:be24:11ff:fe9c:112c -p tcp --dport 63820 -j ACCEPT
- 如果内网 v6 地址是随机的,可以在 op 上强制设置后缀(4 段),或者设备上强制使用 eui64 等。
本文来自博客园,作者:铁流是宝宝,转载请注明原文链接:https://www.cnblogs.com/dawnings/p/19345288

浙公网安备 33010602011771号