
l3-agent.png
Neutron的路由服務(wù)由L3 agent提供。除此之外,l3 agent 通過 iptables 提供 firewall 和 floating ip 服務(wù)。
配置L3 agent
l3 agent服務(wù)由neutron-l3-agent.service提供:

l3-agent.png
l3 agent 需要正確配置才能工作,配置文件為 “/etc/neutron/l3_agent.ini”,位于控制節(jié)點(diǎn)或網(wǎng)絡(luò)節(jié)點(diǎn)上。

l3_agent.ini.png
interface_driver 是最重要的選項(xiàng):
- 如果 mechanism driver 是 linux bridge
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
- 如果 mechanism driver 是 openvswitch
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
l3 agent 運(yùn)行在控制或網(wǎng)絡(luò)節(jié)點(diǎn)上。
創(chuàng)建route
source admin-openrc
# 創(chuàng)建兩個vlan網(wǎng)絡(luò)及其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
#創(chuàng)建一個路由
openstack router create router-001
# 將兩子網(wǎng)掛載到路由上
neutron router-interface-add router-001 172-16-100
neutron router-interface-add router-001 172-16-101
# 在兩個vlan上分別創(chuàng)建虛擬機(jī)
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
我們來看看發(fā)生了什么?
- vlan100 的 bridge 上多了一個 tap17103939-fe,從命名上可以推斷該 TAP 設(shè)備對應(yīng) router的 interface (qr-17103939-fe@if22)。
- vlan100 的 bridge 上多了一個 tap5b23e125-75,從命名上可以推斷該 TAP 設(shè)備對應(yīng) router的 interface (qr-5b23e125-75@if23)。

router.png
在router的namespace中的interface設(shè)置了網(wǎng)關(guān)ip,這個interface與vlan所在的bridge的tap設(shè)備形成了一對veth pair,保證了網(wǎng)絡(luò)的通訊。
在router的namespace做了軟路由,以實(shí)現(xiàn)路由功能:

route-n.png