千家信息网

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

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,环境:openstack版本pike控制节点主机openstack-controller(ubuntu 16.04.5) 172.27.34.37计算节点主机openstack-computer(ub
千家信息网最后更新 2024年11月24日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


本文测试内容有:

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

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

  3. 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


0