共計(jì) 2226 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。
Neutron 網(wǎng)絡(luò)的基本概念是什么,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
今天我們學(xué)習(xí) Neutron 模塊幾個(gè)重要的概念。
Neutron 管理的網(wǎng)絡(luò)資源包括 Network,subnet 和 port,下面依次介紹。
network
network 是一個(gè)隔離的二層廣播域。Neutron 支持多種類(lèi)型的 network,包括 local, flat, VLAN, VxLAN 和 GRE。
local
local 網(wǎng)絡(luò)與其他網(wǎng)絡(luò)和節(jié)點(diǎn)隔離。local 網(wǎng)絡(luò)中的 instance 只能與位于同一節(jié)點(diǎn)上同一網(wǎng)絡(luò)的 instance 通信,local 網(wǎng)絡(luò)主要用于單機(jī)測(cè)試。
flat
flat 網(wǎng)絡(luò)是無(wú) vlan tagging 的網(wǎng)絡(luò)。flat 網(wǎng)絡(luò)中的 instance 能與位于同一網(wǎng)絡(luò)的 instance 通信,并且可以跨多個(gè)節(jié)點(diǎn)。
vlan
vlan 網(wǎng)絡(luò)是具有 802.1q tagging 的網(wǎng)絡(luò)。vlan 是一個(gè)二層的廣播域,同一 vlan 中的 instance 可以通信,不同 vlan 只能通過(guò) router 通信。vlan 網(wǎng)絡(luò)可以跨節(jié)點(diǎn),是應(yīng)用最廣泛的網(wǎng)絡(luò)類(lèi)型。
vxlan
vxlan 是基于隧道技術(shù)的 overlay 網(wǎng)絡(luò)。vxlan 網(wǎng)絡(luò)通過(guò)唯一的 segmentation ID(也叫 VNI)與其他 vxlan 網(wǎng)絡(luò)區(qū)分。vxlan 中數(shù)據(jù)包會(huì)通過(guò) VNI 封裝成 UPD 包進(jìn)行傳輸。因?yàn)槎拥陌ㄟ^(guò)封裝在三層傳輸,能夠克服 vlan 和物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的限制。
gre
gre 是與 vxlan 類(lèi)似的一種 overlay 網(wǎng)絡(luò)。主要區(qū)別在于使用 IP 包而非 UDP 進(jìn)行封裝。
不同 network 之間在二層上是隔離的。
以 vlan 網(wǎng)絡(luò)為例,network A 和 network B 會(huì)分配不同的 VLAN ID,這樣就保證了 network A 中的廣播包不會(huì)跑到 network B 中。當(dāng)然,這里的隔離是指二層上的隔離,借助路由器不同 network 是可能在三層上通信的。
network 必須屬于某個(gè) Project(Tenant 租戶(hù)),Project 中可以創(chuàng)建多個(gè) network。network 與 Project 之間是 1 對(duì)多 關(guān)系。
subnet
subnet 是一個(gè) IPv4 或者 IPv6 地址段。instance 的 IP 從 subnet 中分配。每個(gè) subnet 需要定義 IP 地址的范圍和掩碼。
subnet 與 network 是 1 對(duì)多 關(guān)系。一個(gè) subnet 只能屬于某個(gè) network;一個(gè) network 可以有多個(gè) subnet,這些 subnet 可以是不同的 IP 段,但不能重疊。下面的配置是有效的:
network A subnet A-a: 10.10.1.0/24 {start : 10.10.1.1 , end : 10.10.1.50}
subnet A-b: 10.10.2.0/24 {start : 10.10.2.1 , end : 10.10.2.50}
但下面的配置則無(wú)效,因?yàn)?subnet 有重疊
networkA subnet A-a: 10.10.1.0/24 {start : 10.10.1.1 , end : 10.10.1.50}
subnet A-b: 10.10.1.0/24 {start : 10.10.1.51 , end : 10.10.1.100}
這里不是判斷 IP 是否有重疊,而是 subnet 的 CIDR 重疊(都是 10.10.1.0/24)
但是,如果 subnet 在不同的 network 中,CIDR 和 IP 都是可以重疊的,比如
network A subnet A-a: 10.10.1.0/24 {start : 10.10.1.1 , end : 10.10.1.50}
networkB subnet B-a: 10.10.1.0/24 {start : 10.10.1.1 , end : 10.10.1.50}
這里大家不免會(huì)疑惑:如果上面的 IP 地址是可以重疊的,那么就可能存在具有相同 IP 的兩個(gè) instance,這樣會(huì)不會(huì)沖突?簡(jiǎn)單的回答是:不會(huì)!
具體原因:因?yàn)?Neutron 的 router 是通過(guò) Linux network namespace 實(shí)現(xiàn)的。network namespace 是一種網(wǎng)絡(luò)的隔離機(jī)制。通過(guò)它,每個(gè) router 有自己獨(dú)立的路由表。
上面的配置有兩種結(jié)果:
如果兩個(gè) subnet 是通過(guò)同一個(gè) router 路由,根據(jù) router 的配置,只有指定的一個(gè) subnet 可被路由。
如果上面的兩個(gè) subnet 是通過(guò)不同 router 路由,因?yàn)?router 的路由表是獨(dú)立的,所以?xún)蓚€(gè) subnet 都可以被路由。
這里只是先簡(jiǎn)單做個(gè)說(shuō)明,我們會(huì)在后面三層路由的章節(jié)詳細(xì)分析這種場(chǎng)景。
port
port 可以看做虛擬交換機(jī)上的一個(gè)端口。port 上定義了 MAC 地址和 IP 地址,當(dāng) instance 的虛擬網(wǎng)卡 VIF(Virtual Interface)綁定到 port 時(shí),port 會(huì)將 MAC 和 IP 分配給 VIF。
port 與 subnet 是 1 對(duì)多 關(guān)系。一個(gè) port 必須屬于某個(gè) subnet;一個(gè) subnet 可以有多個(gè) port。
下面總結(jié)了 Project,Network,Subnet,Port 和 VIF 之間關(guān)系。
Project 1 : m Network 1 : m Subnet 1 : m Port 1 : 1 VIF m : 1 Instance
關(guān)于 Neutron 網(wǎng)絡(luò)的基本概念是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注丸趣 TV 行業(yè)資訊頻道了解更多相關(guān)知識(shí)。