docker網(wǎng)絡(luò)驅(qū)動器之-host和none

在討論其他網(wǎng)絡(luò)驅(qū)動之前皮获,我們先了解一下docker網(wǎng)絡(luò)底層用到的技術(shù)。

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

??? docker網(wǎng)絡(luò)底層采用Linux內(nèi)核的網(wǎng)絡(luò)棧蝴乔。為了實(shí)現(xiàn)CNM網(wǎng)絡(luò)驅(qū)動挣棕,dockers用到了Linux bridge、network namespace固惯、veth pairs和iptables梆造。

The Linux Bridge

??? Linux bridge是一個(gè)2層的設(shè)備,是物理交換機(jī)在Linux內(nèi)核的虛擬實(shí)現(xiàn)葬毫。它基于MAC地址轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量镇辉。

??? Linux bridge在docker網(wǎng)絡(luò)驅(qū)動中被廣泛應(yīng)用,但是和docker 網(wǎng)絡(luò)驅(qū)動中的bridge不同贴捡,后者是在Linux bridge更高一層的實(shí)現(xiàn)忽肛。

Network Namespaces

??? network namespace?在內(nèi)核中擁有一個(gè)單獨(dú)的網(wǎng)絡(luò)棧,它有自己的接口烂斋、路由和防火墻規(guī)則屹逛。

??? 它可用于隔離容器container。除非通過docker network做了相關(guān)配置汛骂,否則Network namespace可以確保在同一主機(jī)的兩個(gè)容器間無法相互通信罕模,即使和主機(jī)本身也無法通信。一種典型情況是CNM網(wǎng)絡(luò)驅(qū)動為每一個(gè)container使用不同的namespace香缺。另外手销,容器container也可以共享同一個(gè)network namespace,哪怕是主機(jī)network namespace的一部分

Virtual Ethernet Devices

??? Veth(virtual ethernet device)是Linux網(wǎng)絡(luò)接口图张,它用于連接兩個(gè)network namespace锋拖。當(dāng)創(chuàng)建docker網(wǎng)絡(luò)時(shí)诈悍,Docker網(wǎng)絡(luò)驅(qū)動使用veth提供namespace間的顯式連接。在container被附加到一個(gè)docker網(wǎng)絡(luò)后兽埃,veth的一端被放置入container內(nèi)侥钳,另一端被附加到dockers網(wǎng)絡(luò)。

iptables

??? iptables?作為Linux內(nèi)核的一部分用于本地的包過濾柄错,類似工作于第三和第四層的防火墻舷夺。它在docker的本地網(wǎng)絡(luò)驅(qū)動的被廣泛使用。


Host Network Driver

Host網(wǎng)絡(luò)驅(qū)動 和Linux主機(jī)的網(wǎng)絡(luò)配置一樣售貌。?--net=host?將關(guān)閉docker網(wǎng)絡(luò)给猾,并且container使用主機(jī)OS的網(wǎng)絡(luò)棧。如果使用其它網(wǎng)絡(luò)驅(qū)動颂跨,每個(gè)container將被置于自己的network namespace以實(shí)現(xiàn)彼此的網(wǎng)絡(luò)隔離敢伸。

使用host驅(qū)動,所有的container都處于同一個(gè)主機(jī)network namespace內(nèi)恒削,并且使用主機(jī)的網(wǎng)絡(luò)接口和IP協(xié)議棧池颈。在這種情況下,所有的container都可以在主機(jī)接口上相互通信钓丰。因?yàn)樗腥萜魇褂孟嗤闹鳈C(jī)接口躯砰,所有兩個(gè)container不能綁定到同一個(gè)TCP端口,這有可能會導(dǎo)致端口爭用携丁。

host network driver

示例:

主機(jī)網(wǎng)絡(luò)

?# ip a|grep enp2s0

2: enp2s0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

inet192.168.10.9/24 brd 192.168.10.255 scope global enp2s0


兩個(gè)container網(wǎng)絡(luò)

# docker run --name=C1--net=hostbusybox ip a|grep enp2s0

2: enp2s0: mtu 1500 qdisc pfifo_fast qlen 1000

??? inet 192.168.10.9/24brd 192.168.10.255 scope global enp2s0

# docker run --name=C2--net=hostbusybox ip a|grep enp2s0

2: enp2s0: mtu 1500 qdisc pfifo_fast qlen 1000

inet 192.168.10.9/24 brd 192.168.10.255 scopeglobal enp2s0


在本例中琢歇,當(dāng)container使用host網(wǎng)絡(luò)時(shí),主機(jī)梦鉴、C1和C2共用一個(gè)接口enp2s0 矿微。

使用host驅(qū)動,dockers不再管理容器container的網(wǎng)絡(luò)棧尚揣,比如端口映射或者路由規(guī)則。網(wǎng)絡(luò)流量直接從容器進(jìn)入主機(jī)接口掖举,這也使得host網(wǎng)絡(luò)成為最簡單和延遲最低的網(wǎng)絡(luò)驅(qū)動快骗。


None network driver

1.? None網(wǎng)絡(luò)驅(qū)動和host網(wǎng)絡(luò)驅(qū)動相似,Dockers engine不會在容器container內(nèi)部創(chuàng)建接口塔次、端口映射或者路由方篮。

2.? 和host 驅(qū)動不同的是none?驅(qū)動為每一個(gè)container創(chuàng)建了一個(gè)獨(dú)立的namespace。這保證了container網(wǎng)絡(luò)與其它c(diǎn)ontainer或者主機(jī)的隔離励负。

3.?? 使用--net=none創(chuàng)建的container和其它容器和主機(jī)完全隔離藕溅。

4.?? 容器內(nèi)部除了lookback接口外再也沒有其它接口。

# docker run --name=C3 --net=none busybox ip a?? ??

1: lo: mtu 65536 qdisc noqueue qlen1

??? link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

??? inet 127.0.0.1/8 scopehost lo

?????? valid_lft foreverpreferred_lft forever

5.? 使用--net=none?或者?--net=host?的容器無法連接到其它的dockers網(wǎng)絡(luò)继榆。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巾表,一起剝皮案震驚了整個(gè)濱河市汁掠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捷凄,死亡現(xiàn)場離奇詭異谅辣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颤难,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吃既,你說我怎么就攤上這事】缦福” “怎么了鹦倚?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扼鞋。 經(jīng)常有香客問我申鱼,道長,這世上最難降的妖魔是什么云头? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任捐友,我火速辦了婚禮,結(jié)果婚禮上溃槐,老公的妹妹穿的比我還像新娘匣砖。我一直安慰自己,他們只是感情好昏滴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布猴鲫。 她就那樣靜靜地躺著,像睡著了一般谣殊。 火紅的嫁衣襯著肌膚如雪拂共。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天姻几,我揣著相機(jī)與錄音宜狐,去河邊找鬼。 笑死蛇捌,一個(gè)胖子當(dāng)著我的面吹牛抚恒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播络拌,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俭驮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了春贸?” 一聲冷哼從身側(cè)響起混萝,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遗遵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后譬圣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓮恭,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年厘熟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屯蹦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绳姨,死狀恐怖登澜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情飘庄,我是刑警寧澤脑蠕,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站跪削,受9級特大地震影響谴仙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碾盐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一晃跺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧毫玖,春花似錦掀虎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阐滩,卻和暖如春二打,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掂榔。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工址儒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人衅疙。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像鸳慈,于是被迫代替她去往敵國和親饱溢。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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