CN107710700B - 处理计算机网络中的分组的系统和方法 - Google Patents

处理计算机网络中的分组的系统和方法 Download PDF

Info

Publication number
CN107710700B
CN107710700B CN201680038670.XA CN201680038670A CN107710700B CN 107710700 B CN107710700 B CN 107710700B CN 201680038670 A CN201680038670 A CN 201680038670A CN 107710700 B CN107710700 B CN 107710700B
Authority
CN
China
Prior art keywords
packet
mac address
port
computing device
forwarding device
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.)
Active
Application number
CN201680038670.XA
Other languages
English (en)
Other versions
CN107710700A (zh
Inventor
马克·伦特克茨纳
岑志伟
詹姆斯·迈克尔·贝内特
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107710700A publication Critical patent/CN107710700A/zh
Application granted granted Critical
Publication of CN107710700B publication Critical patent/CN107710700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

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

Abstract

本公开提供处理分组的系统和方法。系统可以包括第一计算设备、第二计算设备和第一分组转发设备。第一计算设备和第二计算设备中的每一个可通信地耦合到第一分组转发设备的相应的端口。第一分组转发设备的每个端口可以被分配唯一MAC地址。对从第一计算设备接收的第一分组,第一分组转发设备可以被配置为确定第一分组的目的地MAC地址与被分配给接收第一分组的端口的MAC地址匹配,以及响应于该确定,将第一分组转发给第二计算设备。对从第二计算设备接收的第二分组,第一分组转发设备可以被配置为经由其MAC地址与第二分组的源MAC地址匹配的端口,转发第二分组。

Description

处理计算机网络中的分组的系统和方法
相关申请的交叉引用
本申请要求于2015年9月15日提交的名为“SYSTEMS AND METHODS FORPROCESSING PACKETS IN A COMPUTER NETWORK”的美国专利申请No.14/854,939的优先权,其全部内容通过引用并入本文。
背景技术
信息在计算机网络上传输。信息被表示为分成分组的位。分组在通过计算机网络传播信息的诸如交换机和路由器的网络设备之间传递。每个分组从其源朝向由相应分组中的报头信息指定的目的地传输。分组的源和目的地可以分别位于网络的不同部分。源和目的地之间可以存以多个可能路由。
发明内容
在一些方面中,本公开涉及一种系统。该系统可以包括第一计算设备、第二计算设备和第一分组转发设备。所述第一计算设备和所述第二计算设备中的每一个可以可通信地耦合到所述第一分组转发设备的相应的端口。对从所述第一计算设备接收的第一分组,所述第一分组转发设备可以被配置为确定所述第一分组的目的地MAC地址与接收所述第一分组的端口相关联。第一分组转发设备还可以被配置为响应于确定所述第一分组的目的地MAC地址与接收所述第一分组的端口相关联,将所述第一分组转发给所述第二计算设备。对从所述第二计算设备接收的第二分组,所述第一分组转发设备可以被配置为经由与所述第二分组的源MAC地址相关联的端口转发所述第二分组。
在一些实施方式中,所述第一分组转发设备进一步被配置为响应于确定所述第二分组的源MAC地址不与所述第一分组转发设备的任何端口相关联,丢弃所述第二分组。在一些实施方式中,对从所述第一计算设备接收的第三分组,所述第一分组转发设备被配置为确定所述第三分组是广播分组和多播分组中的一个;将所述第三分组的目的地MAC地址改变为被分配给接收所述第三分组的端口的MAC地址,以及将所述第三分组转发给所述第二计算设备。
在一些实施方式中,被分配给所述第一分组转发设备的至少一个端口的MAC地址基于所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。在一些实施方式中,被分配给所述第一分组转发设备的至少一个端口的MAC地址包括所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。
在一些实施方式中所述第一分组转发设备进一步被配置为:
确定从所述第一计算设备接收的第四分组的目的地MAC地址不与接收所述第四分组的端口相关联并且所述第四分组的目的地MAC地址既不是广播MAC地址也不是多播MAC地址;以及响应于确定所述第四分组的目的地MAC地址不与接收所述第四分组的端口相关联并且所述第四分组的目的地MAC地址既不是广播MAC地址也不是多播MAC地址,丢弃所述第四分组。
在一些实施方式中,该系统可以包括:包括多个端口的第三计算设备。第三计算设备可以可通信地耦合到所述第一分组转发设备的相应的端口。所述第一分组转发设备可以进一步被配置为:确定从所述第三计算设备接收的第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联。第一分组转发设备还可以进一步被配置为响应于确定第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联,将第五分组转发给所述第二计算设备。
在一些实施方式中,所述第三计算设备被配置为确定从所述第一分组转发设备接收的第六分组的源MAC地址与所述第三计算设备可通信耦合的所述第一分组转发设备的端口相关联;以及经由与所述第六分组的源MAC地址相关联的第三计算设备的端口,转发所述第六分组。在一些实施方式中,所述第一计算设备进一步被配置为确保发往所述第二计算设备的每一分组具有与所述第一计算设备可通信耦合的所述第一分组转发设备的所述端口相关联的目的地MAC地址。在一些实施方式中,所述第二计算设备进一步被配置为确保发往所述第一计算设备的每一分组具有与所述第一计算设备可通信地耦合的所述第一分组转发设备的所述端口相关联的源MAC地址。
在一些方面中,本公开涉及一种处理分组的方法。该方法可以包括由第一分组转发设备从第一计算设备接收第一分组。该方法可以包括由所述第一分组转发设备确定所述第一分组的目的地MAC地址与接收所述第一分组的端口相关联。该方法可以包括响应于确定所述第一分组的目的地MAC地址与接收所述第一分组的端口相关联,由所述第一分组转发设备将所述第一分组转发给第二计算设备。该方法可以包括由所述第二计算设备将第二分组传输到所述第一分组转发设备。该方法可以包括由所述第一分组转发设备经由与所述第二分组的源MAC地址相关联的端口转发所述第二分组。
在一些实施方式中,该方法可以包括由所述第一分组转发设备确定所述第二分组的源MAC地址不与所述第一分组转发设备的任何端口相关联,以及响应于确定所述第二分组的源MAC地址不与所述第一分组转发设备的任何端口相关联,由所述第一分组转发设备丢弃所述第二分组。
在一些实施方式中,该方法可以包括由所述第一分组转发设备从所述第一计算设备接收第三分组。该方法可以包括由所述第一分组转发设备确定所述第三分组是广播分组和多播分组中的一个。该方法可以包括由所述第一分组转发设备将所述第三分组的目的地MAC地址改变为被分配给接收所述第三分组的端口的MAC地址。该方法可以包括由所述第一分组转发设备将所述第三分组转发给所述第二计算设备。
在一些实施方式中,被分配给所述第一分组转发设备的至少一个端口的MAC地址基于所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。在一些实施方式中,被分配给所述第一分组转发设备的至少一个端口的MAC地址包括所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。
在一些实施方式中,该方法可以包括由所述第一分组转发设备从所述第一计算设备接收第四分组。该方法可以包括由所述第一分组转发设备确定所述第四分组的目的地MAC地址不与接收所述第四分组的端口相关联并且所述第四分组的目的地MAC地址既不是广播MAC地址也不是多播MAC地址。该方法可以包括响应于确定所述第四分组的目的地MAC地址不与接收所述第四分组的端口相关联并且所述第四分组的目的地MAC地址既不是广播MAC地址也不是多播MAC地址,由所述第一分组转发设备丢弃所述第四分组。
在一些实施方式中,该方法可以包括由所述第一分组转发设备从第三计算设备接收第五分组。所述第三计算设备可以包括多个端口。该方法可以包括由所述第一分组转发设备确定从所述第三计算设备接收的第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联。该方法可以包括响应于确定第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联,由所述第一分组转发设备将所述第五分组转发给所述第二计算设备。
在一些实施方式中,该方法可以包括由所述第一分组转发设备将第六分组传输到所述第三计算设备。该方法可以包括由所述第三计算设备确定从所述第一分组转发设备接收的第六分组的源MAC地址与所述第三计算设备可通信耦合的所述第一分组转发设备的端口相关联。该方法可以包括由所述第三计算设备经由与所述第六分组的源MAC地址相关联的第三计算设备的端口,转发所述第六分组。
在一些实施方式中,该方法可以包括由所述第一计算设备确保发往所述第二计算设备的每一分组具有与所述第一计算设备可通信耦合的所述第一分组转发设备的所述端口相关联的目的地MAC地址。在一些实施方式中,该方法可以包括由所述第二计算设备确保发往所述第一计算设备的每一分组具有与所述第一计算设备可通信地耦合的所述第一分组转发设备的所述端口相关联的源MAC地址。
附图说明
当结合以下附图时,通过参考以下具体实施方式部分,将更全面地理解本公开的以上和相关的对象、特征、以及优点,其中:
图1A是用于转发分组的示例系统的框图;
图1B是用于转发分组的另一示例系统的框图;
图2是图1A所示的示例分组转发设备的框图;
图3是图示出用于转发分组的示例过程的流程图;
图4是图示出用于转发分组的另一示例过程的流程图;
为了清楚起见,并不是每个组件在每个图中均被标记。附图不旨在按比例绘制。相同的附图标记和名称在各个图中表示相同的元素。
具体实施方式
本公开的系统和方法涉及分组处理。具体地,本公开描述了一种类型的分组转发设备,其通过提供在主机设备和路由设备之间发送的分组的端口级控制,提高网络安全性。分组转发设备可以包括多个下行端口和单个上行端口,并且可以以允许上游设备确定其从主机设备接收的每一分组的出处的方式,在下行端口和上行端口之间转发所有分组。一般来说,分组的出处可以是指分组的来源以及分组转发设备的下行端口集,分组通过该端口集前往上游设备。上游设备和分组转发设备还可以被配置为允许上游设备选择分组转发设备的端口集,由上游设备传输的分组将通过该端口集外出。
图1A是用于转发分组的示例系统100的框图。系统100包括多个主机设备102a-102h(通常称为主机设备102)、三个分组转发设备110a-110c(通常称为分组转发设备110)以及路由设备122。系统100还包括连接到路由设备122的网络124。在一些实施方式中,网络124可以是大型外部计算机网络,诸如因特网。例如,路由设备122可以是向主机设备102提供因特网访问的企业网络的网关设备。在一些其他实施方式中,网络124可以是不同的计算机网络。
分组转发设备110a包括三个下行端口114a-114c和一个上行端口118a。类似地,分组转发设备110b包括三个下行端口114d-114f和一个上行端口118b,以及分组转发设备110c包括三个下行端口114g-114i和一个上行端口118c。下行端口114a-114i通常被称为下行端口114,而上行端口118a-118c通常被称为上行端口118。将端口标记为“上行”端口或“下行”端口不是指分组可以行进通过端口的方向。相反,它是指相对于系统100的整体层级,端口的相对位置。因此,上行端口118被放置得更靠近路由设备122,而下行端口114被放置得更靠近主机设备102。
分组转发设备110a和110b经由其相应的上行端口118a和118b,直接连接到路由设备122。分组转发设备110c的上行端口118c连接到分组转发设备110b的下行端口114f。因此,分组转发设备110b和分组转发设备110c以“级联”的布置连接。结果,在路由设备122和分组转发设备110c之间行进的分组还必须经过分组转发设备110b。分组转发设备110b的下行端口114f可以被称为级联端口,因为它连接到级联分组转发设备110c而不是主机设备102。与仅分组转发设备110b相比,分组转发设备110b和110c的级联布置可以允许更多主机设备102连接到路由设备122,因为分组转发设备110c提供可以分别连接到附加主机设备102的附加下游端口114。在一些实施方式中,系统100可以包括两级以上的级联分组转发设备110。例如,系统100可以包括三级、四级、五级或以上级的级联分组转发设备110。
在一些实施方式中,下行端口114f可以是专用级联端口(即,应当仅连接到诸如分组转发设备110c的级联分组转发设备110而不应当直接连接到主机设备102的端口)。在其他一些实施方式中,分组转发设备110b的下行端口114的任何一个可以被配置为级联端口,并且选择以用作级联端口的下行端口114f可以是任意的。例如,分组转发设备110b可以维护指示其下行端口114中的哪一个是级联端口的表。当分组转发设备110耦合到下游端口114时,可以更新表以指示级联分组转发设备110所连接的下行端口114是级联端口。维护对应于用作级联端口的下行端口114的信息可以帮助处理从路由设备122接收的分组,如下文进一步所述。
每个主机设备102连接到分组转发设备110之一的相应的下行端口114。尽管每个分组转发设备110被示出为包括三个下行端口114,但是应当理解到,该配置仅是示例性的。在其他实施方式中,每个分组转发设备110可以包括更大数量的下行端口114。例如,在一些实施方式中,每个分组转发设备110可以包括16、32、64或128个下行端口114。在一些实施方式中,每个分组转发设备110可以包括多达255个下行端口114。
分组转发设备110可以被配置为在路由设备122与主机设备102之间提供网络流量的端口级控制,使得路由设备122可以确定传入分组来自哪一下行端口114。这可以允许路由设备122跟踪分组的源,这可以在系统100中提供提高的安全性。例如,如果路由设备122接收包含恶意有效载荷的分组,则可以识别从其发送恶意分组的主机设备102。识别主机设备102可以允许采取校正动作,诸如从系统100移除该主机设备102或修复主机设备102。分组转发设备110还可以被配置为允许路由设备122选择传出分组从哪一下行端口114外出。在一些实施方式中,这可以允许路由设备122在系统100内实现负载平衡。
为了允许路由设备122确定传入分组的出处并且选择每个传出分组将外出的下行端口114,分组转发设备110的每个下行端口114可以与一个或多个MAC地址相关联。例如,直接连接到主机设备102的每个下行端口114可以与被分配给该下行端口114的唯一MAC地址相关联。被分配给下行端口114的MAC地址不仅相对于同一分组转发设备110上的其他下行端口114的MAC地址是唯一的,而且相对于其他分组转发设备110的下行端口114也是唯一的。每个主机设备102可以被配置为通过与连接主机设备102的相应的下行端口114匹配的目的地MAC地址,寻址指向分组转发设备110的分组。与分组转发设备110a相比,诸如交换机的典型网络节点通常具有单个MAC地址,并且主机设备通过同一目的地MAC地址,寻址指向该节点的分组,与主机设备连接到哪一端口无关。因为系统100中的每个主机设备102连接到相应的下行端口114,并且直接连接到主机设备102的每个下行端口114被分配唯一MAC地址,所以经由分组转发设备110到达路由设备122的分组可以基于包含在该分组的报头中的目的地信息被确定为源自特定的主机设备102。
在一些实施方式中,被分配给分组转发设备110的下行端口114的MAC地址可以基于从其他分组转发设备110中唯一地识别分组转发设备110的信息以及从该分组转发设备110上的其他下行端口114唯一地识别下行端口114的信息。例如,在一些实施方式中,唯一识别每个分组转发设备110的信息(有时被称为设备ID)可以是与分组转发设备110相关联的IPv4地址。在其他一些实施方式中,可以使用其他标识信息来区分每个分组转发设备110。例如,可以通过诸如序列号的值,或通过诸如与每个分组转发设备100相关联的MAC地址的另一硬件地址,区分分组转发设备110。在一些实施方式中,唯一地标识每个分组转发设备110上的下行端口114的信息可以是对给定分组转发设备110上的每个下行端口114唯一的任意数字,但是对被分配给不同分组转发设备110的下行端口114的数字可以不是唯一的。例如,可以由1和分组转发设备100上的端口数量之间的整数唯一地标识下行端口114。在一些实施方式中,每个端口可以被分配1和255之间的整数。
在一些实施方式中,从系统100中的每一其他下行端口114唯一地识别下行端口114的信息集(即从其他分组转发设备110唯一地标识分组转发设备110的信息加上从该分组转发设备110上的其他下行端口114唯一地标识下行端口114的信息)可以采用被分配给直接连接到主机设备102的每个下行端口114的MAC地址的形式。因为该信息集对于系统100中的每个下行端口114是唯一的,该MAC地址在系统100内也可以是唯一的。例如,在一些实施方式中,被分配给下行端口114的MAC地址可以基于被分配给下行端口114所处的分组转发设备110的IP地址,以及基于从该分组转发设备110上的其他下行端口中唯一标识下行端口114的数字110。
在一些实施方式中,被分配给下行端口114的MAC地址可以包括被分配给下行端口114所处的分组转发设备110的IP地址和从该分组转发设备110上的其他下行端口114唯一地标识下行端口114的数字。通常,MAC地址是可以表示为12个十六进制数位串的48位数字。在一些实施方式中,MAC地址的前两个十六进制数位可以被限制到某些值。被分配给下行端口114的MAC地址可以包括前两个十六进制数位的任何有效值。例如,用于被分配给下行端口114的MAC地址的前两个十六进制数位的有效值可以包括02或0E。被分配给下行端口114的MAC地址的接下来的八个十六进制数位可以对应于下行端口114所处的分组转发设备110的IPv4地址,并且最后两个十六进制数位可以是1和由分组转发设备110支持的下行端口114的数量之间的数字。在该示例中,被分配给特定分组转发设备110的下行端口114的MAC地址的前十个十六进制数位将是相同的,并且可以用作该分组转发设备110的所有下行端口114的公共前缀。最后两个十六进制数位在该分组转发设备110的每个下行端口114上将是不同的。
在一些实施方式中,以级联方式连接到其他分组转发设备110而不是直接连接到主机设备102的下行端口114(诸如连接到分组转发设备110c的下行端口114f)可以不被分配相应的MAC地址。相反,这样的下行端口114可以与它们所连接的级联分组转发设备110的下行端口114的MAC地址相关联。例如,下行端口114f可以不被分配其自己的MAC地址,而是可以与级联分组转发设备110c的下行端口114g-114i的MAC地址相关联。在一些实施方式中,下行端口114可以与分组转发设备110的多级级联中的所有下行端口114的MAC地址相关联。因此,通常,给定的下行端口114可以与一个或多个MAC地址相关联,所述一个或多个MAC地址可以包括被分配给该下行端口114的唯一MAC地址以及连接至该下行端口114的级联分组转发设备110上的下行端口114的MAC地址。
在一些实施方式中,分组转发设备110可以根据被选择以允许诸如路由设备122的上游设备确定从主机设备102传输到上游设备的每一分组的出处的规则集来处理分组。在下文中,进一步论述可以至少部分地基于与传输分组的下行端口114相关联的MAC地址的这些规则。
在一些实施方式中,分组转发设备110可以被配置为允许路由设备122选择从路由设备122传输的分组将外出的下行端口114。例如,路由设备122可以被配置为生成发往主机设备102a的分组,使得所生成的分组的源MAC地址与被分配给主机设备102a所连接的下行端口(即,下行端口114a)的MAC地址匹配。分组转发设备110a可以被配置为确定从路由设备122接收的分组的源MAC地址与被分配给下行端口114a的MAC地址相关联(例如,匹配),并且可以响应于该确定,经由下行端口114a转发该分组。如果分组转发设备110a确定从路由设备122接收的分组的源MAC地址不与下行端口114a-114c中的任何一个相关联,则分组转发设备110a可以被配置为丢弃该分组。因此,在该示例中,分组转发设备110a基于该分组的源MAC地址转发分组,并且丢弃其源MAC地址不与其下行端口114a-114c中的任何一个相关联的分组。这可以有助于防止受创建具有被伪造以匹配路由设备122的地址的源MAC地址和主机设备102之一的目的地MAC地址的分组的设备攻击。这样的分组将被丢弃,因为源MAC地址将不是与分组转发设备110的任何下行端口114相关联的MAC地址。
图1B是用于转发分组的另一示例系统101的框图。类似于图1所示的系统100,系统101包括连接到网络124的路由设备122。系统101还包括三个主机设备102i-102k(通常被称为主机设备102)以及两个分组转发设备110d和110e(通常被称为分组转发设备110)。分组转发设备110d和110e与图1所示的分组转发设备110a-110c类似,以及主机设备102i-102k与图1所示的主机设备102类似。例如,分组转发设备110d包括三个下行端口114j-114l和一个上行端口118d,以及分组转发设备110e包括三个下行端口114m-114o和一个上行端口118e。下行端口114j-1140通常被称为下行端口114,而上行端口118d和118e通常被称为上行端口118。
分组转发设备110d和110e经由其相应的上行端口118d和118e直接连接到路由设备122。系统101与图1所示的系统100的不同之处在于在系统101中,每个主机设备102和路由设备122之间存在多个路径。例如,主机设备102i可以经由下行端口114j或下行端口114k到达,主机设备102j可以经由下行端口114l或下行端口114m到达,以及主机设备102k可以经由下行端口114n或下行端口114o到达。如上结合图1A所述,直接连接到主机设备102的每个下行端口114被分配唯一MAC地址。
被分配给下行端口114的唯一MAC地址允许路由设备122选择到每个主机设备102的特定路径。例如,如上所述,路由设备122可以被配置为生成分组,该分组的源MAC地址与分组应该通过其外出的下行端口114的MAC地址匹配。因此,路由设备122可以通过将分组的源MAC地址设置为沿着期望路由的下行端口114的MAC地址来为分组选择特定路由。
在一些实施方式中,路由设备122可以基于负载平衡方案来选择路由。例如,路由设备122可以通过在对应的分组源MAC地址字段中指定期望的端口标识符,通过下行端口114j或下行端口114k,经由分组转发设备110d,选择性地将分组或分组流路由到主机设备102i。这样做可以帮助防止下行端口114j和114k中的任一个堵塞。上述功能在具有在汇聚节点和各种服务器机架之间提供多个路由的更复杂的交换机结构(例如,数据中心网络)的分层网络中特别有价值。
应当理解到,系统101的拓扑结构仅仅是示例性的。例如,在一些实施方式中,系统101可以包括额外的分组转发设备110,其中的一些可以以级联的方式来布置。每个主机设备102还可以连接到两个以上的下行端口114或仅单个下行端口114。
图1A中所示的系统100和图1B中所示的系统101中的每个分组转发设备110通常可以包括能够与其他设备(例如,其他分组转发设备110)通信的任何类型的设备。例如,每个分组转发设备110可以是计算机、路由器、交换机、服务器或这些元件的任意组合。类似地,主机设备102和路由设备122也可以是计算机、路由器、交换机、服务器或这些元件的任意组合。分组转发设备110、主机设备102和路由设备122可以分别包括至少一个处理器、存储器和网络接口卡。在一些实施方式中,网络124可以是因特网,以及系统100可以表示连接到因特网的数据中心。例如,主机设备102可以被配置为存储由数据中心托管的数据,并且经由分组转发设备110和路由设备122接收和响应对数据的请求。通常,数据中心可以支持广泛的计算机网络业务,包括与实时内容递送相关联的业务、由个人或移动计算机的用户访问的云计算服务、数据存储、数据索引、数据备份、批量数据传输和数据访问。在一些其他实施方式中,系统100可以表示连接到因特网或另一外部网络的企业网络。
图2是图1A中所示的示例分组转发设备110b的框图。如上所述,分组转发设备110b包括下行端口114d-114f(通常称为下行端口114)和上行端口118b。分组转发设备110b还包括MAC地址通告模块201、报头修改模块204、分组转发模块206和存储器208。
在一些实施方式中,MAC地址通告模块201可以被配置为向连接到下行端口114的每个设备发送指示直接连接到主机设备的下行端口114的唯一MAC地址的信息。例如,MAC地址通告模块201可以将与下行端口114d和114e相关联的MAC地址分别发送到连接到这些端口的设备。
在一些实施方式中,MAC地址通告模块201可以被配置为响应于从连接到下行端口114的设备接收到请求,将适当的MAC地址发送到相应的下行端口114。例如,MAC地址通告模块201可以被配置为响应从所连接的主机设备接收的地址解析协议(ARP)请求。例如,连接到下行端口114d的设备可以向分组转发设备110b发送ARP请求。MAC地址通告模块201可以通过将与下行端口114d的MAC地址相对应的信息传输到连接到下行端口114d的设备来响应ARP请求。可以从连接到下行端口114e的设备接收和处理ARP请求。因此,连接到分组转发设备110b的不同下行端口114的设备可以接收对ARP请求的不同响应。相反,典型的网络设备被配置为响应具有单个地址的ARP请求,而不管发起ARP请求的设备连接到哪一端口。MAC地址通告模块201可以进一步被配置为经由其上游端口118b,通告其下行端口114的MAC地址。如上所述,连接到另一个分组转发设备110c而不是如图1A所示的主机设备102的下游端口114f可以不被分配MAC地址,但可以与以级联的方式耦合到分组转发设备110b的其他分组转发设备的下行端口114(诸如图1A中所示的分组转发设备110c的下行端口114)的MAC地址相关联。因此,MAC地址通告模块也可以被配置为经由其上游端口118b来通告这些端口的MAC地址。
分组转发模块206可以被配置为基于在下文中结合图3和图4所述的规则集来转发分组。例如,对于经由下行端口114直接从主机设备接收的分组,分组转发模块206可以被配置为确定所接收的目的地MAC地址是否与接收分组的下行端口114相关联。在一些实施方式中,与每个下行端口114相关联的MAC地址可以被存储在存储器208中。分组转发模块206可以从存储器208检索该信息,并且可以将经由下行端口114接收的分组的目的地MAC地址与该信息比较以确定是否经由上行端口118转发分组。
报头修改模块204可以被配置为修改包含在由分组转发设备110b接收的分组的报头内的信息。在一些实施方式中,有必要修改分组报头信息,以便允许诸如图1A所示的路由设备122的上游设备确定从下游(例如,分组经过的分组转发设备110的下行端口集114)到达的分组的出处。例如,在一些实施方式中,主机设备可以将具有标识分组的目的地MAC地址的分组作为广播或组播分组传输。但是,如果该分组在经过分组转发设备110b后未改变地由路由设备接收,该路由设备将无法确定分组行进通过的下行端口114。为了解决该问题,报头修改模块204可以被配置为确定从下行端口114中的一个接收的分组是否是广播分组或多播分组,并且如果是,则修改分组的报头。可以修改分组的报头以包括与被分配给接收分组的下行端口114的目的地MAC地址匹配的目的地MAC地址,使得路由设备可以通过检查分组的目的地MAC地址字段来确定分组的出处。
在一些实施方式中,分组转发模块206可以被配置为确定所接收的分组的目的地MAC地址,并且将目的地MAC地址跟与广播和多播分组相关联的目的地MAC地址的列表比较。例如,可以在存储器208中维护这样的列表。如果所接收的分组是广播或多播分组,则分组转发模块206可以将分组发送到报头修改模块204,该报头修改模块204可以被配置为改变包含在分组的报头中的目的地字段以匹配被分配给接收分组的下行端口114的MAC地址。分组转发模块206可以将修改的分组发送给路由设备。当路由设备接收到修改的分组时,路由设备可以通过检查所接收的分组的目的地字段来确定分组行进通过的下行端口114。
在一些实施方式中,分组转发模块206可以确定是否转发经由级联下行端口114接收的分组。例如,分组转发设备110b可以存储与位于分组转发设备110b的下行端口114d-114f与一个或多个主机设备102之间的所有级联分组转发设备110的下行端口114相关联的MAC地址的列表。例如,这样的列表可以被存储在存储器208中。分组转发模块206可以被配置为将经由下行端口114接收的分组的目的地MAC地址与存储在列表中的MAC地址比较。如果确定匹配,则分组转发模块206可以经由上游端口118b转发分组。如果未确定匹配,则可以丢弃分组。在一些其他实施方式中,分组转发设备110b可以存储与位于分组转发设备110b的下行端口114d-114f和一个或多个主机设备102之间的所有级联分组转发设备110的下行端口114相关联的MAC地址的公共前缀的列表。如上所述,公共前缀可以是在分组转发设备110的所有下行端口114上相同的MAC地址的一部分(即,前十个十六进制数位)。由此,分组转发模块206可以通过确定所接收的分组的目的地MAC地址的前缀与级联分组转发设备110的公共前缀之间的匹配,而不是通过确定所接收的分组的整个目的地MAC地址和与级联分组转发设备110的任何一个上的下行端口114相关联的唯一MAC地址之间的匹配,更有效地确定是否转发经由级联下行端口114接收的分组。
在一些实施方式中,分组转发模块206可以被配置为经由下行端口114,转发直接从诸如图1A中所示的路由设备122或另一分组转发设备110的上游设备接收的分组。例如,分组转发模块206可以被配置为确定所接收的分组的源MAC地址是否与任何下行端口114相关联。在一些实施方式中,与每个下行端口114相关联的MAC地址可以被存储在存储器208中。分组转发模块206可以从存储器208中检索该信息,并且可以将经由上行端口118接收的分组的源MAC地址与该信息比较。如果确定匹配,则分组转发模块206可以被配置为经由与所接收的分组的源MAC地址相关联的下行端口114,转发所接收的分组。例如,如果下游端口114的MAC地址匹配所接收的分组的源MAC地址,或者如果下游端口114连接到具有其MAC地址与所接收的分组的源MAC地址匹配的下行端口的另一分组转发设备110,可以确定关联。因此,对从上游设备接收的分组,分组转发模块206可以响应于确定所接收的分组的源地址和与级联的下行端口114相关联的MAC地址之间的匹配,经由适当的下行端口114转发分组。在一些实施方式中,下行端口114可以是级联下行端口114,其连接到具有其MAC地址与所接收的分组的源MAC地址匹配的下行端口的另一分组转发设备100。如果确定不匹配,则分组转发模块206可以被配置为丢弃分组。
在一些其他实施方式中,分组转发模块206可以响应于确定分组的源MAC地址不匹配被分配给直接连接到主机设备的下行端口114中的任何一个的MAC地址,而不确定分组的源MAC地址匹配与位于分组转发设备110b的下行端口114d-114f和一个或多个主机设备102之间的所有级联分组转发设备的下行端口114相关联的源MAC地址,将分组转发给级联分组转发设备110。当分组到达级联中的最后一个分组转发设备110时,该分组转发设备可以基于分组的源MAC地址的其自己的检查来确定是丢弃分组还是转发分组。
在一些实施方式中,MAC地址通告模块201、报头修改模块204和分组转发模块206分别可以被实现为专用逻辑电路,诸如现场可编程门阵列(FPGA)或者专用集成电路(ASIC)。在其他实施方式中,MAC地址通告模块201、报头修改模块204和分组转发模块206可以被实现为存储在计算机可读介质上并且在一个或多个通用处理器上执行的一个或多个软件模块。在一些实施方式中,MAC地址通告模块201、报头修改模块204和分组转发模块206中的一些或全部的功能可以被组合成单个模块或者被进一步细分为更小的模块。分组转发设备110b还可以包括图2中未示出的其他通信硬件,诸如网络接口卡、附加存储器模块和输入/输出设备。
应理解到,包括在图1A和1B中所示的系统100中的任何分组转发设备110可以包括与上文结合分组转发设备110b所述类似的模块。例如,分组转发设备110a和分组转发设备110d分别可以包括相应的MAC地址通告模块201、相应的报头修改模块204、相应的分组转发模块206以及相应的存储器208。包括在其他分组转发设备110中的模块可以以类似于上文结合分组转发设备110b的模块所述类似的方式操作。
图3是示出用于转发分组的示例过程300的流程图。在一些实施方式中,过程300可以用于处理由诸如图1A和图1B中所示的分组转发设备110的分组转发设备从诸如图1A和1B中所示的任一主机设备102的计算设备接收的分组。简而言之,过程300包括由分组转发设备从第一计算设备接收分组(阶段302)。过程300包括确定所接收的分组是否是广播分组和多播分组中的一个(阶段304)。如果分组是广播分组或多播分组,则过程300包括将分组的目的地MAC地址改变为接收分组的端口的MAC地址(阶段306),并且将修改的分组转发给第二计算设备(阶段308)。如果分组既不是广播分组也不是多播分组,则过程300包括确定分组的目的地MAC地址是否与接收分组的端口相关联(阶段310)。如果分组的目的地MAC地址与接收分组的端口相关联,则过程300包括将分组转发给第二计算设备(阶段312)。如果分组的目的地MAC地址不与接收分组的端口相关联,则过程300包括丢弃分组(阶段314)。
再次参考图3,过程300包括由分组转发设备从第一计算设备接收分组(阶段302)。在一些实施方式中,第一计算设备可以是主机设备,诸如图1A和图1B所示的主机设备102中的任何一个,并且可以经由分组转发设备的下行端口连接到分组转发设备。在一些其他实施方式中,第一计算设备可以是位于第一分组转发设备与主机设备之间的另一分组转发设备。在其他实施方式中,第一计算设备可以是例如通过伪造(或欺骗)分组的源MAC地址以匹配主机设备中的一个的源MAC地址来尝试模仿主机设备中的一个的计算设备。过程300可以被用于丢弃不正确地指向诸如图1A和图1B中所示的路由设备122的上游路由设备的分组,并且使得路由设备能够确定由分组转发设备转发的分组的出处。
过程300包括确定所接收的分组是否是广播分组和多播分组中的一个(阶段304)。在一些实施方式中,可以为广播或多播分组预留某些目的地MAC地址,其可以被用在例如但不限于联网设备之间的安全协商、ARP请求、路由器发现或路由协议通告中。如果确定分组是广播分组或多播分组,则过程300包括将分组的目的地MAC地址改变为接收分组的端口的MAC地址(阶段306)。如果打算将广播分组或者组播分组未改变地转发给路由设备,则路由设备可能无法确定该分组所源自的特定主机设备或者通过其接收该分组的分组转发设备的下行端口。例如,另一主机设备欺骗了在分组中使用的源IP和源MAC地址。为了解决该问题,分组转发设备可以修改分组的目的地字段,以包含分组到达的下行端口的MAC地址。在一些实施方式中,即使目的地MAC地址已经被分组转发设备修改,分组的内容仍然可以指示该分组是多播或广播分组。
过程300包括将修改的分组转发给第二计算设备(阶段308)。在一些实施方式中,第二计算设备可以是图1A和图1B中所示的路由设备122。如上所述,直接耦合到主机的分组转发设备的每个下行端口可以具有唯一的MAC地址。因此,当第二计算设备接收到修改的分组时,第二计算设备可以通过检查所接收的分组的修改的目的地MAC地址来确定分组行进通过的下行端口。
如果分组既不是广播分组也不是多播分组,则过程300包括确定分组的目的地MAC地址是否与接收分组的端口相关联(阶段310)。例如可以通过将所接收的分组的目的地MAC地址和与接收分组的端口相关联的MAC地址比较来进行确定。如果分组的目的地MAC地址与接收分组的端口相关联,则过程300包括将分组转发给第二计算设备(阶段312)。在一些实施方式中,经由级联下行端口(即,连接到另一分组转发设备的下行端口)接收的分组经由上游端口被转发而无需检验,因为在级联分组转发设备转发该分组前,该分组已经被级联分组转发设备适当地处理。
在一些实施方式中,基于确定分组的目的地MAC地址与接收分组的下行端口相关联来转发分组可以有助于防止受可能尝试模仿主机设备的设备所攻击。例如,在一些实施方式中,主机设备被配置为生成发往第二计算设备的分组,使得分组的目的地MAC地址匹配主机设备分别连接到的分组转发设备的下行端口的MAC地址。因此,如果分组的目的地MAC地址不与接收分组的端口相关联,则分组转发设备可以确定该分组不是源自对应的主机设备,并且可以丢弃该分组(阶段314)。同样地,其源MAC地址被伪造以与主机设备的地址匹配的分组将不被转发,除非该分组还包括正确的目的地MAC地址(即,与由分组转发设备接收分组的下行端口相关联的MAC地址)。类似地,在具有被伪造以匹配上游设备的地址的源MAC地址的下行端口上接收的分组也将不被转发,除非该分组还包括正确的目的地MAC地址(即,与由分组转发设备接收该分组的下行端口相关联的MAC地址)。因此,具有伪造的源MAC地址的分组到达第二计算设备的可能性会降低。
在一些实施方式中,基于确定分组的目的地MAC地址与接收分组的下行端口相关联来转发分组可以允许诸如图1A中所示的路由设备122的上游设备来识别恶意分组的源。例如,如果上游设备接收到(例如,由于病毒感染而生成的)包含恶意有效载荷的分组,则可以基于分组的目的地MAC地址来识别发送恶意分组的主机设备,并且可以执行校正动作来移除或修复主机设备。
图4是示出用于转发分组的另一示例过程400的流程图。在一些实施方式中,过程400可以被用于处理由诸如图1A和图1B中示出的分组转发设备110的分组转发设备从诸如图1A和1B中所示的路由设备122的计算设备接收的分组。简而言之,过程400包括由分组转发设备从第二计算设备接收分组(阶段402)。过程400包括确定分组的源MAC地址是否与分组转发设备的任一下行端口相关联(阶段404)。如果分组的源MAC地址与分组转发设备的下游端口相关联,则过程400包括经由其MAC地址与分组的源MAC地址匹配的下行端口转发分组(阶段406)。如果分组的源MAC地址不与分组转发设备的下游端口相关联,则过程400包括丢弃分组(阶段408)。
再次参照图4,过程400包括由分组转发设备从第二计算设备接收分组(阶段402)。在一些实施方式中,第二计算设备可以是来自分组转发设备上游的路由设备,诸如图1A和图1B中所示的路由设备122,并且可以经由分组转发设备的上行端口连接到分组转发设备。在一些其他实施方式中,第二计算设备可以是级联分组转发设备。过程400可以被用于使得上游路由设备能够选择分组将通过其外出的分组转发设备的端口。
过程400包括确定分组的源MAC地址是否与分组转发设备的任何下行端口相关联(阶段404)。例如,可以通过将所接收的分组的源MAC地址和与分组转发设备的每一下行端口相关联的MAC地址比较来进行确定。如上所述,下行端口可以与被分配给该下行端口的MAC地址以及连接至该下行端口的级联分组转发设备的下行端口的MAC地址相关联。如果分组的源MAC地址与分组转发设备的下行端口相关联,则过程400包括经由与分组的源MAC地址相关联的下行端口转发分组(阶段406)。基于确定分组的源MAC地址与分组转发设备的下行端口中的一个之间的关联来转发分组可以有助于防止受可能试图模仿另一主机设备的主机设备所攻击。由上游路由设备而不是分组转发设备进行对分组将通过其外出的下行端口的选择。无论分组的目的MAC地址如何,分组转发设备都将经由其MAC地址与分组的源MAC地址相关联的下行端口,转发从路由设备接收的每个分组。路由设备可以通过将分组的源MAC地址设置为与目标主机设备被选择的下行端口相关联的MAC地址来选择目标主机设备来接收分组。结果,将阻止尝试例如通过通告与目标主机设备的MAC地址匹配的MAC地址接收发往目标主机设备的分组的另一主机设备接收这样的分组。相反,大多数网络设备基于分组的目的地MAC地址而不是源MAC地址来转发分组,因此,更有可能将分组转发给恶意模仿目标主机设备的主机设备。
本说明书中描述的主题以及操作的实施方式能够在数字电子电路中、或者体现在有形介质、固件、或硬件的计算机软件中实现,包括本说明书中公开的结构及其结构上的等价物、或者他们中的一个或多个的组合。本说明书中描述的主题的实施方式能够被实现为体现在有形介质上的一个或多个计算机程序,即,编码在一个或多个计算机存储介质上以由数据处理装置执行或者用于控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质能够为计算机可读存储设备、计算机可读存储基底、随机或顺序存取存储器阵列或设备、或他们中的一个或多个的组合,或者包括在其中。计算机存储介质还能够为一个或多个单独的组件或介质(例如,多CD、盘、或其他存储设备),或者包括在其中。计算机存储介质还可以为有形的以及非暂时性的。
计算机程序(还被称为程序、软件、软件应用、脚本、或代码)能够以任意形式的编程语言来编写,包括编译语言、解释语言、声明语言和过程语言,并且计算机程序可以以任意形式来部署,包括作为独立程序或者作为模块、组件、子例程、对象、或适于在计算环境中使用的其他单元。计算机程序可以但不需要与文件系统中的文件相对应。程序能够被存储在保持其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),能够存储在专用于所讨论的程序的单个文件中,或者能够存储在多个协同文件中(例如,存储一个或多个模块、库、子程序、或部分代码的文件)。能够部署计算机程序以在一个计算机上或多个计算机上执行,所述多个计算机位于一个地点或者分布在多个地点并且由通信网络互连。
本说明书中描述的过程和逻辑流程能够由一个或多个可编程处理器执行,所述一个或多个可编程处理器执行一个或多个计算机程序以通过操作输入数据并且生成输出来执行动作。过程和逻辑流程还能够由同样能够实现为专用逻辑电路的装置来执行,例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)。这种专用电路可以被称为计算机处理器,即使其不是通用的处理器。
虽然本说明书包含众多特定的实施方式细节,但是,不应该将这些解释为限制任何发明或可以要求保护的范围,而是应该解释为对特定于特定发明的特定实施方式的特征的描述。在单独的实施方式的场境中在本说明书中描述的某些特征在单个实施方式中还能够以组合的方式来实现。相反地,在单个实施方式的场境中描述的各种特征还能够分别在多个实施方式中实现或者在任意适当的子组合中实现。此外,尽管可以如上地将特征描述为以某些组合来起作用并且甚至初始地这样要求,来自要求保护的组合的一个或多个特征能够在某些情况下从组合中删除,并且要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然按照特定顺序在附图中描绘了各操作,不应该将这理解为要求这样的操作按照所示的特定顺序或连续顺序来执行,或者理解为要求执行所有图示的操作,以实现期望的结果。在某些情形下,多任务以及并行处理可以是有利的。此外,以上描述的实施方式中的各种系统组件的分离不应该被理解为在所有的实施方式中要求这样的分离,并且应该理解,所描述的程序组件和系统通常能够一起集成在单个软件产品中或者封装成多个软件产品。
对“或”的引用可以解释为包括性的,使得使用“或”描述的任意术语可以指示所描述的术语中的单个、多个、以及全部中的任意者。标记“第一”、“第二”、“第三”等等不一定意指指示排序并且通常仅用于在相同或类似的项或元素之间进行区分。
因此,已经描述了主题的特定实施方式。其他实施方式在所附权利要求的范围内。在一些情况下,权利要求中所记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序以实现期望的结果。在某些实施方式中,可以使用多任务和并行处理。

