k8s朋友圈(六)flannel

Flannel是cereos开源的CNI网络插件,下图flannel官网提供的一个数据包经过封包、传输以及拆包的示意图,从这个图片里面里面可以看出两台机器的docker0分别处于不同的段:10.1.20.1/24 和 10.1.15.1/24 ,如果从Web App Frontend1 Pod(10.1.15.2)去连接另一台主机上的Backend Service2 Pod(10.1.20.3),网络包从宿主机192.168.0.100发往192.168.0.200,内层容器的数据包被封装到宿主机的UDP里面,并且在外层包装了宿主机的IP和mac地址。这就是一个经典的overlay网络,因为容器的IP是一个内部IP,无法从跨宿主机通信,所以容器的网络互通,需要承载到宿主机的网络之上。

k8s朋友圈(六)flannel

Flannel的支持多种网络模式,常用用都是VXLAN、UDP、hostgw、ipip以及gce和阿里云等,VXLAN和UDP的区别是VXLAN是内核封包,而UDP是flanneld用户态程序封包,所以UDP的方式性能会稍差;hostgw模式是一种主机网关模式,容器到另外一个主机上容器的网关设置成所在主机的网卡地址,这个和calico非常相似,只不过calico是通过BGP声明,而hostgw是通过中心的Etcd分发,所以hostgw是直连模式,不需要通过overlay封包和拆包,性能比较高,但hostgw模式最大的缺点是必须是在一个二层网络中,毕竟下一跳的路由需要在邻居表中,否则无法通行。

下面以vxlan 举例介绍一下,flannel 在vxlan模式下的通信原理。首先网络包从容器发出后,通过veth 连接到 docker0 网桥。

那么怎么知道哪些流量需要被flannel 接管呢? 这里通过第一个关键点,路由选择

# ip route  show dev flannel.1
10.254.50.0/24 via 10.254.50.0 onlink 
10.254.60.0/24 via 10.254.60.0 onlink

从而将flannel 管理的网段的流量转发到 flannel.1 网卡处理。

flannel.1这个虚拟网络设备将会对数据封包,但下面一个问题又来了,这个网关的mac地址是多少呢?因为这个网关是通过onlink设置的,flannel会下发这个mac地址,查看一下arp表:

# ip neig show dev flannel.1
10.254.50.0 lladdr ba:10:0e:7b:74:89 PERMANENT
10.254.60.0 lladdr 92:f3:c8:b2:6e:f0 PERMANENT

可以看到这个网关对应的mac地址,并且这些地址都是PERMANENT持久有效的,这样内层的数据包就封装好了。

还剩最后一个问题,外出的数据包的目的IP是多少呢?换句话说,这个封装后的数据包应该发往哪一台机器呢?难不成每个数据包都广播。VXLAN默认实现第一次确实是通过广播的方式,但flannel再次采用一种hack方式直接下发了转发表FDB。

# bridge fdb show dev flannel.1
92:f3:c8:b2:6e:f0 dst 10.100.139.246 self permanent
ba:10:0e:7b:74:89 dst 10.100.139.247 self permanent

这样对应mac地址转发目标IP便可以获取到了。这里还有个地方需要注意,无论是arp表还是FDB表都是permanent,它表明写记录是手动维护的,传统的arp获取邻居的方式是通过广播获取,如果收到对端的arp相应则会标记对端为reachable,在超过reachable设定时间后,如果发现对端失效会标记为stale,之后会转入的delay以及probe进入探测的状态,如果探测失败会标记为Failed状态。之所以介绍arp的基础内容,是因为老版本的flannel并非使用我上面的方式,而是采用一种临时的arp方案,此时下发的arp表示reachable状态,这就意味着,如果在flannel宕机超过reachable超时时间的话,那么这台机器上面的容器的网络将会中断。

展开阅读全文

页面更新:2024-03-01

标签:封包   宿主   网关   路由   容器   网卡   朋友圈   标记   邻居   机器   状态   主机   模式   方式   地址   科技   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top