一种最大传输单元协商的方法和路由器的制作方法

文档序号:7917874阅读:323来源:国知局
专利名称:一种最大传输单元协商的方法和路由器的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种最大传输单元协商的方法和路由器。
背景技术
中间系统到中间系统的域内路由信息交换协议(ISIS)是基于链路层的协议,因此不能利用IP层自动分片的特性来对大报文进行自动分片,这就要求ISIS协议在产生报文时要保证报文的大小不能大于本端和对端接口的MTU。这样才能使报文顺利地从所有的 ISIS接口上发送出去,而且顺利地被邻居接收到,从而进行ISIS协议的互通。ISIS的邻居可以在广播口和P2P 口上建立,因为P2P 口的链路层协议会进行两端接口 MTU的协商,保证了两端接口的MTU值相等。而广播口的链路层协议没有此功能,所以要求ISIS在邻居建立的过程中进行MTU的协商。在ISIS协议中本地使能ISIS能力的接口最小的MTU值决定了本地生成LSP的最大长度。下面详细描述邻居建立过程中的广播口邻居建立过程。ISIS在封装Hello报文时,会根据接口的MTU值将报文填充到接口的MTU大小,这样在邻居交互的过程中根据Hello报文的长度就可以感知到对端接口 MTU值,从而实现协商两端接口 MTU的目的。参见图1,图1为现有实现两端接口 MTU —致时邻居的建立过程。 具体步骤如下步骤101,路由器A向路由器B发送长度为本地接口 MTU值1500,邻居为空的hello 报文。步骤102,路由器B与路由器A建立邻居,状态为Init。步骤103,路由器B向路由器A发送长度为本地接口 MTU值1500,邻居为路由器 AMAC地址的hello报文。步骤104,路由器A与路由器B建立邻居,通过2way检查,状态为up。步骤105,路由器A向路由器B发送长度为本地接口 MTU值1500,邻居为路由器 BMAC地址的hello报文。步骤106,路由器B与路由器A建立邻居,通过2way检查,状态为up。参见图2,图2为现有实现两端路由器MTU不一致时邻居的建立过程。具体步骤如下步骤201,路由器A向路由器B发送长度为本地接口 MTU值1500,邻居为空的hello 报文。步骤202,确定路由器A的报文长度1500大于本地接口 MTU值1200,将接收的 hello报文丢弃。步骤203,路由器B向路由器A发送长度为本地接口 MTU值1200,邻居为空的hello 报文。步骤204,路由器A与路由器B建立邻居,状态为Init。
由上可见,现有实现的缺点是当两端路由器接口 MTU不一致时,路由器B丢弃了路由器A设备发送的hello报文,路由器A与路由器B不能协商相等的接口 MTU,限制了广播网络上ISIS协议的使用范围。

发明内容
有鉴于此,本发明提供一种MTU协商的方法和路由器。能够将不同路由器接口 MTU 协商一致,扩大广播网络上ISIS协议的使用范围。为解决上述技术问题,本发明的技术方案是这样实现的一种MTU协商的方法,应用于广播口 ISIS邻居建立过程,所述方法包括接收其他路由器发送的hello报文,若所述接收的hello报文携带协议最大传输单元PMTU,确定自身接口实际最大传输单元MTU值是否小于所述接收的PMTU值,如果是,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,记录所述接收的PMTU值为协商的有效MTU值,并发送携带值与协商的有效MTU值相等的PMTU的hello报文;其中,所述PMTU用于表示协商有效MTU,所述PMTU值小于或等于发送该PMTU的路由器的接口实际MTU值。一种MTU协商的路由器,可应用于广播口 ISIS邻居建立过程,该路由器包括接收单元,确定单元、记录单元和发送单元;所述接收单元,用于接收其他路由器发送的hello报文;所述确定单元,用于确定所述接收单元接收的hello报文携带协议最大传输单元 PMTU,其中,所述PMTU用于表示协商有效最大传输单元MTU,所述PMTU值小于或等于发送该PMTU的路由设备的接口实际MTU值;进一步确定自身接口实际MTU值是否小于所述PMTU 值;所述记录单元,用于当所述确定单元进一步确定自身接口实际MTU大于或等于所述接收的PMTU时,记录所述接收的PMTU值为协商的有效MTU值;所述发送单元,用于如果所述确定单元进一步确定自身接口实际MTU值小于所述 PMTU值时,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,发送携带值与所述记录单元记录的协商的有效MTU值相等的PMTU的hello报文。综上所述,本发明在接收其他路由器发来的hello报文携带的PMTU小于自身实际接口 MTU时,记录接收的PMTU值作为协商的有效接口 MTU值,发送hello报文时携带值与协商的有效接口 MTU值相等的PMTU,当前路由器能够降低自身接口 MTU值与对端路由器接口 MTU值相匹配,从而能够将不同路由器接口 MTU协商一致,扩大广播网络上ISIS协议的使用范围。


