OpenStack实践(九):OpenvSwitch方式实现floatingIP

架构图:

为牟平等地区用户提供了全套网页设计制作服务,及牟平网站建设行业解决方案。主营业务为成都网站制作、成都网站设计、牟平网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

OpenStack实践(九):Open vSwitch方式实现floating IP

环境:

openstack版本pike
控制节点主机openstack-controller(ubuntu 16.04.5) 172.27.34.37/137 esn160、ens192、ens224
计算节点主机openstack-computer(ubuntu 16.04.5) 172.27.34.38/138 esn160、ens192
vxlan100
centos01(172.27.100.5, floating ip172.27.34.11)
vxlan101
centos02(172.27.101.22,floating ip172.27.34.12)

ubuntu安装详见:Ubuntu16.04.5以lvm方式安装全记录

openstack安装详见:OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack

本文测试内容有:

  1. 实例centos01和centos02之间能互通;

  2. 实例centos01和centos02可访问外网;

  3. floating ip配置,为instance分配浮动ip,外网可直接访问实例;

内网配置

内网采用vxlan,配置如下:

stack@openstack-controller:~$ source devstack/openrc admin admin
stack@openstack-controller:~$ view /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
tenant_network_types = vxlan
extension_drivers = port_security
mechanism_drivers = openvswitch,l2population
type_drivers = local,flat,vlan,gre,vxlan,geneve

[agent]
tunnel_types = vxlan
l2_population = True

[ovs]
datapath_type = system
bridge_mappings =
tunnel_bridge = br-tun
local_ip = 172.27.34.137

计算节点local_ip=172.27.34.138,其它相同。

重启后生效

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

VXLAN创建

创建vxlan100和vxlan101

图形化方式

创建vlan100

OpenStack实践(九):Open vSwitch方式实现floating IP

网络名称为vxlan100,段id为100

OpenStack实践(九):Open vSwitch方式实现floating IP

子网为172.27.100.0/24

OpenStack实践(九):Open vSwitch方式实现floating IP

激活DHCP

OpenStack实践(九):Open vSwitch方式实现floating IP

创建完成

OpenStack实践(九):Open vSwitch方式实现floating IP

命令方式

创建网络vxlan101

stack@openstack-controller:~$ openstack network create  --provider-network-type vxlan --provider-segment 101 --project admin vxlan101

OpenStack实践(九):Open vSwitch方式实现floating IP

创建子网subnet172.27.101.0

stack@openstack-controller:~$ openstack subnet create --network vxlan101 --subnet-range 172.27.101.0/24 --gateway 172.27.101.1 subnet172.27.101.0

OpenStack实践(九):Open vSwitch方式实现floating IP

外网配置

外网采用flat,配置如下

在控制节点执行

stack@openstack-controller:~$ view /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_flat]
flat_networks = externaltt

[ovs]
bridge_mappings = externaltt:br-ens224

创建网桥br-ens224并将物理网卡ens224桥接在br-ens224上

stack@openstack-controller:~$ sudo ovs-vsctl add-br br-ens224
stack@openstack-controller:~$ sudo ovs-vsctl add-port br-ens224 ens224

重启网络服务

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

创建外网ext_net_flat

stack@openstack-controller:~$ openstack network create --provider-network-type flat --provider-physical-network externaltt  --project admin --external ext_net_flat

OpenStack实践(九):Open vSwitch方式实现floating IP

创建子网subnet172.27.34.0

stack@openstack-controller:~$ openstack subnet create --network ext_net_flat --subnet-range 172.27.34.0/24 --gateway 172.27.34.1 --no-dhcp subnet172.27.34.0

OpenStack实践(九):Open vSwitch方式实现floating IP

查看创建的网络

stack@openstack-controller:~$ openstack network list

OpenStack实践(九):Open vSwitch方式实现floating IP

OpenStack实践(九):Open vSwitch方式实现floating IP

创建路由

创建路由router_100_101

stack@openstack-controller:~$ openstack router create --project admin router_100_101

OpenStack实践(九):Open vSwitch方式实现floating IP

将路由器连接到外部网络

stack@openstack-controller:~$ openstack router set router_100_101 --external-gateway ext_net_flat

将路由器连接到子网

stack@openstack-controller:~$ openstack router add subnet router_100_101 subnet172.27.101.0
stack@openstack-controller:~$ openstack router add subnet router_100_101 subnet172.27.100.0

查看路由信息

stack@openstack-controller:~$ openstack router list

OpenStack实践(九):Open vSwitch方式实现floating IP

OpenStack实践(九):Open vSwitch方式实现floating IP

创建实例

制作镜像

上传介质CentOS-7-x86_64-GenericCloud-1809.qcow2c至/tmp目录,下载地址:http://cloud.centos.org/centos/7/images/

生成镜像centos7

stack@openstack-controller:/tmp$ openstack image create centos7   --file CentOS-7-x86_64-GenericCloud-1809.qcow2c  --disk-format qcow2 --container-format bare   --public

