ovn 通过网关虚拟路由器连接外部网络

2023-05-16

本文实验如何通过ovn的网关逻辑路由器将ovn网络连接到外部网络。

前面讲过ovn的逻辑路由器是分布式的,这意味着它没有绑定到某个节点上,而是存在于所有节点上的,同时它是通过每个节点的openflow流表来实现的,所有vm之间的东西向流量可以在本节点就能找到目的节点,不用再发送的网络节点处理。
但是对于一些有状态的服务是有问题的,比如SNAT和DNAT,这些服务需要在同一个节点上实现。为了解决这个问题,引入了网关路由器,其和逻辑路由器的区别是,网关路由器会通过Logical_Router表的选项options:chassis绑定到指定的节点上。

下面的图是从ovn-architecture截取的网关虚拟路由器拓扑,图中的GLR全称是gateway logical router,就是网关路由器,其需要通过单独的switch LSjoin连接到逻辑路由器(多个逻辑路由器可以直接相连,但是网关路由器得通过LSjoin连接)。

image.png

本次实验的逻辑拓扑如下

image.png

创建两个交换机(ls1和ls2)和一个路由器(lr1)

//创建两个虚拟交换机 ls1 和 ls2
ovn-nbctl ls-add ls1
ovn-nbctl ls-add ls2
//创建一个虚拟路由器 lr1
ovn-nbctl lr-add lr1

//在虚拟路由器 lr1 上添加端口,用来连接虚拟交换机 ls1
ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 10.10.10.1/24

//在虚拟交换机 ls1 上添加端口,用来连接虚拟路由器 lr1
ovn-nbctl lsp-add ls1 ls1-lr1
//端口类型必须为 router
ovn-nbctl lsp-set-type ls1-lr1 router
//设置地址,必须和 lr1-ls1 的一致
ovn-nbctl lsp-set-addresses ls1-lr1 00:00:00:00:00:01
//指定 router-port
ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1

//在虚拟路由器 lr1 上添加端口,用来连接虚拟交换机 ls2
ovn-nbctl lrp-add lr1 lr1-ls2 00:00:00:00:00:02 10.10.20.1/24

//在虚拟交换机 ls2 上添加端口,用来连接虚拟路由器 lr1
ovn-nbctl lsp-add ls2 ls2-lr1
//端口类型必须为 router
ovn-nbctl lsp-set-type ls2-lr1 router
//设置地址,必须和 lr1-ls2 的一致
ovn-nbctl lsp-set-addresses ls2-lr1 00:00:00:00:00:02
//指定 router-port
ovn-nbctl lsp-set-options ls2-lr1 router-port=lr1-ls2

在交换机上ls1和ls2上添加vm接口

//在虚拟交换机 ls1 上添加两个端口,指定 mac 和 ip(10.10.10.0/24网段),用来连接vm
ovn-nbctl lsp-add ls1 ls1-vm1
ovn-nbctl lsp-set-addresses ls1-vm1 "00:00:00:00:00:03 10.10.10.2"
ovn-nbctl lsp-set-port-security ls1-vm1 "00:00:00:00:00:03 10.10.10.2"

ovn-nbctl lsp-add ls1 ls1-vm2
ovn-nbctl lsp-set-addresses ls1-vm2 "00:00:00:00:00:04 10.10.10.3"
ovn-nbctl lsp-set-port-security ls1-vm2 "00:00:00:00:00:04 10.10.10.3"

//在虚拟交换机 ls2 上添加两个端口,指定 mac 和 ip(10.10.20.0/24网段),用来连接vm
ovn-nbctl lsp-add ls2 ls2-vm1
ovn-nbctl lsp-set-addresses ls2-vm1 "00:00:00:00:00:03 10.10.20.2"
ovn-nbctl lsp-set-port-security ls2-vm1 "00:00:00:00:00:03 10.10.20.2"

ovn-nbctl lsp-add ls2 ls2-vm2
ovn-nbctl lsp-set-addresses ls2-vm2 "00:00:00:00:00:04 10.10.20.3"
ovn-nbctl lsp-set-port-security ls2-vm2 "00:00:00:00:00:04 10.10.20.3"

创建四个namespace,模拟四个vm

