CN106797351A - 使用控制器执行逻辑网络转发的系统和方法 - Google Patents

使用控制器执行逻辑网络转发的系统和方法 Download PDF

Info

Publication number
CN106797351A
CN106797351A CN201580045965.5A CN201580045965A CN106797351A CN 106797351 A CN106797351 A CN 106797351A CN 201580045965 A CN201580045965 A CN 201580045965A CN 106797351 A CN106797351 A CN 106797351A
Authority
CN
China
Prior art keywords
virtual
router
network
controller
main frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580045965.5A
Other languages
English (en)
Other versions
CN106797351B (zh
Inventor
G·M·梅尔
V·埃玛蒂
S·D·摩迪
蒋刊哲
王匡宁
S·拉玛萨布兰玛尼恩
杨梅
R·W·舍伍德
M·S·德哈米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Network Inc
Original Assignee
Network Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Inc filed Critical Network Inc
Publication of CN106797351A publication Critical patent/CN106797351A/zh
Application granted granted Critical
Publication of CN106797351B publication Critical patent/CN106797351B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

可以使用在计算设备上实现的控制器来控制网络中的交换机。端主机可以与交换机耦合。控制器可以生成分布于网络中的下层交换机的虚拟交换机、虚拟路由器和虚拟系统路由器的虚拟网络拓扑。控制器可以从端主机的相应群组来形成虚拟交换机,从虚拟交换机的群组来形成包括与虚拟交换机耦合的虚拟接口的虚拟路由器,并且从虚拟路由器的群组来形成包括与虚拟路由器耦合的虚拟系统路由器接口的虚拟系统路由器。控制器可以通过基于针对虚拟路由器、虚拟系统路由器和虚拟交换机中的每一个所识别的网络策略生成相应的流表条目来控制虚拟网络拓扑。控制器可以控制虚拟系统路由器,以将分组在虚拟路由器之间路由。

Description

使用控制器执行逻辑网络转发的系统和方法
本申请要求2014年7月21日提交的美国专利申请No.14/337,178的优先权,其整体通过引用结合于此。
技术领域
本发明涉及通信网络,更特别地,涉及具有由控制器进行控制的网络交换机的通信网络。
背景技术
基于分组的网络(诸如,互联网和与互联网连接的局域数据网)包括网络交换机。网络交换机用于将分组从分组源转发到分组目的地。分组有时可以被称为帧。例如,数据通过开放系统互联(OSI)模型的层2作为帧(例如,以太网帧)进行转发,而数据通过OSI模型的层3作为分组(例如,互联网协议分组)进行转发。
使用一个销售商的设备来配置另一个销售商的交换机会是困难或不可能的。这是因为,一个销售商的交换机设备可以使用与另一个销售商的交换机设备不同的操作系统和控制过程的集合。为了应对与控制不同类型的交换机平台关联的挑战,已经开发了跨平台协议。这些协议允许对其它方式不兼容的交换机进行集中控制。
跨平台控制器客户端可以被包括在网络中的交换机上。控制器客户端能够通过网络路径与对应的控制器服务器通信。因为控制器客户端可以在各种交换机硬件上实现,所以单个控制器控制其他方式可能不兼容的交换机设备是有可能的。
通常,网络管理员需要手动配置网络中的交换机以对网络分组执行所期望的转发操作。该过程会是耗时、冗长的,尤其随着网络复杂性增加更加有挑战性。因此,可能期望能够提供用于配置交换机网络以执行数据转发操作的改进的系统和方法。
发明内容
可以使用在计算设备上实现的控制器来控制网络中的交换机。交换机可以包括物理交换机和逻辑交换机(诸如,管理程序交换机)。端主机可以与网络中的交换机耦合。可以由控制器来控制交换机,用于通过网络来转发网络分组(例如,通过经由控制路径向交换机供应与网络分组不同的控制消息)。
控制器可以通过网络中的物理和/或管理程序交换机来生成虚拟交换机、虚拟路由器和虚拟系统路由器的虚拟网络拓扑。控制器可以从端主机的相应群组和/或用于将分组路由到外部网络的物理路由器来形成虚拟交换机。虚拟交换机可以包括来自至少两个下层交换机的端口,下层交换机与和虚拟交换机关联的群组中的端主机耦合。虚拟交换机可以包括与端主机耦合的虚拟端口。控制器可以从虚拟交换机的群组来形成一个或更多个虚拟路由器。虚拟路由器可以包括与虚拟交换机耦合的虚拟接口。各虚拟接口可以被指派相应的以太网地址并且与相应的IP域关联。虚拟路由器可以在将网络分组在不同IP域的端主机之间路由时执行网络路由操作。
控制器可以从虚拟路由器的群组来形成一个或更多个虚拟系统路由器。虚拟系统路由器可以包括与虚拟路由器耦合的虚拟系统路由器接口。各虚拟系统路由器接口可以被指派相应的以太网地址。虚拟系统路由器可以在将网络分组在虚拟路由器之间路由(例如,通过将网络分组在虚拟系统路由器接口之间路由)时执行网络路由操作。虚拟交换机、虚拟路由器和虚拟系统路由器可以均分布于若干下层交换机(例如,物理交换机和管理程序交换机),使得任何给定交换机可以被配置成执行一个或更多个虚拟交换机、虚拟路由器和虚拟系统路由器的功能。
控制器可以控制虚拟路由器、虚拟系统路由器和/或虚拟交换机以执行网络转发操作。控制器可以配置虚拟路由器以通过重写所选择的网络分组的以太网地址来执行转发操作,以通过对应的虚拟系统路由器将网络分组重定向到另一个虚拟路由器。控制器可以控制虚拟系统路由器,以通过重写所选择的网络分组的以太网地址来执行转发操作,以将网络分组路由到所期望的虚拟路由器(例如,通过对应的虚拟系统路由器接口)。控制器可以通过基于由用户为虚拟路由器、虚拟系统路由器和/或虚拟交换机中的每一个指定的网络策略生成相应的网络转发规则(例如,流表条目)来控制虚拟路由器、虚拟系统路由器和虚拟交换机。控制器可以向用于实现所期望的网络策略的虚拟路由器、虚拟系统路由器和/或虚拟交换机(例如,向用于实现虚拟系统路由器、虚拟路由器和/或虚拟交换机的下层物理和/或管理程序交换机)提供流表条目。
如果期望,控制器可以控制第一交换机、虚拟路由器和虚拟系统路由器,以通过经由虚拟系统路由器(例如,基于控制器所生成的流表条目)路由网络分组来通过物理路由器将网络分组从给定端主机转发到外部网络。通过向下层交换机提供逻辑网络拓扑,控制器可以允许网络管理员更灵活且有效地提供并实现用于通过网络转发网络分组的所期望的网络策略。
根据附图和以下的具体实施方式,本发明的其它特征、其性质和各种优点将更清楚。
附图说明
图1是根据本发明的实施例的包括控制器和分组转发系统的说明性网络的简图。
图2是根据本发明的实施例的可以通过网络连接进行通信的控制器服务器和控制器客户端的简图。
图3是根据本发明的实施例的分组处理系统可以使用的类型的说明性流表的简图。
图4是根据本发明的实施例的分组处理系统可以使用的类型的说明性流表的简图,示出可以基于流表的流表条目来执行的三种说明性类型的分组转发。
图5是根据本发明的实施例的分组处理系统中处理分组中涉及的说明性步骤的流程图。
图6是根据本发明的实施例的具有可以由控制器进行控制的用于将网络分组在网络中的端主机之间路由的交换机的说明性网络的简图。
图7是根据本发明的实施例的实现具有可以由控制器进行控制的用于将网络分组在网络中的端主机之间路由的交换机的网络的说明性基于机架的系统的简图。
图8是根据本发明的实施例的由控制器从图6的网络生成的说明性虚拟网络的简图。
图9是根据本发明的实施例的具有均执行分组转发操作的子集的模块的说明性交换机的简图。
图10是根据本发明的实施例的可以由控制器实现的访问控制列表的说明性条目。
图11是根据本发明的实施例的在实现诸如由访问控制列表标识的策略规则的网络策略规则时可以由控制器生成的说明性流表条目。
图12是示出根据本发明的实施例的虚拟网络拓扑可以如何包括由控制器进行控制以在源端主机和目的地端主机之间执行分组转发操作的虚拟交换机、虚拟路由器和虚拟系统路由器的简图。
图13是示出根据本发明的实施例的虚拟网络拓扑可以如何由控制器进行控制以在源端主机和具有未知以太网地址的物理路由器之间执行分组转发操作的简图。
图14是根据本发明的实施例的控制器可以在生成具有虚拟路由器和虚拟系统路由器的虚拟网络拓扑时以及在控制虚拟网络以实现所期望的网络策略时执行的说明性步骤的流程图。
图15是根据本发明的实施例的可以由控制器执行用于在图8中示出的类型的虚拟网络拓扑中添加并实现新的网络路由的说明性步骤的流程图。
图16是根据本发明的实施例的控制器可以在将虚拟网络拓扑中的部分标记为私有,以用于限制私有部分通过虚拟网络拓扑中的虚拟系统路由器进行通信时执行的说明性步骤的流程图。
具体实施方式
网络(诸如,互联网和与互联网耦合的局域网和区域网)依赖于基于分组的交换机。在本文中有时被称为网络交换机、分组处理系统或分组转发系统的这些交换机可以基于地址信息来转发分组。以此方式,由分组源发送的数据分组可以被传递到分组目的地。在网络术语中,分组源和目的地有时被称为端主机。端主机的示例是个人计算机、服务器和其它计算设备(诸如,使用有线或无线技术访问网络的便携式电子装置)。
网络交换机按能力分,范围从相对小的以太网交换机和无线接入点到包括若干线卡(line card)、冗余电源和监管员能力的大型基于机架的系统。网络包括来自若干销售商的设备并不常见。来自不同销售商的网络交换机可以互连以形成分组转发网络,但是由于它们的操作系统和控制协议之间不兼容会难以以集中方式进行管理。
可以通过在每一个网络交换机中结合共用跨平台控制模块(在本文中有时被称为控制器客户端)来克服这些潜在的不兼容。集中式跨平台控制器(诸如,控制器服务器或分布式控制器服务器)可以通过相应的网络链路与控制客户端中的每一个交互。跨平台控制器和对应的控制器客户端的使用允许对潜在地完全不同的网络交换机设备进行集中管理。
用一个说明性配置(在本文中有时被称为示例),通过一个或更多个控制器服务器(诸如,图1的控制器服务器18)来提供集中式控制。可以在独立计算机、计算机的集群、分布在多个位置的计算机的集合、嵌入网络交换机内的硬件或其它合适的计算设备12上实现控制器服务器18。控制器服务器18可以在单个计算机上运行为单个进程或者可以分布在许多主机上用于冗余。分布式布置的使用可以有助于向网络10提供对于意外的网络分割(例如,两个校园之间的网络链路被中断的情形)的回弹(resiliency)。
在分布式控制器布置中,控制器节点可以使用控制器内协议来交换信息。例如,如果新的端主机连接到只与第一控制器节点连接的网络硬件(例如,交换机),则该第一控制器节点可以使用控制器内协议以告知其它控制器节点存在新的端主机。如果期望,交换机或其它网络组件可以连接到若干控制器节点。在本文中有时将使用单个控制器服务器控制关联的交换机的网络的布置描述为示例。
图1中的控制器服务器18可以收集关于网络10的拓扑的信息。例如,控制器服务器18可以通过网络发送链路层发现协议(LLDP)探测分组以发现网络10的拓扑。控制器服务器18可以使用网络拓扑的信息和网络设备能力的信息以确定用于分组流过网络的合适路径。一旦已经识别合适路径,控制器服务器18就可以向网络10中的硬件发送对应的设置数据,以确保分组如期望的那样流过网络。诸如这些的网络配置操作可以在系统建立操作期间执行、可以连续地在后台执行、或者可以响应于出现新发送的数据分组(即,还未对其创建预先存在路径的分组)执行。
可以使用控制器服务器18来实现网络配置规则20。规则20可以指定哪些服务是各种网络实体可用的。例如,规则20可以指定网络10中哪些用户(或哪些类型的用户)可以访问特定服务器。又如,规则20可以包括识别网络流量的路由策略和将在所识别的网络流量上执行的转发操作。例如,可以在计算设备12处的数据库中维护规则20。
控制器服务器18和相应网络交换机14处的控制器客户端30可以使用网络协议栈通过网络链路16进行通信。
各交换机(例如,各分组转发系统)14可以具有输入-输出端口34(有时被称为网络交换机接口)。可以使用电缆将多个设备连接到端口34。例如,端主机(诸如,个人计算机、网络服务器和其它计算设备)可以被插入端口34中。还可以使用端口34将一个交换机14连接到另一个交换机14。
分组处理电路32可以用于将分组从端口34中的一个转发到端口34中的另一个并且可以用于对到来的分组执行其它合适的动作。可以使用一个或更多个集成电路(诸如,专用高速交换机电路)来实现分组处理电路32并且分组处理电路32可以用作硬件数据路径。如果期望,正在控制单元24上运行的分组处理软件26可以用于实现软件数据路径。
控制单元24可以包括用于存储并运行控制软件的处理和存储器电路(例如,一个或更多个微处理器、存储器芯片和其它控制电路)。例如,控制单元24可以存储并运行软件(诸如,分组处理软件26),可以存储流表28,并且可以用于支持控制器客户端30的操作。
控制器客户端30和控制器服务器18可以与网络交换机协议(诸如,OpenFlow协议(参见例如OpenFlow协议的OpenFlow Switch Specification版本1.0.0、1.3.1或其它版本))兼容。控制器客户端30之中的一个或更多个客户端还可以与其它协议(例如,简单网络管理协议)兼容。使用OpenFlow协议或其它合适协议,控制器服务器18可以向控制器客户端30提供确定交换机14将如何处理来自输入-输出端口34的到来分组的数据。
用一种合适的布置,来自控制器服务器18的流表数据可以被存储在流表(诸如,流表28)中。可以使用流表28的条目来配置交换机14(例如,分组处理电路32和/或分组处理软件26的功能)。在典型的情况下,流表28用作用于流表条目的高速缓存存储并且这些流表条目的对应版本被嵌入分组处理电路32的电路所维护的设置内。然而,这仅仅是说明性的。流表28可以用作交换机14中的流表条目的专用存储或者可以被省去,以有利于分组处理电路32内的流表存储资源。通常,可以使用任何合适的数据结构(例如,一个或更多个表、列表等)来存储流表条目。为了清晰起见,流表28的数据(无论是在控制单元24中的数据库中维护还是嵌入分组处理电路32的配置内)在本文中被称为形成流表条目(例如,流表28中的行)。
存储确定交换机14将如何处理到来的分组的数据的流表28的示例仅仅是说明性的。如果期望,可以使用任何分组转发决策引擎作为流表28的替代或补充,以辅助分组转发系统14做出关于如何转发网络分组的决策。例如,分组转发决策引擎可以指导分组转发系统14基于网络分组的属性(例如,基于网络协议报头)来向预定的端口转发网络分组。
可以向任何期望的交换机提供与控制器服务器通信并且由它控制的控制器客户端。例如,可以使用运行控制软件并且省去分组处理电路32的通用处理平台来实现交换机14。又如,可以使用与一个或更多个高速交换集成电路(“交换IC”)耦合的控制电路来实现交换机14。再如,交换机14可以被实现为基于机架的系统中的线卡,该系统具有其自身都有分组处理电路的若干线卡。如果期望,可以在基于机架的系统中的一个或更多个线卡上、另一个基于机架的系统中、或与网络耦合的其它计算设备上实现控制器服务器。
如图2中所示,控制器服务器18和控制器客户端30可以使用网络协议栈(诸如,网络协议栈58和网络协议栈60)通过网络路径66进行通信。栈58和60可以是例如Linux TCP/IP栈或VxWorks操作系统(作为示例)中的TCP/IP栈。路径66可以是例如支持交换机14和外部设备之间的网络连接的路径(例如,图1的网络路径16)或者可以是基于机架的系统中的主干路径。其中路径66是网络路径(诸如,路径16)的布置有时在本文中被描述为示例。
控制协议栈56用作网络协议栈58和控制软件54之间的接口。控制协议栈62用作网络协议栈60和控制软件64之间的接口。在操作期间,当控制器服务器18正与控制器客户端30进行通信时,控制协议栈56生成并解析控制协议消息(例如,激活端口或者将特定流表条目安装到流表28中的控制消息)。通过使用图2中示出的类型的布置,通过控制器服务器18和控制器客户端30之间的链路形成网络连接。控制器服务器18和控制器客户端30可以通过互联网协议(IP)网络连接使用传输控制协议(TCP)或用户数据报协议(UDP)进行通信。当通过网络连接在控制器服务器18和控制器客户端30之前进行通信时可以使用的控制协议的示例包括SNMP和OpenFlow协议栈版本1.0.0(作为示例)。
流表28包含具有若干字段(有时被称为报头字段)的流表条目(例如,表中的行)。可以将由交换机14接收到的分组中的字段与流表中的字段进行比较。各流表条目可以具有关联的动作。当分组中的字段与流表条目中的字段匹配时,可以采取该流表条目对应的动作。
在图3中示出说明性的流表。如图3中所示,流表28可以具有流表条目(行)68。各流表条目可以与报头70、动作72和统计74关联。报头70可以均包括若干报头字段76。各流表条目中的动作指示当检测到分组中的字段和该流表条目的报头中的对应字段之间匹配时交换机14将对分组执行什么动作。交换机14可以在流表28的统计部分中维护统计数据(计数值),当期望得到关于交换机14的性能的信息时,控制器服务器18可以查询该统计部分。
报头70中的报头字段(以及各到来的分组中的对应字段)可以包括以下字段:入端口(即,正通过其接收分组的交换机14中的物理端口的标识)、以太网源地址、以太网目的地地址、以太网类型、虚拟局域网(VLAN)识别(有时被称为VLAN标签)、VLAN优先级、IP源地址、IP目的地地址、IP协议、IP ToS(服务类型)位、传输源端口/互联网控制消息协议(ICMP)类型(有时被称为源TCP端口)和传输目的地端口/ICMP代码(有时被称为目的地TCP端口)。如果期望,可以使用其它字段。例如,可以使用网络协议字段和协议端口字段。
各流表条目(流条目)与指示交换机如何处理匹配的分组的零个或更多个动作关联。如果不存在转发动作,则优选地丢弃分组。当在分组字段和流表条目中的报头字段之间检测到匹配时,交换机14可以采取的动作可以包括以下动作:转发(例如,在不包括到来接口的所有接口上都发出分组的ALL、封装分组并且向控制器服务器发送分组的CONTROLLER、向交换机的本地网络协议栈发送分组的LOCAL、执行流表28中的动作的TABLE、从输入端口发送分组的IN_PORT、用于使用例如传统的层2、VLAN和层3处理用交换机所支持的默认转发路径来处理分组的NORMAL,以及沿着不包括到来接口的最小转发树洪泛分组的FLOOD)。交换机14可以采用的另外的动作包括:用于通过附接到端口的队列来转发分组的排队动作和丢弃动作(例如,用于在没有指定动作的情况下丢弃与流表条目匹配的分组)。交换机14还可以支持修改字段动作。可以采取的修改字段动作的示例包括:设置VLAN ID、设置VLAN优先级、删除VLAN报头、修改VLAN标签、修改以太网源MAC(介质访问控制)地址、修改以太网目的地MAC地址、修改IPv4源地址、修改IPv4Tos位、修改传输目的地端口。修改字段动作可以用于重写网络分组的与流表条目匹配的部分。
图4是具有三个流表条目的说明性流表。这些条目包括具有通配符(例如,符号“*”)的字段。当特定字段中存在通配符时,所有到来的分组都将被认为相对于该字段形成“匹配”,而不管到来的分组中的字段的特定值如何。另外的字段可以匹配另外的分组信息(例如,网络分组的分组报头信息)。
图4中的表的第一行的条目指导其中流表条目正操作的交换机执行以太网交换。特别地,具有匹配的以太网目的地地址的到来的分组被转发到端口3。
图4中的表的第二行的条目图示可以如何配置交换机以执行互联网路由(即,基于分组的目的地IP地址来转发它们)。
图4中的表的第三行包含图示可以如何配置交换机以执行防火墙功能的条目。当接收到具有目的地IP端口值80的分组时,丢弃该分组(即,交换机被配置成用作阻挡端口80流量的防火墙)。
图4中示出的类型的流表条目可以在系统设置操作期间被控制器服务器18加载到交换机14中,或者可以响应于在控制器服务器18处从交换机(诸如,交换机14)接收到分组并且进行处理而实时地从控制器服务器18提供到交换机14。在具有众多交换机14的网络中,每一个交换机可以被提供合适的流表条目以形成通过网络的路径。
图5中示出交换机14在处理在输入-输出端口34上接收到的分组时可以执行的说明性步骤。在步骤78中,交换机14在其端口中的一个(例如,图1的输入-输出端口34中的一个)上接收分组。
在步骤80中,交换机14将接收到的分组的字段与该交换机的流表28中的流表条目的字段进行比较,以确定是否存在匹配。流表条目中的一些字段可以包括完整值(例如,完整地址)。其它字段可以包含通配符(即,用“don’t care”通配符“*”标记的字段)。其它字段可以具有部分完整条目(例如,部分通配的部分地址)。一些字段可以使用范围(例如,通过将TCP端口数量限制到1和4096之间的值)并且实际上使用该范围来实现一种类型的部分通配。在接收到的分组和流表条目之间进行逐字段比较时,交换机14可以考虑流表条目中的各字段是否包含没有任何通配的完整值、有通配的部分值还是通配符(即,完全通配的字段)。
如果在步骤80的操作期间确定分组的字段和流表条目的对应字段之间不存在匹配,则交换机14可以通过链路16向控制器服务器18发送分组(步骤84)。
如果在步骤80的操作期间确定分组和流表条目之间存在匹配,则交换机14可以执行与该流表条目关联的动作并且可以更新该流表条目的统计字段中的计数值(步骤82)。然后,如线86所指示的,处理可以循环回到步骤78,使得交换机14可以处理另一个分组。
图6是其中交换机可以由控制器18控制的说明性网络100的简图。控制器18可以是控制器服务器或跨若干计算装置实现的分布式控制器。如图6中所示,网络100可以包括交换机C1、C2、E1、E2、E3、E4和E5。控制器18可以经由控制路径66与网络100的交换机耦合。控制器18可以使用控制路径66来控制交换机(例如,通过提供诸如图3的流表条目68的流表条目)。
网络100可以包括与网络100的交换机耦合的端主机(诸如,端主机EH1、EH2、EH3、EH4、EH5和EH6)。与端主机直接耦合的交换机有时可以被称为边缘交换机,而仅仅与其它交换机互连而没有与端主机直接耦合的交换机可以被称为核心交换机。在图6的示例中,交换机E1、E2、E3、E4和E5是边缘交换机,因为它们与端主机耦合。交换机C1和C2是核心交换机,因为交换机C1和C2与交换机E1、E2、E3、E4和E5互连而没有与端主机直接耦合。核心交换机(诸如,交换机C1和C2)可以将网络100耦合到其它网络102(例如,包括交换机和端主机的其它网络)。其中边缘交换机与核心交换机直接耦合的图6的示例仅仅是说明性的。如果期望,可以在边缘交换机和核心交换机之间插入另外的交换机。
用于将数据路由到外部网络的装置(诸如,互联网路由器67)可以与网络100的交换机耦合。在图6的示例中,互联网路由器67与边缘交换机E4的端口P6耦合。如果期望,路由器67可以与网络100中的另外的交换机(例如,一个或更多个边缘交换机等)耦合。外部路由器67可以用于通过OSI模型的层3执行将从网络100中的交换机接收的数据转发到外部网络102(例如,互联网),如路径71所示。可以使用控制器18通过路径16来控制网络中的交换机,而控制器18不控制端主机EH和外部路由器(诸如,互联网路由器67)。
图7是使用基于机架的系统实现的图6的网络100的说明性示例。如图7中所示,可以使用与交换机114(例如,如图7中所示的核心交换机)耦合的网络机架110和112来实现边缘交换机和端主机。如果期望,网络100可以包括容纳另外的端主机和交换机并且与交换机14耦合的另外的网络机架。网络机架110可以包括边缘交换机E1和E2和端主机EH1和EH2,而网络机架112可以包括边缘交换机E3和E4和端主机EH3和EH4。边缘交换机E1、E2、E3和E4可以用作经由网络路径与对应的网络机架112的各端主机耦合的机架顶部交换机(top-of-rack switch)。例如,机架顶部交换机E3与网络112的端主机(例如,端主机EH3和EH4)中的每一个连接。
各机架顶部交换机用作对应的网络机架的端主机和其它网络装置(诸如,网络100的其它部分或其它网络102)之间的接口。可以要求进出网络机架110的端主机的网络流量穿过网络机架110的机架顶部交换机(例如,机架顶部交换机E1和E2)中的至少一个。类似地,可以要求网络机架112的网络流量穿过交换机E3和E4中的至少一个。例如,端主机EH1向端主机EH3发送的网络分组可以被机架顶部交换机E1、核心交换机C1和机架顶部交换机E3转发。又如,端主机EH1向端主机EH3发送的网络分组可以被机架顶部交换机E2、核心交换机C1和机架顶部交换机E4转发。
如果期望,可以使用网络机架110和112的计算设备来实现交换机。可以使用计算设备(诸如,网络机架110的线卡)来实现交换机E5。软件交换机E5可以有时被称为管理程序交换机。可以使用专用电路或者使用分立的计算设备上(例如,线卡上)的软件来实现管理程序交换机。然而,这些软件交换机通过电缆与网络的剩余部分耦合,电缆被插入其上实现了软件交换机的计算设备的专用物理端口中。
交换机E5可以与实现在与交换机E5相同的计算设备上的端主机(诸如,端主机EH5)接口连接。换句话讲,可以使用共享的计算设备来实现交换机E5和端主机。如果期望,可以在共享的计算设备上以软件来实现若干端主机。例如,可以在共享的计算设备上实现数十个、数百个、数千个或更多的端主机并且在软件中与软件交换机E5的逻辑端口逻辑耦合,而软件交换机E5通过其上实现软件交换机E5的计算设备的物理端口与网络100连接。
如图7中所示,可以(例如,使用网络机架110的线卡或其它计算设备的资源)在网络机架110中实现控制器18。控制器18可以通过发送控制分组并且从交换机接收控制平面分组来与机架顶部交换机和核心交换机进行通信。在该情况下,网络100中的一个或更多个交换机可以形成图6的控制路径66的部分。例如,交换机E1或交换机E2可以用作核心交换机C1和C2与控制器18之间的控制路径的部分。又如,交换机E1、E2、C1和C2可以形成控制器18与交换机E3和E4之间的控制路径的部分。
与一个或更多个端主机耦合的边缘交换机(诸如,E1、E2、E3和E4)有时被称为叶交换机(leaf switch)。例如,基于机架的系统中的机架顶部交换机有时被称为叶交换机。与叶交换机中的每一个耦合的交换机114有时被称为主干交换机(spine switch)。主干交换机可以是没有与任何端主机连接的核心交换机(例如,如图7中所示)或者可以具有与端主机连接的一个或更多个端口。
对于用户(诸如,网络管理员)而言,配置网络100以用于期望的操作会是挑战性的。例如,可以期望隔离或者以其它方式限制端主机的群组之间的通信。又如,网络管理员手动配置用于网络的各交换机和各端主机的网络策略或路由规则会是低效的。控制器18可以被配置成通过下层物理网络拓扑来实现虚拟路由器和虚拟交换机的逻辑网络拓扑。逻辑网络拓扑可以提供益处(诸如,提高的网络配置效率、灵活性和能力)。图8是其中控制器18被配置成从图6和图7的下层网络100来实现虚拟网络100的说明性示例。
虚拟网络120的虚拟网络拓扑可以是下层网络100的物理限制(例如,各虚拟路径在下层网络中具有至少一条(如果没有更多)对应的路径)内的任何期望的拓扑。下层网络可以包括物理交换机和/或基于软件的交换机(诸如,管理程序交换机E5)。
如图8中所示,虚拟网络拓扑120(在本文中有时被称为逻辑交换结构、逻辑结构、虚拟交换结构、虚拟结构、逻辑系统、虚拟系统、逻辑网络或虚拟网络)可以包括虚拟交换机(诸如,虚拟交换机VSW1、VSW2和VSW3)、虚拟路由器(诸如,虚拟路由器VR1和VR2)和虚拟系统路由器(诸如,虚拟系统路由器SR1)。虚拟路由器可以在本文中有时被称为逻辑交换机、逻辑段、虚拟段或段。虚拟路由器可以在本文中有时被称为逻辑路由器、逻辑租户、虚拟租户或租户。虚拟系统路由器可以在本文中有时被称为逻辑系统路由器、逻辑系统租户、虚拟系统租户或系统租户。
虚拟交换机从网络的端主机的群组形成并且可以由端主机的任何期望的网络属性(例如,端主机的MAC地址或MAC地址的范围、端主机的IP地址或IP地址的范围)限定。在图8的示例中,虚拟交换机VSW1可以被指派端主机EH3,虚拟交换机VSW2可以被指派端主机EH1和EH6,并且虚拟交换机VSW3可以被指派端主机EH2、EH4和EH5。控制器18可以从端主机的群组生成虚拟交换机。
在某些情况下,从虚拟路由器、虚拟交换机和虚拟系统路由器的角度来说(例如,从逻辑交换结构的角度来说),用于将分组路由到外部网络的物理路由器(诸如,互联网路由器67)逻辑上与端主机无法区分。例如,可以由落入用于生成(识别)虚拟交换机的MAC地址的范围或IP地址的范围内的MAC地址或IP地址来识别互联网路由器67(例如,使得结构120中的虚拟交换机VSW2如同它是端主机一样处理进出物理路由器67的流量,即便路由器67可以与诸如互联网的外部网络102执行另外的转发操作)。通常,可以从网络的端主机的群组和用于与诸如互联网路由器67(在本文中有时被称为外部路由器,因为它们路由进出并非虚拟交换结构120的部分的外部网络的数据)的外部网络接口连接的物理路由器形成虚拟交换机。互联网路由器67因此在本文中有时被称为逻辑网络拓扑120的端主机。
在某些情况下,网络装置可以被指派给若干虚拟交换机。例如,物理路由器67可以被指派给虚拟交换机VSW1和VSW2二者(例如,在其中物理路由器67具有若干网络接口的情况下)。在该情况下,逻辑结构120可能不能够区分与这两个虚拟交换机连接的单个物理路由器67和均与对应的虚拟交换机连接的两个单独的物理路由器(例如,因为逻辑结构120只基于物理路由器和虚拟交换机之间的接口来处理进出物理路由器的流量)。
各虚拟交换机可以被实现为跨一个或更多个下层交换机(例如,下层物理或管理程序交换机)的分布式逻辑交换机。例如,虚拟交换机可以包括与不同物理交换机附接的端主机。在该情况下,控制器可以在控制单个虚拟交换机时控制若干物理交换机。控制不同的虚拟交换机可以涉及控制下层的物理和/或管理程序交换机的可能重叠的集合中的两个集合(例如,可以在执行与不同虚拟交换机关联的操作时控制物理交换机)。
可以用于表征端主机的网络属性的示例包括端主机所耦合的物理或管理程序交换机端口、端主机的硬件地址(例如,MAC地址)、端主机的协议地址(例如,IP地址)、虚拟局域网(VLAN)标签和/或端主机的其它网络属性。例如,控制器18可以将端主机EH1识别为与交换机E1的端口P1附接,可以由MAC地址来识别端主机EH2和EH3,并且可以将端主机EH4识别为与交换机E3的端口P2附接。又如,端主机EH5可以被识别为与管理程序交换机E5的逻辑端口P1附接。该示例仅仅是说明性的。可以在形成虚拟交换机时使用任何所期望的网络属性(诸如,用于网络分组报头字段中)或网络属性的任何所期望的组合。
可以将虚拟交换机分组以形成虚拟路由器(例如,使用控制器18)。在图8的示例中,虚拟交换机VSW1和VSW2被分组以形成虚拟路由器VR1,而虚拟交换机VSW3被指派给虚拟路由器VR2。换句话讲,虚拟交换机VSW1和VSW2的端主机(和诸如互联网路由器67的外部路由器)的群组被指派给虚拟路由器VR1,而虚拟交换机VSW3的端主机的群组被指派给虚拟路由器VR2。各虚拟交换机经由虚拟路由器接口与对应的虚拟路由器连接。虚拟交换机VSW1和VSW2与虚拟路由器VR1的相应虚拟路由器接口IF1和IF2连接,而虚拟交换机VSW3与虚拟路由器VR2的虚拟路由器接口IF1连接。
在本文中有时被描述为示例的一个示例中,控制器18可以由对应的IP地址来识别端主机EH并且可以将端主机(和诸如路由器67的互联网路由器)分组到在本文中有时被称为子网或IP子网的IP地址范围。如果期望,各虚拟路由器接口(和与该接口连接的各虚拟交换机)可以被指派给对应的IP地址范围(例如,可以被指派给对应的子网)。在图8的示例中,虚拟路由器VR1和虚拟交换机VSW1的接口IF1可以被指派给包括IP地址的第一范围(例如,包括端主机EH3的IP地址的IP地址范围)的第一子网SUBNET1(例如,使用控制器18),虚拟路由器VR1和虚拟交换机VSW2的接口IF2可以被指派给包括IP地址的第二范围(例如,包括端主机EH6、EH1和物理路由器67的IP地址的IP地址范围)的第二子网SUBNET2,并且虚拟路由器VR2和虚拟交换机VSW3的接口IF1可以被指派给包括IP地址的第三范围(例如,包括端主机EH2、EH4和EH5的IP地址的IP地址范围)的第三子网SUBNET3。
通过将各虚拟交换机(虚拟路由器接口)指派给对应的子网,各虚拟交换机可以用于实现相应的广播域,在该广播域中,广播网络分组被转发到虚拟交换机的所有端主机。广播网络分组可以是具有将网络分组识别为去往关联的广播域的所有端主机的广播网络分组的报头字段的网路分组。例如,由虚拟交换机VSW3从端主机EH2接收的广播网络分组可以被虚拟交换机VSW3转发到被指派给虚拟交换机VSW3(即,端主机EH4和端主机EH5)的各其它端主机。
虚拟路由器执行网络路由功能并且为虚拟交换机的不同广播域提供隔离。例如,虚拟路由器VR1可以防止广播分组被从虚拟交换机VSW1转发到虚拟交换机VSW2(反之亦然)。可以依据给定的虚拟路由器接口的对应子网(例如,IP地址范围)来定义广播域。相比于虚拟路由器,虚拟交换机并不执行基于IP域的任何网络路由功能(例如,如果期望,虚拟交换机可以基于MAC地址域来执行网络路由功能)。
可以由虚拟路由器执行的网络路由功能包括修改在虚拟路由器的接口处接收的网络分组的报头。虚拟路由器可以缩减网络分组的生存时间(TTL)IP报头字段。虚拟路由器可以修改以太网报头(诸如,源和目的地MAC地址字段),以使其与所期望的广播域对应。例如,虚拟路由器的各接口可以被指派相应的以太网地址。在图8的示例中,虚拟路由器VR1的接口IF1被指派以太网地址MACVR1-1,而接口IF2被指派以太网地址MACVR1-1并且虚拟路由器VR2的接口IF1被指派以太网地址MACVR2-3。在该情况下,虚拟路由器可以重写源MAC地址字段,使其与虚拟路由器的入(出)接口匹配。虚拟路由器可以重写目的地MAC地址字段以使其匹配下一跳的地址(例如,系统路由器SR1的以太网地址)。
各虚拟路由器可以被实现为跨一个或更多个下层交换机(例如,下层物理或管理程序交换机)的分布式逻辑交换机。在该情况下,控制器可以在控制单个虚拟路由器时控制多个物理交换机。控制不同的虚拟路由器可以涉及控制下层的物理和/或管理程序交换机的两个可能重叠的集合(例如,可以在执行与不同虚拟路由器关联的操作时控制物理交换机)。如果期望,可以在网络中的相同物理/管理程序交换机或者物理/管理程序交换机的重叠集合上形成一个或更多个虚拟路由器。可以在与逻辑网络120中的虚拟交换机相同的物理/管理程序交换机中的一个或更多个上形成一个或更多个虚拟路由器。
虚拟路由器可以被分组以形成虚拟系统路由器。在图8的示例中,虚拟路由器VR1和VR2被分组以形成虚拟系统路由器SR1。换句话讲,虚拟路由器的群组(和虚拟交换机和端主机的关联群组)被指派给虚拟系统路由器SR1(例如,使用控制器18)。各虚拟路由器经由相应的虚拟系统路由器接口与虚拟系统路由器SR1连接。虚拟路由器VR1和VR2与虚拟系统路由器SR1的相应虚拟系统路由器接口IFSR1和IFSR2连接(例如,虚拟路由器VR1的第三接口IF3可以与虚拟系统路由器接口IFSR1连接,而虚拟路由器VR2的第二接口IF2可以与虚拟系统路由器接口IFSR2连接)。虚拟系统路由器可以只与系统120中的虚拟路由器连接(例如,而没有连接到端主机、虚拟交换机或诸如路由器67的外部路由器)。其中系统路由器SR1通过关联的以太网地址识别虚拟路由器VR1和VR2的示例仅仅是说明性的,并且如果期望,系统路由器SR1可以使用任何所期望的数据封装方案(例如,除了IP地址外的任何所期望的方案)来识别虚拟路由器VR1和VR2。
虚拟系统路由器可以执行的网络路由功能包括修改虚拟系统路由器的接口处接收的网络分组的报头。虚拟系统路由器可以缩减网络分组的生存时间(TTL)IP报头字段。虚拟系统路由器可以修改以太网报头(诸如,源和目的地MAC地址)。例如,虚拟系统路由器的各接口(和虚拟路由器的各耦合接口)可以被指派相应的以太网地址。在图8的示例中,虚拟系统路由器SR1的接口IFSR1被指派以太网地址MACSR1,而接口IFSR2被指派以太网地址MACSR2。虚拟路由器VR1的接口IF3被指派以太网地址MACVR1,而虚拟路由器VR2的接口IF2被指派以太网地址MACVR2。在该情况下,虚拟系统路由器可以重写源MAC地址字段,以与虚拟系统路由器的入(出)接口匹配。虚拟系统路由器可以重写目的地MAC地址字段以匹配下一跳的地址(例如,给定虚拟路由器的下一跳地址)。
虚拟系统路由器SR1可以将数据在虚拟路由器VR1和VR2之间路由。如果期望,控制器18可以控制虚拟系统路由器SR1,以应用用于在虚拟路由器之间路由分组的虚拟路由器间网络策略(例如,通过向虚拟系统路由器SR1提供对应的流表条目)。通过将若干虚拟路由器与单个虚拟系统路由器耦合,相对于其中若干虚拟路由器以其它方式连接的情况(例如,以链或星形配置),通过利用虚拟系统路由器路由数据,可以将数据更有效地在两个虚拟路由器之间路由。控制器18可以用于限定系统120中的虚拟交换机、虚拟路由器和虚拟系统路由器(例如,通过将端主机指派给所期望的群组并且在下层的物理交换机上实现转发策略)。控制器18可以通过独立地向虚拟交换机、虚拟路由器和虚拟系统路由器中的每一个提供实现所期望的网络策略的对应网络转发规则来主动地控制虚拟交换机、虚拟路由器和虚拟系统路由器的操作。
各虚拟系统路由器可以被实现为跨一个或更多个下层交换机(例如,下层物理或管理程序交换机)的分布式逻辑路由器。在该情况下,控制器可以在控制单个虚拟系统路由器时控制多个物理交换机。控制不同的虚拟系统路由器可以涉及控制下层的物理和/或管理程序交换机的两个可能重叠的集合(例如,可以在执行与不同虚拟系统路由器关联的操作时控制物理交换机)。如果期望,可以在网络中的相同物理/管理程序交换机或者与物理/管理程序交换机的重叠集合上形成一个或更多个虚拟系统路由器(例如,可以在单个管理程序交换机上或一个或更多个物理和/或管理程序交换机的任何所期望的组合上实现所有虚拟路由器、虚拟系统路由器和虚拟交换机)。图8的示例仅仅是说明性的。如果期望,结构120可以包括以任何所期望方式布置的任何所期望数量的虚拟系统路由器、虚拟路由器、虚拟交换机和控制器18。
图9是交换机130(诸如,物理或管理程序交换机)的说明性框图。交换机130可以是例如诸如图6的边缘交换机E1、E2、E3或E4的边缘交换机(例如,如图7中所示的叶交换机)或者可以是诸如交换机C1或C2的核心交换机(例如,如图7中所示的主干交换机)。如图9中所示,交换机130可以包括诸如端口P1、P2、P3、P4、P5、P6等的端口。交换机130可以包括虚拟交换机识别模块132、L2转发模块134、虚拟路由器识别模块136、L3转发模块138和基于访问控制列表和策略的转发模块140。可以使用相应的专用电路来实现这些模块,可以使用共享的专用电路来实现这些模块,或者可以使用处理电路上的软件来实现这些模块。例如,可以使用图1的分组处理软件26和/或分组处理电路32来实现这些模块并且可以基于控制器所提供的流表条目来执行功能。
在确定如何转发网络分组时,可以由模块中的一个或更多个来处理交换机端口中的一个处接收的网络分组。这些模块可以以任何所期望的顺序或并行地处理网络分组。可以由控制器来控制各模块所执行的操作。
虚拟交换机识别模块132可以基于与网络分组关联的网络属性(例如,到来端口、诸如以太网或IP源地址的源地址信息等)来确定网络分组被指派给哪个虚拟交换机。模块132可以向L2转发模块134提供识别虚拟交换机的信息。L2转发模块134可以基于模块132所提供的虚拟交换机信息来执行网络转发(例如,开放系统互联“OSI”模型的层2处的转发决策)。例如,L2转发模块134可以基于虚拟交换机信息和另外的分组信息(诸如,从网络分组获取的目的地MAC地址)来确定网络分组应当被转发给哪个交换机端口。
在诸如当目的地端主机与不同于源端主机的虚拟交换机关联的情况下,可以使用虚拟路由器识别模块136和L3转发模块138。例如,可以使用L3转发模块138来处理交换机E3从端主机EH3接收的去往端主机EH1的网络分组,因为端主机EH3被指派给虚拟交换机VSW1,而端主机EH1被指派给虚拟交换机VSW2。换句话讲,与端主机EH3关联的接口IF1的IP域不同于与端主机EH1关联的接口IF2的IP域。在这些情况下,可能需要IP层(例如,OSI模型的层3)处的网络路由。
虚拟路由器识别模块136可以识别在控制网络分组时应该使用哪个虚拟路由器。模块136可以使用网络分组的网络属性连同从交换机的其它模块接收的信息。例如,在确定哪个虚拟路由器控制网络分组时,模块136可以使用从L2转发模块134接收的所识别的虚拟交换机信息连同从网络分组获取的IP地址信息。
虚拟路由器识别模块136可以向L3转发模块138提供所识别的虚拟路由器信息。L3转发模块138可以基于所识别的虚拟路由器信息并且基于从网络分组获取的附加信息来执行网络路由操作。例如,L3转发模块138可以使用IP报头字段(诸如,目的地地址字段)来确定在转发网络分组时应该使用交换机的哪个端口。在执行网络路由操作时,L3转发模块138可以修改网络分组。例如,模块138可以缩减TTL报头字段并且可以重写层2报头字段(诸如,源和目的地MAC地址)。考虑在交换机E2处从端主机EH1接收的网络分组去往端主机EH3的情况。在该情况下,网络分组可以包括作为源MAC地址的端主机EH1的MAC地址、作为目的地MAC地址的虚拟路由器VR1的MAC地址(因为端主机EH1与不同于端主机EH3的虚拟路由器VR1的L3接口耦合,并且不能访问端主机EH3的MAC地址)、作为源IP地址的端主机EH1的IP地址和作为目的地IP地址的端主机EH3的IP地址。虚拟路由器识别模块136可以确定源端主机(EH1)经由虚拟交换机VSW2与虚拟路由器VR1的接口IF2耦合(例如,基于控制器所提供的流表条目)。L3转发模块138可以确定目的地端主机EH3与虚拟路由器VR1的接口IF1耦合并且执行网络路由操作以将网络分组经由虚拟路由器VR1的接口IF1路由到端主机EH3(例如,基于控制器所提供的流表条目)。网络路由操作可以包括减缩网络分组的TTL字段以及重写分组的源和目的地MAC地址。特别地,源MAC地址可以被从端主机EH1的MAC地址重写成虚拟路由器VR1的接口IF1的MAC地址,而目的地MAC地址可以被从虚拟路由器VR1的接口IF2的MAC地址重写成端主机EH3的MAC地址。
在分组已经被L2转发模块134和/或L3转发模块138处理过之后,基于访问控制列表和策略的转发模块140可以处理网络分组(例如,在分组传递到交换机130上的出端口上之前,可以将分组传递到模块140)。在确定将数据分组路由到哪个端口时,模块140可以作为转发模块134和138的覆写。模块140可以基于控制器18所识别的网络策略规则和从网络分组获取的信息来执行网络路由和网络访问控制操作。
如果期望,交换机130可以包括识别在控制网络分组时应该使用哪个虚拟系统路由器的虚拟系统路由器识别模块(未示出)。虚拟系统路由器识别模块可以识别在控制网络分组时应该使用哪个虚拟系统路由器并且可以使用网络分组的网络属性连同从交换机的其它模块接收的信息。虚拟系统路由器识别模块可以向L2转发模块134、L3转发模块138和/或访问控制模块140提供虚拟系统路由器信息。模块134、138和140可以基于所识别的虚拟系统路由器信息并且基于从网络分组获取的信息来执行网络路由操作。
控制器18可以用于在虚拟网络的逻辑端口处(例如,分布式虚拟交换机的虚拟端口或分布式虚拟路由器的接口)应用和实施网络策略规则。网络策略规则可以包括有助于确定端主机之间的网络路径的网络路由规则(在本文中有时被称为基于策略的路由(PBR)规则)并且可以包括允许或阻挡所选择的网络流量的访问控制列表。如果期望,控制器18可以从用户接收组合的访问控制列表和网络路由规则作为网络策略规则(例如,用户可以同时针对控制器18指定访问控制列表和网络路由策略)。访问控制列表和网络路由规则可以被用户提供给控制器18。控制器18可以提供实现访问控制列表策略规则的转发规则和用于在交换机130的模块140上实现的网络路由规则(例如,作为流表条目)。
图10是用户可以提供的并且由控制器18实现的说明性访问控制列表的示图。如图10中所示,访问控制列表142识别网络属性(诸如,逻辑端口、端主机信息和协议端口)。通常,任何所期望的网络属性(诸如,一个或更多个逻辑端口、逻辑接口、物理端口和/或分组报头字段)可以被包括在访问控制列表142中。分组报头字段可以包括识别一个或更多个端主机(例如,源或目的地端主机)的报头字段。例如,访问控制列表142可以包括端主机识别字段(诸如,源MAC地址、源IP地址、目的地MAC地址和/或目的地IP地址)。
控制器18可以生成实现由访问控制列表142定义的网络策略规则的流表条目。在图8的示例中,访问控制列表142识别虚拟端口VSW1的逻辑端口VP2、端主机EH1的MAC地址(MACEH1)和协议端口80。协议端口80可以是传输控制协议(TCP)端口。控制器18可以处理访问控制列表142以确定应该丢弃在虚拟交换机VSW1的逻辑端口VP2处接收的具有源MAC地址MACEH1的网络分组和在TCP协议端口80处接收的网络分组(即,应该丢弃与控制列表142中识别的网络属性匹配的分组)。使用逻辑端口(诸如,虚拟交换机VSW1的VP2)可以为网络管理员在配置网络时提供灵活性,因为虚拟网络拓扑120可以具有虚拟交换机的任何期望布置和端主机到虚拟交换机的指派。如果期望,访问控制列表142可以与用户所提供的基于策略的路由条目(例如,与访问控制列表142近似但具有替代动作字段“丢弃”的动作字段“将分组转发到所期望的目的地”的条目)组合。控制器18可以随后生成流表条目并且向实现访问控制列表132的下层网络100的下层物理和/或管理程序交换机提供流表条目(例如,可以向交换机130提供用于在模块140上实现的流表条目,如图9中所示)。
图11是控制器18可以在实现访问控制列表142时生成的的说明性流表条目。如图11中所示,流表条目152可以包括源MAC地址字段中的端主机EH1的MAC地址、目的地MAC地址字段中的端主机EH2的MAC地址和TCP端口字段中的端口80。流表条目152可以包括通配(未示出)的另外的匹配字段,使得流表条目142匹配具有源MAC地址MACEH1、目的地MAC地址MACEH2和TCP端口80的所有分组。流表条目152可以在实现访问控制列表142时提供到一个或更多个物理或管理程序交换机(例如,用于在交换机130的模块140上实现,如图9中所示)。在其中访问控制列表142与用户所提供的基于策略的路由条目结合的情况下,可以生成具有用于将数据分组转发到所期望目的地的动作字段的流表条目。
在交换机130的模块140上实现的流表条目可以在分组已经被L2转发模块134和/或L3转发模块138处理之后处理数据分组。模块140可以覆写在模块134和138处做出的转发确定。例如,在模块138中确定将被转发到端口P6的分组与模块140中丢弃该分组的条目匹配(例如,在其中被限制接入网络的端主机生成数据分组的情况下),模块140可以覆写模块138之前将该分组转发到端口P6的确定并且可以丢弃该分组。在另一个示例中,如果分组与模块140中将分组路由到期望的目的地的条目匹配(例如,基于在控制器118上实现的基于策略的路由规则),则模块140可以覆写之前将分组转发到端口P6的确定并且随后可以将分组转发到期望的目的地(例如,通过合适的端口)。
如果期望,用户可以独立地指定用于各虚拟交换机、虚拟路由器和/或虚拟系统路由器的访问控制列表和基于策略的路由规则。例如,用户可以指定用于结构120上的虚拟交换机的访问控制规则和基于策略的路由规则的第一集合,可以指定用于结构120上的虚拟路由器的访问控制规则和基于策略的路由规则的第二集合,并且可以指定用于结构120上的虚拟系统路由器的访问控制规则和基于策略的路由规则的第三集合。通过独立地提供用于各虚拟交换机、虚拟路由器和虚拟系统路由器的访问控制和路由规则,相对于向网络上的所有交换机提供单个策略集合的系统网络管理员可以以改进的灵活性或效率来操作结构120。
交换机130的模块可以共同地实现用于交换机的流表(诸如,流表28)。例如,可以使用虚拟交换机识别模块132和L2转发模块134来实现只在层2报头字段上操作的流表条目。又如,可以使用虚拟路由器识别模块136和L3转发模块138来实现只在层3报头字段上操作的流表条目。再如,可以使用识别模块132、L2转发模块134、虚拟路由器识别模块136和L3转发模块138来实现在层2报头字段和层3报头字段二者上操作的流表条目。在模块140上实现的流表条目可以对接收到的分组的任何所期望字段进行操作。
其中分别实现模块132、134、136、138和140的图9的示例仅仅是说明性的。如果期望,可以使用共享电路来合并和实现任何两个或更多个模块的功能。模块可以被实现为软件交换机(诸如,图7的管理程序交换机E5)中的软件模块或者可以使用专用电路来实现。各交换机130可能能够执行网络转发和网络路由二者,其有助于允许控制器实现分布式虚拟交换机、虚拟路由器和虚拟系统路由器。
在指导网络流量通过网络时,控制器可以使用虚拟分布式路由器、系统路由器和交换机。图12是图示控制器可以如何控制虚拟路由器、虚拟系统路由器和虚拟交换机以在网络中将网络流量从第一端主机路由到第二端主机的示图。图12的虚拟网络拓扑与图8和图6的下层网络拓扑100对应。在图12的示例中,已经省略了诸如虚拟交换机VSW2的元件,以便不会不必要地混淆描述。
在图12的示例中,在步骤162中,端主机EH3可以发送去往端主机EH4的网络分组160(如箭头所示)。网络分组160可以包括作为目的地IP地址的端主机EH4的IP地址(IP4)和作为源IP地址的端主机EH3的IP地址(IP3)。分组160可以包括作为源MAC地址的端主机EH3的MAC(例如,以太网)地址(MAC3)和初始TTL值64(或任何所期望的初始值)。端主机EH3与不同于端主机EH4的L3接口关联和耦合(例如,端主机EH3和EH4没有耦合到单个虚拟路由器的相同接口)。端主机EH3因此不能访问端主机EH4的MAC地址并且可以包括作为网络分组160的目的地MAC地址的虚拟路由器VR1的接口IF1的MAC地址(MACVR1-1)。
基于分组160的目的地MAC地址字段,虚拟交换机VSW1可以将网络分组160传递到虚拟路由器VR1的接口IF1。在处理期间,虚拟交换机可以忽略层3报头字段(诸如,IP报头字段)。虚拟路由器VR1可以在接口IF1处接收分组160并且对分组执行网络路由操作。基于来自控制器的控制数据,虚拟路由器VR1可以确定应该通过系统路由器SR1路由网络分组160(例如,控制器可以向虚拟路由器VR1提供识别分组160将被转发到与不同虚拟路由器耦合的端主机EH4的IP目的地地址的控制数据)。例如,由控制器18提供到虚拟路由器VR1的控制数据可以指示虚拟路由器VR1通过系统路由器SR1来路由具有被指派给不同虚拟路由器的目的地的数据。在步骤166中,虚拟路由器VR1可以修改分组160,以生成修改后的网络分组164并且将它发送到系统路由器SR1。在图12的示例中,虚拟路由器VR1可以将分组的目的地MAC地址重写成系统路由器SR1的MAC地址(MACSR1),将源MAC地址重写成虚拟路由器VR1的接口IF3的MAC地址(MACVR1),并且将TTL报头字段缩减成63。
虚拟路由器VR1可以将修改后的分组164经由接口IF3发送到虚拟系统路由器SR1。虚拟系统路由器SR1可以在接口IFSR1处接收分组164并且可以对接收到的分组执行网络路由操作。基于来自控制器的控制数据(例如,接收到的流表条目),虚拟系统路由器SR1可以确定应该通过虚拟路由器VR2来路由网络分组164(例如,因为端主机EH4与不同于端主机EH3的虚拟系统路由器接口关联和耦合)。在步骤168中,虚拟系统路由器SR1可以修改分组164,以生成修改后的网络分组170并且将它发送到虚拟路由器VR2。可以由虚拟系统路由器SR1维护网络分组中的源和目的地IP地址信息。在确定例如分组应该经由接口IFSR2被发送到虚拟路由器VR2时,虚拟系统路由器SR1可以使用所维护的修改后的分组164中的目的地IP地址信息。在图12的示例中,虚拟系统路由器SR1可以将分组的目的地MAC地址重写成虚拟路由器VR2的MAC地址(MACVR2),将源MAC地址重写成虚拟系统路由器SR1的接口IFSR2的MAC地址(MACSR2),并且将TTL报头字段缩减成62。
虚拟路由器VR2可以在接口IF2处接收分组170并且对分组执行网络路由操作。基于来自控制器的控制数据,虚拟路由器VR2可以确定应该通过虚拟交换机VSW3将网络分组170路由到端主机EH4。
虚拟路由器VR2可以修改分组170以生成修改后的网络分组172并且经由虚拟交换机VSW3将它发送到端主机EH4(在步骤174中)。在步骤162、166、168和174期间,可以维护网络分组中的源和目的地IP地址信息(例如,虚拟路由器VR1、虚拟系统路由器SR1、虚拟路由器VR2和虚拟交换机VSW1和VSW3没有在处理网络分组时修改源或目的地IP地址信息)。在确定例如分组应该经由接口IF1被发送到端主机EH4时,虚拟路由器VR2可以使用所维护的修改后的分组170中的目的地IP地址信息。在图12的示例中,虚拟路由器VR2可以将分组的目的地MAC地址重写成端主机EH4的MAC地址(MAC4),将源MAC地址重写成虚拟路由器VR2的接口IF1的MAC地址(MACVR2-3),并且将TTL报头字段缩减成61。基于分组172的目的地MAC地址字段,虚拟交换机VSW2可以将网络分组172传递到端主机EH4(例如,到MAC地址MAC4)。在处理期间,虚拟交换机可以忽略层3报头字段(诸如,IP报头字段)。
控制器18可以通过向在其上分布虚拟交换机、虚拟系统路由器和虚拟路由器的下层交换机(例如,物理交换机和管理程序交换机)提供流表条目来控制虚拟交换机、虚拟系统路由器和虚拟路由器。在分组转发操作期间,从端主机的角度来看,逻辑拓扑120中的虚拟交换机、虚拟路由器和虚拟系统路由器可能与物理交换机和路由器的物理网络无法区分。逻辑拓扑120中的虚拟交换机、虚拟路由器和虚拟系统路由器可以被配置成执行任何所期望的网络操作(例如,与物理交换机和路由器的网络的操作关联的操作),即使虚拟交换机、虚拟路由器和虚拟系统路由器可以分布于任何所期望数量的下层物理交换机和/或管理程序交换机。
例如,端主机可以对虚拟路由器VR执行ping命令(例如,可以向虚拟路由器VR发送互联网控制消息协议(ICMP)回声请求分组并且虚拟路由器VR可以为端主机生成ICMP响应分组并且进行发送)和/或可以执行分组追踪路由操作。如果期望,端主机EH可以向被指派端主机的虚拟路由器的IP地址发送ICMP回声请求分组(例如,端主机EH3可以向虚拟路由器VR1的端接口IF1的IP地址发送请求分组)或者可以向还未被指派端主机的虚拟路由器的IP地址发送回声请求分组(例如,端主机EH3可以向虚拟路由器VR2的IP地址发送请求分组)。如果期望,结构120中的虚拟路由器和/或虚拟系统路由器可以将地址解析协议(ARP)请求分组注入网络中,以解析网络中的端主机的未知以太网(MAC)地址。
图13是图示控制器可以如何控制虚拟路由器、虚拟系统路由器和虚拟交换机以通过具有未解析(未知)以太网地址的物理路由器将网络流量从第一端主机路由到外部网络的一个示例的示图。图13的虚拟网络拓扑与图6的下层网络拓扑100和图8对应。在图13的示例中,已经省略了诸如虚拟交换机VSW3、控制器18和虚拟路由器VR2的元件,从而不会不必要地混淆描述。
在图13的示例中,在步骤180中,端主机EH3可以发送去往互联网(例如,外部网络102)的网络分组182。为了到达外部网络102,逻辑结构120需要将分组182转发到与外部网络120接口连接的互联网路由器67。在某些情况下,互联网路由器67可以具有未知的以太网地址,但具有在控制器18所识别的IP子网的范围内的已知的IP地址(例如,当控制器18生成逻辑结构120时,物理路由器67的已知IP地址可以被指派给与虚拟路由器VR1的接口IF2关联的子网SUBNET2,即使是当路由器67的以太网地址未被解析时)。
网络分组182可以包括作为目的地IP地址的外部路由器67的IP地址(IPEXT)和作为源IP地址的端主机EH3的IP地址(IP3)。分组182可以包括作为源MAC地址的端主机EH3的MAC(例如,以太网)地址(MAC3)。端主机EH3与不同于端主机EH4的L3接口关联和耦合(例如,端主机EH3可以被控制器18指派给接口IF1,而外部路由器67可以被指派给虚拟路由器VR1的接口IF2)。端主机EH3因此不能访问外部路由器67的MAC地址并且可以包括作为网络分组160的目的地MAC地址的虚拟路由器VR1的接口IF1的MAC地址(MACVR1-1)。
基于分组182的目的地MAC地址字段,虚拟交换机VSW1可以将网络分组182传递到虚拟路由器VR1的接口IF1。在处理期间,虚拟交换机可以忽略层3报头字段(诸如,IP报头字段)。虚拟路由器VR1可以经由接口IF1接收分组182并且对分组执行网络路由操作。基于来自控制器的控制数据,虚拟路由器VR1可以确定应该通过接口IF2路由网络分组182(例如,因为外部路由器67的目的地IP地址IPEXT可以落入被指派给接口IF2的子网SUBNET2的IP地址的范围内)。然而,在图13的示例中,虚拟路由器VR1可以不知道互联网路由器67的以太网(MAC)地址(例如,因为互联网路由器67可能已经最近被添加到网络中等)。
在该情况下,在步骤186中,虚拟路由器VR1可以生成ARP请求分组184(有时被称为ARP探测分组)并且将它广播到子网SUBNET2(例如,接口IF2)。在步骤190中,外部路由器67可以接收广播的ARP探测分组184并且可以生成ARP响应分组188,ARP响应分组188识别外部路由器67的MAC地址(MACEXT)。虚拟路由器VR1可以接收响应分组188并且可以处理响应分组以解析外部路由器67的以太网地址MACEXT(例如,如响应分组中识别的)。如果期望,虚拟路由器VR1可以将外部路由器67的以太网地址存储在存储器中供以后使用(例如,使得以后在结构120和外部路由器67之间进行通信时,虚拟路由器VR1不需要广播另外的ARP请求分组)。在步骤194中,虚拟路由器VR1可以修改分组182,以生成修改后的网络分组192并且将它发送到物理路由器67。在图13的示例中,虚拟路由器VR1可以将分组的目的地MAC地址重写成外部路由器67的经解析MAC地址(MACEXT),并且将源MAC地址重写成虚拟路由器VR1的接口IF2的MAC地址(MACVR1-2)。外部路由器67可以随后处理分组192以将分组192转发到互联网102。
图14示出可以由控制器(诸如,图6的控制器18)执行以基于网络转发策略来实现逻辑交换结构(诸如,图8的结构120)的说明性步骤的流程图。
在步骤202期间,控制器可以从端主机的群组(例如,诸如端主机EH1和EH2的端主机的群组和通向诸如互联网路由器67的外部网络的物理路由器)来生成虚拟交换机。可以由诸如网络管理员的用户来定义虚拟交换机。例如,控制器可以接收识别应该被指派给相应虚拟交换机的端主机的群组的信息。
在步骤204期间,控制器可以从虚拟交换机的群组来生成虚拟路由器。换句话讲,控制器可以从端主机的群组的集合来生成虚拟路由器。控制器可以基于从用户接收的信息来生成虚拟路由器(例如,类似于虚拟交换机)。例如,控制器可以接收应该被指派给相应虚拟路由器的虚拟交换机的群组的信息。
在步骤206期间,控制器可以从虚拟路由器的群组来生成虚拟系统路由器。换句话讲,控制器可以从虚拟交换机的群组的集合(例如,等同于端主机的集合)来生成虚拟路由器。例如,控制器可以接收识别应该被指派给相应虚拟系统路由器的虚拟交换机的群组的信息。控制器可以随后执行步骤210的操作,或者可选地,可选步骤208的步骤。
在其中通过基于机架的网络形成虚拟系统120的情况下,如果期望,控制器18可以通过下层主干交换机(诸如,如图7中所示的交换机C1和C2)实现虚拟系统路由器(诸如,图8的虚拟系统路由器SR1)。在一个合适的布置中,控制器18可以在单个主干交换机(诸如,主干交换机C1)上实现虚拟系统路由器SR1。在另一个合适的布置中,控制器18可以将虚拟系统路由器SR1分布于若干主干交换机(例如,使得虚拟系统路由器SR1只通过主干交换机实现)。在又一个合适的布置中,控制器18可以跨一个或更多个主干交换机和一个或更多个叶交换机来实现虚拟系统路由器SR1。通常,控制器18可以跨主干交换机、叶交换机和管理程序交换机的任何所期望数量和组合来实现虚拟系统路由器SR1。
如果期望,控制器18可以通过下层的叶交换机(诸如,如图7中所示的叶交换机E1和E2)来实现诸如虚拟路由器VR1的虚拟路由器(例如,控制器18可以在主干交换机上实现虚拟系统路由器SR1,而可以在叶交换机上实现虚拟路由器)。控制器18可以在单个叶交换机上、分布于若干叶交换机、或者在一个或更多个叶交换机和一个或更多个主干交换机上实现虚拟路由器VR1。如果期望,控制器18可以只在叶交换机上实现虚拟路由器并且可以只在主干交换机上实现对应的系统路由器。通常,控制器18可以跨主干交换机、叶交换机和管理程序交换机的任何所期望数量和组合来实现虚拟路由器。
在可选的步骤208期间,控制器可以提供预定策略模板的集合。例如,控制器可以维护数据库,其建立预定网络拓扑与用于这些网络布置的常用或优选策略(例如,访问控制列表策略或路由策略)的映射。在数据库中维护的网络拓扑可以包括虚拟网络拓扑或下层的物理网络拓扑。在该可选的情况下,用户可以在后续步骤210期间在所提供的服务策略集合中进行选择。
在步骤210期间,控制器可以接收用于向关联的网络流量应用(例如,用于在流表上实现系统120的虚拟交换机、虚拟路由器和虚拟系统路由器)的网络策略。可以从用户(诸如,网络管理员)接收网络策略。可以由网络源和网络目的地来识别网络流量。策略可以被识别为有序列表或者可以由一个或更多个要求的集合来识别。例如,策略可以包括组合的访问控制列表策略和基于策略的路由策略(例如,控制网络分组是被许可,被丢弃,还是被路由到用于在图9的模块140上实现的所期望位置的策略)。
在步骤212期间,控制器可以识别满足由用户定义的策略的路径(例如,虚拟交换机、虚拟路由器和虚拟系统路由器之间的路径)。控制器可以维护识别可用于识别路径的网络拓扑的信息。例如,在确定在虚拟网络拓扑下层的网络拓扑时,控制器可以与物理交换机和管理程序交换机进行通信。控制器可以基于控制器处维护的信息(诸如,网络负载和装置能力)来识别路径以提高性能、满足由策略定义的要求、或满足任何所期望的标准。控制器可以使用如图8中所示的一个或更多个虚拟路由器、一个或更多个虚拟系统路由器和/或一个或更多个虚拟交换机来识别用于分组转发的路径。在识别路径时,控制器可以首先识别由控制器维护的虚拟网络拓扑中的虚拟路径(例如,如图8中所示的通过虚拟路由器、虚拟系统路由器和/或虚拟交换机的路径)。控制器可以随后基于虚拟路径(例如,如图6中所示的通过物理交换机和管理程序交换机的路径)来识别下层网络拓扑中的路径。
在步骤214期间,控制器可以生成在步骤210期间识别的路径。在生成所识别的路径时控制器可以与物理交换机和管理程序交换机进行通信。例如,控制器可以提供流表条目,流表条目指导物理交换机和管理程序交换机沿着所期望的网络路径转发和修改与流表条目匹配的网络分组(例如,控制器可以提供用于在模块134、138和/或覆写模块140中实现的流表条目,如图9中所示)。如果期望,控制器18可以独立地生成用于实现满足用于虚拟路由器、虚拟系统路由器和虚拟交换机中的每一个的用户定义的策略的所识别路径的流表条目(例如,控制器18可以在虚拟系统路由器SR1上(例如,在被指派给虚拟系统路由器SR的下层交换机上)实现的流表条目的第一独立集合、在虚拟路由器VR1上实现的流表条目的第二独立集合、在虚拟交换机VSW1上实现的流表条目的第三独立集合等)。以此方式,控制器18可以灵活地控制跨虚拟拓扑120进行的数据转发操作。
在某些情况下,可能期望的是在虚拟系统120添加新网络路由(路径)(例如,在控制器18已经生成了系统120之后,在系统120中添加新路径)。图15示出可以由控制器18执行的在逻辑系统120中添加逻辑路由的说明性步骤的流程图(如图8中所示)。
在步骤220中,控制器18可以通过生成并识别虚拟交换机、虚拟路由器和虚拟系统路由器(例如,通过执行图14的步骤)来设置和建立逻辑系统120。当期望在逻辑结构120中的实体之间添加新逻辑路由时(例如,当用户期望在逻辑结构中添加新逻辑路由时),处理可以前进至步骤222。
在步骤222中,控制器可以接收由用户定义的源和用于新路由的“下一跳”目的地(例如,用于在源和下一跳目的地之间添加逻辑路由)。可以基于逻辑结构120的配置,由用户来提供并且由控制器来接收下一跳目的地。例如,用户可以定义将在其中添加新路由(例如,通向所期望的虚拟路由器或虚拟系统路由器)的结构120上的逻辑实体并且可以定义将被提供新路由的网络分组的集合(例如,与逻辑实体接收到的网络分组匹配使得只有与这些规则匹配的分组被转发到新路由的匹配规则的集合)。
如果期望,用户可以将下一跳目的地定义为逻辑对象,并且随后可以定义逻辑对象。例如,控制器可以接收识别虚拟路由器VR1作为源和识别逻辑对象“A”作为用于新路由的下一跳目的地的用户输入。控制器可以随后接收使用期望的IP地址来定义逻辑对象“A”的用户输入(例如,用户可以将逻辑对象“A”定义为单个IP地址作为下一跳目的地,或者可以将逻辑对象“A”定义为若干IP地址作为下一条目的地,使得从源转发到下一跳目的地的分组在若干IP地址之间达到负载平衡)。
在步骤224中,控制器18可以生成实现所添加路由的流表条目(例如,使得虚拟交换机、虚拟路由器和/或虚拟系统路由器接收到的分组基于所定义的新路由将匹配的分组转发到所期望的下一跳目的地)。
如果期望,控制器18可以将逻辑系统120的一些部分(例如,一个或更多个子网)标记为“私有”网络部分,使得限制跨虚拟系统路由器SR1的接口进行私有网络部分的通信。图16示出控制器18可以执行的将逻辑系统120的一些部分标记为私有的说明性步骤的流程图。
在步骤230中,控制器18可以通过生成并识别虚拟交换机、虚拟路由器和虚拟系统路由器(例如,通过执行图14的步骤)来设置和建立逻辑系统120。当期望将系统120的一部分标记为私有时,处理可以前进至步骤232。例如,网络管理员可能期望使系统120的一些部分成为被限制跨虚拟系统路由器SR1的接口进行通信的私有部分。
在步骤232中控制器18可以识别将标记为私有的虚拟交换机(例如,子网)。控制器18可以基于用于定义子网的IP地址范围来识别将标记为私有的子网(例如,当在步骤230的处理期间创建了逻辑系统时)。如果期望,控制器18可以将具有IP地址与和虚拟系统路由器SR1关联的其它IP地址重叠的子网标记为私有。
通常,给定虚拟路由器的子网中的IP地址范围可以不重叠(例如,图8的子网SUBNET1可以不包括也在SUBNET2中的任何IP地址)。然而,给定虚拟路由器的一个或更多个子网可以包括与和系统120中的其它虚拟路由器连接的子网重叠的IP地址范围(例如,被指派给第一虚拟系统路由器接口的子网内的IP地址可以与被指派给第二虚拟系统路由器接口的子网内的IP地址重叠)。例如,在图8中示出的逻辑系统中,子网SUBNET1可以包括IP地址IPA、IPB和IPC,子网SUBNET2可以包括IP地址IPD和IPE,并且与系统路由器接口IFSR2关联的子网SUBNET3可以包括IP地址IPE和IPF。在该示例中,与虚拟系统路由器接口IFSR1关联的SUBNET2包括与和虚拟系统路由器接口IFSR2关联的子网SUBNET3重叠(公共)的IP地址(例如,SUBNET2和SUBNET3均包括具有IP地址IPE的端主机)。控制器18由此可以将SUBNET2标记为私有子网以限制在SUBNET2中的端主机和其它虚拟系统路由器接口之间的通信。
在步骤234中,控制器18可以基于逻辑结构120的已经被标记私有的部分来生成网络转发规则(诸如,流表条目)。控制器18可以向虚拟路由器提供流表条目。在实现时,流表条目可以指示虚拟路由器丢弃从标记为私有的虚拟交换机去往虚拟系统路由器SR1的其它接口的所有流量(例如,从被标记为私有的虚拟交换机或虚拟路由器接口接收的分组)。在其中SUBNET2被标记为私有的情况下,虚拟路由器VR1可以例如丢弃通过目的地在虚拟路由器VR2(或者与除了接口IFSR1外的虚拟系统路由器SR1的接口耦合的任何目的地)中的接口IF2(例如,从虚拟交换机VSW2的端主机)接收的所有流量。虚拟路由器VR1可以继续路由在标记为私有的子网和与虚拟路由器VR1耦合的其它虚拟交换机之间(例如,在SUBNET2和SUBNET1之间)的流量,而不丢弃该流量(例如,可以限制标记为私有的子网与其它虚拟路由器的通信,但是该子网可以继续在对应的虚拟路由器内进行通信)。以此方式,即使当只有有限数量的IP地址可用时,用户也可以在系统1200中若干次实现特定IP地址。
在其中通过下层基于机架的网络来实现逻辑交换机结构的情况下,可以在叶交换机和主干交换机的任何所期望的组合上实现虚拟系统路由器(诸如,系统路由器SR1)、虚拟路由器(诸如,路由器VR1和VR2)和虚拟交换机(诸如,交换机VSW1、VSW2和VSW3)。如果期望,控制器18可以基于当穿过主干交换机时流量是正在逻辑定义拓扑中的虚拟交换机、虚拟路由器还是虚拟系统路由器内转发,隔离在逻辑系统120的基于机架的实现中通过主干交换机前进的流量。例如,控制器18可以通过将预留的VLAN标签指派给数据分组来隔离流量(例如,可以将第一预留VLAN标签指派给当穿过物理主干交换机时在虚拟交换机内转发的流量;可以将第二预留VLAN标签指派给当穿过物理主干交换机时在虚拟路由器内转发的流量;可以将第三预留VLAN标签指派给当穿过物理主干交换机时在虚拟系统路由器内转发的流量)。通常,可以使用任何所期望的隔离方案。
考虑例如其中图8的系统120在图7中示出的基于机架的网络上实现的情况。在该示例中,位于机架110中的端主机EH1可以发送去往位于机架112中的端主机EH3的网络分组。在物理网络上,分组可以通过主干交换机(例如,交换机C1或C2)转发,并且在通过物理网络实现的逻辑系统上,分组可以在虚拟路由器VR1内转发(例如,从虚拟路由器VR2的第二接口IF2转发到虚拟路由器VR2的第一接口IF1)。在端主机EH1和EH3之间转发的分组由此可以被提供第一预留VLAN标签,以将该分组与通过主干交换机C1和C2转发(例如,基于控制器18所提供的控制消息使用虚拟交换机、虚拟路由器和/或虚拟系统路由器)的其它流量隔离。
类似地,机架110中的端主机EH1可以发送去往可以位于机架112中的外部物理路由器67的网络分组。在物理网络上,分组可以通过主干交换机C1和C2转发,并且在逻辑系统上,分组可以在虚拟交换机VSW2内转发(例如,从与端主机EH1耦合的第一虚拟交换机端口转发到与物理路由器67耦合的第二虚拟交换机端口)。在端主机EH2和物理路由器67之间转发的分组由此可以被提供第二预留VLAN标签,以将该分组与在端主机EH1和EH3之间转发的分组隔离。另外,机架110中的端主机EH1可以发送去往位于机架112中的端主机EH4的网络分组。在物理网络上,分组可以通过主干交换机C1或C2转发,并且在逻辑系统上,分组可以在虚拟系统路由器SR1内转发(例如,从第一虚拟系统路由器接口IFSR1转发到第二虚拟系统路由器接口IFSR2)。在端主机EH1和端主机EH4之间转发的分组由此可以被提供第三预留VLAN标签,以将该分组与在端主机EH1和EH3之间(例如,虚拟路由器VR1内)转发的分组和在端主机EH1和物理路由器67之间(例如,在虚拟交换机VSW2内)转发的分组隔离。以此方式,可以基于逻辑系统120的逻辑拓扑来隔离通过单个下层主干交换机进行的流量。
根据一个实施例,提供了一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:用所述控制器从所述端主机的相应群组来形成多个虚拟交换机,其中至少一个虚拟交换机包括来自至少两个交换机的端口;用所述控制器从所述虚拟交换机的相应群组来形成多个虚拟路由器,其中,所述虚拟路由器执行网络路由操作;以及用所述控制器从所述虚拟路由器的群组来形成虚拟系统路由器,其中,所述虚拟系统路由器执行另外的网络路由操作。
根据另一个实施例,所述交换机包括至少一个物理交换机。
根据另一个实施例,所述交换机包括至少一个管理程序交换机。
根据另一个实施例,所述方法还包括:用所述控制器接收识别至少一个源端主机和至少一个目的地端主机的网络策略;以及用所述控制器通过控制第一虚拟路由器和第二虚拟路由器以及虚拟系统路由器来通过多个虚拟路由器中的至少所述第一虚拟路由器和所述第二虚拟路由器并且通过所述虚拟系统路由器指导所述源端主机和所述目的地端主机之间的网络分组。
根据另一个实施例,所述网络分组具有以太网地址字段,并且其中指导从所述源端主机到所述目的地端主机的网络分组包括:控制所述交换机,以将第一网络分组从所述源端主机发送到所述第一虚拟路由器;以及控制所述交换机,以通过重写所述第一网络分组的所述以太网地址字段,将第一修改网络分组从所述第一虚拟路由器发送到所述虚拟系统路由器。
根据另一个实施例,指导从所述源端主机到所述目的地端主机的网络分组还包括:控制所述交换机,以通过重写所述第一修改网络分组的所述以太网地址字段,将第二修改网络分组从所述虚拟系统路由器发送到所述第二虚拟路由器;以及控制所述交换机,以通过重写所述第二修改网络分组的所述以太网地址字段,将第三修改网络分组从所述第二虚拟路由器发送到所述目的地端主机。
根据另一个实施例,指导源端主机和目的地端主机之间的网络分组包括:向所述交换机提供与所述源端主机和所述目的地端主机之间的所述网络分组匹配的流表条目,其中,所述流表条目指导所述交换机以通过所述第一虚拟路由器和所述第二虚拟路由器以及所述虚拟系统路由器来转发所述网络分组。
根据另一个实施例,所述方法包括:用所述控制器通过控制所述虚拟交换机来通过所述第一虚拟路由器和所述第二虚拟路由器以及所述虚拟系统路由器指导所述源端主机和所述目的地端主机之间的网络分组。
根据另一个实施例,所述方法包括:用所述控制器接收网络策略的第一集合并且基于所述网络策略的第一集合来生成流表条目的第一集合;用所述控制器接收网络策略的第二集合并且基于所述网络策略的第二集合来生成流表条目的第二集合;用所述控制器向所述虚拟系统路由器提供所述流表条目的第一集合;以及用所述控制器向所述虚拟路由器中的至少一个提供所述流表条目的第二集合。
根据另一个实施例,所述方法还包括:用所述控制器接收网络策略的第三集合并且基于所述网络策略的第三集合来生成流表条目的第三集合;以及用所述控制器向所述虚拟交换机中的至少一个提供所述流表条目的第三集合。
根据另一个实施例,所述网络策略的第一集合和第二集合中的给定一个包括访问控制列表,所述访问控制列表指定是否许可与第一虚拟交换机关联的给定端主机通过所述第一虚拟交换机向另外的端主机发送分组。
根据一个实施例,提供了一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:用所述控制器从所述端主机的第一群组来形成第一虚拟交换机;用所述控制器从所述端主机的第二群组和物理路由器来形成第二虚拟交换机,其中所述第一虚拟交换机和所述第二虚拟交换机中的至少一个包括来自至少两个不同交换机的端口;用所述控制器从所述第一虚拟交换机和所述第二虚拟交换机来形成虚拟路由器,其中,所述虚拟路由器执行网络路由操作;以及用所述控制器来控制所述第一虚拟交换机和所述第二虚拟交换机以及所述虚拟路由器,以通过所述物理路由器将网络分组从给定端主机转发到外部网络。
根据另一个实施例,所述虚拟路由器包括具有第一以太网地址的第一接口和具有第二以太网地址的第二接口,其中控制所述第一虚拟交换机和所述第二虚拟交换机以及所述虚拟路由器以转发所述网络分组包括:控制所述虚拟路由器以将网络分组从所述第一接口路由到所述第二接口。
根据另一个实施例,所述方法还包括:用所述控制器从所述端主机的第三群组来形成第三虚拟交换机;用所述控制器从至少所述第三虚拟交换机来形成第二虚拟路由器;以及用所述控制器将所述第二虚拟交换机识别为私有虚拟交换机。
根据另一个实施例,所述方法还包括:用所述控制器来控制所述第一虚拟路由器,使得所述端主机的第二群组所生成的具有识别所述端主机的第三群组的目的地地址字段的网络分组被丢弃;以及用所述控制器来控制所述第一虚拟路由器,以将所述端主机的第二群组所生成的具有识别所述端主机的第一群组的目的地地址字段的网络分组转发到所述端主机的第一群组。
根据另一个实施例,所述方法还包括:用所述控制器从所述端主机的第三群组来形成第三虚拟交换机;用所述控制器从至少所述第三虚拟交换机来形成第二虚拟路由器;用所述控制器从所述第一虚拟路由器和所述第二虚拟路由器来形成虚拟系统路由器;以及用所述控制器向所述虚拟路由器提供第一控制消息并且向所述虚拟系统路由器提供第二控制消息。
根据一个实施例,一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:用所述控制器来生成包括多个虚拟交换机、多个虚拟路由器和至少一个虚拟系统路由器的网络的虚拟拓扑,其中所述虚拟交换机、所述虚拟路由器和所述虚拟系统路由器分布于所述网络中的若干下层交换机,其中所述虚拟交换机具有与所述端主机耦合的虚拟端口,其中所述虚拟路由器具有与虚拟交换机耦合的虚拟接口,并且其中所述虚拟系统路由器具有分别与所述虚拟路由器中的相应一个耦合的虚拟系统路由器接口。
根据另一个实施例,所述方法还包括:用所述控制器来控制所述虚拟系统路由器,以通过虚拟系统路由器接口中的对应的对将网络分组在所述多个虚拟路由器中的各路由器之间路由。
根据另一个实施例,所述交换机和所述端主机布置在基于机架的网络系统中,所述基于机架的网络系统具有与所述端主机耦合的叶交换机和与所述叶交换机中的每一个耦合的主干交换机,所述方法包括:用所述控制器通过向所述主干交换机提供第一流表条目在所述主干交换机中的至少一个上实现所述虚拟系统路由器;以及用所述控制器通过向叶交换机提供第二流表条目在所述叶交换机中的至少一个上实现所述虚拟路由器中的每一个。
根据另一个实施例,在所述主干交换机中的至少一个上实现所述虚拟系统路由器包括只在所述主干交换机上实现所述虚拟系统路由器。
根据另一个实施例,所述方法包括:用所述控制器来控制所述多个虚拟路由器中的给定虚拟路由器,以生成地址解析协议ARP请求分组并且经由对应的虚拟交换机向所述端主机中的给定一个提供所述ARP请求分组;以及用所述控制器来控制所述虚拟路由器中的给定一个,以接收ARP响应分组并且基于接收到的所述ARP响应分组来解析所述端主机中的给定一个的以太网地址。
根据另一个实施例,所述方法包括:用所述控制器来配置所述虚拟路由器中的给定一个,以生成互联网控制消息协议ICMP分组并且通过对应的虚拟交换机向所述端主机中的给定一个提供所述ICMP分组。
以上仅仅是本发明的原理的说明性,本领域的技术人员可以在不脱离本发明的范围和精神的情况下进行各种修改。

Claims (22)

1.一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:
用所述控制器从所述端主机的相应群组来形成多个虚拟交换机,其中至少一个虚拟交换机包括来自至少两个交换机的端口;
用所述控制器从所述虚拟交换机的相应群组来形成多个虚拟路由器,其中,所述虚拟路由器执行网络路由操作;以及
用所述控制器从所述虚拟路由器的群组来形成虚拟系统路由器,其中,所述虚拟系统路由器执行另外的网络路由操作。
2.根据权利要求1所述的方法,其中所述交换机包括至少一个物理交换机。
3.根据权利要求2所述的方法,其中所述交换机还包括至少一个管理程序交换机。
4.根据权利要求1所述的方法,所述方法还包括:
用所述控制器接收识别至少一个源端主机和至少一个目的地端主机的网络策略;以及
用所述控制器通过控制第一虚拟路由器和第二虚拟路由器以及虚拟系统路由器来通过多个虚拟路由器中的至少所述第一虚拟路由器和所述第二虚拟路由器并且通过所述虚拟系统路由器指导所述源端主机和所述目的地端主机之间的网络分组。
5.根据权利要求4所述的方法,其中所述网络分组具有以太网地址字段,并且其中指导从所述源端主机到所述目的地端主机的网络分组包括:
控制所述交换机,以将第一网络分组从所述源端主机发送到所述第一虚拟路由器;以及
控制所述交换机,以通过重写所述第一网络分组的所述以太网地址字段,将第一修改网络分组从所述第一虚拟路由器发送到所述虚拟系统路由器。
6.根据权利要求5所述的方法,其中指导从所述源端主机到所述目的地端主机的网络分组还包括:
控制所述交换机,以通过重写所述第一修改网络分组的所述以太网地址字段,将第二修改网络分组从所述虚拟系统路由器发送到所述第二虚拟路由器;以及
控制所述交换机,以通过重写所述第二修改网络分组的所述以太网地址字段,将第三修改网络分组从所述第二虚拟路由器发送到所述目的地端主机。
7.根据权利要求4所述的方法,其中指导源端主机和目的地端主机之间的网络分组包括:
向所述交换机提供与所述源端主机和所述目的地端主机之间的所述网络分组匹配的流表条目,其中,所述流表条目指导所述交换机以通过所述第一虚拟路由器和所述第二虚拟路由器以及所述虚拟系统路由器来转发所述网络分组。
8.根据权利要求4所述的方法,所述方法还包括:
用所述控制器通过控制所述虚拟交换机来通过所述第一虚拟路由器和所述第二虚拟路由器以及所述虚拟系统路由器指导所述源端主机和所述目的地端主机之间的网络分组。
9.根据权利要求1所述的方法,所述方法还包括:
用所述控制器接收网络策略的第一集合并且基于所述网络策略的第一集合来生成流表条目的第一集合;
用所述控制器接收网络策略的第二集合并且基于所述网络策略的第二集合来生成流表条目的第二集合;
用所述控制器向所述虚拟系统路由器提供所述流表条目的第一集合;以及
用所述控制器向所述虚拟路由器中的至少一个提供所述流表条目的第二集合。
10.根据权利要求9所述的方法,所述方法还包括:
用所述控制器接收网络策略的第三集合并且基于所述网络策略的第三集合来生成流表条目的第三集合;以及
用所述控制器向所述虚拟交换机中的至少一个提供所述流表条目的第三集合。
11.根据权利要求10所述的方法,其中所述网络策略的第一集合和第二集合中的给定一个包括访问控制列表,所述访问控制列表指定是否许可与第一虚拟交换机关联的给定端主机通过所述第一虚拟交换机向另外的端主机发送分组。
12.一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:
用所述控制器从所述端主机的第一群组来形成第一虚拟交换机;
用所述控制器从所述端主机的第二群组和物理路由器来形成第二虚拟交换机,其中所述第一虚拟交换机和所述第二虚拟交换机中的至少一个包括来自至少两个不同交换机的端口;
用所述控制器从所述第一虚拟交换机和所述第二虚拟交换机来形成虚拟路由器,其中,所述虚拟路由器执行网络路由操作;以及
用所述控制器来控制所述第一虚拟交换机和所述第二虚拟交换机以及所述虚拟路由器,以通过所述物理路由器将网络分组从给定端主机转发到外部网络。
13.根据权利要求12所述的方法,其中,所述虚拟路由器包括具有第一以太网地址的第一接口和具有第二以太网地址的第二接口,其中控制所述第一虚拟交换机和所述第二虚拟交换机以及所述虚拟路由器以转发所述网络分组包括:
控制所述虚拟路由器以将网络分组从所述第一接口路由到所述第二接口。
14.根据权利要求12所述的方法,所述方法还包括:
用所述控制器从所述端主机的第三群组来形成第三虚拟交换机;
用所述控制器从至少所述第三虚拟交换机来形成第二虚拟路由器;以及
用所述控制器将所述第二虚拟交换机识别为私有虚拟交换机。
15.根据权利要求14所述的方法,所述方法还包括:
用所述控制器来控制所述第一虚拟路由器,使得所述端主机的第二群组所生成的具有识别所述端主机的第三群组的目的地地址字段的网络分组被丢弃;以及
用所述控制器来控制所述第一虚拟路由器,以将所述端主机的第二群组所生成的具有识别所述端主机的第一群组的目的地地址字段的网络分组转发到所述端主机的第一群组。
16.根据权利要求12所述的方法,所述方法还包括:
用所述控制器从所述端主机的第三群组来形成第三虚拟交换机;
用所述控制器从至少所述第三虚拟交换机来形成第二虚拟路由器;
用所述控制器从所述第一虚拟路由器和所述第二虚拟路由器来形成虚拟系统路由器;以及
用所述控制器向所述虚拟路由器提供第一控制消息并且向所述虚拟系统路由器提供第二控制消息。
17.一种使用控制网络中的交换机的控制器的方法,所述网络具有与所述交换机耦合的端主机,所述方法包括:
用所述控制器来生成包括多个虚拟交换机、多个虚拟路由器和至少一个虚拟系统路由器的网络的虚拟拓扑,其中所述虚拟交换机、所述虚拟路由器和所述虚拟系统路由器分布于所述网络中的若干下层交换机,其中所述虚拟交换机具有与所述端主机耦合的虚拟端口,其中所述虚拟路由器具有与虚拟交换机耦合的虚拟接口,并且其中所述虚拟系统路由器具有分别与所述虚拟路由器中的相应一个耦合的虚拟系统路由器接口。
18.根据权利要求17所述的方法,所述方法还包括:
用所述控制器来控制所述虚拟系统路由器,以通过虚拟系统路由器接口中的对应的对将网络分组在所述多个虚拟路由器中的各路由器之间路由。
19.根据权利要求17所述的方法,其中所述交换机和所述端主机布置在基于机架的网络系统中,所述基于机架的网络系统具有与所述端主机耦合的叶交换机和与所述叶交换机中的每一个耦合的主干交换机,所述方法包括:
用所述控制器通过向所述主干交换机提供第一流表条目在所述主干交换机中的至少一个上实现所述虚拟系统路由器;以及
用所述控制器通过向叶交换机提供第二流表条目在所述叶交换机中的至少一个上实现所述虚拟路由器中的每一个。
20.根据权利要求19所述的方法,其中在所述主干交换机中的至少一个上实现所述虚拟系统路由器包括只在所述主干交换机上实现所述虚拟系统路由器。
21.根据权利要求17所述的方法,所述方法还包括:
用所述控制器来控制所述多个虚拟路由器中的给定虚拟路由器,以生成地址解析协议ARP请求分组并且经由对应的虚拟交换机向所述端主机中的给定一个提供所述ARP请求分组;以及
用所述控制器来控制所述虚拟路由器中的给定一个,以接收ARP响应分组并且基于接收到的所述ARP响应分组来解析所述端主机中的给定一个的以太网地址。
22.根据权利要求17所述的方法,所述方法还包括:
用所述控制器来配置所述虚拟路由器中的给定一个,以生成互联网控制消息协议ICMP分组并且通过对应的虚拟交换机向所述端主机中的给定一个提供所述ICMP分组。
CN201580045965.5A 2014-07-21 2015-07-17 使用控制器执行逻辑网络转发的系统和方法 Expired - Fee Related CN106797351B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/337,178 2014-07-21
US14/337,178 US10250529B2 (en) 2014-07-21 2014-07-21 Systems and methods for performing logical network forwarding using a controller
PCT/US2015/040940 WO2016014362A1 (en) 2014-07-21 2015-07-17 Systems and methods for performing logical network forwarding using a controller

Publications (2)

Publication Number Publication Date
CN106797351A true CN106797351A (zh) 2017-05-31
CN106797351B CN106797351B (zh) 2020-05-19

Family

ID=53872142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580045965.5A Expired - Fee Related CN106797351B (zh) 2014-07-21 2015-07-17 使用控制器执行逻辑网络转发的系统和方法

Country Status (4)

Country Link
US (1) US10250529B2 (zh)
EP (1) EP3172875B1 (zh)
CN (1) CN106797351B (zh)
WO (1) WO2016014362A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110061897A (zh) * 2018-01-19 2019-07-26 思锐科技股份有限公司 虚拟网络隧道内流量数据获取方法与系统
CN110808909A (zh) * 2019-10-08 2020-02-18 杭州迪普科技股份有限公司 跨虚拟系统的报文处理方法和装置
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN113746760A (zh) * 2020-05-27 2021-12-03 瞻博网络公司 通信方法、网络控制器和计算机可读存储介质
CN114365462A (zh) * 2019-09-19 2022-04-15 威睿公司 使用混合分布式逻辑路由器的云环境中的l3底层路由
CN115086219A (zh) * 2022-05-31 2022-09-20 深信服科技股份有限公司 一种虚拟路由器确定方法、设备及计算机可读存储介质
CN115412492A (zh) * 2021-05-28 2022-11-29 瞻博网络公司 由架顶式交换机针对裸金属服务器的策略实施
CN115514701A (zh) * 2021-06-22 2022-12-23 迈络思科技有限公司 用于处理分层网络拓扑中的多个本地链路故障的无死锁本地重新路由
US20230127430A1 (en) * 2021-10-22 2023-04-27 EMC IP Holding Company LLC Data read method, data storage method, electronic device, and computer program product
CN114365462B (zh) * 2019-09-19 2024-05-14 威睿有限责任公司 使用混合分布式逻辑路由器的云环境中的l3底层路由

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972554B2 (en) * 2010-09-30 2015-03-03 The Nielsen Company (Us), Llc Methods and apparatus to measure mobile broadband market share
US9910686B2 (en) 2013-10-13 2018-03-06 Nicira, Inc. Bridging between network segments with a logical router
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US20160065503A1 (en) * 2014-08-29 2016-03-03 Extreme Networks, Inc. Methods, systems, and computer readable media for virtual fabric routing
US9743367B2 (en) * 2014-09-18 2017-08-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Link layer discovery protocol (LLDP) on multiple nodes of a distributed fabric
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10250443B2 (en) * 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US10009229B2 (en) * 2015-06-11 2018-06-26 Cisco Technology, Inc. Policy verification in a network
US10178024B2 (en) * 2015-06-26 2019-01-08 Nicira, Inc. Traffic forwarding in a network with geographically dispersed sites
US10015201B2 (en) * 2015-06-30 2018-07-03 At&T Intellectual Property I, L.P. Implementing application level multimedia services as a switching function
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
US9781037B2 (en) 2015-09-15 2017-10-03 Cisco Technology, Inc. Method and apparatus for advanced statistics collection
US9866474B2 (en) * 2015-12-01 2018-01-09 Quanta Computer Inc. Centralized server switch management
US11005750B2 (en) * 2016-08-05 2021-05-11 Huawei Technologies Co., Ltd. End point to edge node interaction in wireless communication networks
WO2018103019A1 (zh) * 2016-12-07 2018-06-14 华为技术有限公司 一种软件定义网络中路由管理的方法和交换机
US11121946B2 (en) * 2016-12-09 2021-09-14 Nicira, Inc. Capturing packets in a virtual switch
US9912739B1 (en) * 2017-01-12 2018-03-06 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
US10348638B2 (en) * 2017-05-30 2019-07-09 At&T Intellectual Property I, L.P. Creating cross-service chains of virtual network functions in a wide area network
US11165863B1 (en) 2017-08-04 2021-11-02 128 Technology, Inc. Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain
US10797959B2 (en) * 2017-08-11 2020-10-06 Quanta Computer Inc. LLDP based rack management controller
US10419327B2 (en) 2017-10-12 2019-09-17 Big Switch Networks, Inc. Systems and methods for controlling switches to record network packets using a traffic monitoring network
CN109688062B (zh) * 2017-10-19 2021-07-13 中兴通讯股份有限公司 一种路由方法和路由设备
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US11018975B2 (en) * 2018-04-05 2021-05-25 Nicira, Inc. Caching flow operation results in software defined networks
US10708125B1 (en) * 2018-09-05 2020-07-07 Amazon Technologies, Inc. Gateway configuration using a network manager
US10887122B1 (en) * 2018-11-19 2021-01-05 Juniper Networks, Inc. Dynamically providing traffic via various packet forwarding techniques
US11228492B2 (en) * 2019-01-08 2022-01-18 Red Hat Israel, Ltd. Debugging a network switch by replaying configuration
US11075857B2 (en) * 2019-06-13 2021-07-27 Cisco Technology, Inc. Peephole optimization of lightweight protocols at lower layers
US11463356B2 (en) 2019-10-14 2022-10-04 Arista Networks, Inc. Systems and methods for forming on-premise virtual private cloud resources
US11582067B2 (en) 2019-10-14 2023-02-14 Arista Networks, Inc. Systems and methods for providing network connectors
US11582102B2 (en) 2019-10-14 2023-02-14 Arista Networks, Inc. Systems and methods for integrating network switch management with computing resource management
US11316713B2 (en) * 2019-11-25 2022-04-26 International Business Machines Corporation Virtual drawers in a server
WO2021107768A1 (en) * 2019-11-29 2021-06-03 Mimos Berhad Segmentation system and method for virtualized environment
US11463312B2 (en) * 2021-01-21 2022-10-04 Cisco Technology, Inc. Secure onboarding of network devices
US11595232B1 (en) * 2021-07-13 2023-02-28 Paul Chang Switch fabric for a data center network having virtual machines
CN114363021B (zh) * 2021-12-22 2023-11-03 绿盟科技集团股份有限公司 网络靶场系统、网络靶场系统的虚拟网络实现方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857416A (zh) * 2012-09-18 2013-01-02 中兴通讯股份有限公司 一种实现虚拟网络的方法和虚拟网络
CN103269282A (zh) * 2013-04-25 2013-08-28 杭州华三通信技术有限公司 网络配置自动部署方法和装置
CN103444143A (zh) * 2011-03-18 2013-12-11 日本电气株式会社 网络系统及策略路由设置方法
US20140056310A1 (en) * 2010-03-31 2014-02-27 Brocade Communications Systems, Inc. Switch With Network Services Packet Processing
CN103795622A (zh) * 2014-01-22 2014-05-14 杭州华三通信技术有限公司 一种报文转发方法及其装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674756B1 (en) 1999-02-23 2004-01-06 Alcatel Multi-service network switch with multiple virtual routers
US8675656B2 (en) 2007-02-20 2014-03-18 Cisco Technology, Inc. Scaling virtual private networks using service insertion architecture
US8812726B2 (en) 2008-09-09 2014-08-19 Cisco Technology, Inc. Service insertion in a computer network using internet protocol version 6 techniques
US20100254385A1 (en) 2009-04-07 2010-10-07 Cisco Technology, Inc. Service Insertion Architecture (SIA) in a Virtual Private Network (VPN) Aware Network
US8650618B2 (en) 2009-07-22 2014-02-11 Cisco Technology, Inc. Integrating service insertion architecture and virtual private network
US9304782B2 (en) * 2010-05-03 2016-04-05 Pluribus Networks, Inc. Network switch, systems, and servers implementing boot image delivery
US8804748B2 (en) 2011-03-31 2014-08-12 Nokia Siemens Networks Ethernet Solutions Ltd. Hitless node insertion for Ethernet networks
US8660129B1 (en) * 2012-02-02 2014-02-25 Cisco Technology, Inc. Fully distributed routing over a user-configured on-demand virtual network for infrastructure-as-a-service (IaaS) on hybrid cloud networks
US8923296B2 (en) 2012-02-23 2014-12-30 Big Switch Networks, Inc. System and methods for managing network packet forwarding with a controller
US9647883B2 (en) * 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140056310A1 (en) * 2010-03-31 2014-02-27 Brocade Communications Systems, Inc. Switch With Network Services Packet Processing
CN103444143A (zh) * 2011-03-18 2013-12-11 日本电气株式会社 网络系统及策略路由设置方法
CN102857416A (zh) * 2012-09-18 2013-01-02 中兴通讯股份有限公司 一种实现虚拟网络的方法和虚拟网络
CN103269282A (zh) * 2013-04-25 2013-08-28 杭州华三通信技术有限公司 网络配置自动部署方法和装置
CN103795622A (zh) * 2014-01-22 2014-05-14 杭州华三通信技术有限公司 一种报文转发方法及其装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110945843A (zh) * 2017-07-19 2020-03-31 阿里巴巴集团控股有限公司 虚拟交换设备和方法
CN110061897A (zh) * 2018-01-19 2019-07-26 思锐科技股份有限公司 虚拟网络隧道内流量数据获取方法与系统
CN114365462A (zh) * 2019-09-19 2022-04-15 威睿公司 使用混合分布式逻辑路由器的云环境中的l3底层路由
CN114365462B (zh) * 2019-09-19 2024-05-14 威睿有限责任公司 使用混合分布式逻辑路由器的云环境中的l3底层路由
CN110808909A (zh) * 2019-10-08 2020-02-18 杭州迪普科技股份有限公司 跨虚拟系统的报文处理方法和装置
CN110808909B (zh) * 2019-10-08 2021-09-21 杭州迪普科技股份有限公司 跨虚拟系统的报文处理方法和装置
CN113746760B (zh) * 2020-05-27 2023-07-21 瞻博网络公司 通信方法、网络控制器和计算机可读存储介质
CN113746760A (zh) * 2020-05-27 2021-12-03 瞻博网络公司 通信方法、网络控制器和计算机可读存储介质
CN115412492A (zh) * 2021-05-28 2022-11-29 瞻博网络公司 由架顶式交换机针对裸金属服务器的策略实施
CN115514701A (zh) * 2021-06-22 2022-12-23 迈络思科技有限公司 用于处理分层网络拓扑中的多个本地链路故障的无死锁本地重新路由
US20230127430A1 (en) * 2021-10-22 2023-04-27 EMC IP Holding Company LLC Data read method, data storage method, electronic device, and computer program product
US11836382B2 (en) * 2021-10-22 2023-12-05 EMC IP Holding Company LLC Data read method, data storage method, electronic device, and computer program product
CN115086219B (zh) * 2022-05-31 2024-04-09 深信服科技股份有限公司 一种虚拟路由器确定方法、设备及计算机可读存储介质
CN115086219A (zh) * 2022-05-31 2022-09-20 深信服科技股份有限公司 一种虚拟路由器确定方法、设备及计算机可读存储介质

Also Published As

Publication number Publication date
EP3172875A1 (en) 2017-05-31
CN106797351B (zh) 2020-05-19
WO2016014362A1 (en) 2016-01-28
EP3172875B1 (en) 2019-05-15
US20160021032A1 (en) 2016-01-21
US10250529B2 (en) 2019-04-02

Similar Documents

Publication Publication Date Title
CN106797351A (zh) 使用控制器执行逻辑网络转发的系统和方法
US9548896B2 (en) Systems and methods for performing network service insertion
CN105051688B (zh) 经扩展的标记联网
CN104285416B (zh) 在存储区域网络中端接覆盖隧道的虚拟路由器
EP3058681B1 (en) Method for testing networks with a controller
CN102986172B (zh) 虚拟集群交换
CN104937885B (zh) 用于结构交换机的全局vlan
CN103997414B (zh) 生成配置信息的方法和网络控制单元
CN103650456B (zh) 基于逻辑拓扑的分布式计算服务的服务递送位置的布局
US9185056B2 (en) System and methods for controlling network traffic through virtual switches
US9130870B1 (en) Methods for determining network topologies
CN105376154B (zh) 渐进式mac地址学习
US8923296B2 (en) System and methods for managing network packet forwarding with a controller
CN105553849B (zh) 一种传统ip网络与sptn网络互通方法与系统
CN108696434A (zh) 一种转发数据报文的方法、设备和系统
CN107431642A (zh) 用于控制交换机以捕获和监视网络流量的系统和方法
CN107018056A (zh) 具有mac(l2)级认证、安全和策略控制的增强的evpn mac路由通知
CN107770062A (zh) 一种数据包发送方法、装置及网络架构
JP6248938B2 (ja) 通信システム、仮想ネットワーク管理装置、仮想ネットワークの管理方法及びプログラム
US9548900B1 (en) Systems and methods for forwarding network packets in a network using network domain topology information
CN108353026A (zh) 用于链路聚合组中的高级分布的方法、系统和计算机可读介质
CN105812257B (zh) 业务链路由管理系统及其使用方法
US11463356B2 (en) Systems and methods for forming on-premise virtual private cloud resources
CN108512737A (zh) 一种数据中心ip层互联的方法和sdn控制器
CN104350710B (zh) 实现FCoE的方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200519