OpenStack实践(二):LinuxBridge方式实现LocalNetwork

版本信息

创新互联专注于企业全网整合营销推广、网站重做改版、哈巴河网站定制设计、自适应品牌网站建设、HTML5建站商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为哈巴河等各大城市提供网站开发制作服务。

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安装详见:OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack

local网络

local网络与其他网络和节点隔离。不会与宿主机的任何物理网卡相连,也不关联任何的 VLAN ID,local网络中的instance只能与位于同一节点上同一网络的instance通信,local网络主要用于单机测试。

目标:cirros01和cirros02互通,cirros03与cirros01、cirros02不通,三个虚拟机都与宿主机不通。网络拓扑如下:

OpenStack实践(二):Linux Bridge方式实现Local Network

一、制作镜像

上传介质cirros-0.3.3-x86_64-disk.img至/tmp目录,镜像下载地址:http://download.cirros-cloud.net/

制作镜像:

root@openstack-controller:~# su - stack
stack@openstack-controller:~$ source devstack/openrc admin admin
stack@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

OpenStack实践(二):Linux Bridge方式实现Local Network

查看新建的image:

OpenStack实践(二):Linux Bridge方式实现Local Network

OpenStack实践(二):Linux Bridge方式实现Local Network

二、在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服务

stack@openstack-controller:~$ sudo systemctl restart devstack@q*

三、创建local network

1.创建local-network01

OpenStack实践(二):Linux Bridge方式实现Local Network

OpenStack实践(二):Linux Bridge方式实现Local Network

下一步,配置子网

OpenStack实践(二):Linux Bridge方式实现Local Network

子网为172.16.1.0/24

OpenStack实践(二):Linux Bridge方式实现Local Network

子网网段为172.16.1.2至172.16.1.50

OpenStack实践(二):Linux Bridge方式实现Local Network

2.创建localnetwork02

localnetwork01创建完成,同理创建localnetwork02,网段为172.16.1.51至172.16.1.100

OpenStack实践(二):Linux Bridge方式实现Local Network

四、创建instance

因为DHCP agent在控制节点上运行,local网络的流量只能局限在本节点之内,故计算节点部署的instance发送的DHCP请求无法到达控制节点,无法获取到ip地址。

本文的instance都位于控制节点

1.查看实例类型

stack@openstack-controller:~$ nova flavor-list

OpenStack实践(二):Linux Bridge方式实现Local Network

本文选择m1.tiny

2.查看主机名和zone

stack@openstack-controller:~$ nova service-list

OpenStack实践(二):Linux Bridge方式实现Local Network

3.指定控制节点启动虚拟机cirros01和cirros02,网络为localnetwork01

stack@openstack-controller:~$ nova boot --flavor m1.tiny --image cirros-cli  --availability-zone nova:openstack-controller --nic net-name=localnetwork01 cirros01

OpenStack实践(二):Linux Bridge方式实现Local Network

stack@openstack-controller:~$ nova boot --flavor m1.tiny --image 
cirros-cli  --availability-zone nova:openstack-controller --nic 
net-name=localnetwork01 cirros02

OpenStack实践(二):Linux Bridge方式实现Local Network

4.新建虚拟机cirros03,网络为localnetwork02

stack@openstack-controller:~$ nova boot --flavor m1.tiny --image cirros-cli  --availability-zone nova:openstack-controller --nic net-name=localnetwork02 cirros03

OpenStack实践(二):Linux Bridge方式实现Local Network

5.控制台查看新建实例

OpenStack实践(二):Linux Bridge方式实现Local Network

6.查看虚拟网卡

命令查看tap

root@openstack-controller:~# brctl show

OpenStack实践(二):Linux Bridge方式实现Local Network

控制面板查看

OpenStack实践(二):Linux Bridge方式实现Local Network

OpenStack实践(二):Linux Bridge方式实现Local Network

可以看到Linux bridge01 brq91c5618d-18包含的虚拟网卡为tap08d6746a-10和tap4909a73b-da,Linux bridge02 brq7bd9076e-84包含的虚拟网卡为tap3efd4160-79。

五、测试

分别登陆cirros01、cirros02、cirros03,互ping和ping宿主机

1.cirros01

OpenStack实践(二):Linux Bridge方式实现Local Network

获取的ip为172.16.1.19

OpenStack实践(二):Linux Bridge方式实现Local Network

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

2.cirros02

OpenStack实践(二):Linux Bridge方式实现Local Network

获取的ip为172.16.1.12

OpenStack实践(二):Linux Bridge方式实现Local Network

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

3.cirros03

OpenStack实践(二):Linux Bridge方式实现Local Network

获取的ip为172.16.1.52

OpenStack实践(二):Linux Bridge方式实现Local Network

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

测试结果符合预期


本文题目:OpenStack实践(二):LinuxBridge方式实现LocalNetwork
当前链接:http://scyanting.com/article/iiihoc.html