//在 master 节点上,创建两个namespace,用来模拟两个vm,使用 "iface-id" 指定
//这两个vm属于 ls1
ip netns add vm1
ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal
ip link set vm1 netns vm1
ip netns exec vm1 ip link set vm1 address 00:00:00:00:00:03
ip netns exec vm1 ip addr add 10.10.10.2/24 dev vm1
ip netns exec vm1 ip link set vm1 up
ip netns exec vm1 ip route add default via 10.10.10.1 dev vm1
ovs-vsctl set Interface vm1 external_ids:iface-id=ls1-vm1


ip netns add vm2
ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal
ip link set vm2 netns vm2
ip netns exec vm2 ip link set vm2 address 00:00:00:00:00:04
ip netns exec vm2 ip addr add 10.10.10.3/24 dev vm2
ip netns exec vm2 ip link set vm2 up
ip netns exec vm2 ip route add default via 10.10.10.1 dev vm2
ovs-vsctl set Interface vm2 external_ids:iface-id=ls1-vm2


//在 node1 节点上,创建两个namespace,用来模拟两个vm,使用 "iface-id" 指定这两个vm属于 ls2
ip netns add vm1
ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal
ip link set vm1 netns vm1
ip netns exec vm1 ip link set vm1 address 00:00:00:00:00:03
ip netns exec vm1 ip addr add 10.10.20.2/24 dev vm1
ip netns exec vm1 ip link set vm1 up
ip netns exec vm1 ip route add default via 10.10.20.1 dev vm1
ovs-vsctl set Interface vm1 external_ids:iface-id=ls2-vm1


ip netns add vm2
ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal
ip link set vm2 netns vm2
ip netns exec vm2 ip link set vm2 address 00:00:00:00:00:04
ip netns exec vm2 ip addr add 10.10.20.3/24 dev vm2
ip netns exec vm2 ip link set vm2 up
ip netns exec vm2 ip route add default via 10.10.20.1 dev vm2
ovs-vsctl set Interface vm2 external_ids:iface-id=ls2-vm2

开始创建网关路由器, 用于连接逻辑路由器的lsjoin和用于连接外部网络的lslocal

//在master节点执行,创建第二个虚拟路由器 lr2,并添加两个虚拟路由器端口
//其中 options:chassis=master 指定了虚拟路由器的物理位置,表示和外部通信的实现是在此chassis上面。
//如果指定了 options:chassis,则说明是个网关路由器
ovn-nbctl create Logical_Router name=lr2 options:chassis=master
ovn-nbctl lrp-add lr2 lr2-lsjoin 00:00:00:00:00:06 10.10.30.2/24
ovn-nbctl lrp-add lr2 lr2-lslocal 00:00:00:00:00:07 10.10.40.1/24

//在master节点执行,创建虚拟交换机 lsjoin,用来连接两个路由器 lr1 和 lr2
ovn-nbctl ls-add lsjoin
ovn-nbctl lsp-add lsjoin lsjoin-lr2
ovn-nbctl lsp-set-type lsjoin-lr2 router
ovn-nbctl lsp-set-addresses lsjoin-lr2 00:00:00:00:00:06
ovn-nbctl lsp-set-options lsjoin-lr2 router-port=lr2-lsjoin

//在master节点执行,在虚拟路由器 lr1 上添加虚拟路由器端口,用来连接 lsjoin
ovn-nbctl lrp-add lr1 lr1-lsjoin 00:00:00:00:00:05 10.10.30.1/24
//在master节点执行,在虚拟交换机 lsjoin 上添加虚拟交换机端口,用来连接 lr1
ovn-nbctl lsp-add lsjoin lsjoin-lr1
ovn-nbctl lsp-set-type lsjoin-lr1 router
ovn-nbctl lsp-set-addresses lsjoin-lr1 00:00:00:00:00:05
ovn-nbctl lsp-set-options lsjoin-lr1 router-port=lr1-lsjoin

//在master节点执行,在虚拟路由器 lr1 和 lr2 上添加静态路由
ovn-nbctl lr-route-add lr2 "10.10.10.0/24" 10.10.30.1
ovn-nbctl lr-route-add lr1 "0.0.0.0/0" 10.10.30.2

//在master节点执行,创建虚拟交换机 lslocal,用来连接到外部网络
ovn-nbctl ls-add lslocal
ovn-nbctl lsp-add lslocal lslocal-lr2
ovn-nbctl lsp-set-type lslocal-lr2 router
ovn-nbctl lsp-set-addresses lslocal-lr2 00:00:00:00:00:07
ovn-nbctl lsp-set-options lslocal-lr2 router-port=lr2-lslocal

//创建连接外部网络的switch br-ens8,其中 ovn-bridge-mappings 指定了网络名称和实际网桥的映射关系
//必须在网关路由器的选项 options:chassis=master 指定的chassis上执行。本实验指定的chassis为master,
//所以下面命令在master上执行。
ovs-vsctl add-br br-ens8
ovs-vsctl add-port br-ens8 ens8
ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=externalnet:br-ens8
ip link set dev br-ens8 up
ip addr add 10.10.40.2/24 dev br-ens8

//在master节点执行,在虚拟交换机 lslocal上添加 localnet 类型的端口,并设置 network_name 为 externalnet,
//externalnet 为 ovn-bridge-mappings 指定的,对应实际网桥 br-ens8
ovn-nbctl lsp-add lslocal lslocal-localnet
ovn-nbctl lsp-set-addresses lslocal-localnet unknown
ovn-nbctl lsp-set-type lslocal-localnet localnet
ovn-nbctl lsp-set-options lslocal-localnet network_name=externalnet

执行完上面命令后,从ovn网络 lr1上的 vm1 ping 外部网络是不通的,这是因为从外部网络返回的响应报文查不到回程路由,
最终走默认路由,发给其他接口了。解决办法有两个:
a. 在外部网络上配置返程的静态路由
b. 在网关路由器 lr2 上添加 snat 表项,使lr1上的 vm1 ping报文的源ip修改为外部网络的网段ip

    //在master节点执行
    ovn-nbctl -- --id=@nat create nat type="snat" logical_ip=10.10.10.0/24 \
    external_ip=10.10.40.1 -- add logical_router lr2 nat @nat

生成的物理拓扑如下

image.png


由于逻辑路由器不存在实体,而是通过openflow流表实现的,所以图中体现不出它的存在,而网关路由器也只是在master节点上增加了用于连接到br-ens8的一对patch口。

查看数据库信息

查看nbdb信息

root@master:~# ovn-nbctl show
switch 19a6bdbd-a40d-4fec-8b6b-ca3c1720579f (lsjoin)
    port lsjoin-lr2
        type: router
        addresses: ["00:00:00:00:00:06"]
        router-port: lr2-lsjoin
    port lsjoin-lr1
        type: router
        addresses: ["00:00:00:00:00:05"]
        router-port: lr1-lsjoin
switch ac2e94b9-d958-408f-820b-866c8aef8da6 (ls1)
    port ls1-vm2
        addresses: ["00:00:00:00:00:04 10.10.10.3"]
    port ls1-vm1
        addresses: ["00:00:00:00:00:03 10.10.10.2"]
    port ls1-lr1
        type: router
        addresses: ["00:00:00:00:00:01"]
        router-port: lr1-ls1
switch 8ba7ddfd-dc90-46ca-8c50-735caba9e43f (lslocal)
    port lslocal-localnet
        type: localnet
        addresses: ["unknown"]
    port lslocal-lr2
        type: router
        addresses: ["00:00:00:00:00:07"]
        router-port: lr2-lslocal
switch 100e71d5-27e5-4512-a6df-96d017d87ecb (ls2)
    port ls2-lr1
        type: router
        addresses: ["00:00:00:00:00:02"]
        router-port: lr1-ls2
    port ls2-vm2
        addresses: ["00:00:00:00:00:04 10.10.20.3"]
    port ls2-vm1
        addresses: ["00:00:00:00:00:03 10.10.20.2"]
router 26deb32d-f76e-43cf-8da0-44651bba193c (lr2)
    port lr2-lslocal
        mac: "00:00:00:00:00:07"
        networks: ["10.10.40.1/24"]
    port lr2-lsjoin
        mac: "00:00:00:00:00:06"
        networks: ["10.10.30.2/24"]
    nat d24948e6-7944-41dd-88d8-64cff5a21614
        external ip: "10.10.40.1"
        logical ip: "10.10.10.0/24"
        type: "snat"
router 08086243-b572-479a-a23e-9f6f97674bee (lr1)
    port lr1-ls1
        mac: "00:00:00:00:00:01"
        networks: ["10.10.10.1/24"]
    port lr1-lsjoin
        mac: "00:00:00:00:00:05"
        networks: ["10.10.30.1/24"]
    port lr1-ls2
        mac: "00:00:00:00:00:02"
        networks: ["10.10.20.1/24"]

