介质访问控制地址更新方法及网络设备的制作方法

文档序号:7861780阅读:184来源:国知局
专利名称:介质访问控制地址更新方法及网络设备的制作方法
技术领域
本发明涉及通讯技术,尤其涉及一种介质访问控制(Media Access Control,简称为MAC)地址更新方法及网络设备。
背景技术
随着各种新型业务的出现,中间系统到中间系统路由协议(Intermediate Systemto Intermediate System,简称为IS_IS)由于其特有的灵活性和可扩展性,越来越受到更多用户的青睐。IS-IS现有的在广播以太链路中的邻居协商机制是一个三次握手的过程,两邻居节点Rl和R2的初始邻接状态都为未建立邻居关系(Down),R2发送IS-IS你好HELLO (你好)报文给Rl,HELLO报文中的邻居三元组,即报文类型 -长度-报文内容(type-length-value,简称为TLV)不包含Rl的MAC地址。Rl在收到R2的HELLO报文,将邻接状态从Down改为初始化(Init),然后发送HELLO报文给R2,该HELLO报文中邻居三元组TLV中包含R2的MAC地址。R2接收到Rl的HELLO报文,发现邻居三元组TLV中包括自己的MAC地址,邻接状态从Down直接转为上线建立邻居关系(Up ),并发送HELLO报文给Rl,本次HELLO报文中携带Rl的MAC地址。Rl接收到R2的HELLO报文,发现邻居三元组TLV中包含自己的MAC地址,邻接状态从Init转为Up。在越来越复杂的网络环境中,上述邻居协商机制的缺陷也逐渐显现如果某一邻居节点(如R2)根据管理的要求修改了自身的MAC地址,而MAC地址在现有的邻居协商机制中并不属于IS-IS的配置,所以R2不会发送HELLO报文通知Rl其本地MAC地址的改变,而是按照正常流程,在HELLO报文的定时发送周期到达时才会发送HELLO报文,并在HELLO报文中携带修改后的MAC报文,Rl在收到HELLO报文之后,发现R2的MAC地址与记录的MAC地址不一致,直接丢弃该HELLO报文,直到与R2的邻居关系超时,删除与R2的邻居关系,然后根据新的MAC地址重新执行三次握手过程建立新的邻居关系。在此期间,Rl会丢弃掉全部R2发来的协议报文,导致Rl无法学习到R2的最新路由。与此同时,Rl发送给R2的HELLO报文中邻居三元组TLV携带的还是R2修改之前的MAC地址,R2在接收到上述HELLO信息后,会将与Rl的邻居关系从Up变为Init,然后重新进行路由计算,删除R2到Rl的路由,直到与Rl的邻居关系超时后,删除与Rl的邻居关系,并根据新的MAC地址与Rl建立新的邻居关系,重新进行路由计算之后,才会对目的为Rl或经Rl中转的数据报文进行正常转发。上述这种情况会导致从R2改变MAC地址开始,到Rl与R2重新建立邻居关系之间的这段时间内,Rl和R2之间形成了一个路由黑洞,所有通过R2转发到Rl的数据报文都会被R2丢弃,路由无法收敛。

发明内容
本发明提供一种可以有效克服现有技术中因邻居节点MAC地址修改而造成的路由黑洞问题的MAC地址更新方法及网络设备。本发明的第一个方面是提供一种MAC地址更新方法,包括
第一节点向同一条链路上的第二节点发送MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的所述第一节点的MAC地址进行更新后,返回MAC地址更新确认消息给所述第一节点;如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为所述第一节点的MAC地址。本发明的第二个方面是提供一种MAC地址更新方法,包括第二节点接收同一条 链路上的第一节点发送的MAC地址更新请求;根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新,并返回MAC地址更新确认消息给所述第一节点。本发明的第三个方面是提供一种网络设备,包括发送模块,用于向同一条链路上的第二节点发送介质访问控制MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的该网络设备的MAC地址更新后,返回MAC地址更新确认消息给该网络设备;处理模块,用于如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为自身的MAC地址。本发明的第四个方面是提供一种网络设备,包括接收模块,用于接收同一条链路上的第一节点发送的MAC地址更新请求;更新模块,用于根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新;发送模块,用于返回MAC地址更新确认消息给所述第一节点。本发明提供的方案,在同一条链路的邻居节点根据第一节点发送的MAC地址更新请求更新了自身保存的第一节点的MAC地址,返回MAC地址更新确认消息之后,使用更新后的MAC地址作为第一节点的MAC地址,不会形成现有技术中的路由黑洞。


