环境:

openstack版本 pike
控制节点主机 openstack-controller(ubuntu 16.04.5) 172.27.34.37
计算节点主机 openstack-computer(ubuntu 16.04.5) 172.27.34.38
vlan100
cirros01(172.27.100.6)、cirros02(172.27.100.12)
vlan101
cirros03(172.27.101.19)

vlan100和vlan101内instance默认不通


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

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


本文测试内容有:

  1. 创建router实现不同vlan互通;

  2. 外网访问配置,使instance可连接外网;

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


vlan配置:

OpenStack实践(四):Linux Bridge方式实现floating IP_第1张图片


L3 agent

配置

root@openstack-controller:~# view /etc/neutron/l3_agent.ini
interface_driver = linuxbridge

运行情况

root@openstack-controller:~# su - stack
stack@openstack-controller:~$ source devstack/openrc admin admin
stack@openstack-controller:~$ openstack network agent list

图片.png


router

创建router router_100_101

OpenStack实践(四):Linux Bridge方式实现floating IP_第2张图片

新增interface

OpenStack实践(四):Linux Bridge方式实现floating IP_第3张图片

子网分别选择vlan100和vlan10OpenStack实践(四):Linux Bridge方式实现floating IP_第4张图片

配置完router后vlan100和vlan101此时可以ping通

cirros03 ping cirros01

OpenStack实践(四):Linux Bridge方式实现floating IP_第5张图片

第一个目标实现。


外网访问配置

配置ml2

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

[ml2_type_vlan]
network_vlan_ranges = default:3001:4000

[linux_bridge]
physical_interface_mappings = default:ens192,externaltt:ens224

由于本文外网环境为flat网络(物理机的网卡接在交换机的access口),此处外网配置选择flat,对应网卡ens224,虚拟机内网为vlan,对应网卡ens192。


创建外部网络ext_net

OpenStack实践(四):Linux Bridge方式实现floating IP_第6张图片

OpenStack实践(四):Linux Bridge方式实现floating IP_第7张图片

172.27.34.0该网段需能访问外网。

OpenStack实践(四):Linux Bridge方式实现floating IP_第8张图片

去除dhcp选项

OpenStack实践(四):Linux Bridge方式实现floating IP_第9张图片

ext_net创建完成


将外网连接至虚拟路由器

OpenStack实践(四):Linux Bridge方式实现floating IP_第10张图片

OpenStack实践(四):Linux Bridge方式实现floating IP_第11张图片

发现虚拟路由器新增了一个接口6489e9ea-23a3

OpenStack实践(四):Linux Bridge方式实现floating IP_第12张图片

cirros ping外网

OpenStack实践(四):Linux Bridge方式实现floating IP_第13张图片

第二个目标实现。


创建floating ip

floating ip提供静态NAT功能,配置在router提供网关的外网interface上。

OpenStack实践(四):Linux Bridge方式实现floating IP_第14张图片

关联实例cirros03

OpenStack实践(四):Linux Bridge方式实现floating IP_第15张图片

OpenStack实践(四):Linux Bridge方式实现floating IP_第16张图片

查看cirros

OpenStack实践(四):Linux Bridge方式实现floating IP_第17张图片


安全组配置

OpenStack实践(四):Linux Bridge方式实现floating IP_第18张图片

添加安全组规则

OpenStack实践(四):Linux Bridge方式实现floating IP_第19张图片添加icmp规则是保证能ping通,添加ssh规则是为了外网能直接ssh实例


测试

OpenStack实践(四):Linux Bridge方式实现floating IP_第20张图片

计算节点可以ping通cirros03并且可以直接ssh连接。

第三个目标实现。


floating ip原理为iptables增加了两条处理floating ip的规则:

OpenStack实践(四):Linux Bridge方式实现floating IP_第21张图片


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