OpenStack实践(四):Linux Bridge方式实现floating IP
环境:
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
本文测试内容有:
创建router实现不同vlan互通;
外网访问配置,使instance可连接外网;
floating ip配置,为instance分配浮动ip,外网可直接访问实例;
vlan配置:
L3 agent
配置
root@openstack-controller:~# view /etc/neutron/l3_agent.iniinterface_driver = linuxbridge
运行情况
root@openstack-controller:~# su - stackstack@openstack-controller:~$ source devstack/openrc admin adminstack@openstack-controller:~$ openstack network agent list
router
创建router router_100_101
新增interface
子网分别选择vlan100和vlan10
配置完router后vlan100和vlan101此时可以ping通
cirros03 ping cirros01
第一个目标实现。
外网访问配置
配置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
172.27.34.0该网段需能访问外网。
去除dhcp选项
ext_net创建完成
将外网连接至虚拟路由器
发现虚拟路由器新增了一个接口6489e9ea-23a3
cirros ping外网
第二个目标实现。
创建floating ip
floating ip提供静态NAT功能,配置在router提供网关的外网interface上。
关联实例cirros03
查看cirros
安全组配置
添加安全组规则
添加icmp规则是保证能ping通,添加ssh规则是为了外网能直接ssh实例
测试
计算节点可以ping通cirros03并且可以直接ssh连接。
第三个目标实现。
floating ip原理为iptables增加了两条处理floating ip的规则:
Open vSwitch方式详见:OpenStack实践(九):Open vSwitch方式实现floating IP