共計(jì) 723 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
這篇文章給大家介紹 flannel 的連通與隔離是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
flannel 的連通和隔離特性。
flannel 網(wǎng)絡(luò)連通性
測(cè)試 bbox1 和 bbxo2 的連通性:
bbox1 能夠 ping 到位于不同 subnet 的 bbox2,通過(guò) traceroute 分析一下 bbox1 到 bbox2 的路徑。
bbox1 與 bbox2 不是一個(gè) subnet,數(shù)據(jù)包發(fā)送給默認(rèn)網(wǎng)關(guān) 10.2.40.1(docker0)。
根據(jù) host1 的路由表(下圖),數(shù)據(jù)包會(huì)發(fā)給 flannel.1。
flannel.1 將數(shù)據(jù)包封裝成 VxLAN,通過(guò) enp0s8 發(fā)送給 host2。
host2 收到包解封裝,發(fā)現(xiàn)數(shù)據(jù)包目的地址為 10.2.17.2,根據(jù)路由表(下圖)將數(shù)據(jù)包發(fā)送給 flannel.1,并通過(guò) docker0 到達(dá) bbox2。
另外,flannel 是沒有 DNS 服務(wù)的,容器無(wú)法通過(guò) hostname 通信。
flannel 網(wǎng)絡(luò)隔離
flannel 為每個(gè)主機(jī)分配了獨(dú)立的 subnet,但 flannel.1 將這些 subnet 連接起來(lái)了,相互之間可以路由。本質(zhì)上,flannel 將各主機(jī)上相互獨(dú)立的 docker0 容器網(wǎng)絡(luò)組成了一個(gè)互通的大網(wǎng)絡(luò),實(shí)現(xiàn)了容器跨主機(jī)通信。flannel 沒有提供隔離。
flannel 與外網(wǎng)連通性
因?yàn)?flannel 網(wǎng)絡(luò)利用的是默認(rèn)的 bridge 網(wǎng)絡(luò),所以容器與外網(wǎng)的連通方式與 bridge 網(wǎng)絡(luò)一樣,即:
容器通過(guò) docker0 NAT 訪問外網(wǎng)
通過(guò)主機(jī)端口映射,外網(wǎng)可以訪問容器
關(guān)于 flannel 的連通與隔離是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。