Learning Openstack Part 15 Neutron(7) - Router

Learning Openstack Part 15 Neutron(7) - Router_第1张图片
l3-agent.png

Neutron的路由服务由L3 agent提供。除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务。


配置L3 agent

l3 agent服务由neutron-l3-agent.service提供:

Learning Openstack Part 15 Neutron(7) - Router_第2张图片
l3-agent.png

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)。
Learning Openstack Part 15 Neutron(7) - Router_第3张图片
router.png

在router的namespace中的interface设置了网关ip,这个interface与vlan所在的bridge的tap设备形成了一对veth pair,保证了网络的通讯。

在router的namespace做了软路由,以实现路由功能:

Learning Openstack Part 15 Neutron(7) - Router_第4张图片
route-n.png

你可能感兴趣的:(Learning Openstack Part 15 Neutron(7) - Router)