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

2019-10-23 11:25:31 浏览数 (1)

环境:

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配置:

L3 agent

配置

代码语言:txt复制
root@openstack-controller:~# view /etc/neutron/l3_agent.ini
interface_driver = linuxbridge

运行情况

代码语言:txt复制
root@openstack-controller:~# su - stack
stack@openstack-controller:~$ source devstack/openrc admin admin
stack@openstack-controller:~$ openstack network agent list

router

创建router router_100_101

新增interface

子网分别选择vlan100和vlan10

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

cirros03 ping cirros01

第一个目标实现。

外网访问配置

配置ml2

代码语言:txt复制
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

0 人点赞