Neutron Routing 服务提供跨 subnet 互联互通的能力。
例如前面咱们搭建了实验环境:linux
cirros-vm1 172.16.100.3 vlan100 cirros-vm3 172.16.101.3 vlan101 web
这两个 instance 要通讯必须借助 router。能够是物理 router 或者虚拟 router。 下面详细讨论 Neutron 的虚拟 router 实现。 网络
Neutron 的路由服务是由 l3 agent 提供的。 l3 agent 须要正确配置才能工做,配置文件为 /etc/neutron/l3_agent.ini,位于控制节点或网络节点。 测试
devstack 已经帮咱们配置默认的属性,大部分状况下不须要修改就能够使用。 spa
external_network_bridge 指定链接外网的网桥,默认是 br-ex。 orm
interface_driver 是最重要的选项,若是 mechanism driver 是 open vswitch,则: router
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriverci
若是选用 linux bridge,则: 路由
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriverit
l3 agent 运行在控制或网络节点。
下面将建立虚拟 router “router_100_101”,打通 vlan100 和 vlan101。
进入操做菜单 Project -> Network -> Routers。
点击 “Create Router” 按钮。
router 命名为 “router_100_101”,点击 “Create Router” 按钮确认。
router_100_101 建立成功。
接下来须要将 vlan100 和 vlan101 链接到 router_100_101。 点击 “router_100_101” 连接进入 router 的配置页面,在 “Interfaces” 标签中点击 “Add Interface” 按钮。
选择 vlan100 的 subnet_172_16_100_0,点击 “Add Interface” 确认。
用一样的方法添加 vlan101 的 subnet_172_16_101_0。
完成后,能够看到 router_100_101 有了两个 interface,其 IP 正好是 subnet 的 Gateway IP 172.16.100.1 和 172.16.101.1。
到这里,咱们能够预见: 1. router_100_101 已经链接了 subnet_172_16_100_0 和 subnet_172_16_101_0。 2. router_100_101 上已经设置好了两个 subnet 的 Gateway IP。 3. cirros-vm1 和 cirros-vm3 应该能够通讯了。
经过 PING 测试一下:
不出所料,cirros-vm1 和 cirros-vm3 能通讯了。
下一节咱们详细探究 router_100_101 是如何起做用的。