请教: IPv6“内网”设备透出到到公网的正确姿势

2019-01-24 10:02:15 +08:00
 lifanxi
家里的宽带一直分配不到 IPv6 地址,所以也没关注和学习 IPv6 的相关技术。大前天终于找到了渠道,电信把我分配不到 IPv6 地址问题解决了,果然是他们后台配置的问题,不是我的问题。
现在在路由器上用 Native 模式(目前路由器用的是原版 Merlin,马上可能会换成 OpenWrt ),通过 DHCPv6-PD,我的路由器和内网设备都能拿到公网 IPv6 地址。从外网可以 ping 通所有这些地址,但是只能访问路由器上的服务,不能访问内网设备的服务。

对这个现象我的理解如下:
无论是路由器还是内网设备,在 IPv6 的环境下,拿到的都是公网 IPv6 地址。访问不到内网服务的原因是,路由器上的防火墙配置默认只允许 ICMPv6、已完成连接的和新建出站的连接通过,不允许其它 IPv6 的入站连接( RFC4890 ?)。
所以在 IPv6 环境下,与 IPv4 NAT 环境的“端口映射”相对应的配置,应该是打开防火墙对应端口。
尝试了下,打开端口后在外网确实可以访问到对应 IPv6 设备上的服务。

问题来了:
我的 IPv6 地址和前缀是 DHCPv6 和 DHCPv6-PD 分配的,如果重新拨号,路由器和所有内网设备的 IPv6 地址都会变化。
地址变化这件事本身不怕,用 DDNS 一样可以解决,但是路由器上配置的开放内网服务的防火墙应该怎么办呢?配置防火墙时已经写死了内网设备的 IPv6 地址,怎么才能根据拨号的结果自动动态调整呢?
25819 次点击
所在节点    宽带症候群
16 条回复
cwbsw
2019-01-24 10:26:49 +08:00
两个办法。
1. 防火墙规则只写端口不指定地址。
2. 使用类似 ip6tables -I FORWARD -d ::1234:5678:abcd:dcba/::ffff:ffff:ffff:ffff -j ACCEPT 的规则匹配地址后缀。
BOYPT
2019-01-24 10:35:34 +08:00
在路由器 iptables 中匹配 IPv6 动态地址
https://blog.ptsang.net/match-ipv6-dynamic-addresses-in-iptables
qwvy2g
2019-01-24 10:42:05 +08:00
华硕界面上是这么写的:
您可以不填写远程 IP 地址,以允许来自任何远程主机的流量传入。您也可以设置为一个子网。 (例如:2001::1111:2222:3333/64)
当然也可以将本地地址和远程地址都写::/0
geekvcn
2019-01-24 11:52:13 +08:00
有 v4 不用 v6,最简单的就是梅林关闭 v6 防火墙,不建议这么做,其次就是上面的写::/0,不过我记得梅林只要填一个,外加端口,因为 v6 不像 v4 要 NAT
ttvast
2019-01-24 12:21:46 +08:00
上 V6 NAT, 最好的解决方案, 协议简单,配置简单,使用简单,并且各种设置方式和 V4 没有区别
ysys123
2019-01-24 14:27:20 +08:00
天津移动的宽带 我家里没有这问题 所有支持 v6 设备都有公网地址 直接就可以访问 实在是太方便了
sjklong
2019-01-24 15:36:34 +08:00
@ysys123 请问有没有试过大流量访问 只想知道上传理想状态下速度跑的怎么样
LGA1150
2019-01-24 19:21:00 +08:00
把客户端的随机生成 EUI64 选项关掉,然后用#1 的方法
lifanxi
2019-01-25 00:16:20 +08:00
谢谢各位讨论。在 Merlin 固件上试了下,本地 IP 不能不写,但可以写后 64 位来匹配。问题暂时解决。
使用隐私扩展地址的场景暂时还没深究,后面再想想,这种可能不太好解。
LGA1150
2019-01-25 04:44:39 +08:00
@lifanxi 隐私扩展的 IPv6 地址是客户端访问外面用的,实际上客户端有两个 IPv6 地址,带隐私扩展的和不带(即 EUI64 )的
wowplayer
2019-01-25 16:11:01 +08:00
@LGA1150 我这边用 openwrt 好像没有楼主这种问题啊 内网的 FTP 和路由 web 一样 都可以 V6 公网直接连接 不太明白我为什么不需要楼上这些设置
lifanxi
2019-01-25 16:48:06 +08:00
@wowplayer 那就是路由器上的防火墙没开或者策略太松咯。但是按理说 OpenWrt 默认配置不应该这么宽松,难道是别有用心的版本?
imfannet
2019-01-27 01:47:47 +08:00
配置 ip6tables 按结尾匹配地址即可(或者匹配 MAC 地址?没试过) EUI-64 用 MAC 地址生成有个固定规则 隐私扩展开启只负责你的设备访问远程设备时用的地址 远程主动访问你的设备还是要看自动获取或你手工配置的相对不变动的地址
conanlcg
2019-09-03 18:42:10 +08:00
你好楼主,我也遇到这个问题了,请问你是怎么解决的呢?填写内网 IPV6 地址的确外网可以访问内网的电脑,但是分配的 IPV6 会变动呀。。。

https://ae01.alicdn.com/kf/H526cad82a09247f1a546fbb99c69e821n.png
wslzy007
2019-11-21 13:19:51 +08:00
推荐解决方案: https://github.com/lazy-luo/smarGate 路由器不用任何配置,提供 v6 防火墙穿透
Livid
2022-02-11 11:20:23 +08:00
通常在填地址的地方,不要填具体的地址,可以填范围。比如类似 2600:100e:be18::/47 这样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/530084

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX