calico網(wǎng)絡(luò)

網(wǎng)絡(luò)基礎(chǔ)知識

計算機網(wǎng)絡(luò)分層

分別為: OSI七層參考模型闻镶,TCP/IP參考模型傍菇,五層參考模型

image.png

網(wǎng)關(guān)谍椅,網(wǎng)橋误堡,網(wǎng)卡

網(wǎng)橋:一種網(wǎng)絡(luò)設(shè)備,主要用于連接兩個或多個局域網(wǎng)(LAN)雏吭,通常工作在數(shù)據(jù)鏈路層锁施。它可以在兩個網(wǎng)絡(luò)之間中繼數(shù)據(jù)幀,確保數(shù)據(jù)可以在不同的網(wǎng)絡(luò)之間正確傳輸思恐。網(wǎng)橋的主要作用是在同類LAN之間連接沾谜,而網(wǎng)關(guān)則用于連接不同類型的網(wǎng)絡(luò)或協(xié)議

網(wǎng)卡:是計算機與網(wǎng)絡(luò)進行物理連接的接口設(shè)備,全稱為網(wǎng)絡(luò)接口卡胀莹。它集成了局域網(wǎng)功能基跑,有時也稱為LAN卡或網(wǎng)絡(luò)適配器。每個網(wǎng)卡都有一個唯一的MAC地址描焰,用于在局域網(wǎng)內(nèi)尋址媳否。網(wǎng)卡將數(shù)字信號轉(zhuǎn)換為電信號,并通過網(wǎng)線發(fā)送出去荆秦,屬于OSI模型的第一和第二層

網(wǎng)關(guān):一種更為復(fù)雜的網(wǎng)絡(luò)設(shè)備篱竭,用于實現(xiàn)不同局域網(wǎng)(LAN)的連接。與網(wǎng)橋不同步绸,網(wǎng)關(guān)建在應(yīng)用層掺逼,并且可以處理不同網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,使得使用不同通信協(xié)議瓤介、數(shù)據(jù)格式或語言的系統(tǒng)可以相互通信吕喘。網(wǎng)關(guān)的主要優(yōu)勢在于能夠?qū)⒕哂胁幌嗳莸牡刂犯袷降木W(wǎng)絡(luò)連接起來,實現(xiàn)不同網(wǎng)絡(luò)之間的通

網(wǎng)關(guān)是郵電局,所有的信息必須通過這里的打包刑桑、封箱氯质、尋址败玉,才能發(fā)出去與收進來奋单;網(wǎng)卡是設(shè)備,也就是郵電局郵筒守伸,你家的信箱琢锋;而網(wǎng)橋是郵遞員辕漂,但他只負責一個鎮(zhèn)里面(局域網(wǎng))不負責廣域網(wǎng)

linux的ipip隧道技術(shù):

https://blog.csdn.net/sanhewuyang/article/details/136491896

calico的主要組件

1.Felix:

功能:

分布式鍵值存儲,主要負責網(wǎng)絡(luò)元數(shù)據(jù)一致性吴超,確保Calico網(wǎng)絡(luò)狀態(tài)的準確性钮热,可以與kubernetes共用

作用:

Felix會監(jiān)聽etcd中心的存儲,從它獲取事件烛芬,比如說用戶在這臺機器上加了一個IP,或者是創(chuàng)建了一個容器等。用戶創(chuàng)建pod后赘娄,F(xiàn)elix負責將其網(wǎng)卡仆潮、IP、MAC都設(shè)置好遣臼,然后在內(nèi)核的路由表里面寫一條性置,注明這個IP應(yīng)該到這張網(wǎng)卡。同樣如果用戶制定了隔離策略揍堰,F(xiàn)elix同樣會將該策略創(chuàng)建到ACL中鹏浅,以實現(xiàn)隔離。

2.etcd:

功能:

分布式鍵值存儲屏歹,主要負責網(wǎng)絡(luò)元數(shù)據(jù)一致性隐砸,確保Calico網(wǎng)絡(luò)狀態(tài)的準確性,可以與kubernetes共用

3.BGP Client(BIRD):

功能:

calico 為每一個主機部署一個BGP Client蝙眶,使用BIRD實現(xiàn)季希,BIRD是一個獨特的持續(xù)發(fā)展項目,實現(xiàn)了眾多動態(tài)路由協(xié)議幽纷,比如BGP式塌,OSPF,RIP等,caloco的角色是監(jiān)聽host上有Felix注入的路由信息,然后通過BGP廣播告訴剩余的主機節(jié)點友浸,從而實現(xiàn)網(wǎng)絡(luò)互通

作用:

BIRD是一個標準的路由程序峰尝,它會從內(nèi)核里面獲取哪一些IP的路由發(fā)生了變化,然后通過標準BGP的路由協(xié)議擴散到整個其他的宿主機上收恢,讓外界都知道這個IP在這里武学,你們路由的時候得到這里來。

4.BGP Route Reflector:

功能:

