Neutron的路由服务由L3 agent提供。除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务。
配置L3 agent
l3 agent服务由neutron-l3-agent.service
提供:
l3 agent 需要正确配置才能工作,配置文件为 “/etc/neutron/l3_agent.ini”,位于控制节点或网络节点上。 l3_agent.ini.png
interface_driver 是最重要的选项:
- 如果 mechanism driver 是 linux bridge
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
- 如果 mechanism driver 是 openvswitch
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
l3 agent 运行在控制或网络节点上。
创建route
source admin-openrc
# 创建两个vlan网络及其subnet
openstack network create vlan100
openstack subnet create --network vlan100 --subnet-range 172.16.100.0/24 172-16-100
openstack network create vlan101
openstack subnet create --network vlan101 --subnet-range 172.16.101.0/24 172-16-101
#创建一个路由
openstack router create router-001
# 将两子网挂载到路由上
neutron router-interface-add router-001 172-16-100
neutron router-interface-add router-001 172-16-101
# 在两个vlan上分别创建虚拟机
openstack server create --flavor m1.nano --image cirros \
--nic net-id=4f7c14f7-3286-48c2-9e22-0d6e8409b234 \
--security-group default --key-name mykey vm100
openstack server create --flavor m1.nano --image cirros \
--nic net-id=be798a5f-bec7-4a63-afdb-11b5fb8aee50 \
--security-group default --key-name mykey vm101
我们来看看发生了什么?
- vlan100 的 bridge 上多了一个 tap17103939-fe,从命名上可以推断该 TAP 设备对应 router的 interface (qr-17103939-fe@if22)。
- vlan100 的 bridge 上多了一个 tap5b23e125-75,从命名上可以推断该 TAP 设备对应 router的 interface (qr-5b23e125-75@if23)。
在router的namespace中的interface设置了网关ip,这个interface与vlan所在的bridge的tap设备形成了一对veth pair,保证了网络的通讯。
在router的namespace做了软路由,以实现路由功能:
route-n.png
网友评论