OVN 的路由提供商网络

路由提供商网络功能用于在 Neutron 中将多段的第三层网络呈现为单个实体。

在创建具有多个段的提供商网络之后,如 Neutron 文档 中所述,每个段连接到提供商 Local_Switch 条目,作为 Logical_Switch_Port 条目,端口类型为 localnet

例如,在 OVN 北向数据库中,具有两个段(VLAN:100、200)的 VLAN 提供商网络与其 Logical_Switch 对应项的关系如下:

$ ovn-nbctl list logical_switch public
_uuid               : 983719e5-4f32-4fb0-926d-46291457ca41
acls                : []
dns_records         : []
external_ids        : {"neutron:mtu"="1450", "neutron:network_name"=public, "neutron:revision_number"="3"}
forwarding_groups   : []
load_balancer       : []
name                : neutron-6c8be12a-9ed0-4ac4-8130-cb8fad83cd46
other_config        : {mcast_flood_unregistered="false", mcast_snoop="true"}
ports               : [81bce1ab-87f8-4ed5-8163-f16701499dfe, b23d0c2e-773b-4ecb-8306-53d117006a7b]
qos_rules           : []

$ ovn-nbctl list logical_switch_port 81bce1ab-87f8-4ed5-8163-f16701499dfe
_uuid               : 81bce1ab-87f8-4ed5-8163-f16701499dfe
addresses           : [unknown]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : provnet-96f663af-19fa-4c7e-a1b8-1dfdc9cd9e82
options             : {network_name=phys-net-1}
parent_name         : []
port_security       : []
tag                 : 100
tag_request         : []
type                : localnet
up                  : false

$ ovn-nbctl list logical_switch_port b23d0c2e-773b-4ecb-8306-53d117006a7b
_uuid               : b23d0c2e-773b-4ecb-8306-53d117006a7b
addresses           : [unknown]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : provnet-469cbc3d-8e06-4a8f-be3a-3fcdadfd398a
options             : {network_name=phys-net-2}
parent_name         : []
port_security       : []
tag                 : 200
tag_request         : []
type                : localnet
up                  : false

如您所见,这两个 localnet 端口配置了 VLAN 标签,并与单个 Logical_Switch 条目相关联。当 *ovn-controller* 看到该网络中的端口已绑定到其运行的节点时,它将根据桥接映射配置创建到提供商桥的补丁端口。

compute-1: bridge-mappings = segment-1:br-provider1
compute-2: bridge-mappings = segment-2:br-provider2

例如,当多段网络中的端口绑定到 compute-1 时,ovn-controller 将在 br-int 和 br-provider1 之间创建补丁端口。

需要注意的是,在给定的虚拟机监控程序上,只有属于同一段的端口才应该存在。不允许在同一虚拟机监控程序上为同一网络(Logical_Switch)混合来自不同段的端口。