calico的ipip与bgp的模式分析

calico的ipip与bgp的模式分析,第1张

calico的ipip与bgp的模式分析 1、前言

BGP工作模式:

bgp工作模式和flannel的host-gw模式几乎一样;

bird是bgd的客户端,与集群中其它节点的bird进行通信,以便于交换各自的路由信息;

随着节点数量N的增加,这些路由规则将会以指数级的规模快速增长,给集群本身网络带来巨大压力,官方建议小于100个节点;

限制:和flannel的host-gw限制一样,要求物理机在二层是连能的,不能跨网段

Route Reflector模式:

在更大规模的集群中,需要通过Route Reflector模式专门创建一个或者几个专门的节点,负责跟所有的BGP客户端建立连接,从而学全全局的路由规则;

而其它节点,只需要跟这几个专门的节点交换路由信息,就可以获得整整个集群的路由信息

IPIP模式:

场景:用在跨网段通信的情况下,bgp模式在跨网段的场景将不能工作;

tunl0:创建的虚拟网卡设备,此时的作用就和flannel的VxLAN工作模式类似(此处的tunl0不是flannel的UDP模式中的tun0)

2、服务器信息 1、ip及mac信息 server ip mac gw_mac 172.22.108.11 172.22.108.11 b8:ca:3a:f2:74:fb 38:ad:8e:59:02:e7 172.22.108.12 172.22.108.12 08:94:ef:7b:47:a7 38:ad:8e:59:02:e7 10.100.106.15 10.100.106.15 b8:2a:72:ce:b0:75 00:5e:ed:ff:00:01 172.22.108.11 172.32.31.151 ae:a3:86:58:6c:59 172.22.108.12 172.32.135.30 f2:bc:d7:00:3c:be 10.100.106.15 172.32.245.151 f6:a\b:e3:0f:ad:12 2、路由条目 主机10.100.106.15

主机172.22.108.12

主机172.22.108.11

3、IPIP剖析

1、虚拟tunl0网卡报文详情

在10.100.106.15上ping 172.22.108.12的pod,同时下172.22.108.11上执行抓包命令( tcpdump -i tunl0 host 172.32.245.151 -w 108.12.pcap )(如果抓其物理网卡,是抓不到数据包的,因为,进行了二次封装,到达物理网卡的报文的ip是10.100.106.15)

2、物理网卡报文详情

本机10.100.106.15上抓包,添加过滤信息:ip.addr == 172.32.245.151

tcpdump -i em1 host 172.22.108.12 -w 106.15.pcap

对端172.22.108.12上抓包

添加过滤信息:ip.addr == 172.32.245.151,通过以下抓包可以发现,由于使用了ipip模式,最外一层封装了物理网卡的信息。


4、calico cross-subnet

ipip虽然实现了 calico 跨网段通信,但对于相同网段间的主机通信来说,IP-in-IP 就有点多余了,因为二者宿主机处于同一广播域,2层互通,直接走主机路由即可。


此时需要借助calico cross-subnet

$ calicoctl apply -f - << EOF
apiVersion: v1
kind: ipPool
metadata:
cidr: 192.168.0.0/16
spec:
ipip:
enabled: true
mode: cross-subnet
nat-outgoing: true
EOF
为经作者同意,禁止转载,写作不易

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/587955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存