对基于mac的表执行扩展查找的制作方法

文档序号:7636334阅读:264来源:国知局

专利名称::对基于mac的表执行扩展查找的制作方法
技术领域
:本发明涉及信息网络领域。具体而言,提出了用于在OSI第2层交换机地址表中提供32位地址表示的方法、系统和设备;因此可以在OSI第2层交换机地址表中包括完整的IPv4多播地址,从而消除了地址混淆(aliasing)。
背景技术
:当今的网络链路携带海量信息。这些网络链路支持的高带宽应用例如包括流式视频、流式音频以及较大集合的语音流量。将来,网络带宽需求将会增加。诸如流式视频和流式音频的某些应用可以由于将这样的传输发送到多个订阅者而产生大量的网络流量。为了有助于减少由于这些应用所造成的网络流量,开发了网络协议的多播扩展。多播协议通过复制靠近多播网络帧的目的地的该帧、消除对用于同样目的的多个单播连接的需要、节省网络带宽以及提高吞吐量而允许多播传输(即,一个到多个的连接)。在接收到多播帧之后,网络节点可以检查帧的多播组目标地址(GDA)并确定多播帧的订阅者是否连接到网络节点。然后网络节点可以根据需要复制多播帧并将多播帧传输到任何连接的订阅节点。图1是网络交换机100的简化框图。该交换机提供端口100(1)-(N),其中到达任何端口的网络帧可以被定向到任何其他连接到通过帧的目标地址的检查所确定的交换机。连接到各个端口的是网络节点120(1,1)-(N,M)。在典型的网络环境中,每个网络节点120(1,l)-(N,M)都具有唯一的媒体访问控制(MAC)地址。因为网络节点120(1,1)-(N,M)彼此经由交换机100传输帧,所以交换机100可以得知这些网络节点的MAC地址。由网络节点传输的每个帧都包含交换机100可以读取并且可以将其与一个端口100(1)-(N)相关联的源MAC地址。这种节点-端口信息存储在地址表中。这种表被称为L2地址表(参考用于实现协议的开放系统互连网络框架的第2层,也称为数据链路层)或MAC地址表。在OSI网络模型中,网络节点或网络节点上的应用程序可以在模型的每层上具有其网络地址的不同表示。交换机100可以工作在第2层(L2)(即,OSI模型的数据链路层)。网络节点的这些L2或MAC地址对于网络上的每个网络接口是唯一的,并且通常被硬件编码在网络接口中。MAC地址的长度为48位,包含24位的供应商代码,接着是24位的硬件地址。网络节点也可以具有OSI第3层地址,该地址包含诸如因特网协议(IP)地址之类的地址。IP地址是软件编码的,并且可以由管理员提供或者可以在网络节点所在的环境中动态地确定。在因特网协议的第4版本(IPv4)中,L3地址的长度为32位,而在因特网协议的第6版本(IPv6)中,L3地址的长度为128位。当OSI第3层分组在网络上传输时,它将被封装在一个OSI第2层帧中,因此,这些帧可以既包含L2源地址和目标地址,又可以包含L3源地址和目标地址。图2示出的L2地址表示出了交换机100的节点-端口关联。表中的每个条目都具有关联索引210。表中的条目数可以等于与交换机100连接的节点数(例如P)。表中的每个条目包含与在每个节点所传输的帧中找到的源MAC地址相对应的MAC地址220(例如,SMAC(120(1,1))是节点120(1,l)的源MAC地址)。每个L2地址表的条目还包含对应于该节点的端口230,其中当交换机100从网络节点接收到帧时,它进行该关联。将节点地址链接到特定端口的信息与节点的硬件(例如网络接口)相关并且在L2地址表中通常是静态的,除非一个节点从交换机的一个端口移动到另一个端口。L2地址表可以自动地用节点-端口指示符填充,但是不能自动地用多播目的地填充。这是因为多播GDA不可能是源MAC地址。L3多播GDA的一部分通过诸如因特网组管理协议(IGMP)之类的软件协议的使用而被包含在L2地址表中。当网络节点希望订阅多播传输时,专用IGMP协议帧被作为多播"参加"请求而传输。IGMP使能交换机具有在交换机上运行的"探听"软件,以读取这样的帧并且为L2地址建立相应的表条目。这样的条目可以将一种形式的多播GDA(L3地址)与连接到订阅节点的端口相关联。IGMP帧包含L3GDA以及与IGMP帧中所请求的操作相关的其他信息。这样的L3地址要求L2地址表中包含处理(manipulation)。图3示出了将IPv4和IPv6多播组目标地址转换成可接受的形式,以包含到L2地址表的条目中的处理。IPv4GDA的长度为32位并且在地址224.0.0.0-239.255.255.255的范围内。这样的IP地址在图3中的310处示出。如上所述,L2地址限定为48位,这48位被分成两个24位的段。L2MAC多播地址的前三个八位位组(前24位)被设定为01:00:5E(325)。为了产生与L3GDA相对应的L2地址表的L2MAC多播地址,L3GDA的最后23位被插入到MAC地址320的最后23位中。由于32位IPv4地址的一部分被插入到MAC地址的23位区域中,因此IPv4地址中丢失了9位的信息。9位中的5位是重要的,因为任何IPv4多播地址的前4位总是1110。这种信息的丢失称之为地址混淆,因为多个L3GDA可以由单个L2MAC多播地址表示。(例如,IPv4GDA239.255.0.1将与诸如238.255.0.1和239.127.0.1之类的其他IPv4GDA共享一个L2MAC多播地址。)如330和340所示出的,这种地址混淆问题在IPv6GDA中被放大了。IPv6地址330的长度为128位,因此80个重要的位在从L3IPv6GDA到L2MAC地址的转换过程中被丢失了。多播地址的地址混淆可能由于发送到第一IP多播组的帧也被发送到其他的IP多播组而造成网络流量的增加,所述其他的多播组在L3多播地址中共享相同的低位23位。此外,由于未订阅的节点不得不丢弃帧,因此接收节点的开销可能增加。流量的增加和帧的丢弃都导致网络带宽资源的浪费。因此希望以消除或减少L3GDA信息丢失的方式构建L2地址表中的多播条目,从而允许对多播帧进行更多的扩展查找。
发明内容本发明提供了L2地址表的多播条目中至少32位的寻址信息的可用性。这将允许在L2地址表的条目中包含整个IPv4多播GDA,从而消除了IPv4多播GDA的地址混淆。通过使用连锁(chaining)地址查找,使用这样的L2地址表也将优化在依源而定的多播(SSM)和802.1Q-in-Q(QinQ)情形中出现的转发问题。这种在L2地址表中的增加的地址空间也可以用于减少IPv6L3多播GDA发生的地址混淆。通过参考附图,本领域技术人员可以更好地理解本发明,并且清楚其多个目的、特征和优点。图1示出了网络交换机的简化框图。图2示出了L2地址表,该表示出了诸如图1所示的交换机之类的交换机的节点-端点关联。图3示出了将IPv4和IPv6地址转换成可接受的形式,以包含到L2地址表的条目中的处理。图4示出了包含传统MAC多播目标地址的L2地址表。图5示出了根据本发明一个实施例的用于多播组地址的修改后L2地址表条目的格式。图6是示出本发明一个实施例所提出的依源而定的多播(SSM)概念、图7示出了包含根据本发明一个实施例所修改的条目以用于解决依源而定的多播的L2地址表的示例。图8是示出用供应商VLAN传输用户VLAN的简化框图。图9示出了根据本发明一个实施例的包含允许QinQ地址解析的元素的L2地址表。图IO是示出根据本发明一个实施例的可以被用于用32位的L3GDA字段来填充L2地址表的步骤的简化流程图。图ll是示出根据本发明一个实施例的多播(包括SSM)帧的L2地址表查找的简化流程图。图12是示出根据本发明一个实施例的用于解决QinQ环境中的多播寻址的表查找方法的简化流程图。图13是示出根据本发明一个实施例的用于解决QinQ环境中的单播寻址的表查找方法的简化流程图。图14示出了适于实现本发明的计算机系统的框图。图15是示出适用于实现本发明的网络体系结构的框图。具体实施方式地址混淆和由于地址混淆而造成的多播帧传输的增加是由于需要将32位的IPv4多播GDA截短为L2地址表条目的23位空间而引起的。如果该L2地址表条目可以包含完整的32位IPv4多播GDA(IPv4GDA),则将不会发生地址混淆,也不会存在由于这种地址混淆所造成的网络多播流量的增加。多播MAC地址的第一个八位位组的最低位是所谓的I/G位(个体/组位)。1/G位设置为1表示该地址是多播或广播地址。1/G位设置为0表示该地址是单播地址。如果所有目标MAC地址位设置为1(例如目标MAC地址为ff:ff:ff:ff:ff:ff),则广播目标地址就与多播目标地址区别开来。因此,为了将其识别为多播地址所需的MAC地址的仅有一部分是设定为1的I/G位。如上所述,当L2地址表条目中包含多播地址时,前24位包含八位位组01:00:5e。因为这是固定样式(pattern),所以可以使用将I/G位保持为1的某种密钥(key)进行压縮;从而避免干扰存储在L2地址表中的L2单播地址。图4示出了包含传统MAC多播目标地址的L2地址表。与图2—样,该表包含初始的一组P个条目,每个条目包含索引410、地址420和端口430。如上所述,第一组单播地址440被接收到表中。一组多播目标地址450被示出为附加条目(P+l)和(P+2)。如图所示,一般的MAC多播目标地址460包含初始的八位位组01:00:5e,接着是随后的一组三个八位位组,来自IPv4GDA的位被插入到所述随后的一组三个八位位组中。每个多播条目与一组链接到订阅网络节点470的一个或多个端口相关联。图5示出了根据本发明一个实施例的用于多播组地址(L2GRP)的修改后L2地址表条目的格式。如上所述,L2GRP表条目必须包含等于1的1/G位,其中1/G位是地址条目的首个八位位组中的最低位。条目500包含这样的1/G位510,但是将它合并到16位的密钥520中,而不是合并到包含八位位组01:00:5e的32位中。通过将密钥限制为总共16位,32位可用于包含L3GDA530。使用16位密钥520而不是八位位组01:00:5e不会破坏L2地址表的利用。除非查找IPv4多播地址,否则不会参考L2地址表的多播L2GRP条目。此外,由于L2GRP地址是动态的并且是由软件输入的,所以不必对硬件做出改变来将L2GRP条目容纳在L2地址表中。在包含具有对密钥520的匹配的目标MAC地址的一个多播帧(1/G位=1)利用上面的L2地址表到达网络设备的情况下,可能导致到多播订阅者的不正确的转发。一个解决方法可以是根据具体的实现方式,将到来的帧广播到相应的广播域(例如VLAN)上的所有节点或者丢弃帧。可以在任何L2地址表査找之前作出这个决定。例如,选定的密钥可以具有十六进制值0x0101。如果到达的非IP多播帧具有目标MAC地址0101.e022.2222,则这样的MAC地址可能与对应于IPv4GDA224.34.34.34的L2GRP相冲突,并且如果执行L2地址表査找,则这样的MAC地址将会被错误地转发到订阅该L2GRP的端口。上述修改后的L2地址表条目的应用超出了解决IPv4GDA所存在的地址混淆问题的范围。这种32位地址表查找的连锁可以用于解决SSM和QinQ应用存在的问题。此外,L2地址表的附加地址空间减少了IPv6多播查找中的更长地址所存在的地址混淆问题,并且允许使用不同类型的查找(例如多协议标签交换(MPLS))。依源而定的多播图6是示出本发明一个实施例所提出的依源而定的多播(SSM)概念的简化框图。网络600包含两个多播组610和650。由于诸如地理或者希望在网络600上分发服务器/网络负载之类的原因,对于每个组610和650,都存在多个多播传输源。多播订阅者节点不仅可以规定参加特定组的希望,而且可以订阅传输源。作为示例,组610被分成三个子组610(1)、610(2)和610(3)。每个子组分别由源620、630和640提供服务。类似地,多播订阅者(例如,不同多播传输的订阅者)的第二组被分成两个子组650(1)和650(2),它们分别具有自己的源660和670。IGMPv3为订阅者节点提供以下能力不仅规定节点希望参加的多播组而且规定多播源。然而,可以看出,如果L2地址表查找仅限于该组(如上所述),则源的差别将会丢失。此外,如果组地址或源地址仅限于23位,则存在多地址混淆问题。仅仅修改L2地址表条目以包含32位地址字段也不能解决这个问题,因为组地址和源地址是32位的IPv4字段。即使对于上述修改后的L2地址来说,64位组的地址也太大以致于不能包含在单个条目中。修改后的L2地址表中的连锁查找可以解决这个问题。图7示出了包含根据本发明一个实施例所修改的条目以用于解决依源而定的多播的L2地址表的示例。与图2和图4中一样,所示出的表包含具有地址720和一组与该地址相对应的指定端口730的条目。每个表条目都具有相关索引710。如图2所示,一组条目740对应于单播目标地址1到P。从索引(P+1)开始并且延续到索引(P+Q)的一组条目750包含具有第一密钥(KEY1)禾n32位GDA(GROUP(l)-GROUP(Q))的L2GRP地址。L2GRP可以是图5所示的格式。条目750也可以包含与订阅L2GRP的节点相对应的每个端口的列表(List(l)-List(Q))。如上所讨论的,KEY1是包含等于1的1/G位的16位字段。图7包含允许多播源规范的另一组条目760。对于这些条目,32位的源地址(SOURCE(l,l)-SOURCE(Q,R))与第二密钥(KEY2)相关联,总称为L2SRC。KEY2对应于源所关联的组条目的索引(例如,图7的索引710)。例如,参考图6,组610的查找可以确定与组610的条目相关的第一索引。然后使用该第一索引作为与源620、630或640中的一个的32位地址相关联的密钥,该32位地址用于在条目760的查找中确定订阅者目标端口的列表(例如SList(l))。在这种方式下,可以在L2地址表中提供和解析组目标地址端口和源目标端口。由于与前一章节提出的原因类似的原因,对L2地址表的允许连锁查找来解析SSM目标端口的这种修改将不会干扰传统的L2地址表査找。在没有适当密钥的查找中,对应于多播源的条目不会被查到,并且除非通过初始组目标地址查找获得,否则不会得到这样的密钥。此外,由于多播帧包含L3GDA和L3源地址的指示符,因此多播帧不需要提供新的信息。QinQ网络协议使得服务供应商可以使用单个虚拟LAN(VLAN)来安全地将单个用户的VLAN的大部分或者全部通过服务供应商的城域网(MAN)或广域网(WAN)骨干网传输。允许这么做的软件在服务供应商网络边缘的交换机中的用户流量中增加额外的IEEE802.1Q标签。该标签为每个用户分配唯一的用户VLANID号(PE一VLAN),从而使得每个用户的流量在供应商的网络中是分开的并且是私有的。用户的VLAN(CE一VLAN)的全部都在边缘交换机处合并,以传输到供应商网络中。这允许通过供应商VLAN路由用户VLAN(或者桥域)。图8是示出使用供应商VLAN传输用户VLAN的简化框图。供应商网络810(MAN或WAN)为两个用户CI和C2提供网络传输。用户CI在网络810的两个站点(site)(站点820和站点830)之间传输流量。同样,用户C2在站点840和850之间传输流量。作为本地化网络流量的机制,用户CI和C2的局域网被分成多个本地VLAN。在站点820处,用户CI支持CE_VLAN(1,1)(822,826)和CE—VLAN(1,2)(824,828)。用户CI在站点830处支持CE一VLAN(l,l)(832,834)和CE—VLAN(1,2)(836)。用户C2在站点840处支持CE—VLAN(2,1)(842)和CE—VLAN(2,2)(844),并且在站点850处支持CE一VLAN(2,1)(852)和CE—VLAN(2,2)(854)。通过使用QinQ编码,例如站点820处的VLAN流量可以通过PE—VLAN860传输到站点830,C2的流量可以类似地通过PE一VLAN870进行传输。QinQ方法存在的问题会发生在单播寻址和多播寻址两者中。对于特定用户来说,供应商网络上PE—VLAN标识符的引入会阻止常规地使用初始CE—VLAN信息来优化L2流量在不同的远程站点中的转发。常规的交换机不能检查和使用PE—VLAN信息和CE—VLAN信息两者以得到对用户帧的转发动作。图9示出了根据本发明一个实施例的包含允许QinQ地址解析的元素的L2地址表。图9示出的L2地址表的格式与图7所示的格式类似。L2地址表包含MAC地址(920),对于单播地址解析来说,MAC地址(920)可以是连接到端口的网络节点的源MAC地址,而对于多播来说,MAC地址(920)可以是具有16位的密钥和32位的L3GDA的L2GRP条目。L2地址表还包含订阅者端口(930)的列表。每个条目935(单播)和940(多播)包含与桥域相关的附加字段,所述桥域为PE—VLAN(925)。PE—VLAN和CE—VLAN指示符的长度可以在12到14位之间。对于多播来说,用于解析QinQ地址的表查找类似于图7中用于SSM协议地址的表查找。KEY1被增加到L3GDA中并且PE一VLAN指示符也被从多播帧中取出或者得到。对L2地址表进行搜索以查找与L2GRP(KEY1IL3GDA)和PE一VLAN两者的匹配,从而确定条目索引。该索引变成耦合到来自多播帧的CE一VLAN指示符的第二密钥并且第二表查找被执行。第二表查找的结果确定连接到网络节点的交换机端口,这些网络节点是多播帧的订阅者。对于单播帧来说,用于解析QinQ地址的表查找与多播地址的表查找类似。目标MAC地址连同PE—VLAN指示符被从单播帧中取出或者得到。对L2地址表进行搜索以查找对表节(tablesection)920中的目标MAC地址和表节925中的PE—VLAN地址两者的匹配。如果具有匹配,则帧被广播到表节930中所指示的端口。如果没有匹配,则从帧中取出CE一VLAN指示符,并且对L2地址表进行搜索以在表节920和925中分别查找与QinQ—Flood(KEY3|CE—VLAN)禾QPE—VLAN指示符的匹配。KEY3可以是选定的密钥。该表查找的结果将会或者提供与在其上将传输帧(例如955)的CE—VLAN相对应的一组端口,或者如果没有匹配,则确定是丢弃帧还是在PE—VLAN上广播帧。如在SSM情形中所讨论的,与KEY2相链接的地址不会干扰L2目的地表的正常操作。如果不提供KEY2,这样的地址甚至都不会被检查,这样的地址只能从L2GRP和PE—VLAN的初始查找中得到。图10是示出根据本发明一个实施例的可以被用于用具有32位的L3GDA字段的条目来填充L2地址表的步骤的简化流程图。由诸如网络交换机之类的包含L2地址表的节点接收诸如用于参加的IGMPv3消息之类的多播管理消息(1005)。从管理消息中读取IP多播组GDA(L3GDA)(1010)。然后通过将选定的16位密钥和L3GDA的32位合并,形成适于包含在L2地址表中的L2组地址(L2GRP)(1015)。该密钥必须包含等于1的I/G位(即,L2GRP中的第一个八位位组的最低位)。然后确定L2GRP是否已经存在于表中(1020)。如果L2GRP已经存在于表中,则对表条目执行管理消息中所指定的管理操作(1025)。这些操作可以包括增加订阅者,并且因此在需要的情况下增加目标端口到预先存在的条目中的目标端口列表中,或者可以包括去掉一个订阅者,并且因此潜在地去掉该订阅者的端口。如果L2GRP不是己经存在于表中,则新形成的L2GRP和耦合到订阅者节点的至少一个端口的列表一起被增加到L.2地址表的新条目中(1030)。--旦执行了对L2GRP条目的管理,就确定管理帧是否是SSM管理消息(1035)。如果管理帧不是SSM管理消息,则网络设备等待下一个多播管理消息。如果消息是SSM管理消息,则从消息中读取IP多播源地址(L3SRC)(1040)。然后通过使用在步骤1020确定的或在歩骤1030中产生的表索引(例如,来自图7的710)作为与到L3SRC耦合的第二密钥,形成L2源地址(L2SRC)(1045)。然后确定在L2地址表中是否存在对应于L2SRC的条目(1050)。如果有相应的条目,则执行多播管理消息中所指定的管理操作(1055)。如果没有对应于L2SRC的条目,则在MAC目的地表中形成对应于L2SRC的新条目,并且该新条目包含连接到订阅者节点的至少一个端口的列表(1060)。然后该网络设备可以等待下一个多播管理消息。图ll是示出根据本发明一个实施例的多播(SSM和非SSM)帧的L2地址表查找的简化流程图。使用包含上述修改的L2GDA的L2地址表的网络设备(例如交换机)接收多播帧(1105)。然后该设备从多播帧中读取U组目标地址(UGDA)(111Q)。可以用L3GDA和包含等于1的1/G位的密钥形成第2层组地址(L2GRP),其中密钥与在图IO中用于形成表条目的密钥相同(1115)。然后确定所形成的L2GRP是否存在于L2地址表的条目中(1120)。如果表中没有相应的条目,则根据具体实现方式,或者丢弃帧或者将帧广播到所有节点(1125)。如果步骤1115中形成的L2GRP在表中具有相应的条目,则在存在任何第3层源地址(L3SRC)的情况下,网络设备从帧中读取第3层源地址(L3SRC)(1130)。通过将L3SRC和对应于L2GRP的条目的索引(710)的密钥合并,形成L2源地址(L2SRC)(1140)。然后确定在L2地址表中是否存在对应于L2SRC的条目(1150)。如果没有相应的条目(例如,在多播帧中没有L3SRC,或者没有对L2SRC的匹配),则多播帧可以根据需要进行复制并发送到L2GRP条目中所指示的所有订阅者,或者可以根据实现方式丢弃帧(1155)。如果在L2地址表中有对应于L2SRC的条目,则多播帧可以根据需要进行复制并发送到指定的端口(1160)。图12是示出根据本发明一个实施例的用于解决QinQ环境中的多播寻址的表查找方法的简化流程图。包含体现上述概念的L2地址表的网络设备接收使用QinQ格式化的多播帧(1205)。从接收的多播帧中读取L3GDA(1210)。还从接收的多播帧中读取或得到PE—VLAN指示符和CE—VLAN(1215,1220)。使用KEY1禾nL3GDA形成L2GRP,其中KEY1包含等于1的I/G位(1225)。确定L2GRP和PE—VLAN在L2地址表中是否具有相应的条目(1230)。如果在L2地址表中没有这种相应的条目,则交换机可以根据实现方式而丢弃或广播多播帧(1235)。如果在L2地址表中具有对应于L2GRP和PE一VLAN的条目,则可以形成L2CVLAN地址,该L2CVLAN地址包含在步骤1230中找到的表条目的索引和从多播帧所得到的指定CE—VLAN(1240)。确定在L2地址表中是否具有匹配L2CVLAN+PE—VLAN的条目(1245)。如果没有这种相应的条目,则帧可以被复制并被根据实现方式传输到订阅L2GRP的端口或者被丢弃(1250)。如果L2地址表中具有对应于L2CVLAN地址的条目,则可以根据需要复制多播帧,并将其发送到指定的端口(1255)。图13是示出根据本发明一个实施例的用于解决QinQ环境中的单播寻址的表查找方法的简化流程图。包含体现上述概念的L2地址表的网络设备接收使用QinQ格式化的单播帧(1305)。从接收的单播帧中读取目标MAC地址(DMAC)(1310)。还从接收的单播帧中读取或得到PE—VLAN指示符和CE—VLAN(1315,1320)。确定DMAC禾BPE—VLAN在L2地址表中是否具有相应的条目(1330)。如果L2地址表中具有相应的条目,则交换机将帧传输到表中所指定的端口(1335)。如果L2地址表中没有对应于DMAC和PE—VLAN的条目,则可以形成QinQ一Flood地址,该QinQ一FIood地址包含密钥和从单播帧得到的CE—VLAN指示符(1340)。确定L2地址表中是否存在作为条目的QinQ—Flood地址和PE—VLAN(1345)。如果没有这种相应的条目,则该帧可以根据实现方式而被在PE一VLAN上广播或者被丢弃(1350)。如果L2地址表中具有对应于QinQ—Flood+PE一VLAN的条目,则可以根据需要复制帧,并将其发送到该条目中所指定的端口(1355)。至此所讨论的示例都涉及使用包含这样的条目以用于査找的L2地址表,所述条目被修改为包含L3地址的32位。这样的32位地址字段可以包含整个IPv4多播组目标地址。但是如果包含IPv6多播GDA,则还是会存在丢失的地址位,因为这些地址包含128位的数据。在给出48位的MAC地址限制的情况下,用本发明不能完全解决IPv6的地址混淆问题,然而,由本发明所产生的地址长度空间的增加可以减小地址混淆问题。此外,通过使用长度小于16位的密钥或者通过结合L2地址表条目的广播域字段中的附加地址空间使用另一个密钥,本发明可以提供多于32位。示例计算和网络环境如上所示,本发明可以用各种计算机系统和网络实现。下面参考图14和图15描述一种这样的计算和网络环境的示例。图14示出了适于实现本发明的计算机系统1410的框图。计算机系统1410包括总线1412,其互连计算机系统1410的主要子系统,例如中央处理器1414、系统存储器1417(通常是RAM,但是也可以包括ROM、闪制器1418、诸如扬声器系统1420的经由音频输出接口1422的外部音频设备、诸如显示屏1424的经由显示适配器1426的外部设备、串行端口1428和1430、键盘1432(与键盘控制器1433接口连接)、存储接口1434、用于接收软盘1438的软盘驱动器1437、用于连接光纤通道网络1490的主机总线适配器(HBA)接口卡1435A、用于连接SCSI总线1439的主机总线适配器(HBA)接口卡1435B和用于接收光盘1442的光盘驱动器1440。还包含鼠标1446(或者其他点击设备,经由串行端口1428耦合到总线1412)、调制解调器1447(经由串行端口1430耦合到总线1412)和网络接口1448(直接耦合到总线1412)。总线1412允许中央处理器1414和系统存储器1417之间的数据通信,如上所述,系统存储器1417可以包括只读存储器(ROM)或闪速存储器(均未示出)以及随机存取存储器(RAM)(未示出)。RAM—般是操作系统和应用程序被加载到其中的主存储器。除了其他代码之外,ROM或闪速存储器可以包含基本输入输出系统(BIOS),BIOS控制诸如与外围部件交互之类的基本硬件操作。计算机系统1410所驻留的应用程序一般被存储在计算机可读介质上或者被经由计算机可读介质而访问,计算机可读介质例如是硬盘驱动器(例如固定磁盘1444)、光驱动器(例如光盘驱动1440)、软盘单元1437或其他存储介质。另外,当应用程序被经由网络调制解调器1447或接口1448而访问时,应用程序可以是根据应用和数据通信技术进行调制的电信号形式。与计算机系统1410的其他存储接口一样,存储接口1434可以连接到用于信息的存储和/或取回的标准计算机可读介质,例如固定磁盘驱动器1444。固定磁盘驱动器1444可以是计算机系统1410的一部分,或者可以是分开的并且可以通过其他接口系统而访问。调制解调器1447可以提供经由电话链路到远程服务器的直接连接或者经由因特网服务供应商(ISP)到因特网的直接连接。网络接口1448可以提供经由直接网络链路到远程服务器的直接连接或者经由POP(存在点)到因特网的直接连接。网络接口1448可以使用无线技术提供这样的连接,包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。用类似的方式可以连接许多其他设备或子系统(未示出)(例如条形码阅读器、文档扫描仪、数字照相机等)。相反,图14所示的所有设备都不一定用于实践本发明。这些设备和子系统可以通过与图14所示方式不同的方式互联。诸如图14所示的计算机系统之类的计算机系统的操作在本领域中是容易知道的,因此在本申请中将不作详细讨论。实现本发明的代码可以存储计算机可读介质中,所述计算机介质例如是系统存储器1417、固定磁盘1444、光盘1442或软盘1438中的一个或多个。另外,计算机系统1410可以是任何种类的计算设备,并且因此包含个人数字助理(PDA)、网络装置、X-窗口终端或其他这样的计算设备。计算机系统1410上所提供的操作系统可以是MS-DOS、MS-WINDOWS、OS/2、UNIX⑧、Linux⑧或其他已知的操作系统。计算机系统1410还支持许多因特网接入工具,例如包括具有JavaScript解释器的遵从HTTP的web浏览器,该浏览器例如是NetscapeNavigator,MicrosoftInternetExplorer而且,关于这里所描述的信号,本领域的技术人员将认识到信号可以直接从第一个块传输到第二个块,或者信号可以在块之间进行修改(例如放大、衰减、延迟、锁存、缓冲、反相、过滤或其他修改)。虽然上述实施例的信号的特征在于从一个块传输到下一个块,但是本发明的其他实施例可以包括代替直接传输的信号的修改后信号,只要信号的信息方面和/或功能方面在块之间传输。在某种程度上,由于所涉及的电路的物理限制(例如不可避免的具有某种衰减和延迟),第二块的信号输入可以被概念化为从第一信号得到的第二信号,第一信号是从第一块输出的。因此,不管是由于电路限制还是由于经过不改变第一信号的信息方面和/或最终功能方面的其他电路元件,这里所使用的从第一信号得到的第二信号都包括第一信号或任何对第一信号的修改。图15是示出网络体系结构1500的框图,其中客户端系统1510、1520和1530以及存储服务器1540A和1540B(这些设备中的任何一个都可以用计算机系统1410实现)耦合到网络1550。存储服务器1540A被进一歩描述为具有直接附接(attach)的存储设备1560A(1)-(N),存储服务器1540B被描述为具有直接附接的存储设备1560B(1)-(N)。存储服务器1540A和1540B还连接到SAN构架1570,尽管本发明的操作不要求到存储区域网络的连接。SAN构架1570支持存储服务器1540A和1540B对存储设备1580(1)-(N)的访问,并且支持客户端系统1510、1520和1530经由网络1550的访问。SAN构架1570可以包括被配置为执行虚拟化的一个或多个交换机。还示出了智能存储阵列1540,作为可以经由SAN构架1570访问的具体存储设备的示例。参考计算机系统1510,调制解调器1547、网络接口1548或某种其他方法可用于提供从客户端计算机系统1510、1520和1530到网络1550的连接。客户端系统1510、1520和1530能够使用例如web浏览器或其他客户端软件(未示出)来访问存储服务器1540A或1540B上的信息。这样的客户端允许客户端系统1510、1520和1530访问由存储服务器1540A或1540B或者存储设备1560A(1)-(N)、1560B(1)-(N)、1580(1)-(N)或智能存储阵列1590之一所存储的数据。图15示出了诸如因特网之类的用于交换数据的网络的使用,但是本发明不限于因特网或任何基于特定网络的环境。其他实施例本发明很好地适合于获得所述优点以及其中固有的其他优点。虽然本发明是通过参考本发明的具体实施例进行图示、描述和限定的,但是这些参考不意味对本发明的限制,并且不暗示这种限制。如相关领域的普通技术人员将会认识到的,本发明允许形式上和功能上的非常大的修改、改变和等同物。所示出和描述的实施例仅仅是示例,不是本发明范围的穷举。上文描述的实施例包含了在其他部件中包含的部件(例如示出为计算机系统1410的部件的各种元件)。这种体系结构仅仅是示例,实际上可以实现获得相同功能的许多其他体系结构。在抽象但仍然明确的意义上,用于实现相同功能的任何部件安排被有效地"关联"以实现所希望的功能。因此,在这里,任何被组合以实现特定功能的两个部件可以视为彼此"关联"以使得实现所希望的功能,而不考虑体系结构或中间部件。同样,任何两个如此关联的部件也可以视为彼此"可操作地连接"或"可操作地耦合",从而实现所需功能。上面的详细描述通过框图、流程图和示例的使用给出了本发明的各种实施例。本领域的技术人员将会认识到,通过使用示例所示出的各个框图部件、流程图步骤、操作和/或部件可以通过宽范围的硬件、软件、固件或其任何组合单独和/或共同地实现。在完全起作用的计算机系统的环境中描述了本发明;然而,本领域的技术人员将会认识到,本发明可以作为程序产品以各种形式分布,并且本发明可以同等地应用,而不管用于实际上实现分布的信号携带介质的具体类型。信号携带介质的示例包括诸如软盘和CD-ROM之类的可记录介质、诸如数字和模拟通信链路之类的传输式介质以及将来所开发的介质存储和分布系统。上面讨论的示例可以由执行某些任务的软件模块实现。这里所讨论的软件模块可以包括脚本、批处理或其他可执行文件。软件模块可以存储在诸如硬盘驱动器之类的机器可读或计算机可读的存储介质上。用于根据本发明的实施例存储软件模块的存储设备例如可以是磁软盘、硬盘或诸如CD-ROM或CD-R之类的光盘。用于根据本发明的实施例存储固件或硬件模块的存储设备也可以包括基于半导体的存储器,基于半导体的存储器可以永久地、可移动地或者远程地耦合到微处理器/存储器系统。因此,模块可以存储在计算机系统存储器中,从而配置计算机系统来执行模块的功能。其他新的和各种类型的计算机可读存储介质可以用于存储这里所讨论的模块。希望上述描述是说明本发明的,而不应视为限制本发明。本发明范围内的其他实施例是可能的。本领域的技术人员将会很容易实现用于提供这里所公开的结构和方法的步骤,并且将会了解到,过程参数和步骤顺序被仅通过示例而给出并且可以被改变以获得所希望的结构和本发明范围内的修改。这里所公开的实施例的变化和修改可以基于这里所给出的描述来进行,而不脱离本发明的范围。因此,希望本发明仅由所附权利要求书的范围来限制,求给出各方面的等同物的全面认识。虽然结合若干实施例描述了本发明,但是不希望本发明被限于这里所给出的具体形式。相反,希望覆盖可以合理地包括在本发明的由所附权利要求书所限定的范围内的这种替换物、修改和等同物。权利要求1.一种方法,包括形成L2组地址(L2GRP),该L2GRP包括OSI第3层多播组目标地址(L3GDA)和第一密钥;将所述L2GRP存储在OSI第2层地址表的第一表条目中。2.如权利要求l所述的方法,还包括从多播帧中读取第一OSI第3层组目标地址;形成第一搜索项,该第一搜索项包括所述第一密钥,和所述第一OSI第3层组目标地址,其中所述第一密钥将所述第一表条目标识为包括所述L3GDA;以及将所述第一搜索项与所述L2GRP进行比较。3.如权利要求2所述的方法,还包括如果所述将所述第一搜索项与所述L2GRP的比较产生匹配,则经由所述第一表条目中所指定的一个或多个端口传输所述多播帧。4.如权利要求2所述的方法,还包括形成L2源地址(L2SRC),该L2SRC包括第一OSI第3层多播源地址(L3SRC)和第二密钥;以及将所述L2SRC存储在所述OSI第2层地址表的第二表条目中。5.如权利要求4所述的方法,还包括如果所述第一搜索项与所述L2GRP匹配,则形成第二搜索项,该第二搜索项包括所述第一表条目的索引,和来自所述多播帧的0SI第3层源地址;以及将所述第二搜索项与所述L2SRC进行比较,并且如果所述将所述第二搜索项与所述L2SRC的比较产生匹配,则经由所述第二表条目中所指定的一个或多个端口传输所述多播帧。6.如权利要求1所述的方法,还包括将第一供应商虚拟LAN(PE一VLAN)标识符存储在所述第一表条目中;以及将第一用户虚拟LAN(CE—VLAN)标识符存储在所述OSI第2层地址表的第三表条目中。7.如权利要求6所述的方法,还包括从QinQ格式化的多播帧中读取第二OSI第3层组目标地址;形成第三搜索项,该第三搜索项包括所述第一密钥,和所述第二OSI第3层组目标地址;以及将所述第三搜索项和来自所述QinQ格式化的多播帧的第一VLAN指示符与所述第一表条目中的所述L2GRP和所述PE—VLAN标识符进行比较;并且如果所述第三搜索项和所述第一VLAN指示符与所述L2GRP和所述PE一VLAN标识符匹配,则形成第四搜索项,该第四搜索项包括所述第一表条目的索引,和来自所述QinQ格式化的多播帧的第二VLAN标识符,以及将所述第四搜索项与存储在所述第三表条目中的第二密钥和所述CE—VLAN标识符进行比较;并且如果所述第四搜索项与所述第二密钥和所述CE—VLAN匹配,则将数据从所述QinQ格式化的多播分组传输到所述第三表条目中所指定的一个或多个网络交换机端口。8.—种系统,包括第一处理器;和耦合到所述第一处理器的存储器,其中所述第一处理器被配置为产生包括第一表条目的OSI第2层地址表,其中所述第一表条目包括L2组地址(L2GRP),该L2GRP包括QSI第3层多播组目标地址(L3GDA)和第一密钥,其中所述第一密钥中的一位标识出所述第一表条目包括多播地址,以及所述存储器被配置为存储所述OSI第2层地址表。9.如权利要求8所述的系统,还包括第一端口;耦合到所述第一端口和所述OSI第2层地址表的第二处理器;和耦合到所述第二处理器和所述第一端口的交换机构架,其中所述第一端口被配置为接收多播帧,所述第二处理器被配置为从所述多播帧中读取第一OSI第3层组目标地址,形成包括所述第一密钥和所述第一OSI第3层组目标地址的将所述第一搜索项与所述L2GRP进行比较,以及响应于所述第一搜索项与所述L2GRP匹配,所述交换机构架被配置为复制所述多播帧,并且将复制的多播帧传输到耦合到所述交换机构架的一个或多个端口,其中,耦合到所述交换机构架的所述一个或多个端口在所述第一表条目中指定。10.如权利要求9所述的系统,其中所述OSI第2层地址表还包括第二表条目,该第二表条目包括L2源地址(L2SRC),该L2SRC包括第一OSI第3层多播源地址(L3SRC)和第二密钥;响应于所述第一搜索项与所述L2GRP匹配,所述第二处理器还被配置为形成第二搜索项,该第二搜索项包括所述第一表条目的索引,以及来自所述多播帧的OSI第3层源地址,并且将所述第二搜索项与所述L2SRC进行比较;并且响应于所述第二搜索项与所述L2SRC匹配,所述交换机构架还被配复制所述多播帧,并且将复制的多播帧传输到耦合到所述交换机构架的一个或多个端口,其中耦合到所述交换机构架的所述一个或多个端口在所述第二表条目中指定。11.如权利要求8所述的系统,还包括第二端口;耦合到所述第一端口和所述OSI第2层地址表的第三处理器;以及耦合到所述第三处理器和所述第二端口的交换机构架,其中所述OSI第2层地址表还包括所述第一表条目和第三表条目,所述第一表条目还包括第一供应商虚拟LAN(PE—VLAN)标识符,所述第三表条目包括第一用户虚拟LAN(CE—VLAN)标识符,所述第二端口被配置为接收QinQ格式化的帧,所述第三处理器被配置为从所述QinQ格式化的帧中读取第二OSI第3层组目标地址,形成包括所述第一密钥和所述第二OSI第3层组目标地址的第三搜索项,将所述第三搜索项和来自所述QinQ格式化的帧的第一VLAN指示符与所述第一表条目中的L2GRP和所述PE_VLAN标识符进行比较,并且如果所述第三搜索项和所述第一VLAN指示符与所述L2GRP和所述PE一VLAN标识符匹配,则形成包括所述第一表条目的索引和来自所述QmQ格式化的帧的第二VLAN标识符的第四搜索项,并且将所述第四搜索项与存储在所述第三表条目中的第二密钥和所述CE_VLAN标识符进行比较,并且响应于所述第四搜索项与所述第二密钥和所述CE_VLAN匹配,所述交换机构架被配置为将所述QinQ格式化的帧传输到耦合到所述交换机构架的一个或多个端口,其中耦合到所述交换机构架的所述一个或多个端口在所述第三表条目中指定。全文摘要本发明提出了一种对帧的OSI第2层交换机转发进行优化的方法和系统,所述帧包括IP地址、802.1QinQVLAN标识符,多协议标签交换标签以及任何其他对得到所述帧的L2转发结果有意义的有用信息。在一个实施例中,48位OSI第2层地址条目包括作为前缀的16位密钥(520),从而允许查找表中包括32位OSI第3层地址(例如完整的IPv4地址)。提出了这种方案的实现方式,以解决包括单源多播的多播组目标地址中存在的地址混淆问题。还提出了优化IEEE802.1QinQ环境中优化帧转发的方案。这些实现方式的结果会减少由包含这样的OSI第2层地址查找表的网络交换机所产生的不必要的网络流量的量。文档编号H04L12/56GK101133605SQ200680006475公开日2008年2月27日申请日期2006年3月29日优先权日2005年4月1日发明者加塔诺·伯格季诺申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1