转发表缩减和多路径网络转发的制作方法

文档序号:7949095阅读:185来源:国知局
专利名称:转发表缩减和多路径网络转发的制作方法
转发表縮减和多路径网络转发相关申请交叉引用本申请要求2004年10月22日提交的题为"FC Over Ethernet"的美 国临时申请No. 60/621,396 (律师案巻号No. CISCP404P)和2005年6月 14日提交的题为"Forwarding Table Reduction and Multipath Network Forwarding"的美国申请No. 11/152,991 (律师案巻号No. CISCP431)的 优先权,这些申请整体通过引用结合于此。
背景技术
图l示出了简单的网络100,网络100包括第2层以太网交换机(或 IEEE 802.1D网桥)101、 102和103。根据生成树协议("STP"),网络 100中的一个设备(在本示例中是设备102)将根据各种标准被指定为 "根"。例如,根设备之所以被选出是因为该设备最接近网络中央。根据STP,根设备102是跨越网络中的所有网桥的无环树拓扑的根。 该拓扑将不允许流量在某些链路上流动(例如,链路104),以避免形成 环路并且允许网络设备执行正确转发分组所要求的学习。信息利用STP在 网桥之间被传递,使得每个网桥可以独立地判定阻塞哪个(哪些)端口来 形成树拓扑。在这种拓扑中,基于网桥102是根网桥这一事实,网桥103 将阻塞其端口 109从而断开环。(尽管这些术语在由本领域技术人员使用时可能有不同的含义,但是 术语"分组"和"帧"在这里有时会别互换地使用。)例如,如果尚未发 生学习,则当主机A第一次发送帧110到主机C时,交换机101将从A接 收到该帧,并且泛洪到所有未阻塞的端口。当交换机102在端口 107上接 收到帧110时,交换机102学习到A在端口 107的方向上,并且将泛洪到 除端口 107之外的所有未阻塞端口。类似地,交换机103将在端口 108上 接收到帧110,并且将学习到A在端口 108的方向上。
尽管生成树协议提供了有序的分组流,但是该协议不允许使用网络中 的所有链路。但是,阻塞链路很有用。成环可能是通过阻塞端口来创建树 拓扑解决的最大的问题。例如,如果链路104未被阻塞,则帧将在设备101、 102和103之间顺时钟和逆时钟循环。如果链路104尚未被阻塞,则 交换机103将在端口 109上接收到来自A的帧,并且随后将学习到A在 109的方向上。这种学习的改变将不断重复,并且因此帧将有时经由端口 108有时经由端口 109被转发到A。此外,分组将无序地到达,因为后发 送的分组可能沿较短的路径(链路104),因此在先发送的经由链路105 和106的分组之前到达。此外,当前的转发技术要求日益增大(因此更昂贵)的专门用于转发 表的存储器。再次参见图1,刀片(bade)服务器被附接到端口 112;刀 片交换机115具有16个附接的刀片120,每个刀片在本示例中充当一个服 务器。包括刀片服务器中的每个刀片在内的网络中的每个设备具有全球唯 一的40位的媒体访问控制("MAC")地址。刀片服务器正变得日益常 见,因此向网络添加了极大数量的MAC地址。此外,在不远的将来,单个物理服务器充当多个虚拟机可能变得很普 遍。在这种示例中,每个服务器120充当16个虚拟机,因此每个都需要 16个MAC地址。这使得附接到刀片交换机115的设备要求总共256个 MAC地址,每个都经由端口 112发送和接收帧。如果交换机103是256端 口交换机,可以设想每个端口可能具有一个附接的设备,该设备具有相当 多的MAC地址。这意味着超过65,000 (2562=65,536)个MAC地址可能 被与单个交换机的端口相关联。如果交换机101和103每个都有超过 65,000个关联的MAC地址,则仅仅对于两个交换机,根交换机102的转 发表就将需要存储超过130,000个48位的MAC地址。因此,随着数目曰 益增多的物理和虚拟设备被部署到网络中,转发表也变得越来越大,并且 关联的存储设备要求更大的容量并且变得日益昂贵。所以,期望解决至少一些现有技术的缺点。例如,期望使用根据生成 树协议通常会被阻塞的链路。此外,期望改进当前部署的转发方法和设 备,使得可以部署较小的转发表和关联的存储器
发明内容
本发明提供了对网络链路的更有效的使用,并且允许使用较小的转发 表从而使用较小的关联存储器。根据本发明的一些方面,在网络中实现了STP和多路径方法的组合。在本发明的一些方面中,不仅根据MAC地 址,而且还根据可以包括交换机ID和/或本地ID的分级地址,在交换机之 间转发帧。交换机ID不需要是全球唯一的,但是在特定网络中是唯一 的。本地ID在特定交换机中是唯一的。 一些优选的实现方式允许在不改 变帧的排序的情况下将帧通过网络传送,去往要求有序递送的设备。在本发明的一些优选实现方式中,核心交换机无需学习附接到网络的 所有主机设备的MAC地址。相反,核心交换机仅需学习每个核心交换机 和边缘交换机的交换机ID,以及与每个交换机相对应的适当的(一个或多 个)外出端口。在这种实现方式中,边缘交换机需要知道附接到该边缘交 换机的每个设备的MAC地址(以及附接的端口的本地ID)、与附接的设 备通信的每个远程设备的MAC地址(以及其交换机ID和本地ID)、以 及网络中的每个其他交换机的交换机ID (以及到达其的适当的(一个或多 个)外出端口)。本发明的一些方面提供了一种用于在网络中转发帧的方法。该方法包 括这些步骤利用网络中的每个其他活动核心交换机和边缘交换机的交换 机地址填充网络中的每个活动核心交换机和边缘交换机的交换机转发表 ("SFT");利用附接到第一边缘交换机的第一端口的本地主机设备的 MAC地址填充第一本地媒体访问控制("MAC")表;利用附接到其他 端口并且已与本地主机设备中的至少一个通信的远程主机设备的远程地址 填充第一远程MAC表;接收来自第一主机设备的帧;以及确定帧中指示 出的目的地MAC地址是否被包括在第一远程MAC表中。远程地址可以 包括MAC地址和分级地址。SFT优选根据确定最小代价和等代价路径的协议被填充。优选地, SFT条目不老化。该方法的一些方面涉及响应于拓扑改变通知清空SFT。 拓扑改变通知可以是负MAC通知("MN")帧的形式的,在这里将对其
进行详细描述。在确定出在帧中指示出的目的地MAC地址未被包括在第一远程MAC表中时,该方法还可以包括以下步骤利用第一端口的分级地址封装帧来创建经封装帧;以及根据生成树协议("STP")泛洪经封装帧。该方法 还可以包括以下步骤第二边缘交换机接收经封装帧;以及确定第二边缘 交换机是否具有包括目的地MAC地址的第二本地MAC表。如果确定出第二边缘交换机具有包括目的地MAC地址的第二本地 MAC表,则该方法还可以包括以下步骤将经封装帧的源MAC地址和分 级地址添加到第二边缘交换机的第二远程MAC表;从经封装帧中删除分 级地址来形成解封装帧;以及将解封装帧转发到附接到第二端口并且具有 目的地MAC地址的第二主机设备。该方法还可以包括指示第一端口需要有序地接收帧的步骤。本发明的一些这种方面还可以包括以下步骤核心交换机接收经封装帧;以及更新SFT来指示帧应当利用STP被转发到第一边缘交换机。该方法还可以包括 经由最小代价路径将第二帧从第二主机设备返回到第一主机设备,其中第 二帧指示第一主机的MAC地址、第二主机的MAC地址和第一端口的分 级地址。该方法还可以包括这些步骤经由最小代价路径将MAC通知帧从第 二端口返回到第一端口,以及更新第一远程MAC表来包括第二主机的 MAC地址和第二端口的分级地址。MAC通知帧包括第二端口的分级地 址、第一主机的MAC地址和第二主机的MAC地址。该方法还可以包括 将指示第一端口需要有序接收帧的MAC通知帧从第一端口发送到第二端 口的步骤。所有前述方法和本发明的其他方法都可由软件、固件和/或硬件实现。 例如,本发明的方法可由包含在计算机可读介质中的计算机程序实现。本 发明的一些方面可由个别网络设备(或者它们的多个部分,例如个别线路 卡)实现,而本发明的其他方面可由网络的多个设备实现。


