主页 > IT业界  > 

容器网络(三)-calico网络IPIP模式

容器网络(三)-calico网络IPIP模式
一、前置知识

calico的IPIP模式使用到了tun设备,先来了解下什么是tun设备,它的作用是什么,以及使用到tun设备的IPIP隧道是如何工作的。

1.1 tun设备

tun是网络层的虚拟网络设备,可以收发第三层数据报文包,如IP封包,因此常用于一些点对点IP隧道,例如OpenVPN,IPSec等。

1.2 IPIP隧道

IPIP隧道其实就是在原始报文的基础上再封装成一个 IPv4 报文,报文使用的是IP协议的格式做的封装。

网络拓扑和报文如上图所示。

二、工作原理

要了解容器环境下calico IPIP网络的工作方式,我们先查看容器及宿主机上的网卡设备及路由信息。

容器内部

容器1:

容器2:

宿主机上

node1:

node2:

所以数据包从容器1-容器2的路径为:

node1: eth0(容器1)——node1上的veth pair对——tunl0(封装外层包)—— ens33

node2:ens33——calib4b2876787c——eth0(容器2)

还有一个需要注意的点是容器内部的默认网关配置是169.254.1.1,并且需要打开proxy_arp,为什么这么配置,可以参考如下连接:

Calico网络中的ProxyARP | C0reFast记事本

三、BGP模式和IPIP模式比较

让我们改下配置,停用tun设备。

查看宿主机路由表:

node1:

node2:

BGP模式和IPIP模式的区别就是少经过了一个tun设备,换句话说就是少封装了一层外部ip。

四、思考

calico ipipMode有一个配置选项叫crosssubnet,作用是同网段的使用bpg,跨网段的使用IPIP模式。为什么会有这个模式?查阅网上资料,大部分都会说calico下bgp模式不能跨网段,那让我们思考下:

为什么普通的bgp模式不能跨网段为什么ipip模式可以跨网段

回答这两个问题前,我们先回顾下这两种模式的报文结构。

再回头去看下node1和node2在这两种模式下的路由表,如果在BGP模式下node跨网段访问,会经过默认网关,所以是否能访问到对端完全依赖于后面的路由设置了。

所以一般说的的BGP模式不能跨网段也不完全正确。

五、参考 一文明白calico的IPIP网络模式-腾讯云开发者社区-腾讯云揭秘 IPIP 隧道16 张图硬核讲解 Kubernetes 网络
标签:

容器网络(三)-calico网络IPIP模式由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“容器网络(三)-calico网络IPIP模式