图I为本发明实施例一提供的MAC地址更新方法的流程图;图2为本发明实施例二提供的MAC地址更新方法的流程图;图3为本发明实施例三提供的MAC地址更新方法的流程图;图4为本发明实施例四提供的MAC地址更新方法的流程图;图5为本发明实施例五提供的网络设备的结构示意图;图6为本发明实施例六提供的网络设备的结构示意图;图7为本发明实施例七提供的网络设备的结构示意图;图8为本发明实施例八提供的网络设备的结构示意图;图9为本发明实施例九提供的网络设备的结构示意图。
具体实施例方式图I为本发明实施例一提供的MAC地址更新方法的流程图,如图I所示,该方法包括101、第一节点向同一条链路上的第二节点发送MAC地址更新请求,以使第二节点根据该MAC地址更新请求将自身保存的第一节点的MAC地址进行更新后,返回MAC地址更新确认消息给第一节点。对于以太网链路上的网络设备(又可以称为节点),如果与其他节点建立的是广播类型的邻居关系,那么该节点的邻居节点可以是一个,也可以是多个;如果与其他节点建立的是点对点类型的邻居关系,那么该节点的邻居节点有且只有一个。也就是说,其中的第一节点可以理解为一种泛指,泛指同一条以太网链路中的任一邻居节点。第二节点既可以是一种泛指,泛指与第一节点位于同一条以太网链路上的任一广播类型的邻居节点,也可以是一种特指,特指与第一节点位于同一条以太网链路上的唯一的点对点类型的邻居节点。当第二节点为泛指时,第一节点通过广播的形式将MAC地址更新请求发送给同一条以太网链路中的全部广播类型的邻居节点;当第二节点为特指时,MAC地址更新请求仅发送给唯一的点对点类型的邻居节点。103、如果接收到第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为第一节点的MAC地址。 这里需要说明的是,对于第二节点为泛指的情况,第一节点需要接收到全部广播类型的邻居节点返回的MAC地址更新确认消息,才能够使用更新后的MAC地址作为第一节点的MAC地址。接收到全部广播类型的邻居节点的MAC地址更新确认消息,意味着同一条链路的全部广播类型的邻居节点都已经根据第一节点发送的MAC地址更新请求更新了自身保存的第一节点的MAC地址,这种情况下可以使用修改后的MAC地址,而不会形成现有技术中的路由黑洞。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图2为本发明实施例二提供的MAC地址更新方法的流程图,如图2所示,在图I所示的MAC地址更新方法的基础上,101之前,该方法还可以包括100、第一节点接收修改MAC地址通告消息,构造MAC地址更新请求。修改MAC地址通告消息可以是系统管理员人工触发的,也可以是基于试验、工作等目的自动触发的。其中,构造MAC地址更新请求可以但不限于利用现有技术中的HELLO报文。具体的,可以将第一节点修改前的MAC地址作为源MAC地址携带在HELLO报文的报头中,报头的保留字段中将该HELLO报文标识为MAC地址更新请求;将修改前的MAC地址和修改后的MAC地址携带在该HELLO报文的三元组TLV中,两个MAC地址之间插入间隔符。对于第二节点为泛指的情况,可以使用HELLO报文的邻居三元组TLV ;对于第二节点为特指的情况,HELLO报文中并不包括邻居三元组TLV,所以可以新构造一个三元组TLV。这里间隔符的作用可以理解为将修改前和修改后的MAC地址进行分隔,该间隔符可以是无意义或者协议中不使用的MAC地址,如全O的MAC地址等形式。本发明实施例并不对间隔符的具体形式进行限定,上述举例并不用以限制本发明的保护范围。一种实施方式下,在执行103中的步骤“使用更新后的MAC地址作为第一节点的MAC地址”之前,该方法还可以包括
判断是否使用该更新后的MAC地址作为第一节点的MAC地址;如果是,使用更新后的MAC地址作为第一节点的MAC地址;如果否,向第二节点发送MAC地址更新出错消息,使得第二节点根据接收到的MAC地址更新出错消息将已保存的第一节点的MAC地址更新为修改前的MAC地址。对于此判断动作需要说明的是,该判断动作的主要作用在于,如果第一节点确实发送了 MAC地址更新请求给第二节点,这时第一节点会判定可以使用更新后的MAC地址作为自身的MAC地址;如果第一节点并没有向第二节点发送MAC地址更新请求,就说明第二节点接收到的MAC地址更新请求是是伪造的,并不是第一节点发送的,这时第一节点会判定不使用更新后的MAC地址作为自身的MAC地址。增加了上述步骤的方法实施例,可以有效识别伪造的MAC地址更新请求,保证第一节点的MAC地址不被任意篡改。MAC地址更新出错消息可以但不限于通过如下方式进行构造将第一节点修改前的MAC地址作为源MAC地址携带在HELLO报文的报头中,该报头的保留字段中将该HELLO报·文标识为MAC地址更新出错消息;在HELLO报文的三元组TLV中携带两个第一节点修改前的MAC地址,两个修改前的MAC地址之间插入间隔符。对于这两个第一节点修改前的MAC地址而言,第一个修改前的MAC地址用于代表第一节点的原始MAC地址,第二个修改前的MAC地址用于代表第一节点当前的MAC地址,两个是相同的,代表第一节点的MAC地址不发生改变。对于第二节点为泛指的情况,可以使用HELLO报文的邻居三元组TLV ;对于第二节点为特指的情况,可以新构造一个三元组TLV。这里间隔符的作用可以理解为将两个修改前的MAC地址进行分隔,该间隔符可以是无意义或者协议中不使用的MAC地址,如全O的MAC地址等形式。本发明实施例并不对间隔符的具体形式进行限定,上述举例并不用以限制本发明的保护范围。上面的实施例主要是从第一节点的角度对本发明的内容进行了描述,下面,从与第一节点同一链路的任意一个邻居节点作为执行主体的角度对本发明的内容进行更为详细的描述。图3为本发明实施例三提供的MAC地址更新方法的流程图,如图3所示,该方法包括301、第二节点接收同一条链路上的第一节点发送的MAC地址更新请求。303、根据MAC地址更新请求将已保存的第一节点的MAC地址进行更新,并返回MAC地址更新确认消息给第一节点。上述301和303中提到的第一节点可以理解为上述方法实施例中提到的第一节点,而第二节点可以理解为一种代指,用于代指与第一节点在同一条链路上的任一邻居节点。—种实施方式下,MAC地址更新请求中携带了第一节点的标识、第一节点修改前的MAC地址和修改后的MAC地址,那么303中根据MAC地址更新请求将已保存的第一节点的MAC地址进行更新具体可以包括根据第一节点的标识查询第一节点是否属于已建立邻居关系(UP)的邻居节点;如果是已建立邻居关系的邻居节点,在第一节点的三元组TLV中查询是否存在修改前的MAC地址;如果存在,将已保存的第一节点的MAC地址由修改前的MAC地址更新为修改后的MAC地址。
图4为本发明实施例四提供的MAC地址更新方法的流程图,如图4所示,在上述实施方式的基础上,303之后,该方法还可以包括305、第二节点接收IS-IS报文,该IS-IS报文的报头中携带第一节点修改前的MAC地址。需要说明的是,该IS-IS报文可以是第一节点发送的,这种实施方式下,该IS-IS报文可以也很可能是第一节点发送的MAC地址更新出错消息。该IS-IS报文也可以是其他节点甚至至攻击者伪造的,那么通过如下的步骤可以有效识别这两种情况,以避免合法MAC地址被阻止,或者受到非法MAC地址的攻击。307、第二节点发送MAC合法性验证消息给第一节点,并接收第一节点返回的MAC合法性响应消息。如果MAC合法性响应消息的报头中携带的是第一节点修改前的MAC地址,则将修 改前的MAC地址确定为第一节点的合法MAC地址,将修改后的MAC地址确定为非法MAC地址;将已保存的第一节点的MAC地址由修改后的MAC地址更新为修改前的MAC地址。具体的,如果第二节点为泛指,也就是说,第二节点指代的是第一节点的广播类型的邻居节点,那么当第二节点是中间指定系统(Designated Intermediate System,简称为DIS)时,307中提到的MAC合法性验证消息为不携带第一节点的链路状态包(Link-State Packet,简称为LSP)报文摘要内容的完整时序报文(Complete SerialNumber Packet Data Unit,简称为CSNP)报文,MAC合法性响应消息为LSP报文。当第一节点是DIS时,307中提到的MAC合法性验证消息为部分时序报文(Partial Sequence NumberPacket Data Unit,简称为PSNP)报文,MAC合法性响应消息为LSP报文。如果第二节点为特指,也就是说,第二节点指代的是第一节点的唯一的点对点类型的邻居节点,那么MAC合法性验证消息为不携带第一节点的LSP报文摘要内容的CSNP报文,MAC合法性响应消息为LSP报文。增加305以及307的主要目的在于第二节点可以通过305以及307来识别出邻居节点(如第一节点)的合法或者非法MAC地址。具体而言,当第二节点接收到第一节点发送的IS-IS报文时,发现该IS-IS报文中携带的是第一节点修改前的MAC地址,这时第二节点会发送MAC合法性验证消息给第一节点,并根据第一节点返回的MAC合法性响应消息来判断,到底修改前的MAC地址是第一节点的合法MAC地址,还是修改后的MAC地址是第一节点的合法MAC地址。识别出合法或非法MAC地址之后,便可以进行如下实施例提供的步骤。在图4所示的方法实施例的基础上,如果307中确定第一节点修改后的MAC地址被确定为非法MAC地址,本发明实施例还可以包括对接收到的报文头中携带有该非法MAC地址的IS-IS报文个数进行统计;如果预定时间内的统计个数超过预设阀值,不需要等一个HELLO报文的发送周期,立即对该非法MAC地址进行阻断;如果预定时间内的统计个数不超过预设阀值,等一个HELLO报文的发送周期之后,对该非法MAC地址进行阻断。进一步的,对该非法MAC地址进行阻断之后,将该统计个数清零。图5为本发明实施例五提供的网络设备的结构示意图,该网络设备可以是上述方法实施例中提到的第一节点的一种实现方式,其方法步骤可以参考方法实施例中有关第一节点的方法步骤,此处不做赘述。如图5所示,该网络设备可以包括发送模块501和处理模块502,其中,发送模块501用于向同一条链路上的第二节点发送介质访问控制MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的该网络设备的MAC地址更新后,返回MAC地址更新确认消息给该网络设备;处理模块502用于如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为自身的MAC地址。图6为本发明实施例六提供的网络设备的结构示意图,在图5所示的网络设备的基础上,该网络设备还可以包括接收模块503和构造模块504。其中的接收模块503用于接收修改MAC地址通告消息;构造模块504用于构造所述MAC地址更新请求。具体的,构造模块504可以包括MAC地址更新请求构造单元,用于将所述网络设备修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,在所述HELLO报文的报头的保留字段中将所述HELLO报文标识为MAC地址更新请求;将所述网络设备修改前的MAC地址和修改后的MAC地址携带在所述HELLO报文的三元组TLV中,所述修改前的MAC地址和所述修改后的MAC地址之间插入间隔符。在图6所示的网络设备的基础上,处理模块502还可以用于使用更新后的MAC地 址作为所述网络设备的MAC地址之前,判断是否使用更新后的MAC地址作为所述网络设备的MAC地址;如果所述处理模块502的判断结果为否,所述发送模块501还用于向所述第二节点发送MAC地址更新出错消息,以使所述第二节点根据所述MAC地址更新出错消息将已保存的所述网络设备的MAC地址更新为修改前的MAC地址。在上述实施方式的基础上,构造模块504还可以包括MAC地址更新出错消息构造单元,用于将所述网络设备修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,所述报头的保留字段中将该HELLO报文标识为MAC地址更新出错消息;在HELLO报文的三元组TLV中携带两个所述网络设备修改前的MAC地址,两个所述修改前的MAC地址之间插入间隔符。图7为本发明实施例七提供的网络设备的结构示意图,该网络设备可以是上述方法实施例中提到的第二节点的一种实现方式,其方法步骤可以参考方法实施例中有关第二节点的方法步骤,此处不做赘述。如图7所示,该网络设备可以包括接收模块701、更新模块702以及发送模块703,其中,接收模块701用于接收同一条链路上的第一节点发送的MAC地址更新请求;更新模块702用于根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新;发送模块703用于返回MAC地址更新确认消息给所述第一节点。一种实施方式下,接收模块701接收到的MAC地址更新请求中携带所述第一节点的标识、修改前的MAC地址和修改后的MAC地址;所述更新模块702包括第一查询单元,用于根据所述第一节点的标识查询所述第一节点是否属于已建立邻居关系的邻居节点;第二查询单元,用于如果第一查询单元的查询结果为是,在所述第一节点的三元组TLV中查询是否存在所述修改前的MAC地址;更新单元,用于如果第二查询单元的查询结果为存在,则将所述已保存的所述第一节点的MAC地址由所述修改前的MAC地址更新为所述修改后的MAC地址。在上述实施方式的基础上,接收模块701还用于在所述发送模块703返回MAC地址更新确认消息给所述第一节点之后,接收中间系统到中间系统路由协议IS-IS报文,所述IS-IS报文的报头中携带有所述第一节点修改前的MAC地址;所述发送模块703还用于发送MAC合法性验证消息给所述第一节点;所述接收模块701还用于接收所述第一节点返回的MAC合法性响应消息;如图8所示的本发明实施例八提供的网络设备的结构示意图,所述网络设备还包括确定模块704,用于如果所述接收模块701接收到的MAC合法性响应消息的报头中携带的是所述第一节点修改前的MAC地址,则将所述修改前的MAC地址确定为合法MAC地址,将所述修改后的MAC地址确定为非法MAC地址;所述更新模块702还用于将所述已保存的所述第一节点的MAC地址由所述修改后的MAC地址更新为所述修改前的MAC地址。其中,如果所述网络设备与所述第一节点之间为广播类型的邻居关系,且所述网络设备是中间指定系统DIS,所述发送模块发送的所述MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;所述接收模块接收的所述MAC合法性响应消息为LSP报文;如果所述网络设备与所述第一节点之间为广播类型的邻居关系,且所述第一节点是DIS,所述发送模块发送的所述MAC合法性验证消息为部分时序PSNP报文,所述接收模块接收的所述MAC合法性响应消息为LSP报文;如果第二节点与第一节点之间为点对点类型的邻居关系,MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;MAC合法性响应消息为LSP报文。一种实施方式下,上述提到的IS-IS报文为MAC地址更新出错消息。·图9为本发明实施例九提供的网络设备的结构示意图,如图9所示,该网络设备还可以包括统计模块705和阻断模块706,其中,统计模块705用于所述确定模块将所述修改后的MAC地址确定为非法MAC地址之后,对所述接收模块接收到的报文头中携带所述非法MAC地址的IS-IS报文个数进行统计;阻断模块706用于如果预定时间内所述统计模块的统计个数超过预设阀值,对所述非法MAC地址进行阻断。在上述实施方式的基础上,统计模块705还用于在所述阻断模块706对所述非法MAC地址进行阻断之后,将所述统计个数清零。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种介质访问控制MAC地址更新方法,其特征在于,包括 第一节点向同一条链路上的第二节点发送MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的所述第一节点的MAC地址进行更新后,返回MAC地址更新确认消息给所述第一节点; 如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为所述第一节点的MAC地址。
2.根据权利要求I所述的方法,其特征在于,所述第一节点向同一条链路上的第二节点发送MAC地址更新请求之前,所述方法还包括 接收修改MAC地址通告消息,构造所述MAC地址更新请求。
3.根据权利要求2所述的方法,其特征在于,所述构造所述MAC地址更新请求包括 将所述第一节点修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,在所述HELLO报文的报头的保留字段中将所述HELLO报文标识为MAC地址更新请求; 将所述第一节点修改前的MAC地址和修改后的MAC地址携带在所述HELLO报文的三元组类型-长度-内容TLV中,所述修改前的MAC地址和所述修改后的MAC地址之间插入间隔符。
4.根据权利要求I至3中任一项所述的方法,其特征在于,所述使用更新后的MAC地址作为所述第一节点的MAC地址之前,所述方法还包括 判断是否使用更新后的MAC地址作为所述第一节点的MAC地址; 如果否,向所述第二节点发送MAC地址更新出错消息,以使所述第二节点根据所述MAC地址更新出错消息将已保存的第一节点的MAC地址更新为修改前的MAC地址。
5.根据权利要求4所述的方法,其特征在于,所述MAC地址更新出错消息通过如下方式构造 将所述第一节点修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,所述报头的保留字段中将该HELLO报文标识为MAC地址更新出错消息; 在HELLO报文的三元组TLV中携带两个所述第一节点修改前的MAC地址,两个所述修改前的MAC地址之间插入间隔符。
6.一种介质访问控制MAC地址更新方法,其特征在于,包括 第二节点接收同一条链路上的第一节点发送的MAC地址更新请求; 根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新,并返回MAC地址更新确认消息给所述第一节点。
7.根据权利要求6所述的方法,其特征在于,所述MAC地址更新请求中携带所述第一节点的标识、修改前的MAC地址和修改后的MAC地址;所述根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新,包括 根据所述第一节点的标识查询所述第一节点是否属于已建立邻居关系的邻居节点;如果是,在所述第一节点的三元组类型-长度-内容TLV中查询是否存在所述修改前的MAC地址; 如果存在,将所述已保存的所述第一节点的MAC地址由所述修改前的MAC地址更新为所述修改后的MAC地址。
8.根据权利要求6或7所述的方法,其特征在于,所述返回MAC地址更新确认消息给所述第一节点之后,所述方法还包括 所述第二节点接收中间系统到中间系统路由协议IS-IS报文,所述IS-IS报文的报头中携带有所述第一节点修改前的MAC地址; 所述第二节点发送MAC合法性验证消息给所述第一节点,接收所述第一节点返回的MAC合法性响应消息; 如果所述MAC合法性响应消息的报头中携带的是所述第一节点修改前的MAC地址,则将所述修改前的MAC地址确定为合法MAC地址,将所述修改后的MAC地址确定为非法MAC地址; 将所述已保存的所述第一节点的MAC地址由所述修改后的MAC地址更新为所述修改前的MAC地址。
9.根据权利要求8所述的方法,其特征在于 如果所述第二节点与所述第一节点之间为广播类型的邻居关系,且所述第二节点是中间指定系统DIS时,所述MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;所述MAC合法性响应消息为LSP报文; 如果所述第二节点与所述第一节点之间为广播类型的邻居关系,且所述第一节点是DIS时,所述MAC合法性验证消息为部分时序PSNP报文,所述MAC合法性响应消息为LSP报文; 如果所述第二节点与所述第一节点之间为点对点类型的邻居关系,所述MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;所述MAC合法性响应消息为LSP报文。
10.根据权利要求8所述的方法,其特征在于,所述IS-IS报文为MAC地址更新出错消肩、O
11.根据权利要求8所述的方法,其特征在于,所述将所述修改后的MAC地址确定为非法MAC地址之后,所述方法还包括 对接收到的报文头中携带所述非法MAC地址的IS-IS报文个数进行统计; 如果预定时间内的统计个数超过预设阀值,对所述非法MAC地址进行阻断。
12.—种网络设备,其特征在于,包括 发送模块,用于向同一条链路上的第二节点发送介质访问控制MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的该网络设备的MAC地址更新后,返回MAC地址更新确认消息给该网络设备; 处理模块,用于如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为自身的MAC地址。
13.根据权利要求12所述的网络设备,其特征在于,还包括 接收模块,用于接收修改MAC地址通告消息; 构造模块,用于构造所述MAC地址更新请求。
14.根据权利要求13所述的网络设备,其特征在于,所述构造模块包括 MAC地址更新请求构造单元,用于将所述网络设备修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,在所述HELLO报文的报头的保留字段中将所述HELLO报文标识为MAC地址更新请求;将所述网络设备修改前的MAC地址和修改后的MAC地址携带在所述HELLO报文的三元组类型-长度-内容TLV中,所述修改前的MAC地址和所述修改后的MAC地址之间插入间隔符。
15.根据权利要求13或14所述的网络设备,其特征在于,所述处理模块还用于使用更新后的MAC地址作为所述网络设备的MAC地址之前,判断是否使用更新后的MAC地址作为所述网络设备的MAC地址; 如果所述处理模块的判断结果为否,所述发送模块还用于 向所述第二节点发送MAC地址更新出错消息,以使所述第二节点根据所述MAC地址更新出错消息将已保存的所述网络设备的MAC地址更新为修改前的MAC地址。
16.根据权利要求15所述的网络设备,其特征在于,所述构造模块还包括 MAC地址更新出错消息构造单元,用于将所述网络设备修改前的MAC地址作为源MAC地址携带在你好HELLO报文的报头中,所述报头的保留字段中将该HELLO报文标识为MAC地址更新出错消息;在HELLO报文的三元组TLV中携带两个所述网络设备修改前的MAC地址,两个所述修改前的MAC地址之间插入间隔符。
17.—种网络设备,其特征在于,包括 接收模块,用于接收同一条链路上的第一节点发送的MAC地址更新请求; 更新模块,用于根据所述MAC地址更新请求将已保存的所述第一节点的MAC地址进行更新; 发送模块,用于返回MAC地址更新确认消息给所述第一节点。
18.根据权利要求17所述的网络设备,其特征在于,所述接收模块接收到的MAC地址更新请求中携带所述第一节点的标识、修改前的MAC地址和修改后的MAC地址;所述更新模块包括 第一查询单元,用于根据所述第一节点的标识查询所述第一节点是否属于已建立邻居关系的邻居节点; 第二查询单元,用于如果第一查询单元的查询结果为是,在所述第一节点的三元组TLV中查询是否存在所述修改前的MAC地址; 更新单元,用于如果第二查询单元的查询结果为存在,则将所述已保存的所述第一节点的MAC地址由所述修改前的MAC地址更新为所述修改后的MAC地址。
19.根据权利要求17或18所述的网络设备,其特征在于,所述接收模块还用于在所述发送模块返回MAC地址更新确认消息给所述第一节点之后,接收中间系统到中间系统路由协议IS-IS报文,所述IS-IS报文的报头中携带有所述第一节点修改前的MAC地址; 所述发送模块还用于发送MAC合法性验证消息给所述第一节点; 所述接收模块还用于接收所述第一节点返回的MAC合法性响应消息; 所述网络设备还包括 确定模块,用于如果所述接收模块接收到的MAC合法性响应消息的报头中携带的是所述第一节点修改前的MAC地址,则将所述修改前的MAC地址确定为合法MAC地址,将所述修改后的MAC地址确定为非法MAC地址; 所述更新模块还用于将所述已保存的所述第一节点的MAC地址由所述修改后的MAC地址更新为所述修改前的MAC地址。
20.根据权利要求19所述的网络设备,其特征在于如果所述网络设备与所述第一节点之间为广播类型的邻居关系,且所述网络设备是中间指定系统DIS,所述发送模块发送的所述MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;所述接收模块接收的所述MAC合法性响应消息为LSP报文; 如果所述网络设备与所述第一节点之间为广播类型的邻居关系,且所述第一节点是DIS,所述发送模块发送的所述MAC合法性验证消息为部分时序PSNP报文,所述接收模块接收的所述MAC合法性响应消息为LSP报文; 如果所述网络设备与所述第一节点之间为点对点类型的邻居关系,所述发送模块发送的所述MAC合法性验证消息为不携带邻居的链路状态包LSP报文摘要内容的完整时序CSNP报文;所述接收模块接收的所述MAC合法性响应消息为LSP报文。
21.根据权利要求19所述的网络设备,其特征在于,所述IS-IS报文为MAC地址更新出错消息。
22.根据权利要求19所述的网络设备,其特征在于,还包括 统计模块,用于所述确定模块将所述修改后的MAC地址确定为非法MAC地址之后,对所述接收模块接收到的报文头中携带所述非法MAC地址的IS-IS报文个数进行统计; 阻断模块,用于如果预定时间内所述统计模块的统计个数超过预设阀值,对所述非法MAC地址进行阻断。
全文摘要
本发明提供一种MAC地址更新方法及网络设备。方法包括第一节点向同一条链路上的第二节点发送MAC地址更新请求,以使所述第二节点根据所述MAC地址更新请求将自身保存的所述第一节点的MAC地址进行更新后,返回MAC地址更新确认消息给所述第一节点;如果接收到所述第二节点返回的MAC地址更新确认消息,使用更新后的MAC地址作为所述第一节点的MAC地址。一种网络设备包括发送模块和处理模块。再一种网络设备包括接收模块、更新模块和发送模块。本发明实施例提供的方案,不会形成现有技术中的路由黑洞。
文档编号H04L12/703GK102891902SQ201210369959
公开日2013年1月23日 申请日期2012年9月28日 优先权日2012年9月28日
发明者兰加兴 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1