Openstack Neutron網(wǎng)絡(luò)實(shí)驗-04

本文繼續(xù)介紹在將Openstack多網(wǎng)絡(luò)節(jié)點(diǎn)部署時的網(wǎng)絡(luò)拓?fù)洹?/p>

上一篇文章中在Opentack環(huán)境中創(chuàng)建了以下內(nèi)容:

  1. 租戶網(wǎng)絡(luò)test-net念搬,包含子網(wǎng):test-net-subnet乙埃,并啟用了dhcp。
  2. 外部網(wǎng)絡(luò)external-net虑灰,包含子網(wǎng):external-net-subnet。
  3. 虛機(jī)實(shí)例test-vm1和test-vm2痹兜,并接入網(wǎng)絡(luò)test-net穆咐。
  4. 路由器router01, 接入了兩個子網(wǎng)test-net-subnet和external-net-subnet。

1. 增加網(wǎng)絡(luò)節(jié)點(diǎn)

參考《使用vagrant和virtualbox搭建openstack集群》添加一個網(wǎng)絡(luò)節(jié)點(diǎn)。

增加網(wǎng)絡(luò)節(jié)點(diǎn)后对湃,3個節(jié)點(diǎn)的br-tun網(wǎng)橋拓?fù)淙缦拢?/p>

# ovs-vsctl show
...
    Bridge br-tun
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "vxlan-c0a83810"
            Interface "vxlan-c0a83810"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.15", out_key=flow, remote_ip="192.168.56.16"}
        Port "vxlan-c0a83811"
            Interface "vxlan-c0a83811"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.15", out_key=flow, remote_ip="192.168.56.17"}
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
...
# ovs-vsctl show
...
    Bridge br-tun
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "vxlan-c0a83811"
            Interface "vxlan-c0a83811"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.16", out_key=flow, remote_ip="192.168.56.17"}
        Port "vxlan-c0a8380f"
            Interface "vxlan-c0a8380f"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.16", out_key=flow, remote_ip="192.168.56.15"}
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
...
# ovs-vsctl show
...
    Bridge br-tun
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "vxlan-c0a8380f"
            Interface "vxlan-c0a8380f"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.17", out_key=flow, remote_ip="192.168.56.15"}
        Port "vxlan-c0a83810"
            Interface "vxlan-c0a83810"
                type: vxlan
                options: {df_default="true", in_key=flow, local_ip="192.168.56.17", out_key=flow, remote_ip="192.168.56.16"}
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
...

上述結(jié)果顯示崖叫,3個節(jié)點(diǎn)的VTEP兩兩間建立了vxlan隧道。

2. 增加租戶網(wǎng)絡(luò)

Step 1 按照之前的方法添加一個租戶網(wǎng)絡(luò)

參數(shù)如下:

  • Network Name:test-net2
  • Subnet Name:test-net2-subnet
  • Network Address:172.16.3.0/24
  • Gateway IP:172.16.3.1
  • Enable DHCP: true

可以預(yù)期拍柒,添加了這個租戶網(wǎng)絡(luò)后心傀,系統(tǒng)會創(chuàng)建一個dhcp agent,分布在兩個網(wǎng)絡(luò)節(jié)點(diǎn)上檢查一下拆讯,發(fā)現(xiàn)這個dhcp aent被創(chuàng)建在了新創(chuàng)建的網(wǎng)絡(luò)節(jié)點(diǎn)os-net1上脂男,并被分配了IP 172.16.3.2

[root@os-net1 ~]# ovs-vsctl show 
...
    Bridge br-int
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "tapc03e248f-c4"
            tag: 1
            Interface "tapc03e248f-c4"
                type: internal
        Port patch-tun
            Interface patch-tun
                type: patch
                options: {peer=patch-int}
        Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}
...
[root@os-net1 ~]# ip netns
qdhcp-641294ba-9d48-4181-85a4-6a86d4c8cb0d
[root@os-net1 ~]# ip netns exec qdhcp-641294ba-9d48-4181-85a4-6a86d4c8cb0d ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
9: tapc03e248f-c4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000
    link/ether fa:16:3e:76:86:13 brd ff:ff:ff:ff:ff:ff
    inet 172.16.3.2/24 brd 172.16.3.255 scope global tapc03e248f-c4
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe76:8613/64 scope link 
       valid_lft forever preferred_lft forever

Step 2:將test-vm2移到新網(wǎng)絡(luò)test-net2上來

