跟我一起探索Neutron - router
Posted yuanyuede
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我一起探索Neutron - router相关的知识,希望对你有一定的参考价值。
(二层配置的是linuxbridge;l3 agent 提供路由 router 服务)
实验环境:
创建了4个网络
provider:flat网、外网
net1、net2、net3 均为 vxlan 网络
对应涉及5个虚拟机
provider-instance、self-instance 为分别指定 provider、net1 网络所创建的虚拟机
net1-vm、net2-vm、net3-vm 为分别指定 net1、net2、net3 网络所创建的虚拟机
1个名为router1的路由(router)
连接 net1 和 net2 的子网
设置provider网络为router1的external-gateway
说明(router实现的功能):
1. router1有3个interface IP:net1、net2 的网关IP,以及provider网络为其分配的IP
2. net1 和 net2 上的虚拟机可以经过 router1 实现相互通信
3. net1 和 net2 上的虚拟机均不能与 net3 上的虚拟机通信,它们是不同的vxlan网络
4. net1 和 net2 上的虚拟机可以连接 provider 网络上的虚拟机,反之不可
下面手动实践,感受 router 的实现原理(网络、虚拟机、路由的创建参考 OpenStack部署 最后的部分)
控制节点上
查看网络信息
# openstack net list
# openstack subnet list
查看 router1 的信息
ID 为 6f142989-b721-47cf-9a9e-c769d4272e4e
连接 net1 的子网,172.16.1.1 为对应子网的网关,对应的 port 的 ID 为 3e61517d-9441-4d43-b9df-8bda3dcee79b
连接 net2 的子网,172.16.2.1 为对应子网的网关,对应的 port 的 ID 为 37354f86-1f97-4681-be8a-5c91353be86b
provider 网络为 router1 的external-gateway,分配的IP为192.168.67.140,对应的 port 的 ID 为 9f46c36d-b01f-49c4-aff2-d062cbd913b3 (利用openstack port list查看)
# openstack router show router1 -c id -c interfaces_info -c external_gateway_info -f yaml
router1 的功能实现
1. 对应的网络空间为 qrouter-6f142989-b721-47cf-9a9e-c769d4272e4e
# ip netns
2. 网络空间中有对应 net1、net2 和 provider 网的三个虚拟网卡 qr-3e61517d-94、qr-37354f86-1f、qg-9f46c36d-b0
(分别与相关的port ID 3e61517d-9441-4d43-b9df-8bda3dcee79b、37354f86-1f97-4681-be8a-5c91353be86b、9f46c36d-b01f-49c4-aff2-d062cbd913b3对应)
# ip netns exec qrouter-6f142989-b721-47cf-9a9e-c769d4272e4e ip a
3. 对应host上的设备
net1
-- network ID 5a1587aa-2c80-4463-b41d-580320311dde,vxlan-27,对应网桥 brq5a1587aa-2c,dhcp对应的接口为 tap7d909ec7-eb
-- 有子网网关 172.16.1.1,通过 ID 为 3e61517d-9441-4d43-b9df-8bda3dcee79b 的 port 接入 router1 ,对应的设备为 tap3e61517d-94
net2
-- network ID 10d9adcf-d0fb-48e9-a4e1-34d526df9ca7,vxlan-72,对应网桥 brq10d9adcf-d0,dhcp对应的接口为 tap8b1f0a26-d7
-- 有子网网关 172.16.2.1,通过 ID 为 37354f86-1f97-4681-be8a-5c91353be86b 的 port 接入 router1,对应的设备为 tap37354f86-1f
net3
-- network ID 63b882c8-ff01-44ba-88f3-f4b3de83e62f,vxlan-19,对应网桥 brq63b882c8-ff,dhcp对应的接口为 tapabad784a-55
-- 没有连接入 router1
provider
-- network ID ae93bdde-9746-4bd2-b876-a424c35e7dd6,flat网,对应网桥 brqae93bdde-97,dhcp对应的接口为 tap2e9f25b8-0c
-- router1 通过 ID 为 9f46c36d-b01f-49c4-aff2-d062cbd913b3 的 port 接入该网络,对应的设备为 tap9f46c36d-b0
# brctl show
# ip a
所创建的虚拟机
查看虚拟机信息(控制节点上)
net1-vm(172.16.1.147)、self-instance(172.16.1.205) 均为指定 net1 网络所创建的虚拟机
provider-instance(192.168.67.186)、net2-vm(172.16.2.237)、net3-vm(172.16.3.157) 为分别指定 provider、net2、net3 网络所创建的虚拟机
# openstack server list -c Name -c Networks
在控制节点上,可以 ping 通 provider-instance,不能 ping 通其它虚拟机
# ping 192.168.67.186
在虚拟机内执行
1. 在 net1-vm 中
可以 ping 通 self-instance(同子网),net2-VM(均与 router1 相连接),provider-instance(其网络为 router1 的 external gateway 所在网络 )
不可以 ping 通 net3-vm(所在网络为独立的 vxlan网)
2. 在 net2-vm 中
可以 ping 通 net2-vm,与 net2-vm 可以相互通信
3. 在 provider-instance 中
无法 ping 通 net1-vm,net1-vm 只能单方面 ping 通 provider-instance
以上是关于跟我一起探索Neutron - router的主要内容,如果未能解决你的问题,请参考以下文章
穿越时空,跟我一起探索云栖数字谷(2021云栖大会免费送票)