2017-02-26 63 views
1

我試圖使用macvlan驅動程序配置Docker網絡,但我的容器無法訪問網關或WAN。Docker容器無法使用macvlan網絡驅動程序訪問或ping WAN

網絡設置像這樣:

docker network create -d macvlan --subnet=10.1.1.0/24 --ip-range=10.1.1.160/28 --gateway=10.1.1.1 -o parent=ens160 pub_net 

的主機操作系統Ubuntu的是16.04,這本身就是在ESXi上運行(很多層的,我知道)虛擬機。 ens160接口連接到ESXi vSwitch(「LAN」)。網關(10.1.1.1)是同一臺機器上的pfSense VM,並連接到同一個「LAN」vSwitch。 pfSense VM也連接到物理連接到上游網絡的「WAN」vSwitch。 Ubuntu主機操作系統具有IP和完整的WAN連接,但Docker容器沒有。

關於Ubuntu的主機的一些細節:

host$ ifconfig 
docker0 Link encap:Ethernet HWaddr aa:bb:cc:00:e2:77 
      inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0 
      UP BROADCAST MULTICAST MTU:1500 Metric:1 
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

ens160 Link encap:Ethernet HWaddr aa:bb:cc:9b:be:f2 
      inet addr:10.1.1.22 Bcast:10.1.1.255 Mask:255.255.255.0 
      inet6 addr: fe80::c7b7:d64c/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:64642 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:1881 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:19190911 (19.1 MB) TX bytes:169266 (169.2 KB) 

ens192 Link encap:Ethernet HWaddr aa:bb:cc:9b:be:fc 
      inet addr:10.2.2.22 Bcast:10.2.2.255 Mask:255.255.255.0 
      inet6 addr: fe80::bb15:267d/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:294 errors:0 dropped:10 overruns:0 frame:0 
      TX packets:515 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:57996 (57.9 KB) TX bytes:63258 (63.2 KB) 

lo  Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:2637 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:2637 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:204727 (204.7 KB) TX bytes:204727 (204.7 KB) 


host$ route -n 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
0.0.0.0   10.2.2.1  0.0.0.0   UG 100 0  0 ens192 
0.0.0.0   10.1.1.1  0.0.0.0   UG 101 0  0 ens160 
10.1.1.0  0.0.0.0   255.255.255.0 U  100 0  0 ens160 
10.2.2.0  0.0.0.0   255.255.255.0 U  100 0  0 ens192 
169.254.0.0  0.0.0.0   255.255.0.0  U  1000 0  0 ens192 
172.17.0.0  0.0.0.0   255.255.0.0  U  0  0  0 docker0 

切換到多克爾容器,細節有:

host$ sudo docker run --net=pub_net -it alpine /bin/sh 

container$ ifconfig 
eth0  Link encap:Ethernet HWaddr AA:BB:CC:01:01:A0 
      inet addr:10.1.1.160 Bcast:0.0.0.0 Mask:255.255.255.0 
      inet6 addr: fe80::42:1a0/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:15 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0 
      RX bytes:1789 (1.7 KiB) TX bytes:634 (634.0 B) 

lo  Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:2 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:224 (224.0 B) TX bytes:224 (224.0 B) 

container$ route -n 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
0.0.0.0   10.1.1.1  0.0.0.0   UG 0  0  0 eth0 
10.1.1.0  0.0.0.0   255.255.255.0 U  0  0  0 eth0 

如前所述,如果我ping 10.1.1.1(或任何其他外部IP)從內容器我沒有得到任何迴應。如果我在同一臺主機上ping另一個Docker容器,我會得到響應。

我需要更改哪些容器才能到達WAN?

+0

我有同樣的問題:/ – invader7

回答

相關問題