在test-vm2實(shí)例上先detach原有網(wǎng)絡(luò)的interface,再attach新網(wǎng)絡(luò)的Interface往果,然后重啟實(shí)例使之生效疆液。

菜單路徑:Project -> Compute -> Instances -> "test-vm2" -> Detach/Attach Interface

接入新網(wǎng)絡(luò)后,test-vm2可以訪問同一網(wǎng)絡(luò)內(nèi)的dhcp服務(wù)172.16.3.2并獲取到IP陕贮,但是無法訪問test-net中的實(shí)例test-vm1堕油,也無法訪問外網(wǎng),這是因為test-net肮之,test-net2和external-net在二層網(wǎng)絡(luò)上都是隔離的掉缺,必須接入router才能將其連通。

Step 3:將新創(chuàng)建的網(wǎng)絡(luò)加入router01
菜單路徑:Project -> Network -> Routers -> "router01" -> Interfaces -> Add Interface

加入后戈擒,test-vm2就可以訪問test-vm1和外網(wǎng)了眶明。

$ ping 172.16.2.11
PING 172.16.2.11 (172.16.2.11): 56 data bytes
64 bytes from 172.16.2.11: seq=0 ttl=63 time=34.903 ms
?
--- 172.16.2.11 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 34.903/34.903/34.903 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=2 ttl=36 time=126.277 ms
?
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 1 packets received, 66% packet loss
round-trip min/avg/max = 126.277/126.277/126.277 ms

可以看到,在Underlay網(wǎng)絡(luò)之上筐高,建立了兩個Overlay的租戶網(wǎng)絡(luò)搜囱,連通了3臺宿主機(jī)上的5個通信實(shí)體。

  • test-vm1柑土,宿主機(jī):os-ctl1蜀肘。
  • test-vm2,宿主機(jī):os-cpu1稽屏。
  • test-net DHCP Agent扮宠,宿主機(jī):os-ctl1。
  • test-net2 DHCP Agent狐榔,宿主機(jī):os-net1坛增。
  • router01,宿主機(jī):os-ctl1薄腻。
  • 外部網(wǎng)關(guān) 10.0.2.2

兩個租戶網(wǎng)絡(luò)在二層通過VXLAN ID隔離收捣,VXLAN ID在創(chuàng)建網(wǎng)絡(luò)的時候自動分配,VXLAN ID在openstack中被抽象為Segment ID庵楷,因為除了VXLAN這種網(wǎng)絡(luò)隔離技術(shù)坏晦,openstack還支持VLAN和GRE等其他技術(shù)

我們創(chuàng)建的兩個網(wǎng)絡(luò)詳細(xì)信息如下:

test-net.PNG

test-net2.PNG

網(wǎng)絡(luò)拓?fù)淙缦拢?/p>

neutron-7.jpg

可以看到,因為上圖中包括了物理和虛擬的所有實(shí)體,變得非常復(fù)雜昆婿。幸運(yùn)的是球碉,到了現(xiàn)在我們已經(jīng)對虛擬網(wǎng)絡(luò)的底層物理實(shí)現(xiàn)機(jī)制非常了解了,如果把上圖簡化一下仓蛆,只將對普通租戶可見的虛擬網(wǎng)絡(luò)畫出來睁冬,其實(shí)是一個非常簡單的拓?fù)洹?/p>

neutron-8.jpg

3. 增加新的外部網(wǎng)絡(luò)

實(shí)際上,os-net1和os-ctl一樣看疙,也有用于訪問外部網(wǎng)絡(luò)的網(wǎng)口eth0和網(wǎng)橋br-ex豆拨,因此os-ctl1同樣可以為openstack提供外網(wǎng)訪問。但是由于extnet這個物理網(wǎng)絡(luò)的標(biāo)識已經(jīng)被os-ctl1使用能庆,我們可以另外定義一個物理網(wǎng)絡(luò)標(biāo)識施禾,如extnet2。

Step 1:修改neutron配置文件

# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini 

bridge_mappings=extnet:br-ex

改為:

bridge_mappings=extnet2:br-ex

重啟os-net1使配置生效搁胆。

Step 2:創(chuàng)建新的外部網(wǎng)絡(luò)external-net2

參數(shù)為:

  • Name:external-net2
  • Subnet Name: external-net2-subnet

其余參數(shù)和external-net一樣弥搞,因為VirtualBox為兩臺宿主機(jī)os-ctl1和os-net1提供的外網(wǎng)環(huán)境時一樣的。

Step 3:創(chuàng)建新的路由器router02

創(chuàng)建router02后渠旁,將external-net2設(shè)為其的網(wǎng)關(guān)攀例,將test-net2網(wǎng)絡(luò)接入router02。

這樣在整個集群內(nèi)就建起了兩個完全獨(dú)立的網(wǎng)絡(luò):

  • test-vm1, test-net, router01, external-net(extnet)
  • test-vm2, test-net2, router02, external-net2(extnet2)

兩個網(wǎng)絡(luò)互不相通顾腊,但是均可以訪問外網(wǎng)粤铭。

可以在兩個網(wǎng)絡(luò)節(jié)點(diǎn)上使用tcpdump命令監(jiān)控網(wǎng)絡(luò)流量,然后分別在test-vm1和test-vm2中運(yùn)行ping 8.8.8.8指令杂靶,可以看到test-vm1的數(shù)據(jù)包經(jīng)過了os-ctl1梆惯,而test-vm2的數(shù)據(jù)包經(jīng)過了os-net1。

虛擬網(wǎng)絡(luò)拓?fù)鋱D如下:

neutron-9.jpg

4. 網(wǎng)絡(luò)Agent的調(diào)度

網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行著提供各種網(wǎng)絡(luò)服務(wù)的Agent吗垮,目前涉及到的Agent包括:

  • DHCP agent垛吗,用于提供DHCP服務(wù)。
  • l3 agent(即router)抱既,用于提供三層的路由服務(wù)职烧。

這些agent在網(wǎng)絡(luò)節(jié)點(diǎn)上體現(xiàn)為一個專有命名空間中的進(jìn)程扁誓,當(dāng)集群中有多個網(wǎng)絡(luò)節(jié)點(diǎn)時防泵,openstack同樣會根據(jù)節(jié)點(diǎn)的負(fù)荷對這些進(jìn)程進(jìn)行調(diào)度,因此蝗敢,這些agent啟動在哪個節(jié)點(diǎn)上取決于他們被創(chuàng)建的時候所有網(wǎng)絡(luò)節(jié)點(diǎn)的狀態(tài)捷泞。

由于這些agent在每次集群啟動的時候都會重新創(chuàng)建,而在Vagrant實(shí)驗環(huán)境每臺宿主機(jī)將按Vagrantfile定義順序啟動寿谴,因此可以觀察到以下現(xiàn)象:

  • 集群啟動后所有agent都在os-ctl1運(yùn)行(因為此時os-net1還未啟動)锁右,
  • 啟動后新建的網(wǎng)絡(luò)(啟用dhcp就會創(chuàng)建新的dhcp agent)或者router,對應(yīng)的agent就很大可能會運(yùn)行在os-net1上(因為此時os-net1沒有運(yùn)行任何agent,負(fù)荷會比較低)咏瑟。
  • 調(diào)度結(jié)果還取決于宿主機(jī)的配置拂到,實(shí)驗中也觀察到了新創(chuàng)建的agent仍然運(yùn)行在os-ctl1上的情景(因為os-ctl1的配置比os-net1要高)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末码泞,一起剝皮案震驚了整個濱河市兄旬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌余寥,老刑警劉巖领铐,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宋舷,居然都是意外死亡绪撵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門祝蝠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來音诈,“玉大人,你說我怎么就攤上這事续膳「耐В” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵坟岔,是天一觀的道長谒兄。 經(jīng)常有香客問我,道長社付,這世上最難降的妖魔是什么承疲? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮鸥咖,結(jié)果婚禮上燕鸽,老公的妹妹穿的比我還像新娘。我一直安慰自己啼辣,他們只是感情好啊研,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸥拧,像睡著了一般党远。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上富弦,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天沟娱,我揣著相機(jī)與錄音,去河邊找鬼腕柜。 笑死济似,一個胖子當(dāng)著我的面吹牛矫废,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播砰蠢,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蓖扑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了台舱?” 一聲冷哼從身側(cè)響起赵誓,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柿赊,沒想到半個月后俩功,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碰声,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年诡蜓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰挑。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔓罚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞻颂,到底是詐尸還是另有隱情豺谈,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布贡这,位于F島的核電站茬末,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盖矫。R本人自食惡果不足惜丽惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辈双。 院中可真熱鬧责掏,春花似錦、人聲如沸湃望。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽证芭。三九已至瞳浦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間檩帐,已是汗流浹背术幔。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工另萤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湃密,地道東北人诅挑。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像泛源,于是被迫代替她去往敵國和親拔妥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

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