1. 程式人生 > >openstack使用linux bridge實現local network

openstack使用linux bridge實現local network

版本資訊

openstack版本 pike
控制節點主機 openstack-controller(ubuntu 16.04.5) 172.27.34.37
計算節點主機 openstack-computer(ubuntu 16.04.5) 172.27.34.38
映象 cirros-0.3.3-x86_64-disk.img


ubuntu安裝詳見:Ubuntu16.04.5 lvm方式安裝

openstack安裝詳見:Ubuntu16.04.5下DevStack方式搭建p版OpenStack


目標:cirros01和cirros02互通,cirros03與cirros01、cirros02不通,三個虛擬機器都與宿主機不通。網路拓撲如下:

圖片.png


一、製作映象

上傳介質cirros-0.3.3-x86_64-disk.img至/tmp目錄,製作映象:

[email protected]:~# su - stack
[email protected]:~$ source devstack/openrc admin admin
[email protected]openstack-controller:~$ glance image-create --name cirros-cli --file /tmp/cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --progress

圖片.png

檢視新建的image:

圖片.png

圖片.png



二、在ML2中配置local network
1.Neutron預設使用ML2作為core plugin,控制節點和計算節點分別編輯ML2的配置檔案/etc/neutron/plugins/ml2/ml2_conf.ini

tenant_network_types = local 
mechanism_drivers = linuxbridge
type_drivers = local,flat,vlan,gre,vxlan,geneve

2.重啟neutron服務

[email protected]
:~$ sudo systemctl restart [email protected]*


三、建立local network

1.建立local-network01

圖片.png


圖片.png

下一步,配置子網

圖片.png

子網為172.16.1.0/24

圖片.png

子網網段為172.16.1.2至172.16.1.50

圖片.png

2.建立localnetwork02

localnetwork01建立完成,同理建立localnetwork02,網段為172.16.1.51至172.16.1.100

圖片.png



四、建立instance

因為DHCP agent在控制節點上執行,local網路的流量只能侷限在本節點之內,故計算節點部署的instance傳送的DHCP請求無法到達控制節點,無法獲取到ip地址。

本文的instance都位於控制節點

1.檢視例項型別

[email protected]:~$ nova flavor-list

圖片.png

本文選擇m1.tiny


2.檢視主機名和zone

[email protected]:~$ nova service-list

圖片.png


3.指定控制節點啟動虛擬機器cirros01和cirros02,網路為localnetwork01

[email protected]:~$ nova boot --flavor m1.tiny --image cirros-cli  --availability-zone nova:openstack-controller --nic net-name=localnetwork01 cirros01

圖片.png

[email protected]:~$ nova boot --flavor m1.tiny --image cirros-cli  --availability-zone nova:openstack-controller --nic net-name=localnetwork01 cirros02

圖片.png


4.新建虛擬機器cirros03,網路為localnetwork02

[email protected]:~$ nova boot --flavor m1.tiny --image cirros-cli  --availability-zone nova:openstack-controller --nic net-name=localnetwork02 cirros03

圖片.png


5.控制檯檢視新建例項

圖片.png


6.檢視虛擬網絡卡

命令檢視tap

[email protected]:~# brctl show

圖片.png

控制面板檢視

圖片.png

圖片.png

可以看到Linux bridge01 brq91c5618d-18包含的虛擬網絡卡為tap08d6746a-10和tap4909a73b-da,Linux bridge02 brq7bd9076e-84包含的虛擬網絡卡為tap3efd4160-79。


五、測試

分別登陸cirros01、cirros02、cirros03,互ping和ping宿主機

1.cirros01

圖片.png

獲取的ip為172.16.1.19

圖片.png

ping cirros02通的,ping cirros03和宿主機不通。


2.cirros02

圖片.png

ip為172.16.1.12

圖片.png

ping cirros01通的,ping cirros03和宿主機不通。


3.cirros03

圖片.png

ping cirros01、cirros02和宿主機都不通。


測試結果符合預期。