2017-07-25 38 views

回答

1

host-gw在主機上添加路由表項,以便主機知道如何對容器網絡數據包進行通信。

這適用於L2,因爲它只涉及hosts,switchescontainersswitches不關心IP和路由,hosts知道containers存在,以及如何路由到它們,containers只是發送和接收數據。

如果hosts處於不同網絡,則引入L3,並涉及routersrouters不知道containers存在,並且任何容器數據包將被丟棄,使通信不可能。

當然,您可以在routers上添加路由表條目,但這是失控的flannel

0

host-gw在每個主機上添加路由表條目。並且條目如下:

Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
0.0.0.0   10.110.110.1 0.0.0.0   UG 100 0  0 eth0 
10.100.14.0  10.110.110.21 255.255.255.0 UG 0  0  0 eth0 
10.100.38.0  0.0.0.0   255.255.255.0 U  0  0  0 docker0 
10.110.110.0 0.0.0.0   255.255.255.0 U  100 0  0 eth0 
169.254.169.254 10.110.110.1 255.255.255.255 UGH 100 0  0 eth0 

最重要的項目是網關(10.110.110.21)的值。路由表將目標MAC地址更改爲直接連接到10.110.110.22(當前節點)的L2節點(10.110.110.21)的MAC地址。

如果不是L2連接,則數據包不能傳送到節點(下一跳)

相關問題