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

1569549056206

主機172.22.108.12

1569549121848

主機172.22.108.11

1569549137831

3、IPIP剖析

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)

1569484191515

2、物理網卡報文詳情

本機10.100.106.15上抓包,添加過濾信息:ip.addr == 172.32.245.151

tcpdump -i em1 host 172.22.108.12 -w 106.15.pcap

1569485020433

對端172.22.108.12上抓包

添加過濾信息:ip.addr == 172.32.245.151,通過以下抓包可以發現,由於使用了ipip模式,最外一層封裝了物理網卡的信息。

1569485247501

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

為經作者同意,禁止轉載,寫作不易


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM