
文章目录OpenStack网络管理Linux网络虚拟化基础物理网络与虚拟化网络Linux网络虚拟化实现技术Linux网卡虚拟化-TAP/TUN/VETHLinux交换机虚拟化-Linux bridgeLinux交换机虚拟化-Open vSwitchLinux网络隔离-Network NamespaceNeutron简介网络服务NeutronNeutron在OpenStack中的定位Neutron作用Neutron与其他服务的交互关系Neutron概念Neutron概念Neutron概念-NetworkNeutron概念-SubnetNeutron概念-PortNeutron概念-RouterNeutron概念-Fixed IPNeutron概念-Floating IPNeutron概念-Physical NetworkNeutron概念-Provider NetworkNeutron概念-Self-service NetworkNeutron概念-External NetworkNeutron概念-Security GroupNeutron架构Neutron架构图Neutron架构说明Neutron组件-Neutron ServerNeutron组件-Core PluginNeutron组件-Service PluginNeutron组件-AgentNeutron典型操作及流程Neutron操作-常用命令Neutron网络典型场景介绍Linux Bridge Flat网络Linux Bridge VLAN网络Linux Bridge VLAN实现Linux Bridge VLAN场景说明使用Fixed IP的虚拟机南北流量分析同一个网络中虚拟机东西流量分析不同网络中虚拟机东西流量Neutron网络流量分析Open vSwitch VXLAN网络Open vSwitch VXLAN实现Open vSwitch VXLAN场景说明使用Fixed IP的虚拟机南北流量从外部访问带Floating IP的虚拟机同一个网络中虚拟机东西流量不同网络中虚拟机东西流量OpenStack网络管理Linux网络虚拟化基础物理网络与虚拟化网络[!tip]Neutron最为核心的工作是对二层物理网络的抽象与管理物理服务器虚拟化后虚拟机的网络功能由虚拟网卡vNIC和虚拟交换机提供各个vNIC连接在vSwitch的端口上最后这些vSwitch通过物理服务器的物理网卡访问外部的物理网络。Linux网络虚拟化实现技术分类技术网卡虚拟化TAP、TUN、VETH交换机虚拟化Linux Bridge、Open vSwitch网络隔离Network NamespaceLinux网卡虚拟化-TAP/TUN/VETHTAP设备模拟一个二层的网络设备可以接收和发送二层网包TUN设备模拟一个三层的网络设备可以接收和发送三层网包VETH虚拟ethernet接口通常以pair的方式出现一端发出的网包会被另一端接收可以形成两个网桥之间的通道[!tip]TAP/TUN提供了一台主机内用户空间的数据传输机制。它虚拟了一套网络接口这套接口和物理的接口无任何区别可以配置IP可以路由流量不同的是它的流量只在主机内流通。TAP/TUN有些许的不同TUN只操作三层的IP包而TAP操作二层的以太网帧。Veth-Pair是成对出现的一种虚拟网络设备一端连接着协议栈一端连接着彼此数据从一端出从另一端进。它的这个特性常常用来连接不同的虚拟网络组件构建大规模的虚拟网络拓扑比如连接Linux Bridge、OVS、LXC容器等。一个很常见的案例就是它被用于OpenStack Neutron构建非常复杂的网络形态。Linux交换机虚拟化-Linux bridgeLinux bridge工作于二层的网络设备功能类似于物理交换机Bridge可以绑定Linux上的其他网络设备并将这些设备虚拟化为端口当一个设备被绑定到bridge时就相当于物理交换机端口插入了一条连接着终端的网线使用brctl命令配置Linux bridgebrctl addbr BRIDGEbrctl addif BRIDGE DEVICE[!tip]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。Linux交换机虚拟化-Open vSwitchOpen vSwitch是产品级的虚拟交换机Linux bridge更适用于小规模主机内部间通信场景Open vSwitch更适合于大规模、多主机间通信场景Open vSwitch常用的命令ovs-vsctl add-br BRIDGEovs-vsctl add-port PORTovs-vsctl show BRIDGEovs-vsctl dump-ports-desc BRIDGEovs-vsctl dump-flows BRIDGE[!tip]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连接在一起。Linux网络隔离-Network NamespaceNetwork namespace能创建多个隔离的网络空间它们有独自的网络配置信息例如网络设备、路由表、iptables等不同网络空间中的虚拟机运行的时候仿佛自己就在独立的网络中[!tip]Network Namespace通常与VRFVirtual Routing Forwarding虚拟路由和转发一起工作VRF是一种IP技术允许路由表的多个实例同时在同一路由器上共存。使用VETH可以连接两个不同网络命名空间使用Bridge可以连接多个不同网络命名空间。Neutron简介网络服务Neutron负责管理虚拟网络专注于为OpenStack提供网络即服务首次出现在OpenStack的Folsom版本中依赖Keystone认证服务[!tip]Neutron基于软件定义网络的思想实现了网络虚拟化下的资源管理。Neutron的设计目标是实现网络即服务NaaS在设计上遵循了基于SDN实现网络虚拟化的原则在实现上充分利用了Linux系统上的各种网络相关的技术。Neutron在OpenStack中的定位OpenStack Neutron是一个SDN网络项目专注于在虚拟计算环境中提供网络即服务NaaSNeutron允许用户创建由其他OpenStack服务管理的接口设备并将其连接到网络[!tip]Neutron是一个OpenStack项目用于在由其他OpenStack服务例如nova管理的接口设备例如vNIC之间提供“网络连接即服务”。[!tip]OpenStack Networking neutron允许您创建由其他OpenStack服务管理的接口设备并将其连接到网络。可以实施插件以适应不同的网络设备和软件为OpenStack架构和部署提供灵活性。Neutron作用Neutron管理OpenStack环境中虚拟网络基础设施VNI和物理网络基础设施PNI的访问层面的所有网络方面Neutron提供Network、Subnet、Router作为抽象对象每个抽象对象都具有模仿其物理对应物的功能Network包含SubnetRouter在不同Subnet和Network之间路由流量[!tip]实际上Neutron仅仅是一个管理系统/控制系统它本身并不能实现任何网络功能它仅仅是为Linux相关功能做一个配置或者驱动而已。本质上Neutron是借助Linux来实现网络功能的。OpenStack所在的整个物理网络在Neutron中被泛化为网络资源池通过对物理网络资源进行灵活的划分与管理Neutron能够为同一物理网络上的每个租户提供独立的虚拟网络环境。如上图所示在Neutron网络结构中首先应该至少有一个由管理员所创建的外部网络对象用来负责OpenStack环境与Internet的连接然后租户可以创建自己的私有的内部网络并在其中创建虚拟机。为了使内部网络中的虚拟机能够访问互联网必须创建一个路由器将内部网络连接到外部网络。Network、Subnet、Router下面会详细讲解。Neutron与其他服务的交互关系Neutron依赖Keystone认证服务Neutron负责提供通过Nova模块创建的计算实例启动时所连接到的虚拟或物理网络Neutron负责提供Ironic需要的PXE网络Neutron概念Neutron概念Neutron是一种虚拟网络服务为OpenStack计算提供网络连通和寻址服务为了便于操作管理Neutron对网络进行了抽象有如下基本管理对象NetworkSubnetPortRouterFloating IPNeutron概念-NetworkNetwork网络一个隔离的、虚拟二层广播域也可看成一个Virtual Switch或者Logical SwitchNeutron支持多种类型的Network包括 Local、Flat、 VLAN、 VXLAN 和 GRE[!tip]Local与其他网络和节点隔离。Local网络中的虚拟机只能与位于同一节点上同一网络的虚拟机通信Local网络主要用于单机测试。Flat无VLAN tagging的网络。Flat网络中虚拟机能与位于同一网络的虚拟机通信并可以跨多个节点。VLAN802.1q tagging网络。VLAN是一个二层的广播域同一VLAN中的虚拟机可以通信不同VLAN只能通过Router通信。VLAN网络可跨节点是应用最广泛的网络类型。VXLAN基于隧道技术的overlay网络。VXLAN网络通过唯一的segmentation ID也叫 VNI与其他VXLAN网络区分。VXLAN中数据包会通过VNI封装成UDP包进行传输。因为二层的包通过封装在三层传输能够克服VLAN和物理网络基础设施的限制。GRE与VXLAN类似的一种overlay网络主要区别在于使用IP包而非UDP进行封装。生产环境中一般使用的是VLAN、VXLAN或GRE网络。Neutron概念-SubnetSubnet子网一个IPv4或者IPv6地址段。虚拟机的IP从Subnet中分配。每个Subnet需要定义IP地址的范围和掩码Subnet必须与Network关联Subnet可选属性DNS网关IP静态路由Neutron概念-PortPort端口逻辑网络交换机上的虚拟交换端口虚拟机通过Port附着到Network上Port可以分配IP地址和Mac地址Neutron概念-RouterRouter路由器连接租户内同一Network或不同Network之间的子网以及连接内外网Neutron概念-Fixed IPFixed IP固定IP分配到每个端口上的IP类似于物理环境中配置到网卡上的IPNeutron概念-Floating IPFloating IP浮动IPFloating IP是从External Network创建的一种特殊Port可以将Floating IP绑定到任意Network中的Port上底层会做NAT转发将发送给Floating IP的流量转发到该Port对应的Fixed IP上外界可以通过Floating IP访问虚拟机虚拟机也可以通过Floating IP访问外界Neutron概念-Physical NetworkPhysical Network物理网络在物理网络环境中连接OpenStack不同节点的网络每个物理网络可以支持Neutron中的一个或多个虚拟网络Neutron概念-Provider NetworkProvider Network由OpenStack管理员创建的直接对应于数据中心现有物理网络的一个网段Provider Network通常使用VLAN或者Flat模式可以在多个租户之间共享[!tip]Provider Network由OpenStack管理员创建的直接对应于数据中心现有物理网络的一个网段。Provider Network通常使用VLAN或者Flat模式可以在多个租户之间共享。Provider Network 是基于物理网络创建的。Provider Network由OpenStack管理员通过Neutron创建并用来映射一个外部网络外部网络并不在Neutron的管理范围内因此Provider Network的作用就是将Neutron内部的虚拟机或网络通过实现的映射与外部网络联通。Neutron概念-Self-service NetworkSelf-service Network自助服务网络也叫租户网络或项目网络由OpenStack租户创建的完全虚拟的只在本网络内部连通不能在租户间共享Self-service Network通常使用VXLAN或者GRE模式可以通过Virtual Router的SNAT与Provider Network 通信[!tip]不同Self-service Network中的网段可以相同类似于物理环境中不同公司的内部网络。Self-service Network如果需要和外部物理网络通信需要通过Router类似于物理环境中公司上网需要通过路由器或防火墙。所以这里的Self-service Network类似于我们在真实网络中常常说的私网。Neutron概念-External NetworkExternal Network外部网络也叫公共网络一种特殊的Provider Network连接的物理网络与数据中心或Internet相通网络中的Port可以访问外网一般将租户的Virtual Router连接到该网络并创建Floating IP绑定虚拟机实现虚拟机与外网通信[!tip]External Network类似于物理环境中直接使用公网IP网段不同的是OpenStack中External Network对应的物理网络不一定能直连Internet有可能只是数据中心的一个内部私有网络。Neutron概念-Security GroupSecurity Group安全组安全组是作用在neutron port上的一组策略规定了虚拟机入口和出口流量的规则安全组基于Linux iptables实现安全组默认拒绝所有流量只有添加了放行规则的流量才允许通过每个OpenStack项目中都有一个default默认安全组默认包含如下规则拒绝所有入口流量、允许所有出口流量[!tip]在安全组中可以基于不同的协议不同的端口号不同的目的和源地址进行策略配置。Neutron架构Neutron架构图[!tip]Neutron 架构原则统一API核心部分最小化可插入式的开放架构可扩展Message QueueNeutron-server使用Message Queue与其他Neutron agents进行交换消息但是这个Message Queue不会用于Neutron-server与其他OpenStack组件如nova 进行交换消息。L2 Agent负责连接端口ports和设备使他们处于共享的广播域broadcast domain。通常运行在Hypervisor上。L3 Agent负责连接tenant网络到数据中心或连接到Internet。在真实的部署环境中一般都需要多个L3 Agent同时运行。[!tip]DHCP agent用于自动配置虚拟机网络。Advanced Service提供LB、Firewall和VPN等服务。Neutron架构说明Neutron的架构是基于插件的不同的插件提供不同的网络服务主要包含如下组件组件说明Neutron Server对外提供网络API并调用Plugin处理请求Plugin处理Neutron server的请求维护网络状态并调用Agent处理请求Agent处理Plugin的请求调用底层虚拟或物理网络设备实现各种网络功能Neutron ServerCore PluginService PluginL3 Service PluginLB Service PluginFirewall Service PluginVPN Service Plugin各种AgentL2 ovs-agentL3 AgentDHCP AgentMetaData AgentNeutron组件-Neutron ServerNeutron Server APIs PluginsAPI定义各类网络服务Plugin实现各类网络服务[!tip]从这张Neutron Server架构图中可以总结出Neutron Server APIs PluginsAPI定义各类网络服务例如subnet、port等Plugin实现各类网络服务例如Router、LBaaS、 FWaaS、 SecurityGroups等通过这种方式可以自由对接不同网络后端能力。Neutron组件-Core PluginCore Plugin主要是指ML2 Plugin是一个开放性框架在一个plugin下可以集成各个厂家、各种后端技术支持的Layer 2网络服务通过Type Driver和Mechanism Driver调用不同的底层网络技术实现二层互通[!tip]ML2 Modular Layer 2。Core plugin 提供基础的网络功能使用不同的drivers调用不同的底层网络实现技术。ML2 Plugin的Drivers主要分为以下两种Type Driver定义了网络类型每种网络类型对应一个Type DriverMechanism Driver对接各种二层网络技术和物理交换设备如OVSLinux Bridge等。Mechanism Driver从Type Driver获取相关的底层网络信息确保对应的底层技术能够根据这些信息正确配置二层网络。Neutron组件-Service PluginService Plugin用于实现高阶网络服务例如路由、负载均衡、防火墙和VPN服务等[!tip]L3 Service Plugin主要提供路由浮动IP服务等。Neutron组件-AgentNeutron Agent向虚拟机提供二层和三层的网络连接、完成虚拟网络和物理网络之间的转换、提供扩展服务等Neutron典型操作及流程Neutron操作-常用命令neutron net-createneutron net-listneutron subnet-listneutron port-createneutron router-interface-addneutron agent-list[!tip]Neutron操作例如neutron net-create创建网络neutron net-list查看网络列表信息neutron subnet-list查看子网列表信息neutron agent-list 查看代理列表信息neutron port-create创建端口neutron router-interface-add添加路由器接口等。更多命令请大家进入动手实验-Neutron操作大家可以先使用help命令查看Neutron命令的具体使用方法主要包括如何管理网络、子网、端口、路由器、浮动IP、安全组及规则、以及虚拟机实例访问测试等。Neutron网络典型场景介绍Neutron支持多种多样的网络技术和类型可以自由组合各种网络模型如下两种网络模型是OpenStack生产环境中常用的Linux Bridge Flat/VLAN网络仅提供简单的网络互通虚拟网络、路由、负载均衡等由物理设备提供网络简单、高效适合中小企业私有云网络场景Open vSwitch VXLAN网络提供多租户、大规模网络隔离能力适合大规模私有云和公有云网络场景Linux Bridge Flat网络Linux Bridge Flat是最简单的网络模型直接使用现有物理网络配置左图显示了一个未标记平面网络的组件和连接此图省略了控制节点因为控制节点不处理实例网络流量[!tip]Flat网络类似于使用网线直接连接物理网络OpenStack不负责网络隔离。图中interface 2不带VLAN tag。Linux Bridge VLAN网络此图描述了两个标记VLAN网络的组件之间的虚拟连接。本质上每个网络都使用一个单独的网桥该网桥包含提供商物理网络接口上的VLAN子接口上的一个端口Linux Bridge VLAN支持现有物理网络VLAN隔离此图省略了控制节点因为控制节点不处理实例网络流量[!tip]图中interface 2需通过多个VLAN连接的物理交换机一般需配置trunk模式并允许这些VLAN通过。Linux Bridge VLAN实现使用Linux Bridge VLAN网络时ML2的Type Driver为VLANML2的Mechanism Driver为Linux BridgeL2 Agent为Linux BridgeLinux Bridge VLAN场景说明使用Linux Bridge VLAN实现Provider Network网络流量可以分为如下几种南北向流量虚拟机和外部网络例如Internet通信的流量东西向流量虚拟机之间的流量Provider Network和外部网络之间的流量由物理网络设备负责交换和路由后续的网络流量分析基于如下示例Provider network 1 VLANVLAN 101 taggedIP 地址段203.0.113.0/24网关203.0.113.1 物理网络设备上Provider network 2 VLANVLAN 102 taggedIP地址段192.0.2.0/24网关192.0.2.1vRouter端口上使用Fixed IP的虚拟机南北流量分析场景说明虚拟机运行在计算节点1上使用Provider network 1虚拟机将数据包发送到Internet上的主机[!tip]以下步骤涉及计算节点1虚拟机数据包由虚拟网卡1通过veth pair转发到Provider Bridge上的端口2Provider Bridge上的安全组规则3检查防火墙和记录连接跟踪provider Bridge上的VLAN子接口4将数据包转发到物理网卡5物理网卡5将数据包打上VLAN tag 101并将其转发到物理交换机端口6以下步骤涉及物理网络设备交换机从数据包中删除VLAN tag 101并将其转发到路由器7路由器将数据包从Provider Network 1网关8路由到External网络网关9并将数据包转发到External网络的交换机端口10交换机将数据包转发到外部网络11外部网络12接收数据包同一个网络中虚拟机东西流量分析场景说明虚拟机1运行在计算节点1上使用Provider network 1虚拟机将数据包发送到计算节点2上的虚拟机2[!tip]以下步骤涉及计算节点1虚拟机1数据包由虚拟网卡1通过veth pair转发到Provider Bridge上的端口2Provider Bridge上的安全组规则3检查防火墙和记录连接跟踪Provider Bridge上的VLAN子接口4将数据包转发到物理网卡5物理网卡5将数据包打上VLAN tag 101并将其转发到物理交换机端口6以下步骤涉及物理网络设备交换机将数据包转发给计算节点2所连接的交换机端口7以下步骤涉及计算节点2计算节点2的物理网卡8从数据包中删除VLAN tag 101然后转发给Provider Bridge的VLAN子接口9Provider Bridge上的安全组规则10检查防火墙和记录连接跟踪Provider Bridge上的虚拟网卡11通过veth pair将数据包转发给虚拟机2的网卡12不同网络中虚拟机东西流量场景说明虚拟机1运行在计算节点1上使用Provider network 1虚拟机2运行在计算节点1上使用Provider network 2虚拟机1将数据包发送到虚拟机2[!tip]以下步骤涉及计算节点1虚拟机1数据包由虚拟网卡1通过veth pair转发到Provider Bridge上的端口2Provider Bridge上的安全组规则3检查防火墙和记录连接跟踪Provider Bridge上的VLAN子接口4将数据包转发到物理网卡5物理网卡5将数据包打上VLAN tag 101并将其转发到物理交换机端口6以下步骤涉及物理网络设备交换机从数据包中删除VLAN tag 101并将其转发到路由器7路由器将数据包从Provider Network 1网关8转发到Provider Network 2网关9路由器将数据包发送到交换机端口10交换机将数据包打上VLAN tag 102然后转发给计算节点1连接的端口11以下步骤涉及计算节点1计算节点1的物理网卡12从数据包中删除VLAN tag 102然后转发给Provider Bridge的VLAN子接口13Provider Bridge上的安全组规则14检查防火墙和记录连接跟踪Provider Bridge上的虚拟网卡15通过veth pair将数据包转发给虚拟机2的网卡16Neutron网络流量分析Open vSwitch VXLAN网络Open vSwitch VXLAN实现使用Open vSwitch VXLAN网络时ML2的Type Driver为VXLANML2的Mechanism Driver为Open vSwitchL2 Agent为Open vSwitchOpen vSwitch VXLAN场景说明使用Open vSwitch VXLAN实现Self-service network网络流量可以分为如下几种南北向流量虚拟机和外部网络例如Internet通信的流量东西向流量虚拟机之间的流量Provider Network和外部网络之间的流量由物理网络设备负责交换和路由后续的网络流量分析基于如下示例Provider network 1 VLANVLAN 101 taggedSelf-service network 1 VXLAN VXLAN 101 VNISelf-service network 2 VXLANVXLAN 102 VNISelf-service router网关在Provider network 1上连接Self-service network 1 和Self-service network 2使用Fixed IP的虚拟机南北流量[!tip]场景说明虚拟机运行在计算节点1上使用Self-service network 1。虚拟机将数据包发送到Internet上的主机。以下步骤涉及计算节点1实例接口1通过veth对将数据包转发到安全组网桥实例端口2。安全组网桥上的安全组规则3处理数据包的防火墙和连接跟踪。安全组网桥OVS端口4通过veth对将数据包转发到OVS集成网桥安全组端口5。OVS集成网桥为数据包添加内部VLAN标记。OVS集成桥为内部隧道ID交换内部VLAN标记。OVS集成桥接补丁端口6将数据包转发到OVS隧道桥接补丁端口7。OVS隧道桥8使用VNI 101包裹分组。用于覆盖网络的底层物理接口9经由覆盖网络10将分组转发到网络节点。[!tip]以下步骤涉及网络节点覆盖网络的底层物理接口11将分组转发到OVS隧道桥12。OVS隧道网桥解包并为其添加内部隧道ID。OVS隧道网桥为内部VLAN标记交换内部隧道ID。OVS隧道桥接补丁端口13将分组转发到OVS集成桥接补丁端口14。用于自助服务网络15的OVS集成桥接端口移除内部VLAN标记并将分组转发到路由器命名空间中的自助服务网络接口16。路由器将数据包转发到提供商网络的OVS集成桥接端口18。OVS集成网桥将内部VLAN标记添加到数据包。OVS集成桥接int-br-provider补丁端口19将数据包转发到OVS提供程序桥接phy-br-provider补丁端口20。OVS提供程序桥将内部VLAN标记与实际VLAN标记101交换。OVS提供商桥接提供商网络端口21将分组转发到物理网络接口22。物理网络接口通过物理网络基础设施将数据包转发到Internet23。从外部访问带Floating IP的虚拟机[!tip]场景说明虚拟机运行在计算节点1上使用Self-service network 1。Internet上的主机将数据包发送到虚拟机。以下步骤涉及网络节点物理网络基础设施1将分组转发到提供者物理网络接口2。提供商物理网络接口将数据包转发到OVS提供商网桥提供商网络端口3。OVS提供程序桥将实际VLAN标记101与内部VLAN标记交换。OVS提供者桥接phy-br-provider端口4将数据包转发到OVS集成桥接int-br-provider端口5。提供商网络6的OVS集成桥接端口删除内部VLAN标记并将数据包转发到路由器命名空间中的提供商网络接口6。路由器将数据包转发到自助服务网络的OVS集成网桥端口9。OVS集成网桥为数据包添加内部VLAN标记。OVS集成桥为内部隧道ID交换内部VLAN标记。OVS集成桥接patch-tun补丁端口10将数据包转发到OVS隧道桥接patch-int补丁端口11。OVS隧道桥12使用VNI 101包裹分组。用于覆盖网络底层物理接口13经由覆盖网络14将分组转发到网络节点。[!tip]以下步骤涉及计算节点覆盖网络的底层物理接口15将分组转发到OVS隧道桥16。OVS隧道网桥解包并为其添加内部隧道ID。OVS隧道网桥为内部VLAN标记交换内部隧道ID。OVS隧道桥接patch-int补丁端口17将数据包转发到OVS集成桥接patch-tun补丁端口18。OVS集成桥从数据包中删除内部VLAN标记。OVS集成桥安全组端口19通过veth对将数据包转发到安全组桥OVS端口20。安全组网桥上的安全组规则21处理数据包的防火墙和连接跟踪。安全组桥接实例端口22经由veth对将分组转发到实例接口23。同一个网络中虚拟机东西流量[!tip]场景说明虚拟机1运行在计算节点1上使用self-service network 1。虚拟机2运行在计算节点2上使用self-service network 1。虚拟机1将数据包发送到虚拟机2。以下步骤涉及计算节点1实例1接口1通过veth对将数据包转发到安全组网桥实例端口2。安全组网桥上的安全组规则3处理数据包的防火墙和连接跟踪。安全组网桥OVS端口4通过veth对将数据包转发到OVS集成网桥安全组端口5。OVS集成网桥为数据包添加内部VLAN标记。OVS集成桥为内部隧道ID交换内部VLAN标记。OVS集成桥接补丁端口6将数据包转发到OVS隧道桥接补丁端口7。OVS隧道桥8使用VNI 101包裹分组。用于覆盖网络的底层物理接口9经由覆盖网络10将分组转发到计算节点2。[!tip]以下步骤涉及计算节点2覆盖网络的底层物理接口11将分组转发到OVS隧道桥12。OVS隧道网桥解包并为其添加内部隧道ID。OVS隧道网桥为内部VLAN标记交换内部隧道ID。OVS隧道桥接patch-int补丁端口13将分组转发到OVS集成桥接patch-tun补丁端口14。OVS集成桥从数据包中删除内部VLAN标记。OVS集成桥安全组端口15通过veth对将数据包转发到安全组网桥OVS端口16。安全组网桥上的安全组规则17处理数据包的防火墙和连接跟踪。安全组桥接实例端口18经由veth对将分组转发到实例2接口19。不同网络中虚拟机东西流量[!tip]场景说明虚拟机1运行在计算节点1上使用self-service network 1。虚拟机2运行在计算节点1上使用self-service network 2。虚拟机1将数据包发送到虚拟机2。以下步骤涉及计算节点1实例1接口1通过veth对将数据包转发到安全组网桥实例端口2。安全组网桥上的安全组规则3处理数据包的防火墙和连接跟踪。安全组网桥OVS端口4通过veth对将数据包转发到OVS集成网桥安全组端口5。OVS集成网桥为数据包添加内部VLAN标记。OVS集成桥为内部隧道ID交换内部VLAN标记。OVS集成桥接补丁端口6将数据包转发到OVS隧道桥接补丁端口7。OVS隧道桥8使用VNI 101包裹分组。用于覆盖网络的底层物理接口9经由覆盖网络10将分组转发到网络节点。[!tip]以下步骤涉及网络节点覆盖网络的底层物理接口 (11) 将数据包转发到 OVS 隧道桥 (12)。OVS 隧道网桥解包数据包并向其添加内部隧道 ID。OVS 隧道网桥将内部隧道 ID 交换为内部 VLAN 标记。OVS 隧道桥接patch-int补丁端口 (13) 将数据包转发到 OVS 集成桥接patch-tun补丁端口 (14)。自助服务网络 1 (15) 的 OVS 集成网桥端口删除内部 VLAN 标记并将数据包转发到路由器命名空间中的自助服务网络 1 接口 (16)。路由器通过自助服务网络 2 接口 (17) 将数据包发送到下一跳 IP 地址通常是自助服务网络 2 上的网关 IP 地址。路由器将数据包转发到自助服务网络 2 (18) 的 OVS 集成网桥端口。OVS 集成网桥将内部 VLAN 标记添加到数据包。OVS 集成网桥将内部 VLAN 标记交换为内部隧道 ID。OVS 集成桥接patch-tun补丁端口 (19) 将数据包转发到 OVS 隧道桥接patch-int补丁端口 (20)。OVS 隧道桥 (21) 使用 VNI 102 包装数据包。覆盖网络的底层物理接口 (22) 通过覆盖网络 (23) 将数据包转发到计算节点。[!tip]以下步骤涉及计算节点覆盖网络的底层物理接口 (24) 将数据包转发到 OVS 隧道桥 (25)。OVS 隧道网桥解包数据包并向其添加内部隧道 ID。OVS 隧道网桥将内部隧道 ID 交换为内部 VLAN 标记。OVS 隧道桥接patch-int补丁端口 (26) 将数据包转发到 OVS 集成桥接patch-tun补丁端口 (27)。OVS 集成网桥从数据包中删除内部 VLAN 标记。vethOVS集成网桥安全组端口28通过pair将数据包转发到安全组网桥OVS端口29。安全组网桥上的安全组规则 (30) 处理数据包的防火墙和连接跟踪。veth安全组网桥实例端口31通过pair将数据包转发到实例接口32。