docker macvlan 环境 nat ipv6 连不通外网 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aries1998
V2EX    Docker

docker macvlan 环境 nat ipv6 连不通外网

  •  
  •   aries1998 2023-05-11 08:13:26 +08:00 1762 次点击
    这是一个创建于 891 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Host: 一台 x86 的 ubuntu 做的路由, 桥接光猫拨号
    eth0: 连光猫 192.168.1.0/24
    eth1: 内网连交换器 192.168.0.0/24
    wide-dhcp6c + dnsmasq 获取 slaac 地址和 ra 广播,路由以及内网机器外网 ipv6 都正常获取。

    docker 配置:
    cat /etc/docker/daemon.json
    {
    "data-root":"/data/docker",
    "bip": "10.20.0.1/16",
    "ipv6": true,
    "fixed-cidr-v6": "fd00:5::/80",
    "ip6tables": true,
    "experimental": true
    }

    bridge network 方式的 container 通过 ipv6 nat 方式能访问 ipv6 外部网络



    macvlan 配置步骤:
    docker network create -d macvlan --subnet=192.168.0.0/24 --ip-range=192.168.0.192/26 --gateway=192.168.0.10 --ipv6 --subnet=fd00:8::/80 --gateway=fd00:8::1 -o macvlan_mode=bridge -o parent=eth1 macnet
    ip link add macvlan link eth1 type macvlan mode bridge
    ip addr add 192.168.0.10/24 dev macvlan
    ip -6 addr add fd00:8::1 dev macvlan
    ifconfig macvlan up
    ip route add 192.168.0.192/26 dev macvlan
    ip -6 route add fd00:8::/80 dev macvlan

    测试 container
    docker run -d --restart=always --net=macnet --ip=192.168.0.254 --name=mtool_vlan praqma/network-multitool


    container 内部 ip 地址:
    eth0 Link encap:Ethernet HWaddr 02:42:C0:A8:00:FE
    inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
    inet6 addr: fe80::42:c0ff:fea8:fe/64 Scope:Link
    inet6 addr: fd00:8::2/80 Scope:Global
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:65 errors:0 dropped:0 overruns:0 frame:0
    TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:17957 (17.5 KiB) TX bytes:2356 (2.3 KiB)


    具体问题如下:
    fd00:8::2 ping 的通 fd00:8::1
    fd00:8::2 ping 不通 host 里 macvlan 以外的其他 ipv6 网络
    内网 192.168.0.0/24 网段的能 ping 通 fd00:8::1 , ping 不通 fd00:8::2
    bridge 网络 fd00:5::/80 的 container 能 ping 通 fd00:8::2, 但反过来不行, 这点我是最不能理解的

    host 上面的内核设置, 路由,以及 iptables SNAT 规则都检查了,应该没问题,一来这台 host 一直跑主路由, 二来 bridge 模式的 container 能 nat ipv6 方式访问外网,macvlan 的 ipv6 我也是配置的 nat 方式, 两者应该没什么区别。
    第 1 条附言    2023-05-12 06:10:39 +08:00
    macvlan 的 container 能 ping 通 host 上面所有的 global ipv6 地址, 但就是出不去 host
    第 2 条附言    2023-05-12 10:25:43 +08:00
    最后发现是 docker 默认会把 FORARD 链的 policy 改为 DROP ,但是目前发现只改了 ipv6 ,没改 ipv4 ,不知道为什么
    3 条回复    2023-05-11 08:47:44 +08:00
    paranoiagu
        1
    paranoiagu  
       2023-05-11 08:25:34 +08:00 via Android
    容器直接获取 ipv6 公网 ip ,不要通过路由器 nat
    luckjoe680
        2
    luckjoe680  
       2023-05-11 08:30:11 +08:00
    docker ipv6 只能 host 吧?
    aries1998
        3
    aries1998  
    OP
       2023-05-11 08:47:44 +08:00
    @paranoiagu 试过直接 slaac 方式,container 能拿到 ipv6 ,但也访问不了外网,有点怀疑跟 nat 方式不通是一样原因。 另外直接拿外网 ip 又要搞防火墙,太麻烦,还是得用 nat 方式。

    @luckjoe680 好像没这种说法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2616 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:51 PVG 20:51 LAX 05:51 JFK 08:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86