图1为现有实现两端接口 MTU —致时邻居的建立过程;图2为现有实现两端路由器MTU不一致时邻居的建立过程;
图3为本发明实施例中MTU协商流程图;图4为本发明具体实施例中实现PMTU的TLV格式示意图;图5为路由器A同路由器B建立邻居过程流程图6为路由器A与路由器C建立邻居过程流程图;图7为路由器A与路由器D建立邻居过程流程图;图8为本发明实施例中ISIS邻居建立MTU协商的路由器接口示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。本发明主要解决在广播口邻居建立时,通过配置自动协商MTU功能解决两端路由器接口 MTU不一致时不能建立正常邻居的问题。该建立过程中任一路由器分别与其他路由器两两建立ISIS邻居,其中,任一路由器需要分别与其他路由器两两协商接口 MTU,接口 MTU协商一致时可以建立正常ISIS邻居。参见图3,图3为本发明实施例中MTU协商流程图。具体步骤为步骤301,当前路由器接收其他路由器发送的hello报文,若该报文携带PMTU,其中,PMTU用于表示协商有效MTU,PMTU值小于或等于发送该PMTU的路由器的接口实际MTU值。本步骤中当前路由器配置自动协商MTU功能,接收hello报文会检查接收的报文是否携带PMTU。在协商接口 MTU时,当前路由器在发送hello报文中填充PMTU表示协商的有效MTU,而不会将报文填充到本地接口 MTU值长度。步骤302,当前路由器确定自身接口 MTU值是否小于接收的PMTU值,如果是,执行步骤303 ;否则,执行步骤304。步骤303,当前路由器发送携带值与当前路由器接口实际MTU值相等的PMTU的 hello报文。如果当前路由器接口 MTU值小于其他路由器发送的hello报文携带的PMTU值,不能提高到与所述其他路由器PMTU值相匹配,该情况下不能协商接口 MTU —致,当前路由器发送hello报文时携带的PMTU值为实际接口 MTU值,让其他路由器去协商,对于当前路由器该次协商失败。步骤304,记录接收的PMTU值为协商的有效MTU值,并发送携带值与协商的有效 MTU值相等的PMTU的hello报文。当前路由设备确定其他路由设备发送的PTMU值小于自身接口实际MTU值时,主动降低自身要发送的PMTU值与其他端口的PMTU值相匹配,进而将接口 MTU协商一致。若接收的hello报文未携带PMTU,确定自身接口实际MTU值是否小于接收的 hello报文的报文长度,如果是,发送携带值与当前路由器接口实际MTU值相等的PMTU的 hello报文;否则,记录接收的hello报文的报文长度为协商的有效MTU值,并发送携带值与所述协商的有效MTU值相等的PMTU的hello报文。若接收的hello报文还携带当前路由器的MAC地址,则与其他路由器建立邻居且状态置为运行状态up ;并发送携带值与接收的PMTU值相等的PMTU和其他路由器MAC地址的hello报文。如果接收的hello报文中不仅携带PMTU,还携带了自身的MAC地址,则说明之前两端接口 MTU已经协商一致,这是不需要再比较本地MTU值与接收的PMTU值的大小,而是直接与对端建立邻居,而且通过2way检查,将邻居状态置为UP。同时在发送的hello报文中除了携带PMTU,还要携带对端的MAC地址,使对端通过2way检查。发送携带值与协商的有效MTU值相等的PMTU的hello报文之后,若接收的hello 报文未携带PMTU但携带当前路由器的MAC地址,则与其它路由器建立邻居且状态置为up ; 发送报文长度与记录的有效MTU值相等并携带所述其他路由器MAC地址的hello报文。在确定本地接口实际MTU值是否小于接收PMTU值之前,先确定当前路由器是否记录协商的有效MTU值,如果是,若确定记录的协商的有效MTU值大于或等于接收的PMTU值时,将本地记录的协商的有效MTU值更新为接收的PMTU值,并发送携带值同接收的PMTU值相等的PMTU及所述其他路由器的MAC地址的hello报文;若确定所述记录的协商的有效 MTU值小于所述接收的PMTU值时,发送携带值同记录的协商的有效MTU值相等的PMTU的 hello报文;否则,执行所述确定自身接口实际MTU值是否小于接收PMTU值,后续步骤同上文过程一致,不再赘述。接收其他路由器发来的hello报文,先判断本地是否记录了协商的有效MTU,如果已记录,则通过该值与接收的PMTU比较大小,决定是否能协商MTU —致;如果未记录,则通过本地实际接口 MTU值与接收的PMTU比较大小,决定是否能协商MTU —致。该方法进一步为当前路由器设置接口最小MTU值。当接收所述其他路由器发送的hello报文携带的PMTU被置为无效时,或接收所述其他路由器发送的hello报文未携带PMTU且报文长度小于自身设置的最小MTU值时,与所述其他路由器建立邻居且状态置为初始状态Init,并发送携带被置为无效的PMTU的hello 报文。在具体实现中,PMTU置为无效通过赋值0来实现。最小MTU值可以根据具体应用设置,若未设置具体值,默认最小值为256。设置最小MTU值为了避免协商的有效MTU值过小造成生成LSP的长度过小,甚至不能存放一个较大的TLV。当前路由器发送hello报文时,填充用于实现PTMU和其他路由器MAC地址的类型长度值TLV。而不用将整个hello报文填充到报文长度为接口实际MTU值。这样在hello 报文的长度大大减小,节约了网络带宽。hello报文中携带的有效字段通过新增TLV实现,其中有效字段为PMTU和MAC地址。现以实现PMTU的TLV为例。参见图4,图4为本发明具体实施例中实现PMTU的TLV格式示意图。图4中的Type用来标识PMTU,PMTU值为对方要进行协商的有效MTU值。对于MAC地址的TLV实现同图4中PMTU的TLV实现。只是随着邻居的个数增加时,长度值变化,填充的MAC地址增多。但是即使这样,使能的路由设备发送的hello报文长度也较短。下面结合附图来详细描述ISIS邻居建立的过程。若路由器A、路由器B、路由器C 和路由器D四个路由器之间建立ISIS邻居,以路由器A与其他路由器建立过程为例,且建立顺序为先与路由器B,再与路由器C,最后与路由器D建立连接。其中,路由器A、路由器D 配置接口命令使能自动协商MTU ;路由器B和路由器C未配置使能,同现有实现的路由器一致。参见图5,图5为路由器A同路由器B建立邻居过程流程图。路由器A的本地接口实际MTU值1200,路由器B的本地接口实际MTU值1000。具体步骤为
步骤501,路由器A向路由器B发送PMTU值为1200,邻居为空的hello报文。由于路由器A使能自动协商MTU,因此在发送报文时携带PMTU值为1200,并不将报文的长度填充到1200。在邻居建立过程中,路由器A先向路由器B发hello报文,还是路由器B先向路由器A发送hello报文的机会是均等的,本发明具体实施例中均以路由器A先向其他路由器发送hello报文为例。步骤502,路由器B与路由器A建立邻居,2way检查失败,状态为Init。路由器B的接口实际MTU值为1000,但是路由器A发来的报文长度并不大于1000, 因此路由器B与路由器A建立邻居,而不会把报文丢弃。步骤503,路由器B向路由器A发送报文长度为1000,邻居为路由器AMAC地址的 hello报文。路由器B未使能自动协商MTU,因此发送的hello报文同现有实现,将报文长度填充到本地实际MTU值1000发送。步骤504,路由器A与路由器B建立邻居,2way检查通过,邻居状态为up,并记录协商的有效MTU值1000。路由器A收到路由器B发送的hello报文,解析报文,确定报文未携带PMTU,则确定该报文的报文长度,确定该报文长度小于本地接口实际MTU,则与路由器B建立邻居。步骤505,路由器A向路由器B发送PMTU值为1000,邻居为路由器BMAC地址的 hello报文。步骤506,路由器B与路由器A建立邻居,2way检查成功,邻居状态为up。至此,邻居建立过程结束。路由器A与路由器B建立正常邻居连接,协商的有效 MTU值1000 ;路由器B与路由器A也建立正常邻居连接,协商的有效值为自身接收实际MTU 值 1000。参见图6,图6为路由器A与路由器C建立邻居过程流程图。路由器A的本地接口实际MTU值1200,此时本地存在记录的协商的有效MTU值1000,路由器B的本地接口实际 MTU值1500。具体步骤为步骤601,路由器A向路由器B发送PMTU值为1000,邻居为空的hello报文。本步骤中,PMTU值1000是记录的本地协商的有效MTU值。步骤602,路由器B与路由器A建立连接,2way检查失败,邻居状态为Init。步骤603,路由器B向路由器A发送报文长度为1500,邻居为路由器AMAC地址的 hello报文。步骤604,路由器A检查报文长度大于本地实际接口 MTU值,将收到的hello报文丢弃。步骤605,路由器A向路由器B发送PMTU值为1000,邻居为空的hello报文。步骤606路由器B与路由器A建立的邻居状态为Init。由图5、和图6可知,若本地接口实际MTU值大的一端配置接口命令并使能自动协商MTU,而本地接口实际MTU值小得一端未配置接口命令并使能自动协商MTU,两端均可建立正常邻居连接,若反之,则不能建立正常邻居连接。参见图7,图7为路由器A与路由器D建立邻居过程流程图。路由器A的本地接口实际MTU值1200,此时本地存在记录的协商的有效MTU值1000,路由器D的本地接口实际 MTU值1500。具体步骤为步骤701,路由器A向路由器D发送PMTU值为1000,邻居为空的hello报文。本步骤中,PMTU值1000是记录的本地协商的有效MTU值。步骤702,路由器D与路由器A建立邻居,2way检查失败,状态为Init。步骤703,路由器D向路由器A发送PMTU值为1500,邻居为路由器AMAC地址的 hello报文。步骤704,路由器A与路由器D建立邻居,2way检查通过,邻居状态为up,并记录协商的有效MTU值1000。路由器A将路由器D发送的PMTU值同本地记录的协商的有效MTU值,比较,比较结果为相等,则建立邻居。步骤705,路由器A向路由器D发送PMTU值为1000,邻居为路由器D和路由器B 的MAC地址的hello报文。步骤706,2way检查通过,与路由器A建立的邻居状态为up,记录协商的有效MTU 值为1000。本步骤中如果同路由器D协商出的本地有效值与记录的协商的有效MTU值不一致,则更新该有效MTU值。且再与其他路由器建立邻居时,用记录的协商的有效MTU值作为 PMTU来发送报文,来与接收的PMTU值或报文长度比较。由上述实施例可以看出,建立邻居的两端路由器接口实际MTU值大的一端配置并使能自动协商MTU特性时,邻居正常建立。仅接口实际MTU值小得一端配置并使能自动协商MTU特性时,邻居建立失败。由于接口实际MTU值可能由于网络情况发生变化,并不能保证某个路由设备接口的实际MTU值不变,也不能保证实际MTU值大的一端,记录的协商的有效MTU值一直比其他接口的实际MTU值大。两端都配置并使能自动协商MTU特性时,可以保证邻居正常建立,因此两端都配置并使能自动协商MTU这一特性时,保证邻居正常建立, 为本发明的最佳实施例。本发明在两端接口 MTU协商一致后,还可以使用现有实现方式进行邻居建立过程。由于接口 MTU已协商一致,而现有实现在两端接口 MTU —致的情况下,可以建立ISIS 正常邻居。上文已详细描述了两端接口 MTU如何协商一致的过程,通过现有技术如何实现接口 MTU —致建立邻居过程在这里不再详述。本发明中建立的邻居均指ISIS邻居,为了描述方便用建立邻居描述。基于上述同样的发明构思,本发明还提出了一种MTU协商的路由器,可应用于广播口 ISIS邻居建立过程。参见图8,图8为本发明具体实施例中建立ISIS邻居的路由器的结构示意图。该路由器包括接收单元801,确定单元802、记录单元803和发送单元804。接收单元801,用于接收其他路由器发送的hello报文。确定单元802,用于确定接收单元801接收的hello报文携带协议最大传输单元 PMTU,其中,PMTU用于表示协商有效最大传输单元MTU,PMTU值小于或等于发送该PMTU的路由设备的接口实际MTU值;进一步确定自身接口实际MTU值是否小于接收的PMTU值。记录单元803,用于当确定单元802进一步确定自身接口实际MTU大于或等于接收的PMTU时,记录接收的PMTU值为协商的有效MTU值。
发送单元804,用于如果确定单元802确定自身接口实际MTU值小于接收的PMTU 值时,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,发送携带值与记录单元803记录的协商的有效MTU值相等的PMTU的hello报文。较佳地, 确定单元802,进一步用于确定接收的helIo报文未携带PMTU时,确定自身接口实际MTU值是否小于接收的hello报文的报文长度。记录单元803,进一步用于当确定单元802进一步确定自身接口实际MTU大于或等于接收的hello报文的报文长度时,记录接收的hello报文的报文长度为协商的有效MTU值。发送单元804,进一步用于当确定单元802确定自身接口实际MTU小于该hello报文的报文长度时,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,发送携带值与记录单元803记录的协商的有效MTU值相等的PMTU的hello报文。较佳地,确定单元802,进一步用于确定接收的hello报文还携带自身所在路由器的MAC地址,则与其它路由器建立邻居且状态置为up。发送单元804,进一步用于当确定单元802进一步确定接收的hello报文还携带自身所在路由器的MAC地址时,发送携带值与接收的PMTU值相等的PMTU和所述其他路由器 MAC地址的hello报文。较佳地,确定单元802,进一步用于发送单元804发送携带值与协商的有效MTU值相等的 PMTU的hello报文之后,确定接收的hello报文未携带PMTU但携带自身所在路由器的MAC 地址,则与其它路由器建立邻居且状态置为up。发送单元,进一步用于当确定单元802确定接收的hello报文未携带PMTU但携带自身所在路由器的MAC地址时,发送报文长度与所述记录的有效MTU值相等并携带所述其他路由器MAC地址的hello报文。较佳地,确定单元802,进一步用于确定记录单元803是否记录协商的有效MTU,如果是,则确定记录的协商的有效MTU值是否小于接收的PMTU值;否则,确定自身接口实际MTU值是否小于接收的PMTU值。记录单元803,进一步用于当确定单元802确定记录的协商的有效MTU值大于或等于接收的PMTU值时,将自身记录的协商的有效MTU值更新为接收的PMTU值。发送单元804,进一步用于若确定单元802确定记录的协商的有效MTU值大于或等于接收的PMTU值时,发送携带值同接收的PMTU值相等的PMTU及所述其他路由器的MAC 地址的hello报文;否则,发送携带值同记录的协商的有效MTU值相等的PMTU的hello报文。较佳地,该路由器进一步包括配置单元805。配置单元805,用于设置接口最小MTU值。确定单元802,进一步用于确定接收单元801接收的其他路由器发送的hello报文携带PMTU被置为无效或确定接收的hello报文未携带PMTU且报文长度小于配置单元805设置的最小MTU值时,与其他路由器建立邻居且状态置为初始状态Init。发送单元804,进一步用于当确定单元802确定接收的PMTU被置为无效时,或接收的hello报文未携带PMTU且报文长度小于配置单元805设置的最小MTU值时,发送携带被置为无效的PMTU的hello报文。较佳地,发送单元,进一步用于发送hello报文时,填充用于实现PTMU和其他路由器MAC 地址的TLV。上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。 综上所述,本发明在路由器上配置接口命令并使能自动协商MTU,发送报文时通过携带PMTU标识协商的有效MTU,该PMTU值会降低到与对端接口 MTU值相匹配,从而使邻居正常建立。因此,无论两端路由器接口 MTU是否一致,均能建立正常邻居,扩大广播网络上 ISIS协议的使用范围。若对端接口实际MTU值小于本地接口 MTU值,即使对端未配置接口命令使能自动协商MTU,由于其发送的报文长度小于本地接口实际MTU值,也可建立正常邻居,因此,如果各路由器接口实际MTU值较稳定,则只在较大MTU值一端使能自动协商MTU特性,也可建立正常邻居。本发明在具体实施例中,还设置了最小MTU值,避免协商的有效MTU值过小造成生成LSP的长度过小,甚至不能存放一个较大的TLV。由于本发明具体实施例中,在发送hello报文时,使能的自动协商MTU的路由器只是在发送的hello报文中携带有用字段,而不用将整个hello报文填充到报文长度为接口实际MTU值。这样在hello报文的长度大大减小,节约了网络带宽。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种最大传输单元协商的方法,应用于广播口中间系统到中间系统的域内路由信息交换协议ISIS邻居建立过程,其特征在于,该方法包括接收其他路由器发送的hello报文,若所述接收的hello报文携带协议最大传输单元 PMTU,确定自身接口实际最大传输单元MTU值是否小于所述接收的PMTU值,如果是,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,记录所述接收的PMTU 值为协商的有效MTU值,并发送携带值与协商的有效MTU值相等的PMTU的hello报文;其中,所述PMTU用于表示协商有效MTU,所述PMTU值小于或等于发送该PMTU的路由器的接口实际MTU值。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括若所述接收的hello报文未携带PMTU,确定自身接口实际MTU值是否小于所述接收的 hello报文的报文长度,如果是,发送携带值与当前路由器接口实际MTU值相等的PMTU的 hello报文;否则,记录所述接收的hello报文的报文长度为协商的有效MTU值,并发送携带值与所述协商的有效MTU值相等的PMTU的hello报文。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括若所述接收的 hello报文还携带当前路由器的MAC地址,则与所述其他路由器建立邻居且状态置为运行状态up ;并发送携带值与所述接收的PMTU值相等的PMTU和所述其他路由器MAC地址的 hello报文。
4.根据权利要求1或2所述的方法,其特征在于,所述发送携带值与协商的有效MTU值相等的PMTU的hello报文之后,所述方法进一步包括若所述接收的hello报文未携带PMTU但携带当前路由器的MAC地址,则与所述其它路由器建立邻居且状态置为up ;发送报文长度与所述记录的有效MTU值相等并携带所述其他路由器MAC地址的hello报文。
5.根据权利要求1所述的方法,其特征在于,所述确定本地接口实际MTU值是否小于所述接收的PMTU值之前,所述方法进一步包括确定当前路由器是否记录协商的有效MTU值,如果是,若确定记录的协商的有效MTU值大于或等于所述接收的PMTU值时,将本地记录的协商的有效MTU值更新为接收的PMTU值, 并发送携带值同接收的PMTU值相等的PMTU及所述其他路由器的MAC地址的hello报文; 若确定所述记录的协商的有效MTU值小于所述接收的PMTU值时,发送携带值同记录的协商的有效MTU值相等的PMTU的hello报文;否则,执行所述确定自身接口实际MTU值是否小于所述接收的PMTU值及后续步骤。
6.根据权利要求2所述的方法,其特征在于,所述方法进一步包括当前路由器设置接口最小MTU值;当接收所述其他路由器发送的hello报文携带的PMTU被置为无效时,或接收所述其他路由器发送的hello报文未携带PMTU且报文长度小于自身设置的最小MTU值时,与所述其他路由器建立邻居且状态置为初始状态Init,并发送携带被置为无效的PMTU的hello报文。
7.根据权利要求3所述的方法,其特征在于,所述当前路由器发送hello报文时,填充用于实现所述PTMU和其他路由器MAC地址的类型长度值TLV。
8.一种最大传输单元协商的路由器,可应用于广播口中间系统到中间系统的域内路由信息交换协议ISIS邻居建立过程,其特征在于,所述路由器包括接收单元,确定单元、记录单元和发送单元;所述接收单元,用于接收其他路由器发送的hello报文;所述确定单元,用于确定所述接收单元接收的hello报文携带协议最大传输单元 PMTU,其中,所述PMTU用于表示协商有效最大传输单元MTU,所述PMTU值小于或等于发送该PMTU的路由设备的接口实际MTU值;进一步确定自身接口实际MTU值是否小于所述PMTU 值;所述记录单元,用于当所述确定单元进一步确定自身接口实际MTU大于或等于所述接收的PMTU时,记录所述接收的PMTU值为协商的有效MTU值;所述发送单元,用于如果所述确定单元进一步确定自身接口实际MTU值小于所述接收的PMTU值时,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则, 发送携带值与所述记录单元记录的协商的有效MTU值相等的PMTU的hello报文。
9.根据权利要求8所述的路由器,其特征在于,所述确定单元,进一步用于确定所述接收的hello报文未携带PMTU时,确定自身接口实际MTU值是否小于所述接收的hello报文的报文长度;所述记录单元,进一步用于当所述确定单元进一步确定自身接口实际MTU大于或等于所述接收的hello报文的报文长度时,记录接收的hello报文的报文长度为协商的有效MTU 值;所述发送单元,进一步用于当所述确定单元确定自身接口实际MTU小于所述hello报文的报文长度时,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,发送携带值与所述记录单元记录的协商的有效MTU值相等的PMTU的hello报文。
10.根据权利要求8所述的路由器,其特征在于,所述确定单元,进一步用于确定所述接收的hello报文还携带自身所在路由器的MAC 地址,则与所述其它路由器建立邻居且状态置为运行状态up ;所述发送单元,进一步用于当所述确定单元进一步确定所述接收的hello报文还携带自身所在路由器的MAC地址时,发送携带值与所述接收的PMTU值相等的PMTU和所述其他路由器MAC地址的hello报文。
11.根据权利要求8或9所述的路由器,其特征在于,所述确定单元,进一步用于所述发送单元发送携带值与协商的有效MTU值相等的PMTU 的hello报文之后,确定所述接收的hello报文未携带PMTU但携带自身所在路由器的MAC 地址,则与所述其它路由器建立邻居且状态置为up ;所述发送单元,进一步用于当所述确定单元确定所述接收的hello报文未携带PMTU但携带自身所在路由器的MAC地址时,发送报文长度与所述记录的有效MTU值相等并携带所述其他路由器MAC地址的hello报文。
12.根据权利要求6所述的路由器,其特征在于,所述确定单元进一步用于确定所述记录单元是否记录协商的有效MTU,如果是,则确定记录的协商的有效MTU值是否小于所述接收的PMTU值;否则,确定自身接口实际MTU值是否小于所述接收的PMTU值;所述记录单元,进一步用于当所述确定单元确定所述记录的协商的有效MTU值大于或等于所述接收的PMTU值时,将自身记录的协商的有效MTU值更新为所述接收的PMTU值;所述发送单元,进一步用于若所述确定单元确定所述记录的协商的有效MTU值大于或等于所述接收的PMTU值时,发送携带值同接收的PMTU值相等的PMTU及所述其他路由器的 MAC地址的hello报文;否则,发送携带值同记录的协商的有效MTU值相等的PMTU的hello 报文。
13.根据权利要求9所述的路由器,其特征在于,所述路由器进一步包括配置单元; 所述配置单元,进一步用于设置接口最小MTU值;所述确定单元,进一步用于确定所述接收单元接收的所述其他路由器发送的hello报文携带PMTU被置为无效或确定接收的hello报文未携带PMTU且报文长度小于所述配置单元设置的最小MTU值时,与所述其他路由器建立邻居且状态置为初始状态Init ;所述发送单元,进一步用于当所述确定单元确定所述接收的PMTU被置为无效时,或接收的hello报文未携带PMTU且报文长度小于所述配置单元设置的最小MTU值时,发送携带被置为无效的PMTU的hello报文。
14.根据权利要求10所述的路由器,其特征在于,所述发送单元,进一步用于发送hello报文时,填充用于实现所述PTMU和其他路由器 MAC地址的TLV。
全文摘要
本发明公开了一种最大传输单元协商的方法,该方法包括接收其他路由器发送的hello报文,若接收的hello报文携带PMTU,确定自身接口实际MTU值是否小于接收的PMTU值,如果是,发送携带值与当前路由器接口实际MTU值相等的PMTU的hello报文;否则,记录接收的PMTU值为协商的有效MTU值,并发送携带值与协商的有效MTU值相等的PMTU的hello报文。基于同样的发明构思,本发明还提出一种路由器,能够将不同路由器接口MTU协商一致,扩大广播网络上ISIS协议的使用范围。
文档编号H04L12/56GK102291318SQ201110284198
公开日2011年12月21日 申请日期2011年9月22日 优先权日2011年9月22日
发明者张蓓, 魏志广 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1