OpenStack实践(九):Open vSwitch方式实现floating IP

新建密钥对

新建密钥对centos7

stack@openstack-controller:~$ mkdir keys
stack@openstack-controller:~$ cd keys
stack@openstack-controller:~/keys$ openstack keypair create centos7 > centos7.pem
stack@openstack-controller:~/keys$ chmod 600 centos7.pem 
stack@openstack-controller:~/keys$ ll
total 12
drwxrwxr-x  2 stack stack 4096 Jan 24 10:53 ./
drwxr-xr-x 27 stack stack 4096 Jan 24 10:52 ../
-rw-------  1 stack stack 1680 Jan 24 10:53 centos7.pem

查看密钥对

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

OpenStack实践(九):Open vSwitch方式实现floating IP

创建安全组

创建安全组centos7

stack@openstack-controller:~$ openstack security group create centos7

新增规则允许ping和ssh

stack@openstack-controller:~$ openstack security group rule create  --protocol icmp   centos7
stack@openstack-controller:~$ openstack security group rule create --protocol TCP --dst-port 22 centos7

OpenStack实践(九):Open vSwitch方式实现floating IP

查看安全组和规则

stack@openstack-controller:~$ openstack security group list
stack@openstack-controller:~$ openstack security group rule list centos7

OpenStack实践(九):Open vSwitch方式实现floating IP

创建实例

创建实例centos01

stack@openstack-controller:~$ nova boot --flavor m1.small --image centos7  --availability-zone nova:openstack-controller --nic net-name=vxlan100 --key-name centos7 --security-groups centos7 centos01

OpenStack实践(九):Open vSwitch方式实现floating IP

flavor选择m1.small,计算节点选择openstack-controller,网络选择vxlan100。

创建实例centos02

stack@openstack-controller:~$ nova boot --flavor m1.small --image centos7  --availability-zone nova:openstack-controller --nic net-name=vxlan101 --key-name centos7 --security-groups centos7 centos02

OpenStack实践(九):Open vSwitch方式实现floating IP

flavor选择m1.small,计算节点选择openstack-controller,网络选择vxlan101。

查看创建的实例

stack@openstack-controller:~$ nova list

OpenStack实践(九):Open vSwitch方式实现floating IP

OpenStack实践(九):Open vSwitch方式实现floating IP

创建浮动ip

创建floating IP

创建floating IP 172.27.34.11/12

stack@openstack-controller:~$ openstack floating ip create --project admin --floating-ip-address 172.27.34.11 ext_net_flat
stack@openstack-controller:~$ openstack floating ip create --project admin --floating-ip-address 172.27.34.12 ext_net_flat
stack@openstack-controller:~$ openstack floating ip list

OpenStack实践(九):Open vSwitch方式实现floating IP

浮动ip关联实例

OpenStack实践(九):Open vSwitch方式实现floating IP

OpenStack实践(九):Open vSwitch方式实现floating IP

关联的命令执行方式为

stack@openstack-controller:~$ nova  floating-ip-associate centos01 172.27.34.11 
stack@openstack-controller:~$ nova  floating-ip-associate centos02 172.27.34.12

查看实例浮动ip

stack@openstack-controller:~$ nova list

OpenStack实践(九):Open vSwitch方式实现floating IP

测试

登陆实例

登陆实例centos01

stack@openstack-controller:~/keys$ ssh -i centos7.pem centos@172.27.34.11

OpenStack实践(九):Open vSwitch方式实现floating IP

ping外网

[centos@centos01 ~]$ ping www.baidu.com

OpenStack实践(九):Open vSwitch方式实现floating IP

ping centos02

[centos@centos01 ~]$ ping 172.27.101.22

OpenStack实践(九):Open vSwitch方式实现floating IP

架构图分析

OpenStack实践(九):Open vSwitch方式实现floating IP


端口查看

vxlan100

OpenStack实践(九):Open vSwitch方式实现floating IP

vxlan101

OpenStack实践(九):Open vSwitch方式实现floating IP


查看网桥

root@openstack-controller:~# ovs-vsctl show

OpenStack实践(九):Open vSwitch方式实现floating IP

root@openstack-controller:~# brctl show

OpenStack实践(九):Open vSwitch方式实现floating IP

patch port查看

br-int与br-tun的patch port

OpenStack实践(九):Open vSwitch方式实现floating IP

br-int与br-tun通过patch port"patch-tun"和"br-tun"连接

br-int与br-ens224的patch port

OpenStack实践(九):Open vSwitch方式实现floating IP

OpenStack实践(九):Open vSwitch方式实现floating IP

br-int与br-ens224这两个网桥通过int-br-ens224和phy-br-ens224连接在一起了。

Linux Bridge方式详见:OpenStack实践(四):Linux Bridge方式实现floating IP

参考文章:

https://docs.openstack.org/zh_CN/user-guide/index.html


名称栏目:OpenStack实践(九):OpenvSwitch方式实现floatingIP
转载源于:http://scyanting.com/article/pjghhg.html