Kolla中配置OpenStac虛機網路vxlan和vlan共存
配置OpenStack虛機網路vxlan和vlan共存
OpenStack Neutron網路服務定義了四種網路模式:
# tenant_network_type = local
# tenant_network_type = vlan
# tenant_network_type = gre
# tenant_network_type = vxlan
這裡,本文以vlan、vxlan為例,闡述如何實現OpenStack虛機網路(亦稱租戶網路、業務網路)同時支持vxlan和vlan兩種網路。
說明
環境:Openstack queens版本
部署工具:kolla-ansible
在kolla-ansible部署節點的/etc/kolla/globals.yml文件中,配置網卡。如下所示。
? eth0:openstack管理網路;vlan 51,交換機埠設置為Access模式
? eth1:虛機網路(vxlan);vlan 52,交換機埠設置為Access模式
? eth2:外部網路兼虛機網路(vlan);vlan網段53-54,交換機埠設置為trunk模式,主機不配置IP地址
1.在所有網路節點上,操作如下
修改文件/etc/kolla/neutron-server/ml2_conf.ini
修改文件/etc/kolla/neutron-openvswitch-agent/ml2_conf.ini
重啟neutron容器
docker restart neutron_server neutron_openvswitch_agent
在網路節點上,查看br-ex網橋設置情況,如下。
2.在所有計算節點上,執行操作如下
修改文件/etc/kolla/neutron-openvswitch-agent/ml2_conf.ini
創建一個br-ex外部網橋,並關聯到主機的eth2物理網卡上。這樣,當計算節點上的虛擬機使用vlan網路時,便可以直接通過qbr->br-int->br-ex->eth2連接到外網。(vlan網路的三層路由,建議使用物理路由器,這樣性能和穩定性更好,而不需要通過網路節點上的L3 vRouter虛擬路由)。
# docker exec -u root -it neutron_openvswitch_agent ovs-vsctl add-br br-ex
# docker exec -u root -it neutron_openvswitch_agent ovs-vsctl add-port br-ex eth2
最後,重啟相關容器
# docker restart neutron_openvswitch_agent
在計算節點上,查看br-ex網橋設置情況,如下。
創建一個vlan id為53的網段
# neutron net-create vlan-53 --shared --provider:physical_network physnet1 --provider:network_type vlan --provider:segmentation_id 53
# neutron subnet-create vlan-53 172.17.53.0/24 --name provider-53-subnet --gateway 172.17.53.1
查看創建的網路,如下。
最後,創建一個虛擬機並使用該vlan網路。
# nova boot --flavor 1Gmem_1cpu --image centos7 --nic net-id=5d9c4874-e03b-4bde-aee0-947d7dde4860 test_vm
# nova list | grep test_vm
| f506129b-610f-4e2d-886b-5d791cdcb282 | test_vm | ACTIVE | - | Running | vlan-53=172.17.53.7
測試虛擬機網路通信
br-int和br-ex說明
? br-int
br-int是OpenVswitch中的集成網橋,類似於一個二層的交換機。上面掛載了大量的agent來提供各種網路服務,另外負責對發往br-ex的流量,實現local vlan轉化為外部vlan。
# ovs-ofctl dump-flows br-int
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=147294.121s, table=0, n_packets=224, n_bytes=33961, idle_age=13, hard_age=65534, priority=3,in_port=4,dl_vlan=1 actions=mod_vlan_vid:101,NORMAL
cookie=0x0, duration=603538.84s, table=0, n_packets=19, n_bytes=2234, idle_age=18963, hard_age=65534, priority=2,in_port=4 actions=drop
cookie=0x0, duration=603547.134s, table=0, n_packets=31901, n_bytes=6419756, idle_age=13, hard_age=65534, priority=1 actions=NORMAL
? br-ex
br-ex是OpenVswitch中的一個外部網橋,要做的事情很簡單,只需要正常轉發數據流量即可。
# ovs-ofctl dump-flows br-ex
NXST_FLOW reply (xid=0x4):
cookie=0x0, duration=6770.969s, table=0, n_packets=5411, n_bytes=306944, idle_age=0, hard_age=65534, priority=0 actions=NORMAL
作者介紹
徐超,現任某互聯網公司雲計算工程師。三年多OpenStack從業經歷,Kubernetes、CI/CD學習者。著有《OpenStack最佳實踐 —測試與CI/CD》一書。


TAG:雲技術之家 |