Claims (20)

1.一种用于处理分组的系统,包括:
第一计算设备;
第二计算设备;以及
第一分组转发设备,其中,所述第一计算设备和所述第二计算设备中的每一个通信地耦合到所述第一分组转发设备的相应的端口,并且其中,对于从所述第一计算设备接收的第一分组,所述第一分组转发设备被配置为:
确定所述第一分组的目的地MAC地址与接收所述第一分组的端口的标识符相关联;以及
响应于确定所述第一分组的所述目的地MAC地址与接收所述第一分组的所述端口的标识符相关联,将所述第一分组转发给所述第二计算设备;以及
对于从所述第二计算设备接收的第二分组,所述第一分组转发设备被配置为:经由与所述第二分组的源MAC地址相关联的端口转发所述第二分组。
2.如权利要求1所述的系统,其中,所述第一分组转发设备进一步被配置为:响应于确定所述第二分组的所述源MAC地址不与所述第一分组转发设备的任何端口的标识符相关联,丢弃所述第二分组。
3.如权利要求1所述的系统,其中,对于从所述第一计算设备接收的第三分组,所述第一分组转发设备被配置为:
确定所述第三分组是广播分组和多播分组中的一个;
将所述第三分组的目的地MAC地址改变为被分配给接收所述第三分组的端口的MAC地址;以及
将所述第三分组转发给所述第二计算设备。
4.如权利要求1所述的系统,其中,被分配给所述第一分组转发设备的至少一个端口的MAC地址是基于所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。
5.如权利要求4所述的系统,其中,被分配给所述第一分组转发设备的至少一个端口的MAC地址包括所述第一分组转发设备的所述IP地址和唯一地标识所述至少一个端口的所述数字。
6.如权利要求1所述的系统,其中,所述第一分组转发设备进一步被配置为:
确定从所述第一计算设备接收的第四分组的目的地MAC地址不与接收所述第四分组的端口的标识符相关联并且所述第四分组的所述目的地MAC地址既不是广播MAC地址也不是多播MAC地址;以及
响应于确定所述第四分组的所述目的地MAC地址不与接收所述第四分组的所述端口的标识符相关联并且所述第四分组的所述目的地MAC地址既不是广播MAC地址也不是多播MAC地址,丢弃所述第四分组。
7.如权利要求1所述的系统,进一步包括:
包括多个端口的第三计算设备,所述第三计算设备通信地耦合到所述第一分组转发设备的相应的端口,其中,所述第一分组转发设备进一步被配置为:
确定从所述第三计算设备接收的第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联;以及
响应于确定第五分组的所述目的地MAC地址与所述第三计算设备的设备ID相关联,将所述第五分组转发给所述第二计算设备。
8.如权利要求7所述的系统,其中,所述第三计算设备被配置为:
确定从所述第一分组转发设备接收的第六分组的源MAC地址与所述第三计算设备通信地耦合的所述第一分组转发设备的端口的标识符相关联;以及
经由与所述第六分组的所述源MAC地址相关联的所述第三计算设备的端口,转发所述第六分组。
9.如权利要求1所述的系统,其中,所述第一计算设备进一步被配置为:确保发往所述第二计算设备的每一分组具有的目的地MAC地址与所述第一计算设备通信地耦合的所述第一分组转发设备的所述端口的标识符相关联。
10.如权利要求1所述的系统,其中,所述第二计算设备进一步被配置为:确保发往所述第一计算设备的每一分组具有的源MAC地址与所述第一计算设备通信地耦合的所述第一分组转发设备的所述端口的标识符相关联。
11.一种处理分组的方法,包括:
由第一分组转发设备从第一计算设备接收第一分组;
由所述第一分组转发设备确定所述第一分组的目的地MAC地址与接收所述第一分组的端口的标识符相关联;
响应于确定所述第一分组的所述目的地MAC地址与接收所述第一分组的所述端口的标识符相关联,由所述第一分组转发设备将所述第一分组转发给第二计算设备;
由所述第二计算设备将第二分组传输到所述第一分组转发设备;
由所述第一分组转发设备经由与所述第二分组的源MAC地址相关联的端口转发所述第二分组。
12.如权利要求11所述的方法,进一步包括:
由所述第一分组转发设备确定所述第二分组的源MAC地址不与所述第一分组转发设备的任何端口的标识符相关联;以及
响应于确定所述第二分组的所述源MAC地址不与所述第一分组转发设备的任何端口的标识符相关联,由所述第一分组转发设备丢弃所述第二分组。
13.如权利要求11所述的方法,进一步包括:
由所述第一分组转发设备从所述第一计算设备接收第三分组;
由所述第一分组转发设备确定所述第三分组是广播分组和多播分组中的一个;
由所述第一分组转发设备将所述第三分组的目的地MAC地址改变为被分配给接收所述第三分组的端口的MAC地址;以及
由所述第一分组转发设备将所述第三分组转发给所述第二计算设备。
14.如权利要求11所述的方法,其中,被分配给所述第一分组转发设备的至少一个端口的MAC地址是基于所述第一分组转发设备的IP地址和唯一地标识所述至少一个端口的数字。
15.如权利要求14所述的方法,其中,被分配给所述第一分组转发设备的至少一个端口的MAC地址包括所述第一分组转发设备的所述IP地址和唯一地标识所述至少一个端口的所述数字。
16.如权利要求11所述的方法,进一步包括:
由所述第一分组转发设备从所述第一计算设备接收第四分组;
由所述第一分组转发设备确定所述第四分组的目的地MAC地址不与接收所述第四分组的端口的标识符相关联并且所述第四分组的所述目的地MAC地址既不是广播MAC地址也不是多播MAC地址;
响应于确定所述第四分组的所述目的地MAC地址不与接收所述第四分组的所述端口的标识符相关联并且所述第四分组的所述目的地MAC地址既不是广播MAC地址也不是多播MAC地址,由所述第一分组转发设备丢弃所述第四分组。
17.如权利要求11所述的方法,进一步包括:
由所述第一分组转发设备从第三计算设备接收第五分组,其中,所述第三计算设备包括多个端口;
由所述第一分组转发设备确定从所述第三计算设备接收的所述第五分组的目的地MAC地址与所述第三计算设备的设备ID相关联;以及
响应于确定所述第五分组的所述目的地MAC地址与所述第三计算设备的所述设备ID相关联,由所述第一分组转发设备将所述第五分组转发给所述第二计算设备。
18.如权利要求17所述的方法,进一步包括:
由所述第一分组转发设备将第六分组传输到所述第三计算设备;
由所述第三计算设备确定从所述第一分组转发设备接收的第六分组的源MAC地址与所述第三计算设备通信地耦合的所述第一分组转发设备的端口的标识符相关联;以及
由所述第三计算设备经由与所述第六分组的所述源MAC地址相关联的所述第三计算设备的端口,转发所述第六分组。
19.如权利要求11所述的方法,进一步包括:由所述第一计算设备确保发往所述第二计算设备的每一分组具有的目的地MAC地址与所述第一计算设备通信地耦合的所述第一分组转发设备的所述端口的标识符相关联。
20.如权利要求11所述的方法,进一步包括:由所述第二计算设备确保发往所述第一计算设备的每一分组具有的源MAC地址与所述第一计算设备通信地耦合的所述第一分组转发设备的所述端口的标识符相关联。
CN201680038670.XA 2015-09-15 2016-09-14 处理计算机网络中的分组的系统和方法 Active CN107710700B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/854,939 2015-09-15
US14/854,939 US10187218B2 (en) 2015-09-15 2015-09-15 Systems and methods for processing packets in a computer network
PCT/US2016/051734 WO2017048841A1 (en) 2015-09-15 2016-09-14 Systems and methods for processing packets in a computer network

Publications (2)

Publication Number Publication Date
CN107710700A CN107710700A (zh) 2018-02-16
CN107710700B true CN107710700B (zh) 2020-10-27

Family

ID=56997577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680038670.XA Active CN107710700B (zh) 2015-09-15 2016-09-14 处理计算机网络中的分组的系统和方法

Country Status (11)

Country Link
US (2) US10187218B2 (zh)
EP (1) EP3300546B1 (zh)
JP (2) JP6700318B2 (zh)
KR (2) KR102367307B1 (zh)
CN (1) CN107710700B (zh)
DE (2) DE112016002952T5 (zh)
DK (1) DK3300546T3 (zh)
GB (1) GB2555339B (zh)
HK (1) HK1244370A1 (zh)
TW (2) TWI761312B (zh)
WO (1) WO2017048841A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567379B2 (en) * 2017-06-26 2020-02-18 Bank Of America Corporation Network switch port access control and information security
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US11038887B2 (en) * 2017-09-29 2021-06-15 Fisher-Rosemount Systems, Inc. Enhanced smart process control switch port lockdown
CN110233799B (zh) * 2018-03-05 2021-10-26 华为技术有限公司 一种端口配置的方法和通信设备
US10911296B2 (en) * 2018-03-23 2021-02-02 Juniper Networks, Inc. Targeted selection of cascade ports
CN111147372B (zh) * 2018-11-05 2021-05-18 华为技术有限公司 下行报文发送、转发方法和装置
US11296783B2 (en) * 2019-03-27 2022-04-05 Juniper Networks, Inc. Managing satellite devices within a branch network
CN115567441A (zh) * 2019-11-05 2023-01-03 华为技术有限公司 一种用于生成转发信息的方法、装置和系统
KR102309116B1 (ko) * 2021-09-07 2021-10-08 프라이빗테크놀로지 주식회사 데이터 플로우 기반 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102264A (zh) * 2006-07-04 2008-01-09 华为技术有限公司 一种以太网转发数据的方法和一种以太网系统
CN101409685A (zh) * 2008-12-01 2009-04-15 杭州华三通信技术有限公司 基于虚拟局域网映射的转发方法及接入设备
CN102027767A (zh) * 2008-05-16 2011-04-20 日本电气株式会社 通信装置、通信方法以及通信控制程序
WO2013039643A1 (en) * 2011-09-12 2013-03-21 Cisco Technology, Inc. Packet forwarding using an approximate ingress table and an exact egress table
WO2015095996A1 (en) * 2013-12-23 2015-07-02 Telefonaktiebolaget L M Ericsson(Publ) Technique for network service availability

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US7430164B2 (en) * 1998-05-04 2008-09-30 Hewlett-Packard Development Company, L.P. Path recovery on failure in load balancing switch protocols
GB2358761B (en) 2000-01-25 2002-03-13 3Com Corp Multi-port network communication device with selective mac address filtering
GB2362289B (en) * 2000-05-10 2002-04-03 3Com Corp Distributed multicast routing in packet-based communication network devices
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US7463639B1 (en) * 2001-09-26 2008-12-09 Junpier Networks, Inc. Edge devices for providing a transparent LAN segment service and configuring such edge devices
TWI254527B (en) * 2003-02-19 2006-05-01 Nec Corp Network system, spanning tree configuration method and spanning tree configuration node
US7590114B1 (en) * 2003-03-24 2009-09-15 Marvell International Ltd Efficient IP multicast bridging in ethernet switches
US9014195B2 (en) 2003-05-02 2015-04-21 Vitesse Semiconductor Corporation Packet forwarding method and system
JP4464766B2 (ja) * 2004-03-03 2010-05-19 株式会社日立製作所 マルチキャスト配信制御装置
US7801125B2 (en) * 2004-10-22 2010-09-21 Cisco Technology, Inc. Forwarding table reduction and multipath network forwarding
US20060165108A1 (en) * 2005-01-21 2006-07-27 Mr. Sezen Uysal Method and system for unidirectional packet processing at data link layer
ES2383613T3 (es) * 2005-10-05 2012-06-22 Nortel Networks Limited Formación de puentes del estado de enlaces de proveedores
US7957332B1 (en) * 2006-11-15 2011-06-07 Marvell International Ltd. Memory efficient filtering
IL189514A (en) 2007-02-14 2011-12-29 Marvell Israel Misl Ltd Logical mediation system and method
US8116310B2 (en) * 2007-11-24 2012-02-14 Cisco Technology, Inc. Reducing packet flooding by a packet switch
US8134922B2 (en) * 2008-09-12 2012-03-13 Cisco Technology, Inc. Reducing flooding in a bridged network
US8645567B2 (en) * 2009-01-28 2014-02-04 Broadcom Corporation Method and system for packet filtering for local host-management controller pass-through communication via network controller
ES2361545B1 (es) 2009-02-24 2012-05-08 Universidad De Alcala De Henares Procedimiento de encaminamiento de tramas de datos y puente de red.
US8274980B2 (en) * 2009-02-26 2012-09-25 International Business Machines Corporation Ethernet link aggregation
WO2010106772A1 (ja) * 2009-03-17 2010-09-23 日本電気株式会社 分散処理システム及び分散処理方法
JP2010226455A (ja) * 2009-03-24 2010-10-07 Sony Corp ネットワーク通信装置
JP5392003B2 (ja) * 2009-03-30 2014-01-22 富士通株式会社 中継装置、状態通知方法、および、コンピュータプログラム
US8175107B1 (en) * 2009-08-18 2012-05-08 Hewlett-Packard Development Company, L.P. Network routing based on MAC address subnetting
JP2012034353A (ja) * 2010-06-28 2012-02-16 Panasonic Corp ネットワーク通信装置、通信方法および集積回路
US9608939B2 (en) * 2010-12-22 2017-03-28 Juniper Networks, Inc. Methods and apparatus to reduce forwarding state on an FCoE-to-FC gateway using port-specific MAC addresses
JP5648737B2 (ja) * 2011-03-11 2015-01-07 富士通株式会社 通信装置および通信方法
US9444743B2 (en) * 2011-04-04 2016-09-13 Nec Corporation Network system, switch and connected terminal detection method
US8537810B2 (en) * 2011-06-29 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) E-tree using two pseudowires between edge routers with enhanced learning methods and systems
US9729431B1 (en) * 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US20140241368A1 (en) * 2011-10-21 2014-08-28 Nec Corporation Control apparatus for forwarding apparatus, control method for forwarding apparatus, communication system, and program
US20140301403A1 (en) * 2011-10-28 2014-10-09 Nec Corporation Node device and method for path switching control in a ring network
CN103297354B (zh) * 2012-03-02 2017-05-03 日电(中国)有限公司 服务器互连系统、服务器和数据转发方法
JP5466723B2 (ja) * 2012-03-07 2014-04-09 株式会社Nttドコモ ホスト提供システム及び通信制御方法
JP5888036B2 (ja) * 2012-03-16 2016-03-16 富士通株式会社 中継装置、情報処理システム、中継方法および中継プログラム
JP5928197B2 (ja) * 2012-06-29 2016-06-01 富士通株式会社 ストレージシステム管理プログラム及びストレージシステム管理装置
US9036638B2 (en) * 2012-08-09 2015-05-19 International Business Machines Corporation Avoiding unknown unicast floods resulting from MAC address table overflows
CN103259727B (zh) * 2012-08-31 2016-12-28 杭州华三通信技术有限公司 一种报文转发方法及设备
US8875256B2 (en) * 2012-11-13 2014-10-28 Advanced Micro Devices, Inc. Data flow processing in a network environment
CN103873368B (zh) * 2012-12-11 2017-09-15 新华三技术有限公司 以太网报文转发方法和接入设备
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
US9294396B2 (en) * 2013-03-12 2016-03-22 Dell Products L.P. Port extender
US9397912B2 (en) * 2013-03-13 2016-07-19 Arista Networks, Inc. Method and system for active fabric management using unicast reachability monitoring
CN104283811B (zh) * 2013-07-09 2017-10-03 新华三技术有限公司 报文转发方法和装置
JP2017503405A (ja) * 2013-12-13 2017-01-26 華為技術有限公司Huawei Technologies Co.,Ltd. アドレス解決プロトコルメッセージを処理するための方法、スイッチ及びコントローラ
US20150172222A1 (en) * 2013-12-16 2015-06-18 James Liao Data center ethernet switch fabric
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
US9647883B2 (en) * 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
CN105099960B (zh) * 2014-04-30 2018-03-16 国际商业机器公司 用于实现服务链的方法和装置
CN105099847B (zh) * 2014-05-05 2019-01-08 新华三技术有限公司 一种多归属接入方法和装置
US9762489B2 (en) * 2014-09-24 2017-09-12 Cisco Technology, Inc. Local packet switching at a satellite device
US9942144B1 (en) * 2014-09-30 2018-04-10 Juniper Networks, Inc. Fibre channel over ethernet (FCoE) link aggregation group (LAG) support in data center networks
CN106209554B (zh) * 2015-05-04 2019-12-13 新华三技术有限公司 跨虚拟可扩展局域网的报文转发方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101102264A (zh) * 2006-07-04 2008-01-09 华为技术有限公司 一种以太网转发数据的方法和一种以太网系统
CN102027767A (zh) * 2008-05-16 2011-04-20 日本电气株式会社 通信装置、通信方法以及通信控制程序
CN101409685A (zh) * 2008-12-01 2009-04-15 杭州华三通信技术有限公司 基于虚拟局域网映射的转发方法及接入设备
WO2013039643A1 (en) * 2011-09-12 2013-03-21 Cisco Technology, Inc. Packet forwarding using an approximate ingress table and an exact egress table
WO2015095996A1 (en) * 2013-12-23 2015-07-02 Telefonaktiebolaget L M Ericsson(Publ) Technique for network service availability

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CISCO网络设备的IP/MAC地址绑定适用性分析;李大为; 陈宇;《吉林电力》;20131225;全文 *

