首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
拉勾
V2EX  ›  宽带症候群

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

  •  
  •   lifanxi · 54 天前 · 2145 次点击
    这是一个创建于 54 天前的主题,其中的信息可能已经有所发展或是发生改变。
    家里的宽带一直分配不到 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 地址,怎么才能根据拨号的结果自动动态调整呢?
    13 回复  |  直到 2019-01-27 01:47:47 +08:00
        1
    cwbsw   54 天前   ♥ 1
    两个办法。
    1. 防火墙规则只写端口不指定地址。
    2. 使用类似 ip6tables -I FORWARD -d ::1234:5678:abcd:dcba/::ffff:ffff:ffff:ffff -j ACCEPT 的规则匹配地址后缀。
        2
    BOYPT   54 天前   ♥ 1
    在路由器 iptables 中匹配 IPv6 动态地址
    https://blog.ptsang.net/match-ipv6-dynamic-addresses-in-iptables
        3
    qwvy2g   54 天前   ♥ 1
    华硕界面上是这么写的:
    您可以不填写远程 IP 地址,以允许来自任何远程主机的流量传入。您也可以设置为一个子网。 (例如:2001::1111:2222:3333/64)
    当然也可以将本地地址和远程地址都写::/0
        4
    geekvcn   54 天前 via iPhone
    有 v4 不用 v6,最简单的就是梅林关闭 v6 防火墙,不建议这么做,其次就是上面的写::/0,不过我记得梅林只要填一个,外加端口,因为 v6 不像 v4 要 NAT
        5
    ttvast   54 天前
    上 V6 NAT, 最好的解决方案, 协议简单,配置简单,使用简单,并且各种设置方式和 V4 没有区别
        6
    ysys123   54 天前 via Android
    天津移动的宽带 我家里没有这问题 所有支持 v6 设备都有公网地址 直接就可以访问 实在是太方便了
        7
    sjklong   54 天前
    @ysys123 请问有没有试过大流量访问 只想知道上传理想状态下速度跑的怎么样
        8
    LGA1150   54 天前 via Android
    把客户端的随机生成 EUI64 选项关掉,然后用#1 的方法
        9
    lifanxi   54 天前
    谢谢各位讨论。在 Merlin 固件上试了下,本地 IP 不能不写,但可以写后 64 位来匹配。问题暂时解决。
    使用隐私扩展地址的场景暂时还没深究,后面再想想,这种可能不太好解。
        10
    LGA1150   53 天前 via Android
    @lifanxi 隐私扩展的 IPv6 地址是客户端访问外面用的,实际上客户端有两个 IPv6 地址,带隐私扩展的和不带(即 EUI64 )的
        11
    wowplayer   53 天前
    @LGA1150 我这边用 openwrt 好像没有楼主这种问题啊 内网的 FTP 和路由 web 一样 都可以 V6 公网直接连接 不太明白我为什么不需要楼上这些设置
        12
    lifanxi   53 天前 via Android
    @wowplayer 那就是路由器上的防火墙没开或者策略太松咯。但是按理说 OpenWrt 默认配置不应该这么宽松,难道是别有用心的版本?
        13
    imfannet   51 天前   ♥ 1
    配置 ip6tables 按结尾匹配地址即可(或者匹配 MAC 地址?没试过) EUI-64 用 MAC 地址生成有个固定规则 隐私扩展开启只负责你的设备访问远程设备时用的地址 远程主动访问你的设备还是要看自动获取或你手工配置的相对不变动的地址
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1740 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1