docker macvlan内部/外部没有流量

问题描述

我尝试遵循此guide来创建绑定到物理网络的容器。

docker network create -d macvlan \
  --subnet=192.168.20.0/24 \      
  --gateway=192.168.20.1 \         
  -o parent=wlp2s0.10 \
  my-8021q-macvlan-net

wlp2s0(3)是我的wifi适配器(我设置了混杂模式),(9)是docker创建的接口:

3: wlp2s0: <broADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether f8:59:71:a8:dc:1b brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.203/24 brd 192.168.20.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 38479sec preferred_lft 38479sec
    inet6 fdf7:22bd:f37a::444/128 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fdf7:22bd:f37a:0:289c:3eb2:c675:7b75/64 scope global noprefixroute 
       valid_lft forever preferred_lft forever
    inet6 fe80::5b1b:d3fe:259d:44b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
9: wlp2s0.10@wlp2s0: <broADCAST,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether f8:59:71:a8:dc:1b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fa59:71ff:fea8:dc1b/64 scope link 
       valid_lft forever preferred_lft forever

现在我已经创建了一个容器

docker run --rm -it \
  --network my-8021q-macvlan-net \
  --name alpine \
  alpine:latest \
  sh

在容器内,显示以下界面:

ip addr
1: lo: <LOOPBACK,LOWER_UP> mtu 65536 qdisc noqueue state UNKNowN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
13: eth0@if9: <broADCAST,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:c0:a8:14:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.2/24 brd 192.168.20.255 scope global eth0
       valid_lft forever preferred_lft forever

我想知道容器在哪里获得其IP,因为网络路由器上没有显示DHCP租约。

我尝试了一个简单的ping google.com,它导致一个ping: bad address 'google.com' 因此,我用Wireshark捕获了接口(9)上的流量。

whireshark capture

我现在没主意了...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)