Also Published As

Publication number Publication date
US10855480B2 (en) 2020-12-01
JP6872647B2 (ja) 2021-05-19
GB2555339A (en) 2018-04-25
JP6700318B2 (ja) 2020-05-27
KR20180017172A (ko) 2018-02-20
WO2017048841A1 (en) 2017-03-23
GB201720965D0 (en) 2018-01-31
US20180198634A1 (en) 2018-07-12
HK1244370A1 (zh) 2018-08-03
DE112016002952T5 (de) 2018-03-15
TWI805279B (zh) 2023-06-11
TWI761312B (zh) 2022-04-21
US10187218B2 (en) 2019-01-22
DK3300546T3 (da) 2020-03-02
KR102367307B1 (ko) 2022-02-23
EP3300546B1 (en) 2019-11-27
EP3300546A1 (en) 2018-04-04
KR102064919B1 (ko) 2020-01-10
JP2020099058A (ja) 2020-06-25
JP2018527776A (ja) 2018-09-20
TW201720108A (zh) 2017-06-01
US20190149345A1 (en) 2019-05-16
DE202016107382U1 (de) 2017-02-22
CN107710700A (zh) 2018-02-16
GB2555339B (en) 2021-05-05
KR20200003948A (ko) 2020-01-10
TW202226791A (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
CN107710700B (zh) 处理计算机网络中的分组的系统和方法
US10153967B2 (en) Deterministic and optimized bit index explicit replication (BIER) forwarding
US10033641B2 (en) Deterministic and optimized bit index explicit replication (BIER) forwarding
US9806994B2 (en) Routing via multiple paths with efficient traffic distribution
US9210074B2 (en) Low-cost flow matching in software defined networks without TCAMs
US10187290B2 (en) Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures
EP3136654A1 (en) Systems and methods for externalizing network functions via packet trunking
US20140064276A1 (en) Hashing-based routing table management
US11621853B1 (en) Protocol-independent multi-table packet routing using shared memory resource
CN110620717B (zh) 网络设备、非瞬态计算机可读介质以及用于通信的方法
CN107154902B (zh) 处理在以太网树中的vlan间的流量的方法和设备
US10554547B2 (en) Scalable network address translation at high speed in a network environment
EP3432513A1 (en) Deterministic and optimized bit index explicit replication (bier) forwarding
CN107786386B (zh) 对用于验证多播连接的双向转发检测(bfd)消息的选择性传输
US8948171B1 (en) System and method for IP multicast
KR102286466B1 (ko) 기능 기반 라우팅 방법 및 시스템
US11102146B2 (en) Scalable pipeline for EVPN multi-homing
CN109714259B (zh) 一种流量处理方法及装置

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1244370

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant