路由服务(Routing)提供跨 subnet 互联互通功能。
例如前面我们搭建了实验环境:
cirros-vm1 172.16.100.3 vlan100 cirros-vm3 172.16.101.3 vlan101
这两个 instance 要通信必须借助 router。 可以是物理 router 或者虚拟 router。
物理 router
使用物理 router,如下图所示:
接入的物理 router 有两个 interface ip:
172.16.100.1 对应 vlan100 的网关。
172.16.101.1 对应 vlan101 的网关。
当 cirros-vm1 要跟 cirros-vm3 通信时,数据包的流向是这样的:
1. 因为 cirros-vm1 的默认网关指向 172.16.100.1,cirros-vm1 发送到 cirros-vm3 的数据包首先通过 vlan100 的 interface 进入物理 router。
2. router 发现目的地址 172.16.101.3 与 172.16.101.1 为同一个 vlan,则从 vlan101 的 interface 发出。
3. 数据包经过 brq1d7040b8-01 最终到达 cirros-vm3。
虚拟 router
虚拟 router 的路由机制与物理 router 一样,只是由软件实现。
Neutron 两种方案都支持。
如果要使用虚拟 router,需要启用 L3 agent。
L3 agent 会在控制节点或者网络节点上运行虚拟 router,为 subnet 提供路由服务。
下节开始详细讨论 Neutron 的虚拟 router 实现。
时间: 2024-10-23 21:49:36