ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

拆解 OpenStack 虚拟网络!Neutron 底层原理 + OVN 组网实操

拆解 OpenStack 虚拟网络!Neutron 底层原理 + OVN 组网实操 OpenStack管理摘要本文系统介绍了OpenStack网络管理组件Neutron的核心原理与实践。首先对比物理网络与虚拟网络阐述Neutron对二层物理网络的抽象与管理。接着详细讲解Linux网络虚拟化关键技术包括网卡虚拟化TAP/TUN/VETH、交换机虚拟化Linux Bridge、Open vSwitch及网络隔离Network Namespace。在此基础上深入剖析Neutron的功能架构涵盖二层交换、三层路由、负载均衡与防火墙等核心服务并解析Network、Subnet、Port等基本概念。最后通过OVN网络实验演示了从外部网络创建、内网配置、路由器部署到实例创建与联通的完整流程验证了Neutron在软件定义网络中的实际应用。全文从理论到实践为理解OpenStack网络虚拟化提供了全面指导。OpenStack网络管理-neutron物理网络与虚拟网络区别Switch物理交换机vSwitch虚拟交换机NIC网络接口卡、网络适配器、网卡vNIC虚拟网卡Switch有很多品牌cisco、华为vSwitch有很多软件linuxbridge、ovs、ovn•Neutron最为核心的工作是对二层物理网络的抽象与管理物理服务器虚拟化后虚拟机的网络功能由虚拟网卡vNIC和虚拟交换机提供各个vNIC连接在vSwitch的端口上最后这些vSwitch通过物理服务器的物理网卡访问外部的物理网络。Linux网络虚拟化技术网卡虚拟化TAPTUNVETH PAIR交换机虚拟化linux bridgeopen vswitch网络隔离network namespaceLinux网卡虚拟化TAP/TUN/VETHTAP设备模拟一个二层的网络设备可以接收和发送二层网包TUN设备模拟一个三层的网络设备可以接收和发送三层网包VETH虚拟ethernet接口通常以pair的方式出现一端发出的网包会被另一端接收可以形成两个网桥之间的通道•TAP/TUN提供了一台主机内用户空间的数据传输机制。它虚拟了一套网络接口这套接口和物理的接口无任何区别可以配置IP可以路由流量不同的是它的流量只在主机内流通。•TAP/TUN有些许的不同TUN只操作三层的IP包而TAP操作二层的以太网帧。•Veth-Pair是成对出现的一种虚拟网络设备一端连接着协议栈一端连接着彼此数据从一端出从另一端进。它的这个特性常常用来连接不同的虚拟网络组件构建大规模的虚拟网络拓扑比如连接Linux Bridge、OVS、LXC容器等。一个很常见的案例就是它被用于OpenStack Neutron构建非常复杂的网络形态。Linux bridgeLinux bridge工作于二层的网络设备功能类似于物理交换机Bridge可以绑定Linux上的其他网络设备并将这些设备虚拟化为端口当一个设备被绑定到bridge时就相当于物理交换机端口插入了一条连接着终端的网线使用brctl命令配置Linux bridgebrctl addbr BRIDGEbrctl addif BRIDGE DEVICE•Linux Bridge结构如上图所示Bridge设备br0绑定了实际设备eth0与虚拟设备tap0和tap1但是对于Hypervisor的网络协议栈上层来说只能看到br0并不会关心桥接的细节。•当这些设备接收到数据包时会将其提交给br0决定数据包的去向br0会根据MAC地址与端口的映射关系进行转发。•因为Bridge工作在二层所以绑定在br0上的从设备eth0、tap0与tap1均不需要再设置IP地址对于上层路由器来说它们都位于同一子网因此只需为br0设置IP地址。因为br0具有自己的IP地址br0可以被加入路由表并利用它来发送数据但是最终实际的发送过程则是由某个从设备来完成。•即使eth0原本具有自己的IP地址但是在被绑定到br0上后它的IP地址会失效用户程序不能接收到这个IP地址的数据。只有目的地址为br0的IP地址的数据包才会被Linux接收。•brctl addbr BRIDGE表示添加BRIDGE。•brctl addif BRIDGE DEVICE表示添加接口到bridge。OVSOpen vSwitch是产品级的虚拟交换机Linux bridge更适用于小规模主机内部间通信场景Open vSwitch更适合于大规模、多主机间通信场景华为的FusionCompute用的就是DVS(基于EVSEVS基于OVS)Open vSwitch常用的命令ovs-vsctl add-br BRIDGEovs-vsctl add-port PORTovs-vsctl show BRIDGEovs-vsctl dump-ports-desc BRIDGEovs-vsctl dump-flows BRIDGE•Open vSwitch负责连接vNIC与物理网卡同时桥接同一物理Server内的各个vNIC。其实Linux Bridge已经能够很好地充当这样的角色为什么我们还需要Open vSwitch•因为Open vSwitch的引入使得云环境中对虚拟网络的管理及对网络状态和流量的监控变得更容易。•我们可以像配置物理交换机一样将接入Open vSwitch的各个VM分配到不同的VLAN中以实现网络的隔离。我们也可以在Open vSwitch端口上为VM配置QoS同时Open vSwitch也支持包括NetFlow、sFlow等很多标准的管理接口和协议我们可以通过这些接口完成流量监控等工作。•Open vSwitch在云环境中的各种虚拟化平台如Xen与KVM上实现了分布式的虚拟交换机Distributed Virtual Switch一个物理Server上的vSwitch可以透明地与另一个物理Server上的vSwitch连接在一起。Neutron功能概述从今天开始我们将学习 OpenStack 的 Networking ServiceNeutron。Neutron 的难度会比前面所有模块都大一些内容也多一些。为了帮助大家更好的掌握 Neutorn也会分析地更详细一些。Neutron 概述传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备而云环境下的网络已经变得非常复杂特别是在多租户场景里用户随时都可能需要创建、修改和删除网络网络的连通性和隔离不已经太可能通过手工配置来保证了。如何快速响应业务的需求对网络管理提出了更高的要求。传统的网络管理方式已经很难胜任这项工作而“软件定义网络software-defined networking, SDN”所具有的灵活性和自动化优势使其成为云时代网络管理的主流。Neutron 的设计目标是实现“网络即服务Networking as a Service”。为了达到这一目标在设计上遵循了基于 SDN 实现网络虚拟化的原则在实现上充分利用了 Linux 系统上的各种网络相关的技术。在这一章我们将讨论 Neutron 的功能和它的各个组件学习部署和配置 OpenStack 网络的不同方法会涉及软件和硬件设备多个层面。Neutron 功能Neutron 为整个 OpenStack 环境提供网络支持包括二层交换三层路由负载均衡防火墙和 VPN 等。Neutron 提供了一个灵活的框架通过配置无论是开源还是商业软件都可以被用来实现这些功能。二层交换 SwitchingNova 的 Instance 是通过虚拟交换机连接到虚拟二层网络的。Neutron 支持多种虚拟交换机包括 Linux 原生的 Linux Bridge 和 Open vSwitch。 Open vSwitchOVS是一个开源的虚拟交换机它支持标准的管理接口和协议。利用 Linux Bridge 和 OVSNeutron 除了可以创建传统的 VLAN 网络还可以创建基于隧道技术的 Overlay 网络比如 VxLAN 和 GRELinux Bridge 目前只支持 VxLAN。在后面章节我们会学习如何使用和配置 Linux Bridge 和 Open vSwitch。三层路由 RoutingInstance 可以配置不同网段的 IPNeutron 的 router虚拟路由器实现 instance 跨网段通信。router 通过 IP forwardingiptables 等技术来实现路由和 NAT。我们将在后面章节讨论如何在 Neutron 中配置 router 来实现 instance 之间以及与外部网络的通信。负载均衡 Load BalancingOpenstack 在 Grizzly 版本第一次引入了 Load-Balancing-as-a-ServiceLBaaS提供了将负载分发到多个 instance 的能力。LBaaS 支持多种负载均衡产品和方案不同的实现以 Plugin 的形式集成到 Neutron目前默认的 Plugin 是 HAProxy。我们会在后面章节学习 LBaaS 的使用和配置。防火墙 FirewallingNeutron 通过下面两种方式来保障 instance 和网络的安全性。Security Group通过 iptables 限制进出 instance 的网络包。**Firewall-as-a-Service**FWaaS限制进出虚拟路由器的网络包也是通过 iptables 实现。Neutron网络基本概念上次我们讨论了 Neutron 提供的功能接下来我们学习 Neutron 模块几个重要的概念。Neutron 管理的网络资源包括 Networksubnet 和 port下面依次介绍。networknetwork 是一个隔离的二层广播域。Neutron 支持多种类型的 network包括 local, flat, VLAN, VxLAN 和 GRE。locallocal 网络与其他网络和节点隔离。local 网络中的 instance 只能与位于同一节点上同一网络的 instance 通信local 网络主要用于单机测试。flatflat 网络是无 vlan tagging 的网络。flat 网络中的 instance 能与位于同一网络的 instance 通信并且可以跨多个节点。vlanvlan 网络是具有 802.1q tagging 的网络。vlan 是一个二层的广播域同一 vlan 中的 instance 可以通信不同 vlan 只能通过 router 通信。vlan 网络可跨节点是应用最广泛的网络类型。vxlanvxlan 是基于隧道技术的 overlay 网络。vxlan 网络通过唯一的 segmentation ID也叫 VNI与其他 vxlan 网络区分。vxlan 中数据包会通过 VNI 封装成 UDP 包进行传输。因为二层的包通过封装在三层传输能够克服 vlan 和物理网络基础设施的限制。gregre 是与 vxlan 类似的一种 overlay 网络。主要区别在于使用 IP 包而非 UDP 进行封装。不同 network 之间在二层上是隔离的。以 vlan 网络为例network A 和 network B 会分配不同的 VLAN ID这样就保证了 network A 中的广播包不会跑到 network B 中。当然这里的隔离是指二层上的隔离借助路由器不同 network 是可能在三层上通信的。network 必须属于某个 Project Tenant 租户Project 中可以创建多个 network。Project 与 network 之间是 1对多关系。subnetsubnet 是一个 IPv4 或者 IPv6 地址段。instance 的 IP 从 subnet 中分配。每个 subnet 需要定义 IP 地址的范围和掩码。network 与 subnet 是 1对多 关系。一个 subnet 只能属于某个 network一个 network 可以有多个 subnet这些 subnet 可以是不同的 IP 段但不能重叠。下面的配置是有效的network A subnet A-a: 10.10.1.0/24 {“start”: “10.10.1.1”, “end”: “10.10.1.50”}​ subnet A-b: 10.10.2.0/24 {“start”: “10.10.2.1”, “end”: “10.10.2.50”}但下面的配置则无效因为 subnet 有重叠networkA subnet A-a: 10.10.1.0/24 {“start”: “10.10.1.1”, “end”: “10.10.1.50”}​ subnet A-b: 10.10.1.0/24 {“start”: “10.10.1.51”, “end”: “10.10.1.100”}这里不是判断 IP 是否有重叠而是 subnet 的 CIDR 重叠都是 10.10.1.0/24。但是如果 subnet 在不同的 network 中CIDR 和 IP 都是可以重叠的比如network A subnet A-a: 10.10.1.0/24 {“start”: “10.10.1.1”, “end”: “10.10.1.50”}networkB subnet B-a: 10.10.1.0/24 {“start”: “10.10.1.1”, “end”: “10.10.1.50”}这里大家不免会疑惑 如果上面的IP地址是可以重叠的那么就可能存在具有相同 IP 的两个 instance这样会不会冲突 简单的回答是不会具体原因 因为 Neutron 的 router 是通过 Linux network namespace 实现的。network namespace 是一种网络的隔离机制。通过它每个 router 有自己独立的路由表。上面的配置有两种结果如果两个 subnet 是通过同一个 router 路由根据 router 的配置只有指定的一个 subnet 可被路由。如果上面的两个 subnet 是通过不同 router 路由因为 router 的路由表是独立的所以两个 subnet 都可以被路由。这里只是先简单做个说明我们会在后面三层路由的章节详细分析这种场景。portport 可以看做虚拟交换机上的一个端口。port 上定义了 MAC 地址和 IP 地址当 instance 的虚拟网卡 VIFVirtual Interface 绑定到 port 时port 会将 MAC 和 IP 分配给 VIF。subnet 与 port 是 1对多 关系。一个 port 必须属于某个 subnet一个 subnet 可以有多个 port。小节下面总结了 ProjectNetworkSubnetPort 和 VIF 之间关系。Project 1 : m Network 1 : m Subnet 1 : m Port 1 : 1 VIF m : 1 Instance下一节我们讨论 Neutron 的架构。Neutron架构前面我们讨论了 Neutron 的基本概念接下来我们开始分析 Neutron 的架构。Neutron 架构与 OpenStack 的其他服务的设计思路一样Neutron 也是采用分布式架构由多个组件子服务共同对外提供网络服务。Neutron 由如下组件构成Neutron Server对外提供 OpenStack 网络 API接收请求并调用 Plugin 处理请求。Plugin处理 Neutron Server 发来的请求维护 OpenStack 逻辑网络状态 并调用 Agent 处理请求。Agent处理 Plugin 的请求负责在 network provider 上真正实现各种网络功能。network provider提供网络服务的虚拟或物理网络设备例如 Linux BridgeOpen vSwitch 或者其他支持 Neutron 的物理交换机。QueueNeutron ServerPlugin 和 Agent 之间通过 Messaging Queue 通信和调用。Database存放 OpenStack 的网络状态信息包括 Network, Subnet, Port, Router 等。[rootcontroller ~(keystone_admin)]# mysqlWelcome to the MariaDB monitor. Commands end with;or\g. Your MariaDB connectionidis8516Server version:10.3.10-MariaDB MariaDB Server Copyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others. Typehelp;or\hforhelp. Type\ctoclearthe current input statement. MariaDB[(none)]use neutron;Reading table informationforcompletion of table andcolumnnames You can turn off this feature to get a quicker startup with-ADatabase changed MariaDB[neutron]show tables;-----------------------------------------|Tables_in_neutron|-----------------------------------------|address_scopes||agents||alembic_version||allowedaddresspairs||arista_provisioned_nets||arista_provisioned_tenants||arista_provisioned_vms||auto_allocated_topologies||bgp_peers||bgp_speaker_dragent_bindings||bgp_speaker_network_bindings||bgp_speaker_peer_bindings||bgp_speakers||brocadenetworks||brocadeports||cisco_csr_identifier_map||cisco_hosting_devices||cisco_ml2_apic_contracts||cisco_ml2_apic_host_links||cisco_ml2_apic_names||cisco_ml2_n1kv_network_bindings||cisco_ml2_n1kv_network_profiles||cisco_ml2_n1kv_policy_profiles||cisco_ml2_n1kv_port_bindings||cisco_ml2_n1kv_profile_bindings||cisco_ml2_n1kv_vlan_allocations||cisco_ml2_n1kv_vxlan_allocations||cisco_ml2_nexus_nve||cisco_ml2_nexusport_bindings||cisco_port_mappings||cisco_router_mappings||consistencyhashes||default_security_group||dnsnameservers||dvr_host_macs||externalnetworks||extradhcpopts||firewall_policies||firewall_rules||firewalls||flavors||flavorserviceprofilebindings||floatingipdnses||floatingips||ha_router_agent_port_bindings||ha_router_networks||ha_router_vrid_allocations||healthmonitors||ikepolicies||ipallocationpools||ipallocations||ipamallocationpools||ipamallocations||ipamsubnets||ipsec_site_connections||ipsecpeercidrs||ipsecpolicies||logs||lsn||lsn_port||maclearningstates||members||meteringlabelrules||meteringlabels||ml2_brocadenetworks||ml2_brocadeports||ml2_distributed_port_bindings||ml2_flat_allocations||ml2_geneve_allocations||ml2_geneve_endpoints||ml2_gre_allocations||ml2_gre_endpoints||ml2_nexus_vxlan_allocations||ml2_nexus_vxlan_mcast_groups||ml2_port_binding_levels||ml2_port_bindings||ml2_ucsm_port_profiles||ml2_vlan_allocations||ml2_vxlan_allocations||ml2_vxlan_endpoints||multi_provider_networks||network_segment_ranges||networkconnections||networkdhcpagentbindings||networkdnsdomains||networkgatewaydevicereferences||networkgatewaydevices||networkgateways||networkqueuemappings||networkrbacs||networks||networksecuritybindings||networksegments||neutron_nsx_network_mappings||neutron_nsx_port_mappings||neutron_nsx_router_mappings||neutron_nsx_security_group_mappings||nexthops||nsxv_edge_dhcp_static_bindings||nsxv_edge_vnic_bindings||nsxv_firewall_rule_bindings||nsxv_internal_edges||nsxv_internal_networks||nsxv_port_index_mappings||nsxv_port_vnic_mappings||nsxv_router_bindings||nsxv_router_ext_attributes||nsxv_rule_mappings||nsxv_security_group_section_mappings||nsxv_spoofguard_policy_network_mappings||nsxv_tz_network_bindings||nsxv_vdr_dhcp_bindings||nuage_net_partition_router_mapping||nuage_net_partitions||nuage_provider_net_bindings||nuage_subnet_l2dom_mapping||poolloadbalanceragentbindings||poolmonitorassociations||pools||poolstatisticss||portbindingports||portdataplanestatuses||portdnses||portforwardings||portqueuemappings||ports||portsecuritybindings||portuplinkstatuspropagation||providerresourceassociations||provisioningblocks||qos_bandwidth_limit_rules||qos_dscp_marking_rules||qos_fip_policy_bindings||qos_minimum_bandwidth_rules||qos_network_policy_bindings||qos_policies||qos_policies_default||qos_port_policy_bindings||qos_router_gw_policy_bindings||qospolicyrbacs||qosqueues||quotas||quotausages||reservations||resourcedeltas||router_extra_attributes||routerl3agentbindings||routerports||routerroutes||routerrules||routers||securitygroupportbindings||securitygrouprbacs||securitygrouprules||securitygroups||segmenthostmappings||serviceprofiles||sessionpersistences||standardattributes||subnet_service_types||subnetpoolprefixes||subnetpools||subnetroutes||subnets||subports||tags||trunks||tz_network_bindings||vcns_router_bindings||vips||vpnservices|-----------------------------------------171rowsinset(0.001sec)OVN网络整体实验[rootcontroller ~]# source keystonerc_admin[rootcontroller ~(keystone_admin)]# openstack network agent list-------------------------------------------------------------------------------------------------------------------------------------|ID|Agent Type|Host|Availability Zone|Alive|State|Binary|-------------------------------------------------------------------------------------------------------------------------------------|6e7f51ef-117d-4b7f-b650-599aa5a3cfd7|OVN Controller agent|compute||:-)|UP|ovn-controller||b1374481-f227-5e89-9a3f-8a3708d59251|OVN Metadata agent|compute||:-)|UP|neutron-ovn-metadata-agent||46cd64c9-2f35-4dfb-9351-e0b1693daf8b|OVN Controller agent|controller||:-)|UP|ovn-controller||497883dc-f0f1-5780-87b4-630075557d30|OVN Metadata agent|controller||:-)|UP|neutron-ovn-metadata-agent|-------------------------------------------------------------------------------------------------------------------------------------确认配置[rootcontroller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini#按G跳到末尾[ml2]type_driversgeneve,flattenant_network_typesgenevemechanism_driversovnpath_mtu0extension_driversport_security,qos[securitygroup]enable_security_groupTrue[ml2_type_geneve]max_header_size38vni_ranges10:100[ml2_type_flat]flat_networks*[ovn]ovn_nb_connectiontcp:192.168.108.10:6641ovn_sb_connectiontcp:192.168.108.10:6642ovn_metadata_enabledTrue创建外部网络#查看现象[rootcontroller ~]# ovn-nbctl showswitch e69d7e37-9a0d-4abe-81c8-9d10c2246178(neutron-e79063ae-1291-42b2-8519-ec0ce0a421e1)(aka waiwang)port 43b284b0-ebc8-4bd3-8c59-77dcec8d33dd type: localport addresses:[fa:16:3e:be:d3:41 192.168.108.100]port provnet-50a84802-b570-4cad-be3e-cb934c259c48 type: localnet addresses:[unknown]创建内网neiwang-1,192.168.11.0/24查看现象[rootcontroller ~]# ovn-nbctl showswitch 9e269a0c-5049-4c20-b602-ce42d722017c(neutron-c5a25fa7-559f-4e62-8bf0-7ebcd8c8a1f1)(aka neiwang-1)port 3b975511-7c63-495e-969c-1424e69770dc type: localport addresses:[fa:16:3e:dd:ea:9d 192.168.11.2]switch e69d7e37-9a0d-4abe-81c8-9d10c2246178(neutron-e79063ae-1291-42b2-8519-ec0ce0a421e1)(aka waiwang)port 43b284b0-ebc8-4bd3-8c59-77dcec8d33dd type: localport addresses:[fa:16:3e:be:d3:41 192.168.108.100]port provnet-50a84802-b570-4cad-be3e-cb934c259c48 type: localnet addresses:[unknown]创建路由器router1连接内网与外网观察现象[rootcontroller ~]# ovn-nbctl showswitch 9e269a0c-5049-4c20-b602-ce42d722017c(neutron-c5a25fa7-559f-4e62-8bf0-7ebcd8c8a1f1)(aka neiwang-1)port 9da6f7af-22e3-44fc-8465-90334f8abeea type: router router-port: lrp-9da6f7af-22e3-44fc-8465-90334f8abeea port 3b975511-7c63-495e-969c-1424e69770dc type: localport addresses:[fa:16:3e:dd:ea:9d 192.168.11.2]switch e69d7e37-9a0d-4abe-81c8-9d10c2246178(neutron-e79063ae-1291-42b2-8519-ec0ce0a421e1)(aka waiwang)port 43b284b0-ebc8-4bd3-8c59-77dcec8d33dd type: localport addresses:[fa:16:3e:be:d3:41 192.168.108.100]port c0354999-1e15-436f-b15f-be2d3b17c5b4 type: router router-port: lrp-c0354999-1e15-436f-b15f-be2d3b17c5b4 port provnet-50a84802-b570-4cad-be3e-cb934c259c48 type: localnet addresses:[unknown]router 9374d9e7-b8b0-4d6e-924d-c9fdef6662e5(neutron-a75adc8f-9668-4fe1-b6eb-b4573d574ae0)(aka router1)port lrp-9da6f7af-22e3-44fc-8465-90334f8abeea mac:fa:16:3e:78:18:6cnetworks:[192.168.11.1/24]port lrp-c0354999-1e15-436f-b15f-be2d3b17c5b4 mac:fa:16:3e:82:b8:23networks:[192.168.108.185/24]gateway chassis:[46cd64c9-2f35-4dfb-9351-e0b1693daf8b]nat d6fae190-e948-475c-b5b1-a9258a8b7c65 external ip:192.168.108.185logical ip:192.168.11.0/24type:snat创建两实例绑到neiwang-1创建实例需要(镜像规格网络) 镜像 规格自定义网络使用neiwang-1此处网络一定要选择内网neiwang-1效果如下VM1 ping 通 VM2观察OVN现象[rootcontroller ~]# ovn-nbctl showswitch 9e269a0c-5049-4c20-b602-ce42d722017c(neutron-c5a25fa7-559f-4e62-8bf0-7ebcd8c8a1f1)(aka neiwang-1)port 0e42719e-b450-4fbf-a222-be6402b2bb93 addresses:[fa:16:3e:33:e8:8b 192.168.11.4]port 9da6f7af-22e3-44fc-8465-90334f8abeea type: router router-port: lrp-9da6f7af-22e3-44fc-8465-90334f8abeea port 3ff7bcb4-c9be-4e6d-b14c-cff503adfae6 addresses:[fa:16:3e:bd:e5:c5 192.168.11.169]port 3b975511-7c63-495e-969c-1424e69770dc type: localport addresses:[fa:16:3e:dd:ea:9d 192.168.11.2]switch e69d7e37-9a0d-4abe-81c8-9d10c2246178(neutron-e79063ae-1291-42b2-8519-ec0ce0a421e1)(aka waiwang)port 43b284b0-ebc8-4bd3-8c59-77dcec8d33dd type: localport addresses:[fa:16:3e:be:d3:41 192.168.108.100]port c0354999-1e15-436f-b15f-be2d3b17c5b4 type: router router-port: lrp-c0354999-1e15-436f-b15f-be2d3b17c5b4 port provnet-50a84802-b570-4cad-be3e-cb934c259c48 type: localnet addresses:[unknown]router 9374d9e7-b8b0-4d6e-924d-c9fdef6662e5(neutron-a75adc8f-9668-4fe1-b6eb-b4573d574ae0)(aka router1)port lrp-9da6f7af-22e3-44fc-8465-90334f8abeea mac:fa:16:3e:78:18:6cnetworks:[192.168.11.1/24]port lrp-c0354999-1e15-436f-b15f-be2d3b17c5b4 mac:fa:16:3e:82:b8:23networks:[192.168.108.185/24]gateway chassis:[46cd64c9-2f35-4dfb-9351-e0b1693daf8b]nat d6fae190-e948-475c-b5b1-a9258a8b7c65 external ip:192.168.108.185logical ip:192.168.11.0/24type:snat
返回列表