在大型網(wǎng)絡(luò)規(guī)模中派诬,如果僅僅使用 BGP client 形成 mesh 全網(wǎng)互聯(lián)的方案就會導(dǎo)致規(guī)模限制劳淆,因為所有節(jié)點之間倆倆互聯(lián),需要 N^2 個連接默赂,為了解決這個規(guī)模問題沛鸵,可以采用 BGP 的 Router Reflector 的方法,使所有 BGP Client 僅與特定 RR 節(jié)點互聯(lián)并做路由同步缆八,從而大大減少連接數(shù)曲掰。

Calico實現(xiàn)的node之間的倆種網(wǎng)絡(luò)

ipip模式:

采用linux的ipip隧道技術(shù)實現(xiàn)數(shù)據(jù)包的封裝和轉(zhuǎn)發(fā)

image.png

具體流程

1、數(shù)據(jù)包從 Pod1 出到達Veth Pair另一端(宿主機上奈辰,以cali前綴開頭)栏妖。

2、進入IP隧道設(shè)備(tunl0)奖恰,由Linux內(nèi)核IPIP驅(qū)動封裝吊趾,把源容器ip換成源宿主機ip宛裕,目的容器ip換成目的主機ip,這樣就封裝成 Node1 到 Node2 的數(shù)據(jù)包论泛。

3揩尸、數(shù)據(jù)包經(jīng)過路由器三層轉(zhuǎn)發(fā)到 Node2。

4屁奏、Node2 收到數(shù)據(jù)包后岩榆,網(wǎng)絡(luò)協(xié)議棧會使用IPIP驅(qū)動進行解包,從中拿到原始IP包坟瓢。

5勇边、然后根據(jù)路由規(guī)則,將數(shù)據(jù)包轉(zhuǎn)發(fā)給cali設(shè)備折联,從而到達 Pod2粒褒。

calico模式的啟用

CALICO_IPV4POOL_IPIP來實現(xiàn)ipip功能的開關(guān):默認是Always,表示開啟崭庸;Off表示關(guān)閉ipip怀浆。

# kubectl get daemonsets. calico-node -n kube-system -o yaml | grep -iA 1 ipip        -                 
                - name: CALICO_IPV4POOL_IPIP          
                  value: "Always"

BGP模式

BGP網(wǎng)絡(luò)相比較IPIP網(wǎng)絡(luò),最大的不同之處就是沒有了隧道設(shè)備 tunl0怕享。 前面介紹過IPIP網(wǎng)絡(luò)pod之間的流量發(fā)送tunl0执赡,然后tunl0發(fā)送對端設(shè)備。BGP網(wǎng)絡(luò)中函筋,pod之間的流量直接從網(wǎng)卡發(fā)送目的地沙合,減少了tunl0這個環(huán)節(jié)。

image.png

具體流程

1.數(shù)據(jù)包也是先從veth設(shè)備對另一口發(fā)出跌帐,到達宿主機上的cali開頭的虛擬網(wǎng)卡上(當創(chuàng)建一個pod時幫你先起一個infra containers的容器首懈,調(diào)用calico的二進制幫你去配置容器的網(wǎng)絡(luò))

2.宿主機根據(jù)路由表決定這個數(shù)據(jù)包到底發(fā)送到哪里去,可以從ip route看到路由表信息谨敛,這里顯示是目的cni分配的子網(wǎng)絡(luò)和目的宿主機的網(wǎng)絡(luò)究履,

3.當進行跨主機通信的時候之間轉(zhuǎn)發(fā)到下一跳地址走宿主機的eth0網(wǎng)卡出去

4.一個宿主機的網(wǎng)卡中,在路由表中找到對應(yīng)的虛擬網(wǎng)卡cali地址

參考鏈接

https://www.cnblogs.com/goldsunshine/p/10701242.html

https://blog.csdn.net/m0_62609939/article/details/131787738

https://cloud.tencent.com/developer/article/1638845

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脸狸,一起剝皮案震驚了整個濱河市最仑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌炊甲,老刑警劉巖泥彤,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卿啡,居然都是意外死亡吟吝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門颈娜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剑逃,“玉大人浙宜,你說我怎么就攤上這事】还螅” “怎么了梆奈?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長称开。 經(jīng)常有香客問我,道長乓梨,這世上最難降的妖魔是什么鳖轰? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮扶镀,結(jié)果婚禮上蕴侣,老公的妹妹穿的比我還像新娘。我一直安慰自己臭觉,他們只是感情好昆雀,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蝠筑,像睡著了一般狞膘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上什乙,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天挽封,我揣著相機與錄音,去河邊找鬼臣镣。 笑死辅愿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的忆某。 我是一名探鬼主播点待,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弃舒!你這毒婦竟也來了癞埠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤棒坏,失蹤者是張志新(化名)和其女友劉穎燕差,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坝冕,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡徒探,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喂窟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片测暗。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡央串,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碗啄,到底是詐尸還是另有隱情质和,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布稚字,位于F島的核電站饲宿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胆描。R本人自食惡果不足惜瘫想,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昌讲。 院中可真熱鬧国夜,春花似錦、人聲如沸短绸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醋闭。三九已至窄驹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間目尖,已是汗流浹背馒吴。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑟曲,地道東北人饮戳。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像洞拨,于是被迫代替她去往敵國和親扯罐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容