跟我一起探索Neutron (2) - 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

 

posted @ 2020-05-13 13:36  丫uan丫ue  阅读(392)  评论(0编辑  收藏  举报