结合附图参考下面的描述,将最好地理解本发明,附图示出了本发明 的具体实现方式。图l是示出了生成树协议的使用等方面的简化网络图。图2示出了包括配置来执行本发明的某些分级寻址方法的设备的简化 网络的示例。图3A-3C是包括根据本发明的某些方面可以被使用的核心交换机、边缘交换机和关联的转发表的框图。图4提供了可以被用来实现本发明的一些方面的帧的一个示例。 图5是概括出本发明的方法的流程图。图6是可以被用来实现本发明的一些方面的示例性MAC通知 ("丽")帧。图7是示出了本发明一些实现方式的简单网络图。图8是概括出本发明的一些方法的流程图。图9是概括出本发明的替换方法的流程图。图IO示出了可以根据本发明的一些方面配置的网络设备。
具体实施方式
现在详细参考本发明的一些具体实施方式
,包括由发明人设想的用于 实施本发明的最佳模式。在附图中示出了这些具体实施方式
的示例。尽管 结合这些具体实施方式
描述了本发明,但是将理解,不是要将本发明限于 所述实施方式。相反,是要覆盖可以被包括在由所附权利要求书限定的本 发明的精神和范围内的替换、修改和等同物。此外,为了全面理解本发 明,下面阐述了许多具体细节。但是,没有这些具体细节中的全部或一 些,也可以实施本发明。在其他实例中,没有详细描述公知的过程操作, 以免模糊了本发明。本发明涉及2005年3月10日提交的题为"Fibre Channel Over Ethernet"的美国专利申请No. 11/078,992 (律师案巻号No. CISCP409), 2005年3月18日提交的题为"Ethernet Extension for the Data Center"的美 国专利申请No. 11/084,587 (律师案巻号No. CISCP404)和2005年3月 30 日提交的题为 "Network Device Architecture for Consolidating Input/Output and Reducing Latency"的美国专利申请No. 11/094,877 (律师 案巻号No. CISCP417)(总称为"交叉引用申请"),所有这些申请都整 体通过引用结合于此。本发明的一些实现方式在数据中心因特网 ("DCE")的上下文中实现,例如在交叉引用申请中详细描述的。这 样,本发明的许多实现方式涉及至少部分由DCE交换机构成的网络。类 似地,用来实现本发明许多方面的帧是DCE帧。然而,本发明不限于 DCE上下文。例如,本发明可以有益地用在不具有光纤信道组件的网络 中。因此,本发明提供了用于实现DCE网络和其他网络(例如,以太 网)的有益方法。本发明允许大多数帧根据最小代价路径("LCP")被 转发,最小代价路径在这里有时与术语等代价路径("ECP")或等代价 多路径("ECMP")同义地被使用。根据本发明的一些方面,在网络中 实现了 STP和LCP方法的组合。与仅利用传统的STP的方法相比,本发 明允许更有效地使用网络链路。在本发明的一些方面中,帧不仅根据MAC地址,而且还根据"分级 寻址"被转发,在这里将参考交换机ID和本地ID主要讨论分级寻址。交 换机ID不需要是全球唯一的,但是在特定网络中应当是唯一的。本地ID 在特定交换机内是唯一的。在优选实现方式中,分级地址在帧被从附接的 主机设备接收到之后被边缘路由器添加,并且在帧被转发到附接的主机设 备之前被边缘路由器剥离。在本发明的一些优选实现方式中,核心交换机无需学习附接到网络的 所有主机设备的MAC地址。相反,核心交换机仅需学习每个核心交换机 和每个边缘交换机的地址(例如,交换机ID),以及与到每个交换机的 ECP相对应的适当的外出端口。在这种实现方式中,边缘交换机需要知道 附接到该边缘交换机的每个设备的地址、与附接设备通信的每个设备的地 址、以及网络中的每个其他交换机的地址。优选地,仅在帧已到达目的地 边缘交换机后才对目的地的本地ID进行评价。因此,本发明允许使用比 此前可能的转发表相对较小的转发表,并且因此允许网络设备具有较小的
关联存储器。图2示出了包括配置来执行本发明的一些分级寻址方法的设备的简化网络的一个示例。网络200在本示例中是DCE网络。然而,在本发明的 替换实现方式中,网络200可以是另一种类型的网络,例如以太网。网络 200包括边缘交换机210、 230和240,以及各种附接设备。交换机220是 核心交换机。交换机210连接服务器202、 203和204,并且经由端口 205 与边缘交换机210通信。主机设备207也附接到边缘交换机210。主机设 备231和232以及刀片交换机235都附接到边缘交换机230。主机设备245 以及刀片交换机250和255都附接到边缘交换机240。本领域技术人员将意识到,这种刀片交换机和所关联的刀片通常总地 称作"刀片服务器"。此外,本领域技术人员还将认识到在每个刀片服务 器中通常部署有多于一个刀片交换机。然而,为了简化起见,在这里未示 出这种冗余交换机和连接。除了 MAC地址之外,根据本发明,分级地址被用来在网络200中转 发帧。根据本发明的一些优选实现方式,分级地址可以包括交换机ID和 本地ID。尽管这种ID通常将被描述为数字,但是可以以任何便利的方式 指派这些ID,例如,作为符号、符号和数字的组合等。现在将描述这种分 级地址和他们的用途的一些示例。根据本发明的一些实现方式,网络200中的每个核心交换机和边缘交 换机都具有交换机ID:边缘交换机210具有交换机ID "3",边缘交换机 230具有交换机ID "4"、边缘交换机240具有交换机ID "1",核心交换 机220具有交换机ID "2"。每个交换机ID是本地有效的,并且在网络 200内应当是唯--的,但是交换机ID无需是全球唯一的。然而,在网络中 存在有限数目的交换机ID可用。根据本发明的一些实现方式,交换机ID 是12位宽的,但是交换机ID数字可以是任何便利的宽度。例如, 一种替 换实现方式特征是8位交换机ID,而另一种是16位交换机ID。但是,优 选地,交换机ID是用相对较少数目的位表示的(例如,少于被指派给 MAC地址的48位),从而需要相对较小的存储器。网络200的每个交换机还优选指派本地ID,本地ID在特定交换机内 具有意义,并且仅需在一个交换机内是唯一的。换言之,根据本发明的一 些实现方式,相同的本地ID可以被用在交换机210和交换机240中,但是该本地ID在每种情形中具有不同的含义。在本发明的其他实现方式 中,本地ID在特定网络内是唯一的。本地ID例如可以用来标识个别网络 设备组件,例如,交换机端口或线路卡。根据本发明的一些实现方式,本 地ID是14位宽,但是本地ID可以是任意便利的宽度。在一些优选实现方式中,本地ID被指派给边缘交换机的每个端口。 例如,端口 243和端口 244各自都将具有单个本地ID,即使端口 243被连 接到具有单个MAC地址的主机设备245,并且端口 244被连接到具有多 个MAC地址的刀片交换机240也是如此。在这种实现方式中,本地ID的 最大数目由交换机的端口数目控制。例如,如果交换机具有256个端口, 则将仅需要256个本地ID,尽管远多于256个MAC地址可以被指派给附 接到该交换机的设备。在替换实现方式中,本地ID可以被指派给线路 卡、处理器(例如,ASIC)等。由于端口 205接收到来自服务器202、 203和204中的每一个的帧,所 以端口 205学习到具有服务器202、 203和204的MAC地址的设备在链路 208的方向上。边缘交换机的每个端口填充本地MAC表("LMT"), 该表包括经由该端口可达的设备的所有MAC地址的列表。例如,端口 205将用交换机201和服务器202、 203和204的MAC地址填充本地MAC 表。网络中的每个设备并不与网络中的所有其他设备交谈。例如,已观察 到服务器通常仅与数千个其他服务器通信。通过仅用网络上的所有设备的 某一子集的地址来填充转发表,可以大量地节省存储器空间。因此,边缘交换机的每个端口还利用附接的本地设备已与之通信或者 希望与之通信的远程设备的地址来填充每个交换机的至少一个远程MAC 表("RMT")。优选地,RMT在这种设备被附接到的网络端口的MAC 地址和分级地址之间建立了对应关系。在一些实现方式中,对于每个线路 卡将存在一个RMT。在本发明的替换实现方式中,RMT可由交换机的所 有端口共享。
现在将参考图3A、 3B和3C更详细地讨论LMT、 RMT和交换机转发 表("SFT" , a/k/a "交换机ID表")。图3A是包括交换机310、 320、 330、 340和350,以及它们的关联的转发表的框图。在本示例中,边缘交 换机310、 340和350各自具有多个LMT、至少一个RMT和SFT,而核心 交换机320和330仅具有SFT。因此,每个核心交换机和边缘交换机具有SFT。除这里另外提示之 外,SFT主要是通过使用本领域已知的协议填充的,例如,中间系统到中 间系统("IS-IS")协议或开放最短路径协议("OSPF")协议。RPC 2178包含了相关的信息,并且通过引用结合进来。当每个核心交换机或边 缘交换机连线时,其拓扑被在所有交换机之间通告,并且例如根据 Dijkstm算法计算最短路径。除了下面针对"InOrder"(有序)位等提示 之外,该过程不是数据驱动的。图3B示出了 SFT 317、 327、 337、 347和357的内容,这些SFT分别 对应于交换机310、 320、 330、 340和350。例如,SFT317包括网络中的 每个其他核心或边缘交换机的地址。在本示例中,每个这种地址是交换机 ID形式的。然而,在替换实现方式中,这些地址可以是MAC地址形式 的。交换机310自身的交换机ID是"1",但是交换机1无需在其自己的 SFT 317上被指示出来。因此,SFT 317仅包括交换机320、交换机330、 交换机340和交换机350的交换机ID (分别是"Sw2" 、 "Sw3"、 "Sw4"和"Sw5")。另外,SFT 317向所指示出的交换机中的每一个指示根据LCP或ECP 帧应当被转发到的外出端口。与交换机ID Sw2、 Sw3和Sw5中的每一个 相对应存在单个端口,因为每个端口是LCP的一部分。例如,在交换机 310和交换机320 ( "Sw2")之间存在经由端口 P5的清楚的最短路径。 因此,仅有单个端口 P5与Sw2相对应。然而,在交换机310和交换机 340 ( "Sw4")之间存在2条等代价路径。因此,端口P5和端口P6二者 都与Sw4相关联。再次参考图3A,将观察到边缘交换机维护多个LMT,优选每个端口 一个。当首先接收到与边缘交换机的端口通信的每个主机设备的MAC地
址时,该MAC地址将被添加到关联的LMT。例如,端口 Pl具有附接的 主机设备HI和H2。 LMT 311被与端口 Pl相关联,所以附接的主机设备 H1和H2的MAC地址将被添加到LMT311,如图所示。LMT 312、 313、 314、 342和352以类似的方式被填充。边缘交换机的每个端口还利用附接的本地设备已与之通信或者希望与 之通信的远程设备的地址填充每个交换机的至少一个RMT。优选地, RMT在这种远程设备的MAC地址和分级地址之间建立对应关系。根据一 些实现方式,RMT可以在多个端口之间共享。例如,端口P1和P2二者都 被连接到线路卡318,并且共享RMT315。类似地,端口P3和P4二者都 被连接到线路卡319,并且共享RMT316。这里所使用的"远程设备"可以是附接到另一个边缘交换机的设备或 者附接到同一个边缘交换机的另一个端口的设备。这点由图3C的RMT 315和316示出。由于在主机设备H1和H5之间已有至少一次对话,所以 Pl的RMT 315包括"远程设备"H5的MAC地址和远程设备H5被附接 到的端口 P4的关联的分级地址(Swl, P4)。类似地,端口 P4的RMT 316包括远程设备Hl的MAC地址和远程设备Hl被附接到的端口 Pl的关 联的分级地址(Swl, PO 。下面将参考图4-9更详细地描述对RMT的填 充。根据一些实现方式,RMT中的每个条目包含老化定时器(agmg timer)。该定时器可以被复位,例如,在从核心交换机接收到利用该 RMT去往边缘端口的单播帧,并且该单播帧具有与该RMT条目相对应的 源MAC地址时。如果该定时器期满,则RMT条目被删除。图4示出了根据本发明一些方面的具有地址头部的示例性帧400。本 领域技术人员将认识到其他这样的帧格式也在本发明的范围和精神内,并 且这里所示出并且描述的格式仅是说明性的。全球DA字段405包括目的 地MAC地址,并且全球SA字段410包括源MAC地址。对字段415的描 述在通过引用结合进来的交叉引用申请中有所阐述。但是,地址头部字段 450的内容(在本示例中其被称作DCE地址头部)保证了其他注释。版本字段455在本示例中是2位的字段。在本示例中,其最初被设置为0,其他值保留用于将来对该格式的改变。在这里,如果分级地址是源 端口的地址,则源/目的地("S/D")位460被设置为1,或者如果分级 地址是目的地端口的地址,则被设置为0。InOrder位465用于使帧遵循STP而不是LCP/ECP,以允许使用要求 严格的帧递送排序的主机设备。对InOrder位465的使用将在下面更详细 地描述。两个保留位475被设置为0并且保留用于将来使用。在本示例中,字段470和480指示两部分分级地址。本领域技术人员 将认识到分级地址可包括多于或少于两个部分。在本示例中,12位交换机 ID字段470是与核心交换机或边缘交换机相关联的唯一值。14位本地ID 字段480仅在单个交换机内是唯一的,并且用于将帧导向正确的出口端 口。在一些实现方式中,TTL字段可以被添加到地址头部。现在将参考图5描述本发明的方法500。方法500的步骤(以及这里 示出并描述的其他方法的那些步骤)不一定全按照这里示出的顺序执行。 此外,本发明的方法可以包括比所示出的多或少的步骤。在步骤505中,边缘交换机的一个端口接收到帧。在步骤510中,确 定目的地MAC地址是否在该端口使用的RMT中。如果目的地MAC地址 在该RMT中,则该帧被转发到该RMT中指示出的分级地址(步骤 560)。但是,在一些实例中,在步骤510中将确定出目的地MAC地址不在 该RMT中。例如,假设端口 211 (参见图2)接收到来自主机207去往主 机232的帧,则目的地不在端口 211使用的RMT中。这可能例如是因为 在主机207和232之间先前没有对话,或者因为先前的RMT条目的老化 定时器已期满。在步骤515中,交换机210内的设备(例如,与端口 211相关联的处 理器)将利用该端口的分级地址封装该帧。在本示例中,交换机ID是3, 所以交换机ID字段470将指示"3"。类似地,端口的本地ID是50,所 以本地ID字段480将指示"50" 。 S/D位字段460将被设置为"1",因 为分级地址是源端口的地址。在步骤520中,帧随后被泛洪到交换机210的所有端口上(优选地, 除了该帧来自的源之外),并且被相邻交换机接收到(步骤525)。该帧 根据通常的以太网STP被泛洪,只是中间交换机优选不执行通常类型的STP学习。接收到该帧的每个交换机将确定其是否具有包括目的地MAC (步骤530)的LMT,如果没有,则交换机将泛洪该帧,而不执行任何学 习。例如,交换机201和220将在不执行任何学习的情况下将该帧泛洪到 所有端口,因为交换机201没有具有主机232的MAC地址的LMT,并且 交换机220是不具有LMT的核心交换机。然而,交换机230的边缘端口 233在其LMT中的确具有主机232的 MAC地址。因此,边缘端口 233将把该帧的分级源地址和在字段410中指 示出的源MAC地址添加到边缘端口 233的RMT (步骤535)。边缘端口 233还将把帧转发到主机232 (步骤540),同时优选地分级地址被删除 在优选实现方式中,边缘交换机添加并删除分级地址。主机设备无需对分 级地址进行处理,或者甚至无需关注它们。边缘端口 233现在可以向主机207返回一个帧,该帧具有指示主机 207的MAC地址的全球DA 405、指示主机232的MAC地址的全球SA 410、指示"3"的交换机ID字段470、交换机210的交换机ID、指示 "50"的本地ID字段480、以及端口211的本地ID (步骤545)。该信息 可从边缘端口 233的最近更新的RMT获得。S/D位字段460将指示 "0",因为分级地址是目的地的分级地址。返回的帧无需遵循STP,而是相反可以根据最小代价路径、根据交换 机230的SFT被发送。因此,在本示例中,帧可以经由端口 234和链路 217返回,该端口和链路根据STP被阻塞并且在发送原始帧时未被使用。当交换机210接收到返回的帧时,该帧被端口 214检查,确定出该帧 包括分级目的地地址,因为S/D位字段460指示"0"。端口 214检査交 换机ID字段470,并且确定交换机210是目的地交换机,确定目的地端口 是端口211 (本地ID二50)。因此,端口 214经由端口 211将帧转发到主 机207。然而,返回的帧未指示主机232的分级地址,所以交换机210不能仅 基于返回的帧中的信息填充RMT。因此,根据本发明的一些实现方式, 专门的MAC通知("MN")帧被返回(步骤550),以便允许交换机 210利用主机232的分级源地址更新其RMT (步骤555)。此后,流量可 以在主机设备207和232之间经由最短路径(即链路217)继续流动。MN帧由朝向网络核心的边缘端口产生并且去往另一个边缘端口。当 MN帧被远程边缘端口接收到时,它们优选被处理和消耗MN帧不应当 流出边缘端口,除非该端口被配置为使主机终止地址学习。承载MN头部 的任何帧优选都不具有任何数据有效载荷。图6示出了一种示例性MN帧的格式。根据本发明,MN帧60具有许 多与数据帧相同的字段。但是,字段655指示跟随有MN头部660。版本 字段665当前被设置为0,其他值保留用于将来对格式的改变。正MN字段665指示MN帧600是正的还是负的MN帧。在本示例 中,如果该帧是正MN帧则正MN字段670被设置为1,并且对于负MN 帧该字段被设置为0。正MN帧导致边缘端口学习新的分级地址映射,而 负MN帧导致边缘端口删除MAC到分级地址的映射。正MN帧应当利用 来自源的帧中的源分级地址被直接单播到需要学习地址映射的边缘端口, 如包含触发该正MN的分级源地址的数据帧的交换机ID字段470和本地 ID字段480 (参见图4)所示。负MN帧被泛洪到(一个或多个)目的地,例如,因为触发该负MN 帧生成的帧不包含源分级地址。另外,这种广播在主机离开/移动时将加速 删除所有远程边缘端口中的过期的MAC到分级地址的映射。如果交换机 不能工作,则执行新的最短路径计算并且相应地更新SFT。但是,这不影 响LMT或RMT。如果端口不能工作(或者附接的主机设备被断连),则 该端口的LMT被清除。为了向网络中的其他设备通知这种改变,使用了 负MN。如果设备被连接到网络中的另一个端口,则其位置必须被重新学 习,并且关联的LMT和RMT必须被重新填充。InOrder位675被用来指示MN帧的源要求严格的帧递送排序。2个保 留位685现在被设置为0并且保留用于将来使用。—些私有(遗留)系统需要有序地接收帧。将观察到,在某些时刻帧 根据STP被路由,而在其他时刻帧根据ECP/LCP被路由。存在一些这样
的实例,其中例如在从STP改变到LCP时帧可能无序地到达。例如,刚好在端口 211的RMT被更新来指示主机232的MAC和分级地址之前,主 机207可能刚好经由根据STP的较长路径(经由交换机220)发送了一个 帧到主机232,并且随后可能经由较短的LCP (链路217)发送了另一个 帧到主机232,这些帧可能无序到达。根据本发明的一些实现方式,数据帧的"InOrder"位(例如,图4中 示出的InOrder位465)或者MN帧的DCE地址头部(例如,图6中示出 的内部字段450)在末端主机要求严格的帧递送排序的情形中被用来使这 些帧遵循STP而不是LCP。在一些这样的实现方式中,当指示分级源地址 的帧(例如,S/D位字段460被设置为"1"的数据帧)还设置了 InOrder 位时,这指示源应当有序地接收分组。转发这样的分组的任何设备将学习 到这些分组应当利用STP被发送到发源交换机的交换机ID,并且将基于 在其上接收到帧的端口相应地更新其SFT。这对于SFT通常不通过"学 习"被更新,而是通常是在交换机之间交换数据帧之前被填充的一般规则 是个例外。如果指示分级目的地地址的帧(例如,S/D位字段460被设置 为"0"的数据帧)还设置了 InOrder位时,这指示该帧应当根据STP被转 发到其目的地。现在将参考图7和图8描述根据本发明一种实现方式对InOrder位的 使用。图7包括交换机A、 B、 C和D。交换机A中具有MAC—A的端口 701需要以"有序"模式接收帧。交换机B中具有MAC—B的端口 705处 于正常模式;换言之,端口 705不需要以"有序"模式接收帧。交换机C 和D是核心交换机。链路710被STP阻塞。传统以太网交换机学习源MAC地址,并且利用老化定时器计时条目 的寿命。朝向学习到的源MAC地址流动的流量使用从源MAC学习到的 上述条目。老化定时器确保与末端主机MAC地址相对应的大量过期条目 不再保留在转发表中。注意,双向流量保持所学习到的条目存活,并且在 没有双向流量时,经典的以太网交换机恢复到泛洪情形。根据这里所述的发明的一些实现方式,核心交换机仅学习源交换机 ID,并且它们从不老化。由于网络中交换机的数目是有限的,这一般不导 致问题。由于未保证去往和来自给定主机的流量在两个方向上总是沿相同 的路径,所以提议的方案消除了老化。边缘交换机在它们学习到末端主机MAC地址时需要学习是否给定的末端主机MAC要求有序地接收分组。另 外,边缘交换机需要请求它们需要为连接到它们的某些末端主机MAC提 供有序服务。下面利用示例描述本发明。注意尽管在本示例中使用了 MN,但是MN未被严格地绑定到有序方案,并且其他方法(例如,传统 的MAC-in-MAC (IEEE标准802.1AH)方案)也可以被用来替换MN, 以辅助边缘交换机学习末端主机的MAC地址。方法800在分组从要求有序接收帧的源被泛洪向未知的目的地时开 始。在步骤805中,从交换机A中的端口 701接收到数据帧,其中该数据 帧在字段405中具有MAC—B的全球DA值,并且设置了 InOrder位465。 字段460指示出分级地址包括源交换机ID (交换机A)。如果MAC—B是 已知的目的地,则该帧将被单播到该目的地(步骤855)。但是,在本示 例中,MAC—B是未知的全球DA值。基于Inorder位,中间交换机(C禾B D)学习到源交换机ID A (不是 源MAC—A)(步骤815)。该帧根据STP被泛洪(步骤820)。每个后 续交换机接收该帧(步骤825)并且确定全球DA是否在该交换机的LMT 中(步骤830)。该过程使得中间交换机能够基于目的地交换机ID,根据 返回路径上的生成树转发分组。因此,由于MAC—B不为目的地交换机B 所知,所以MAC一A未被学习到。仅交换机A的分级地址被交换机B学习 到。当该帧被交换机B接收到时,830的确定步骤将为肯定。从MAC—A 到MAC_B的响应分组将沿该生成树被泛洪,因为MAC—A到交换机A的 绑定不为交换机B的RMT所知(步骤835)。在这里,字段460将指示 出该帧的分级地址是源交换机B的分级地址,并且InOrder位465将不被设置。在步骤485中,交换机A沿生成树向交换机B发送Inorder位被设置 的MN帧。交换机B学习到MAC—A,并且开始沿着该生成树发送单播帧 (步骤850)。在这里,这些帧将指示目的地交换机A的分级地址,并且 InOrder位465将被设置。图9是概括了替换方法900的步骤的流程图,其中交换机A知道 MAC一B,但是交换机B不知道MAC—A。当帧从交换机A中的端口 1被 单播到MAC一B时,InOrder位465未被设置(步骤905)。因此该帧沿 ECMP路径去往交换机B (步骤910)。因为交换机B不知道MAC—A在 何处,所以交换机B根据STP泛洪返回分组,该分组将交换机B指示为 源,并且InOrder位未被设置(步骤915)。交换机A接收到该帧(步骤920),并且作为响应,交换机A沿去往 交换机B的生成树泛洪设置了 InOrder位的MN帧(步骤925)。中间核 心交换机学习到交换机A的分级地址(步骤930)。交换机B学习到交换 机A的分级地址和MAC地址,然后可以沿着生成树正确地转发帧(步骤 935)。根据本发明的一些优选实现方式,老化规则如下。所学习到的交换机 ID永远不老化。MAC通常在边缘交换机处老化,并且被按需要重新学 习。在STP拓扑改变通知时,过去学习到的所有交换机ID都被清除。如 果需要的话,这里可以应用STP优化来保留未改变的条目。图10示出了可以配置来实现本发明的一些方法的网络设备的示例。 网络设备1060包括主中央处理单元(CPU) 1062、接口 1068和总线1067 (例如,PCI总线)。 一般而言,接口 1068包括适于与适当的介质通信的 端口 1069。在一些实现方式中,接口中的一个或多个包括至少一个独立的 处理器1074,并且在一些实例中,包括易失性RAM。独立处理器1074可 以例如是ASIC或者任何其他适当的处理器。根据一些这样的实现方式, 这些独立处理器1074执行这里所述的一些逻辑功能。在一些实现方式 中,接口 1068中的一个或多个控制诸如媒体控制和管理之类的通信密集 任务。通过提供分离的处理器用于通信密集任务,接口 1068允许主微处 理器1062高效地执行其他功能,例如,路由选择计算、网络诊断、安全 性功能等。接口 1068 —般作为接口卡(有时称作"线路卡")被提供。 一般而 言,接口 1068对通过网络发送和接收数据分组进行控制,并且有时支持
与网络设备1060 —起使用的其他外设。可以被提供的接口中有光纤信道("FC")接口、以太网接口、帧中继接口、线缆接口、 DSL接口、令牌环接口等。另外,还可以提供各种甚高速接口,例如,快速以太网接口、G比特以太网接口、 ATM接口、 HSSI接口、 POS接口、 FDDI接口、 ASI 接口、 DHEI接口等。当在适当的软件或固件控制下动作时,在本发明的一些实现方式中, CPU 1062可以负责实现与期望的网络设备的功能相关联的具体功能。根据 一些实施方式,CPU 1062在包括操作系统(例如,Linux、 VxWorks等) 和任何适当的应用软件在内的软件的控制下,实现所有这些功能。CPU 1062可以包括一个或多个处理器1063,例如,来自Motorola微 处理器家族或者MIPS微处理器家族的处理器。在替换实施方式中,处理 器1063是专门设计的硬件,用于控制网络设备1060的操作。在具体实施 方式中,存储器1061 (例如,非易失性RAM和/或ROM)也形成CPU 1062的一部分。但是,存在其中存储器可以被耦合到系统的许多不同方 式。存储器块1061可以用于各种目的,例如,高速缓存和/或存储数据、 编程指令等。不管网络设备的配置如何,都可以采用一个或多个存储器或存储器模 块(例如,存储器块1065),这些存储器或存储器模块被配置来存储用于 通用目的网络操作和/或与这里描述的技术的功能相关的其他信息的数据、 程序指令。程序指令可以控制例如操作系统和/或一个或多个应用程序的操 作。因为这种信息和程序指令可以被采用来实现这里所述的系统/方法,所 以本发明涉及包括用于执行这里所述的各种操作的程序指令、状态信息等 的机器可读介质。机器可读介质的示例包括但不限于磁介质,例如,硬 盘、软盘和磁带;光介质,例如,CD-ROM盘;磁光介质;和专门配置来 存储和执行程序指令的硬件器件,例如,只读存储器器件(ROM)和随机 存取存储器(RAM)。本发明还可以被体现在通过适当的介质行进的载波 中,所述介质例如是无线电波、光线路、电子线路等。程序指令的示例包 括机器代码和文件二者,其中机器代码例如是由编译器产生的,文件包含
可由利用解释器的计算机执行的高层代码。尽管图10中示出的系统说明了本发明的一个具体网络设备,但是其 绝不是可以在其上实现本发明的唯一网络设备体系结构。例如,也可以使 用具有处理通信以及路由选择计算等的单个处理器的体系结构。此外,其 他类型的接口和介质也可以与该网络设备一起被使用。接口/线路卡之间的 通信路径可以是基于总线的(如图io所示)或者基于交换结构的(例 如,交叉开关)。其他实施方式尽管这里示出并描述了本发明的说明性实施方式和应用,但是仍在本 发明的概念、范围和精神内的许多变体和修改也是可以的,并且在研读了 本申请后本领域技术人员将清楚这些变体。因此,本实施例应当被认为是说明性的而非限制性的,并且本发明不 是要被限于这里给出的细节,而是在所附权利要求的范围和等同物内可以 被修改。
权利要求
1.一种在网络中转发帧的方法,包括利用所述网络中的每个其他活动核心交换机和边缘交换机的交换机地址填充所述网络中的每个活动核心交换机和边缘交换机的交换机转发表(“SFT”);利用附接到第一边缘交换机的第一端口的本地主机设备的MAC地址填充第一本地媒体访问控制(“MAC”)表;利用附接到其他端口并且已与所述本地主机设备中的至少一个通信的远程主机设备的远程地址填充第一远程MAC表;接收来自第一主机设备的帧;以及确定所述帧中指示出的目的地MAC地址是否被包括在所述第一远程MAC表中。
2. 如权利要求1所述的方法,其中,确定出在所述帧中指示出的目的 地MAC地址未被包括在所述第一远程MAC表中,所述方法还包括利用所述第一端口的分级地址封装所述帧来创建经封装帧;以及 根据生成树协议("STP")泛洪所述经封装帧。
3. 如权利要求1所述的方法,其中,所述远程地址包括MAC地址和 分级地址。
4. 如权利要求l所述的方法,其中,所述SFT根据确定最小代价和等 代价路径的协议被填充。
5. 如权利要求1所述的方法,其中,SFT条目不老化。
6. 如权利要求1所述的方法,还包括响应于拓扑改变通知清空SFT的 步骤。
7. 如权利要求2所述的方法,还包括指示所述第一端口需要有序地接 收帧的步骤。
8. 如权利要求2所述的方法,还包括 第二边缘交换机接收所述经封装帧;以及确定所述第二边缘交换机是否具有包括所述目的地MAC地址的第二 本地MAC表。
9. 如权利要求6所述的方法,其中,所述拓扑改变通知包括负MN帧。
10. 如权利要求7所述的方法,还包括核心交换机接收所述经封装帧;以及更新所述SFT来指示帧应当利用STP被转发到所述第一边缘交换机。
11. 如权利要求8所述的方法,其中,确定出所述第二边缘交换机具 有包括所述目的地MAC地址的第二本地MAC表,所述方法还包括将所述经封装帧的源MAC地址和分级地址添加到所述第二边缘交换机的第二远程MAC表;从所述经封装帧中删除所述分级地址来形成解封装帧;以及 将所述解封装帧转发到附接到第二端口并且具有所述目的地MAC地址的第二主机设备。
12. 如权利要求IO所述的方法,还包括经由最小代价路径将第二帧从 所述第二主机设备返回到所述第一主机设备的步骤,所述第二帧指示所述 第一主机的MAC地址、所述第二主机的MAC地址和所述第一端口的分 级地址。
13. 如权利要求10所述的方法,还包括经由最小代价路径将MAC通知帧从所述第二端口返回到所述第一端 口,所述MAC通知帧包括所述第二端口的分级地址; 所述第一主机的MAC地址;以及 所述第二主机的MAC地址;和 更新所述第一远程MAC表来包括所述第二主机的MAC地址和所述 第二端口的分级地址。
14. 如权利要求IO所述的方法,还包括将指示所述第一端口需要有序 接收帧的MAC通知帧从所述第一端口发送到所述第二端口的步骤。
15. —种网络,包括用于利用所述网络中的每个其他活动核心交换机和边缘交换机的交换 机ID填充所述网络中的每个活动核心交换机和边缘交换机的交换机转发表("SFT")的装置,其中所述SFT根据确定最小代价和等代价路径的协议被填充,并且SFT条目不老化;用于响应于拓扑改变通知清空SFT的装置;用于利用附接的本地主机设备的MAC地址填充每个边缘交换机端口 的本地媒体访问控制("MAC")表的装置;以及用于利用在预定时间段内已与所述本地主机设备中的至少一个通信的远程主机设备的远程分级地址和远程MAC地址来填充所述网络中的每个 边缘交换机的至少一个远程MAC表的装置。
16. 如权利要求15所述的网络,其中,所述交换机ID在所述网络中 是唯一的,但是在所述网络外不是唯一的。
17. 如权利要求15所述的网络,其中,所述远程分级地址中的每一个 都包括与远程主机设备被附接到的远程端口相对应的本地ID和包括所述 远程端口的边缘交换机的交换机ID。
18. 如权利要求17所述的网络,其中,所述本地ID仅在每个边缘交 换机中是唯一的。
全文摘要
本发明提供了对网络链路的更有效的使用并且要求较小的转发表。可以在网络中实现STP和多路径方法的组合。不仅可以根据MAC地址,而且还可以根据交换机ID和本地ID在交换机之间转发帧。交换机ID不需要是全球唯一的,但是在特定网络中应当是唯一的。本地ID仅需在特定交换机中是唯一的。一些优选实现方式允许帧被有序地递送到要求有序递送的设备。优选地,核心交换机仅需学习每个核心交换机和每个边缘交换机的交换机ID,以及与每个交换机相对应的适当的(一个或多个)外出端口。优选地,每个边缘交换机的转发表指示附接到该边缘交换机的每个设备的地址、与附接的设备通信的每个设备的地址、以及网络中的每个其他交换机的地址。
文档编号H04L12/56GK101129027SQ200580034955
公开日2008年2月20日 申请日期2005年10月18日 优先权日2004年10月22日
发明者伊兰戈·加内桑, 劳伦斯·克里格, 托马斯·埃兹尔, 西尔瓦诺·加伊 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1