root@master:~# ovn-nbctl list logical_switch
_uuid               : 19a6bdbd-a40d-4fec-8b6b-ca3c1720579f
acls                : []
dns_records         : []
external_ids        : {}
forwarding_groups   : []
load_balancer       : []
name                : lsjoin
other_config        : {}
ports               : [a855aed3-82b3-45dd-a86b-d850605cdc49, fd64b5ad-a602-4006-9c33-f5c4f72ebbdf]
qos_rules           : []

_uuid               : ac2e94b9-d958-408f-820b-866c8aef8da6
acls                : []
dns_records         : []
external_ids        : {}
forwarding_groups   : []
load_balancer       : []
name                : ls1
other_config        : {}
ports               : [7853af01-1e62-49d4-a2a4-bd8c9a1a30e7, 797e3364-aa6c-4e27-8aff-4c8dda8d3794, eedcd30c-f063-4651-b0f9-90aac3b5710a]
qos_rules           : []

_uuid               : 8ba7ddfd-dc90-46ca-8c50-735caba9e43f
acls                : []
dns_records         : []
external_ids        : {}
forwarding_groups   : []
load_balancer       : []
name                : lslocal
other_config        : {}
ports               : [ce6cb770-c52d-4eb0-a523-d5c0f35a7ad9, f8b91de0-abc5-4567-909a-5ab60916c6b2]
qos_rules           : []

_uuid               : 100e71d5-27e5-4512-a6df-96d017d87ecb
acls                : []
dns_records         : []
external_ids        : {}
forwarding_groups   : []
load_balancer       : []
name                : ls2
other_config        : {}
ports               : [1370b982-dcf3-4958-bc1e-46abbf4cd0d1, 613d87f8-7ad7-4798-9b62-266c0d7c57a5, ee76bfe8-b814-4ccd-8475-021c205c1844]
qos_rules           : []
root@master:~#
root@master:~# ovn-nbctl list logical_switch_port
_uuid               : f8b91de0-abc5-4567-909a-5ab60916c6b2
addresses           : ["00:00:00:00:00:07"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : lslocal-lr2
options             : {router-port=lr2-lslocal}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : router
up                  : true

_uuid               : ce6cb770-c52d-4eb0-a523-d5c0f35a7ad9
addresses           : [unknown]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : lslocal-localnet
options             : {network_name=externalnet}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : localnet
up                  : false

_uuid               : 613d87f8-7ad7-4798-9b62-266c0d7c57a5
addresses           : ["00:00:00:00:00:04 10.10.20.3"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls2-vm2
options             : {}
parent_name         : []
port_security       : ["00:00:00:00:00:04 10.10.20.3"]
tag                 : []
tag_request         : []
type                : ""
up                  : true

_uuid               : ee76bfe8-b814-4ccd-8475-021c205c1844
addresses           : ["00:00:00:00:00:03 10.10.20.2"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls2-vm1
options             : {}
parent_name         : []
port_security       : ["00:00:00:00:00:03 10.10.20.2"]
tag                 : []
tag_request         : []
type                : ""
up                  : true

_uuid               : 7853af01-1e62-49d4-a2a4-bd8c9a1a30e7
addresses           : ["00:00:00:00:00:04 10.10.10.3"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls1-vm2
options             : {}
parent_name         : []
port_security       : ["00:00:00:00:00:04 10.10.10.3"]
tag                 : []
tag_request         : []
type                : ""
up                  : true

_uuid               : 1370b982-dcf3-4958-bc1e-46abbf4cd0d1
addresses           : ["00:00:00:00:00:02"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls2-lr1
options             : {router-port=lr1-ls2}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : router
up                  : true

_uuid               : a855aed3-82b3-45dd-a86b-d850605cdc49
addresses           : ["00:00:00:00:00:06"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : lsjoin-lr2
options             : {router-port=lr2-lsjoin}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : router
up                  : true

_uuid               : 797e3364-aa6c-4e27-8aff-4c8dda8d3794
addresses           : ["00:00:00:00:00:03 10.10.10.2"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls1-vm1
options             : {}
parent_name         : []
port_security       : ["00:00:00:00:00:03 10.10.10.2"]
tag                 : []
tag_request         : []
type                : ""
up                  : true

_uuid               : eedcd30c-f063-4651-b0f9-90aac3b5710a
addresses           : ["00:00:00:00:00:01"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : ls1-lr1
options             : {router-port=lr1-ls1}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : router
up                  : true

_uuid               : fd64b5ad-a602-4006-9c33-f5c4f72ebbdf
addresses           : ["00:00:00:00:00:05"]
dhcpv4_options      : []
dhcpv6_options      : []
dynamic_addresses   : []
enabled             : []
external_ids        : {}
ha_chassis_group    : []
name                : lsjoin-lr1
options             : {router-port=lr1-lsjoin}
parent_name         : []
port_security       : []
tag                 : []
tag_request         : []
type                : router
up                  : true

root@master:~# ovn-nbctl list logical_route
ovn-nbctl: "logical_route" matches multiple table names: Logical_Router, Logical_Router_Policy, Logical_Router_Port, Logical_Router_Static_Route
root@master:~# ovn-nbctl list logical_router
_uuid               : 26deb32d-f76e-43cf-8da0-44651bba193c
enabled             : []
external_ids        : {}
load_balancer       : []
name                : lr2
nat                 : [d24948e6-7944-41dd-88d8-64cff5a21614]
options             : {chassis=master}
policies            : []
ports               : [058c9f8d-30b0-48b9-87da-e6f18e6c02e9, eccd649d-f0c6-4df5-a831-ab1d2e8fc9e7]
static_routes       : [f51566dd-4274-43fc-b400-6cca9eefbcec]

_uuid               : 08086243-b572-479a-a23e-9f6f97674bee
enabled             : []
external_ids        : {}
load_balancer       : []
name                : lr1
nat                 : []
options             : {}
policies            : []
ports               : [1f4cdd53-fbcd-4640-9353-0c0e3529fc12, c6abf282-635c-4715-a203-cce1267c2e00, db3528ab-5cb2-4c32-82e9-05f240d77c30]
static_routes       : [5162742c-9db7-4cf6-9b18-2cfec6ddc807]

root@master:~# ovn-nbctl list logical_router_port
_uuid               : 058c9f8d-30b0-48b9-87da-e6f18e6c02e9
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:07"
name                : lr2-lslocal
networks            : ["10.10.40.1/24"]
options             : {}
peer                : []

_uuid               : eccd649d-f0c6-4df5-a831-ab1d2e8fc9e7
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:06"
name                : lr2-lsjoin
networks            : ["10.10.30.2/24"]
options             : {}
peer                : []

_uuid               : c6abf282-635c-4715-a203-cce1267c2e00
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:05"
name                : lr1-lsjoin
networks            : ["10.10.30.1/24"]
options             : {}
peer                : []

_uuid               : db3528ab-5cb2-4c32-82e9-05f240d77c30
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:02"
name                : lr1-ls2
networks            : ["10.10.20.1/24"]
options             : {}
peer                : []

_uuid               : 1f4cdd53-fbcd-4640-9353-0c0e3529fc12
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:01"
name                : lr1-ls1
networks            : ["10.10.10.1/24"]
options             : {}
peer                : []

查看sbdb信息

root@master:~# ovn-sbctl show
Chassis node1
    hostname: node1
    Encap geneve
        ip: "192.168.122.21"
        options: {csum="true"}
    Port_Binding ls2-vm2
    Port_Binding ls2-vm1
Chassis master
    hostname: master
    Encap geneve
        ip: "192.168.122.20"
        options: {csum="true"}
    Port_Binding lr2-lslocal
    Port_Binding ls1-vm2
    Port_Binding lslocal-lr2
    Port_Binding lr2-lsjoin
    Port_Binding ls1-vm1
    Port_Binding lsjoin-lr2
root@master:~#
root@master:~# ovn-sbctl list port_binding
_uuid               : 894e4eb8-877b-4e08-a682-3abb594698a5
chassis             : []
datapath            : f787018d-a734-4fb9-899e-f35492be4bb3
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lslocal-localnet
mac                 : [unknown]
nat_addresses       : []
options             : {network_name=externalnet}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : localnet
up                  : false
virtual_parent      : []

_uuid               : d5f521c8-b9a3-492e-afa9-2057b4973d93
chassis             : []
datapath            : 4c0b0089-4cbf-4c0f-b84c-121dfe05bf85
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lsjoin-lr1
mac                 : ["00:00:00:00:00:05"]
nat_addresses       : []
options             : {peer=lr1-lsjoin}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : patch
up                  : false
virtual_parent      : []

_uuid               : c7dadb79-4a75-4889-92d7-08ce5f911697
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : c89c24f5-8fdf-41dc-afa9-3f3d19e3792e
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lr2-lslocal
mac                 : ["00:00:00:00:00:07 10.10.40.1/24"]
nat_addresses       : []
options             : {ipv6_prefix="false", ipv6_prefix_delegation="false", l3gateway-chassis=master, peer=lslocal-lr2}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : l3gateway
up                  : true
virtual_parent      : []

_uuid               : 7e741902-ba8e-4789-9b25-e93aabf02593
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : 64340a5b-8d18-4b8e-b018-4647127bf5a1
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls1-vm2
mac                 : ["00:00:00:00:00:04 10.10.10.3"]
nat_addresses       : []
options             : {}
parent_port         : []
tag                 : []
tunnel_key          : 3
type                : ""
up                  : true
virtual_parent      : []

_uuid               : d5c07a02-54da-4245-99ad-4fa044edcdb8
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : f787018d-a734-4fb9-899e-f35492be4bb3
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lslocal-lr2
mac                 : ["00:00:00:00:00:07"]
nat_addresses       : ["00:00:00:00:00:07 10.10.40.1"]
options             : {l3gateway-chassis=master, peer=lr2-lslocal}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : l3gateway
up                  : true
virtual_parent      : []

_uuid               : 15879373-2d1d-43e6-b4fb-de22a113f8ca
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : c89c24f5-8fdf-41dc-afa9-3f3d19e3792e
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lr2-lsjoin
mac                 : ["00:00:00:00:00:06 10.10.30.2/24"]
nat_addresses       : []
options             : {ipv6_prefix="false", ipv6_prefix_delegation="false", l3gateway-chassis=master, peer=lsjoin-lr2}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : l3gateway
up                  : true
virtual_parent      : []

_uuid               : b40945ed-1a00-42f4-9633-1533bec96fcd
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : 64340a5b-8d18-4b8e-b018-4647127bf5a1
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls1-vm1
mac                 : ["00:00:00:00:00:03 10.10.10.2"]
nat_addresses       : []
options             : {}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : ""
up                  : true
virtual_parent      : []

_uuid               : 2d645235-1cc3-4c58-b636-f46279d2a8ad
chassis             : b0261728-db55-4e0b-bfd5-b930081010fc
datapath            : 4c0b0089-4cbf-4c0f-b84c-121dfe05bf85
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lsjoin-lr2
mac                 : ["00:00:00:00:00:06"]
nat_addresses       : []
options             : {l3gateway-chassis=master, peer=lr2-lsjoin}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : l3gateway
up                  : true
virtual_parent      : []

_uuid               : 6e7e2d25-771f-4271-a866-2e5ddde07876
chassis             : []
datapath            : 0d83daee-014d-4754-b4d4-540c844c4925
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lr1-ls1
mac                 : ["00:00:00:00:00:01 10.10.10.1/24"]
nat_addresses       : []
options             : {ipv6_prefix="false", ipv6_prefix_delegation="false", peer=ls1-lr1}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : patch
up                  : false
virtual_parent      : []

_uuid               : 2a768ec6-80a5-46cd-a212-09ab0b220a99
chassis             : []
datapath            : 64340a5b-8d18-4b8e-b018-4647127bf5a1
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls1-lr1
mac                 : ["00:00:00:00:00:01"]
nat_addresses       : []
options             : {peer=lr1-ls1}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : patch
up                  : false
virtual_parent      : []

_uuid               : c4e22a17-e250-484c-a36c-6c63eb9e2cce
chassis             : 29a2b734-b27b-4dd9-b1ae-935292757377
datapath            : 8567793f-7752-4bb7-80ab-b2227cccaa7d
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls2-vm2
mac                 : ["00:00:00:00:00:04 10.10.20.3"]
nat_addresses       : []
options             : {}
parent_port         : []
tag                 : []
tunnel_key          : 3
type                : ""
up                  : true
virtual_parent      : []

_uuid               : 039effef-f3fa-4875-ac6d-10384c5d4aa5
chassis             : []
datapath            : 0d83daee-014d-4754-b4d4-540c844c4925
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lr1-ls2
mac                 : ["00:00:00:00:00:02 10.10.20.1/24"]
nat_addresses       : []
options             : {ipv6_prefix="false", ipv6_prefix_delegation="false", peer=ls2-lr1}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : patch
up                  : false
virtual_parent      : []

_uuid               : 31623857-2362-431b-a897-353485baf00f
chassis             : []
datapath            : 8567793f-7752-4bb7-80ab-b2227cccaa7d
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls2-lr1
mac                 : ["00:00:00:00:00:02"]
nat_addresses       : []
options             : {peer=lr1-ls2}
parent_port         : []
tag                 : []
tunnel_key          : 1
type                : patch
up                  : false
virtual_parent      : []

_uuid               : 76dda92f-079c-4daa-b19e-d6d64c4337a3
chassis             : 29a2b734-b27b-4dd9-b1ae-935292757377
datapath            : 8567793f-7752-4bb7-80ab-b2227cccaa7d
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : ls2-vm1
mac                 : ["00:00:00:00:00:03 10.10.20.2"]
nat_addresses       : []
options             : {}
parent_port         : []
tag                 : []
tunnel_key          : 2
type                : ""
up                  : true
virtual_parent      : []

_uuid               : 323ff357-11f8-42ab-9396-f5c79c1d4f7f
chassis             : []
datapath            : 0d83daee-014d-4754-b4d4-540c844c4925
encap               : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
logical_port        : lr1-lsjoin
mac                 : ["00:00:00:00:00:05 10.10.30.1/24"]
nat_addresses       : []
options             : {ipv6_prefix="false", ipv6_prefix_delegation="false", peer=lsjoin-lr1}
parent_port         : []
tag                 : []
tunnel_key          : 3
type                : patch
up                  : false
virtual_parent      : []

查看ovsdb信息

root@master:~# ovs-vsctl show
a891c32e-dec1-4168-8e17-1516fa55341b
    Bridge br-int
        fail_mode: secure
        Port ovn-node1-0
            Interface ovn-node1-0
                type: geneve
                options: {csum="true", key=flow, remote_ip="192.168.122.21"}
        Port br-int
            Interface br-int
                type: internal
        Port vm1
            Interface vm1
                type: internal
        Port patch-br-int-to-lslocal-localnet
            Interface patch-br-int-to-lslocal-localnet
                type: patch
                options: {peer=patch-lslocal-localnet-to-br-int}
        Port vm2
            Interface vm2
                type: internal
    Bridge br-ens8
        Port patch-lslocal-localnet-to-br-int
            Interface patch-lslocal-localnet-to-br-int
                type: patch
                options: {peer=patch-br-int-to-lslocal-localnet}
        Port ens8
            Interface ens8
        Port br-ens8
            Interface br-ens8
                type: internal

root@node1:~# ovs-vsctl show
c9da68e6-3d3f-49a3-b649-9f0345985648
    Bridge br-int
        fail_mode: secure
        Port vm1
            Interface vm1
                type: internal
        Port br-int
            Interface br-int
                type: internal
        Port vm2
            Interface vm2
                type: internal
        Port ovn-master-0
            Interface ovn-master-0
                type: geneve
                options: {csum="true", key=flow, remote_ip="192.168.122.20"}
    Bridge br-ens8
        Port br-ens8
            Interface br-ens8
                type: internal
        Port ens8
            Interface ens8

也可参考:ovn 通过网关虚拟路由器连接外部网络 - 简书 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ovn 通过网关虚拟路由器连接外部网络 的相关文章

  • Testing ovn manually based on LXD (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 05 27 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list 43 43 43 43
  • ovn metadata (by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 08 25 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 问题 客户描述虚机的metadata功能偶尔有问题 xff0c
  • devstack安装OpenStack Pike版本 (OVN+VLAN)

    控制节点配置文件 Sample DevStack local conf This sample file is intended to be used for your typical DevStack environment that 3
  • OVN简介

    三 OVN入门 3 1 OVN简介 Open vSwitch xff08 OVS xff09 是一款开源的 虚拟交换机 xff0c 控制协议方面它不但支持OpenFlow的所有特性而且扩展了部分OpenFlow的功能 xff1b Overl
  • OVN – OVN OpenStack(二)

    OpenStack networking ovn 项目为Neutron提供了一个基于ML2的OVN插件 xff0c 它使用OVN组件代替了各种Neutron的Python agent xff0c 也不再使用 RabbitMQ xff0c 而
  • OVN-软件定义网络(一)

    前言 测试环境是用github上开源代码搭建 编译完成后进行如下操作 环境配置 控制节点 创建逻辑交换机 ovn nbctl db 61 unix run openvswitch ovnnb db sock ls add ly ls 在逻辑
  • openstack和ovn架构

  • ovn-architecture

    参考 文章目录 1 Name2 Description2 1 Information Flow in OVN OVN中的信息流向 2 2 Chassis Setup2 3 Logical Networks2 4 Life Cycle of
  • OVN入门

    参考链接 如何借助 OVN 来提高 OVS 在云计算环境中的性能 OVN简介 Open vSwitch Documentation OVSDB介绍及在OpenDaylight中的调用 OpenDaylight即将迈入 七年之痒 xff1f
  • openstack/ovn环境,虚拟机连接外网设置

    当使用OVN来做为neutron的后端 xff0c 来实现SDN方案时 xff0c 我们也会需要虚拟机连接外网 xff0c 本文记录操作方法 xff1a 环境 xff1a pike版本 xff0c 创建好net1 xff0c 子网subne
  • ovn 架构介绍

    ovn是什么就不多说了 xff0c 网上有很多介绍的文章 这里主要是学习下ovn的架构 xff0c 并通过实践认识一下ovn ovn代码最初是在ovs源码下 xff0c 但是从版本v2 13 0开始 xff0c ovn被移除ovs xff0
  • ovn 通过网关虚拟路由器连接外部网络

    本文实验如何通过ovn的网关逻辑路由器将ovn网络连接到外部网络 前面讲过ovn的逻辑路由器是分布式的 xff0c 这意味着它没有绑定到某个节点上 xff0c 而是存在于所有节点上的 xff0c 同时它是通过每个节点的openflow流表来
  • OpenStack Neutron 对接OVN 使用 networking-ovn

    OVN是OVS的控制平面 xff0c 它给 OVS 增加了对虚拟网络的原生支持 xff0c 大大提高了 OVS 在实际应用环境中的性能和规模 使用neutron 配置mechanism drivers 为OVN时 xff0c 会有以下优点
  • 【kubernetes/k8s概念】OVN NorthBound DB 及 ovn-nbctl 命令

    OVN 北向数据库 xff08 OVN Northbound DB xff09 是 OVN 和 CMS 之间的接口 xff0c Northbound DB 的数据几乎都是由 CMS 产生的 xff0c ovn northd 监听这个数据库的
  • 【kubernetes/k8s概念】OVN SouthBound DB 及 ovn-sbctl 命令

    OVN 南向数据库 xff08 OVN Southbound DB xff09 xff0c 南向数据库是系统的中心 xff0c 客户端是上层的 ovn northd 和下层运行在每一个传输节点的 ovn controller 南向数据库包括
  • OVN 简介

    文章目录 OVN 介绍OVN的架构OVN 应用OVN 信息流配置数据状态信息 Chassis 设置逻辑网络 OVN 介绍 Open vSwitch xff08 OVS xff09 是一款开源的 虚拟交换机 xff0c 控制协议方面它不但支持
  • OVN 流表基础 -- 基于 kubeOVN (一)

    文章目录 Kubectl ko 工具分析Nbctl SbctlTrace Ovn 流表MatchActionRegisterTable 介绍Logical Switch DatapathsLogical Router Datapaths K
  • OVN架构原理

    ovn architecture 本文最初整理在我的github上SDN Learning notes 本文翻译自ovs官方手册 xff0c 有删减 OVN架构 OVN xff08 即Open Virtual Network xff09 是
  • OVN实验----L3互通

    概述 在L2互通基础上 xff0c 完成跨网段互访 物理拓扑 如上一个实验OVN实验 L2互通 逻辑拓扑 按照上个实验OVN实验 L2互通 的操作方式 xff0c 再配置一组容器blue xff0c 网段192 168 2 0 24 配置完
  • Testing ovn manually based on LXD (by quqi99)

    作者 张华 发表于 2022 05 27 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list NAME STATE IPV4 IPV6 TYPE SNAPSHOTS

随机推荐