
路由服務(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 實現。
