后浪笔记一零二四

验证k8s集群中的vxlan

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$ ip link show type vxlan
$ ip route
$ # "目的VTEP设备"的MAC地址是什么?
$ # flanneld会在每台节点启动时,把它的VTEP设备对应的ARP记录,直接下放到其他每台宿主机上
$ ip neigh show dev flannel.1
10.244.1.0 lladdr f6:c8:24:75:f1:80 PREMANENT
10.244.2.0 lladdr 3a:57:f1:3e:66:13 PREMANENT
$ 
$ # 现在内部数据帧的mac和ip地址都有了,那外部数据帧的ip地址呢?(ip地址知道了,mac地址也就知道了)
$ # flanneld会维护flannel.1这个"网桥"的FDB数据库
$ bridge fdb show flannel.1 | grep -E "f6:c8:24:75:f1:80|3a:57:f1:3e:66:13"
f6:c8:24:75:f1:80 dev  flannel.1  dst 10.0.2.41 self permanent
3a:57:f1:3e:66:13 dev  flannel.1  dst 10.0.2.44 self permanent

$ # 还有一个问题,如果节点中有多个vxlan设备,如何区分呢?
$ # 这个时候,会在内部数据帧的前面添加一个VXLAN头,这个头中含有一个VNI字段
$ # flannel.1中的"1"就是VNI的值

使用vxlan实现两个容器的跨主机通信(另一端宿主机的vxlan设备的mac地址,依赖于"L3 MISS"事件和ARP学习)

1
2
3
4
5
6
7
8
9
# 在vm1
ip link add vxlan_docker type vxlan id 200 remote 172.31.0.107(节点2的ip) dstport 4789 dev eth0
ip link set vxlan_docker up
ip link set vxlan_docker master docker0

# 在vm2
ip link add vxlan_docker type vxlan id 200 remote 172.31.0.106(节点1的ip) dstport 4789 dev eth0
ip link set vxlan_docker up
ip link set vxlan_docker master docker0

网络图:

            10.168.0.2/24   <--------------------------------->   10.168.0.3/24
                [eth0]                                                [eth0]
                   |                                                     |
                   |                                                     |
          VTEP  [flannel.1]  10.244.0.0/32            10.244.1.0/32 [flannel.1]  VTEP 
{InnerEthernet}    |                                                     |       {InnerEthernet}
{Header       } [ cni0    ]  10.244.0.1/24            10.244.1.1/24 [ cni0    ]  {Header       }
+-------------+    |                                                     |       +-------------+
{Inner IP     }    +----------------+                     +--------------+       {Inner IP     }
{Header       }    |                |                     |              |       {Header       }
+-------------+  {container-1} {container-...} {container-...}  {container-2}    +-------------+
{     ...     }  10.244.0.2                                     10.244.1.3       {     ...     }

本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image