CN104660502B - 向外部边界网关协议邻居通告路由的方法及装置 - Google Patents

向外部边界网关协议邻居通告路由的方法及装置 Download PDF

Info

Publication number
CN104660502B
CN104660502B CN201510113974.5A CN201510113974A CN104660502B CN 104660502 B CN104660502 B CN 104660502B CN 201510113974 A CN201510113974 A CN 201510113974A CN 104660502 B CN104660502 B CN 104660502B
Authority
CN
China
Prior art keywords
route
prefix
path
optimal
bgp
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
CN201510113974.5A
Other languages
English (en)
Other versions
CN104660502A (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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201510113974.5A priority Critical patent/CN104660502B/zh
Publication of CN104660502A publication Critical patent/CN104660502A/zh
Application granted granted Critical
Publication of CN104660502B publication Critical patent/CN104660502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提出向外部边界网关协议邻居通告路由的方法及装置。方法包括:AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。本申请避免了BGP设备在允许AS_PATH属性不同的多条路径进行负载分担时出现流量环路。

Description

向外部边界网关协议邻居通告路由的方法及装置
技术领域
本申请涉及路由通告技术领域,尤其涉及向EBGP(External Border GatewayProtocol,外部边界网关协议)邻居通告路由的方法及装置。
背景技术
BGP(Border Gateway Protocol,边界网关协议)是一种用于AS(AutonomousSystem,自治系统)之间的动态路由协议。AS是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。
BGP的着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。发送BGP消息的路由器称为BGP发言者(BGP Speaker),它接收或产生新的路由信息,并发布给其它BGP发言者。当BGP发言者收到来自其它自治系统的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给所有其它BGP发言者。
相互交换消息的BGP发言者之间互称对等体(Peer),若干相关的对等体可以构成对等体组(Peer group)。
BGP在路由器上以下列两种方式运行:
1、IBGP(Internal BGP,内部BGP):当BGP运行于同一自治系统内部时,称为IBGP;
2、EBGP:当BGP运行于不同自治系统之间时,称为EBGP。
AS_PATH属性按一定次序记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP发言者将一条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
根据BGP规定,当BGP发言者存在目的地址和掩码均相同的多条路径时,只能通告一条最优路径。如图1所示,路由器RT1和RT2建立BGP邻居关系,假设RT1上先后存在两条到达9.0.0.0/24的路径(暂且称为路径A和路径B),RT1先向RT2通告路径A,然后发现路径B优于路径A,则再向RT2通告路径B,RT2收到路径B后,会将路径A删除,这样RT2上只会保留最后被通告过来的路径B。
基于这一规定,那么当针对一目的地址和掩码具有AS_Path属性不同的多条路径时,由于BGP对等体最终只能通告这些路径中最优的那条路径,因此,即使用户允许该多条路径进行负载分担,也会导致部分路径的AS_Path属性被丢失,从而引发流量环路。
图2为AS组网及路由学习示例图。AS 100中包含设备DUT1,AS 200中包含DUT2,AS300中包含DUT3,DUT1、DUT2、DUT3两两之间均创建EBGP对等体。DUT3向DUT1和DUT2通告前缀9.0.0.0/24的路由,路由的AS_PATH属性为AS 300、400。
为了最大程度地提升DUT1和DUT2上的链路使用效率,用户在DUT1和DUT2上均进行配置:允许不同AS_PATH属性的多条路径进行负载分担,图中用圆圈圈起来的路径表示的是该设备上能够形成负载分担的多条路径。
图2中,路由学习的过程如下:
1)DUT1和DUT2分别从DUT3学习到前缀9.0.0.0/24的路由,如图2中所标识的箭头1和2,路由的AS_PATH属性为300、400。
2)DUT1学习到了前缀9.0.0.0/24的路由后,会向其邻居DUT2扩散,如图2中所标识的箭头3。向EBGP邻居发送的路由,会附加上本AS的AS号,因此,路由的AS_PATH属性为100、300、400;
同理,DUT2也会在学到9.0.0.0/24前缀的路由之后,向邻居DUT1扩散,如图2中所标识的箭头4,路由的AS_PATH属性为200、300、400。
3)DUT1收到来自DUT2的前缀9.0.0.0/24的路由,学习该路由;
这样,在DUT1上存在前缀9.0.0.0/24的两条路由,其中,DUT 3发送过来的路由的AS_PATH属性更短,最终,DUT1上前缀9.0.0.0/24的最优路径为箭头1所标识的路径;
同理,DUT2上收到来自DUT1的前缀9.0.0.0/24的路由,学习该路由;
这样,在DUT2上存在前缀9.0.0.0/24的两条路由,其中,DUT3发送过来的路由的AS_PATH属性更短,最终,DUT2上前缀9.0.0.0/24的最优路径为箭头2所标识的路径。
在路由稳定下来之后:在DUT1上存在9.0.0.0/24前缀的两条不同路径,一条的AS_PATH属性为300、400(来自DUT3),另一条的AS_PATH属性为200、300、400(来自对端DUT2);在DUT2上同样存在9.0.0.0/24前缀的两条不同路径,一条的AS_PATH属性为300、400(来自DUT3),另一条的AS_PATH属性为100、300、400(来自对端DUT1)。
DUT1、DUT2上的路由表如表1所示:
表1
通过上述的路由学习过程,最终的流量图如图3所示:
如图3,从DUT1去往9.0.0.0/24的流量,一部分直接发向DUT3,一部分会流向DUT2(图中实箭头所示);从DUT2去往9.0.0.0/24的流量,一部分直接发向DUT3,一部分会流向DUT1(图中空箭头所示)。
发明内容
本申请提供向EBGP邻居通告路由的方法及装置,以避免BGP设备出现流量环路。
本申请的技术方案是这样实现的:
一种向EBGP邻居通告路由的方法,该方法包括:
AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;
BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。
一种向EBGP邻居通告路由的装置,位于AS中的BGP设备上,该装置包括:
路由学习模块:学习前缀的路由;
AS_Path属性生成模块:发现路由学习模块学习到一前缀的路由时,若发现本BGP设备已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;
路由通告模块:向所有EBGP邻居发送该前缀的路由,该路由中携带AS_Path属性生成模块生成的新AS_Path属性。
可见,本申请中,当BGP设备向EBGP邻居通告前缀路由时,会在ASAS_PATH属性中携带:该前缀的所有能够与最优路由形成负载分担的非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号,从而避免了在允许AS_PATH属性不同的多条路径进行负载分担时出现流量环路。
附图说明
图1为现有的BGP路由器之间通告路由的示例图;
图2为现有的AS组网及路由学习示例图;
图3为图2所示的AS组网中的流量传输示例图;
图4为本申请一实施例提供的向EBGP邻居通告路由的方法流程图;
图5为本申请另一实施例提供的向EBGP邻居通告路由的方法流程图;
图6为在图2所示的AS组网中应用本申请后的路由学习示例图;
图7为在图2所示的AS组网中应用本申请后的流量传输示例图;
图8为本申请实施例提供的向EBGP邻居通告路由的装置的组成示意图。
具体实施方式
申请人对现有的当BGP设备支持AS_Path属性不同的多条路径进行负载分担时,向EBGP邻居通告路由的方法进行分析发现:
现有方法会导致BGP设备之间形成环路。
如图3,最终会有部分流量在DUT1和DUT2之间形成环路,造成流量丢失。
图4为本申请一实施例提供的向EBGP邻居通告路由的方法流程图,其具体步骤如下:
步骤401:AS中的BGP设备学习到一前缀的路由。
步骤402:BGP设备发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面。
步骤403:BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。
优选地,BGP设备接收到发往一前缀的数据报文,在自身的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。
优选地,BGP设备被预先配置为支持AS_Path属性生成新规则;且,
步骤401与402之间进一步包括:BGP设备发现自身被配置为支持AS_Path属性生成新规则,则执行步骤402。
优选地,步骤401具体包括:
步骤a、AS中的BGP设备接收EBGP邻居发来的一前缀的路由,判断自身路由表中是否已存在该EBGP邻居发来的该前缀的路由,若已存在,删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤b;若不存在,直接执行步骤b;
步骤b、BGP设备判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,丢弃接收到的路由,结束本流程;否则,将接收到的路由学习到自身的路由表中。
优选地,步骤402进一步包括:BGP设备发现自身仅存在该前缀的一条路由,则将本AS的AS号添加到该路由的AS_Path属性的AS_Sequence的最前面,将该路由发给自身的所有EBGP邻居;或者,
BGP设备查找到最优路由之后进一步包括:若发现针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。
图5为本申请另一实施例提供的向EBGP邻居通告路由的方法流程图,其具体步骤如下:
步骤500:BGP设备上的允许AS_Path属性不同的多条路径进行负载分担的功能被该BGP设备所在的AS的管理员开启,且BGP设备被管理员配置为支持AS_Path属性生成新规则。
当AS的管理员发现本AS的一BGP设备是因为允许AS_PATH属性不同的多条路径进行负载分担导致产生了环路时,可配置该BGP设备支持AS_Path属性生成新规则。需要说明的是,当分别处于两个AS内的两台BGP设备因为该两台设备允许AS_PATH属性不同的多条路径进行负载分担而导致该两台BGP设备之间产生了环路时,只需在其中一台BGP设备上配置该BGP设备支持AS_Path属性生成新规则。
步骤501:BGP设备接收EBGP邻居发来的一前缀的路由,判断自身路由表中是否已存在该EBGP邻居发来的该前缀的路由,若是,执行步骤502;否则,执行步骤503。
步骤502:BGP设备删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤503。
步骤503:BGP设备判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,执行步骤504;否则,执行步骤505。
AS_Path属性主要包括四个子属性,本申请中使用其中的两个子属性:AS_Sequence(序列)和AS_Set(集合)。
步骤504:BGP设备丢弃接收到的路由,转至步骤511。
步骤505:BGP设备将接收到的路由学习到自身的路由表中。
步骤506:BGP设备发现自身支持AS_Path属性生成新规则,则在自身的路由表中查找接收到的前缀的所有路由。
步骤507:BGP设备判断是查找到一条还是多条,若是一条,执行步骤508;若是多条,执行步骤509。
步骤508:BGP设备将本AS的AS号添加到该条路由的AS_Path属性的AS_Sequence的最前面,将该路由发给自身的所有EBGP邻居,转至步骤511。
步骤509:BGP设备在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,然后将所有能够与最优路由形成负载分担的非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,最后将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面。
步骤500中提到的BGP设备支持的“AS_Path属性生成新规则”,即本步骤509中的生成新AS_PATH属性的方法。
若BGP设备发现针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。
步骤510:BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性。
步骤511:BGP设备接收到发往一前缀的数据报文,在自身的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。
仍以图2所示组网为例,设DUT1的管理员发现允许AS_Path属性不同的多条路径进行负载分担的DUT1存在环路风险,则配置DUT1支持AS_Path属性生成新规则。
在实际应用中,当位于不同AS内的两台BGP设备之间存在环路风险时,只需要配置其中一台BGP设备支持本申请提出的AS_Path属性生成新规则即可。
此后,路由学习过程如下:
1)DUT1和DUT2分别从DUT3学习到前缀9.0.0.0/24的路由,如图6中所标识的箭头1和2,路由的AS_PATH属性为300、400。
2)DUT1学习到了前缀9.0.0.0/24的路由后,会向其EBGP邻居DUT2扩散,如图6中所标识的箭头3;向DUT2发送的前缀路由,会附加上本AS的AS号,因此,路由的AS_PATH属性为100、300、400;
同理,DUT2也会在学到前缀9.0.0.0/24的路由之后,向EBGP邻居DUT1扩散,如图6中所标识的箭头4,路由的AS_PATH属性为200、300、400。
3)DUT1收到来自DUT2的前缀9.0.0.0/24的路由后,执行如下处理:
01)DUT1在自身的路由表中未查找到来自DUT2的前缀9.0.0.0/24的任何路由,则学习该DUT2发来的路由;
此时,DUT1上的路由表如表2所示:
表2
02)DUT1在路由表中查找前缀9.0.0.0/24的路由,则查找到两条:一条的AS_Path属性为:300、400(DUT3发来的),另一条的AS_Path属性为:200、300、400(DUT2发来的);
03)DUT1确定第一条路由为最优路由,且确定这两条路由能够形成负载分担,则生成新AS_Path属性,先将最优路由的AS_Path属性:300、400复制到该新AS_Path属性中,然后,比较第二条路由与最优路由的AS_Path属性,将第二条路由的AS_Path属性中存在的、而最优路由的AS_Path属性中不存在的AS号(即AS 200)放入该新AS_Path属性的AS_Set中,最后将本AS的AS号放入该新AS_Path属性的AS_Sequence的最前面,这样,最终得到的新AS_Path属性为:100、300、400、{200},其中,{}表示AS_Set;
04)DUT1将该前缀的路由通告给所有EBGP邻居(包括DUT2,如图6中所标识的箭头3’),该路由携带该新AS_Path属性:100、300、400、{200}。
DUT2上收到来自DUT1的前缀9.0.0.0/24的路由后,由于DUT2不支持本申请提出的AS_Path属性生成新规则,则采用与现有技术完全相同的处理,即,将该路由学习到自身的路由表中。
此时,DUT2上的路由表如表3所示:
表3
4)DUT2收到DUT1发来的前缀9.0.0.0/24的路由(AS_Path属性:100、300、400、{200})后,执行如下处理:
01)DUT2发现自身的路由表中已经存在了一条DUT1发来的该前缀的路由,即表3中的第二条路由(AS_PATH属性:100、300、400),则将路由表中的该条路由删除;
此时,DUT2上的路由表如表4所示:
设备名称 目的地址/掩码 AS_PATH属性
DUT2 9.0.0.0/24 300400
表4
02)DUT2又发现DUT1发来的路由的AS_PATH属性:100、300、400、{200}中包含了本AS的AS号(200),则丢弃该路由。
最终,在路由稳定下来之后:在DUT1上存在前缀9.0.0.0/24的两条路由,一条的AS_PATH属性为300、400(来自DUT3),另一条的AS_PATH属性为200、300、400(来自对端DUT2);而DUT2上只存在前缀9.0.0.0/24的一条路由,该路由的AS_PATH属性为300、400(来自DUT3)。
最终,DUT1、DUT2上的路由表如表5所示:
表5
这样,最终的流量图如图7所示。
如图7所示,在DUT1上存在前缀9.0.0.0/24的两条不同路径,从DUT1去往9.0.0.0/24的流量,一部分直接发向DUT3,一部分会流向DUT2(图中实箭头所示);但是对于DUT2而言,DUT2上只存在前缀9.0.0.0/24的一条路径,从DUT2去往9.0.0.0/24的流量,只能发向DUT3。
因此,在DUT1上应用本申请方案之后,无论是从DUT1还是从DUT2上发往前缀9.0.0.0/24的流量,均不会存在环路。
本申请实施例的有益技术效果如下:
一)避免了BGP设备在允许AS_PATH属性不同的多条路径进行负载分担功能时,流量出现环路;
二)只需可能由于允许AS_PATH属性不同的多条路径进行负载分担而存在环路风险的一端BGP设备支持本申请提出的AS_Path属性生成新规则,而无需全网支持,节省了BGP设备升级成本。
图8为本申请实施例提供的向EBGP邻居通告路由的装置的组成示意图,该装置位于AS中的BGP设备上,该装置主要包括:路由学习模块、AS_Path属性生成模块和路由通告模块,其中:
路由学习模块:学习前缀的路由。
AS_Path属性生成模块:发现路由学习模块学习到一前缀的路由时,若发现本BGP设备已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面。
路由通告模块:向所有EBGP邻居发送该前缀的路由,该路由中携带AS_Path属性生成模块生成的新AS_Path属性。
优选地,该装置进一步包括:负载分担模块,用于接收到发往一前缀的数据报文,在本BGP设备的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。
优选地,BGP设备被预先配置为支持AS_Path属性生成新规则;且,
AS_Path属性生成模块发现路由学习模块学习到一前缀的路由之后、发现本BGP设备已存在该前缀的多条路由之前进一步包括:
发现本BGP设备被配置为支持AS_Path属性生成新规则。
优选地,路由学习模块具体用于,
步骤a、接收EBGP邻居发来的一前缀的路由,判断本BGP设备的路由表中是否已存在该EBGP邻居发来的该前缀的路由,若已存在,删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤b;若不存在,直接执行步骤b;
步骤b、判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,丢弃接收到的路由,结束本流程;否则,将接收到的路由学习到本BGP设备的路由表中。
优选地,AS_Path属性生成模块发现路由学习模块学习到一前缀的路由之后进一步包括:
若发现本BGP设备仅存在该前缀的一条路由,则将本AS的AS号添加到该路由的AS_Path属性的AS_Sequence的最前面,将该路由发给本BGP设备的所有EBGP邻居;或者,
AS_Path属性生成模块查找到最优路由之后进一步用于,
若发现本BGP设备针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种向外部边界网关协议EBGP邻居通告路由的方法,其特征在于,该方法包括:
自治系统AS中的BGP设备学习到一前缀的路由,若发现自身已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;
BGP设备向所有EBGP邻居发送该前缀的路由,该路由中携带该新AS_Path属性;
所述AS中的BGP设备学习到一前缀的路由包括:
步骤a、AS中的BGP设备接收EBGP邻居发来的一前缀的路由,判断自身路由表中是否已存在该EBGP邻居发来的该前缀的路由,若已存在,删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤b;若不存在,直接执行步骤b;
步骤b、BGP设备判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,丢弃接收到的路由,结束本流程;否则,将接收到的路由学习到自身的路由表中。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
BGP设备接收到发往一前缀的数据报文,在自身的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。
3.根据权利要求1所述的方法,其特征在于,所述BGP设备被预先配置为支持AS_Path属性生成新规则;
所述BGP设备学习到一前缀的路由之后、若发现自身已存在该前缀的多条路由之前进一步包括:
发现自身被配置为支持AS_Path属性生成新规则。
4.根据权利要求1所述的方法,其特征在于,所述BGP设备学习到一前缀的路由之后进一步包括:
若发现自身仅存在该前缀的一条路由,则将本AS的AS号添加到该路由的AS_Path属性的AS_Sequence的最前面,将该路由发给自身的所有EBGP邻居;或者,
所述BGP设备查找到最优路由之后进一步包括:
若发现针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。
5.一种向外部边界网关协议EBGP邻居通告路由的装置,位于自治系统AS中的BGP设备上,其特征在于,该装置包括:
路由学习模块:学习前缀的路由;
AS_Path属性生成模块:发现路由学习模块学习到一前缀的路由时,若发现本BGP设备已存在该前缀的多条路由,则在该前缀的所有路由中,查找到最优路由,当针对该前缀存在能够与该最优路由形成负载分担的非最优路由时,生成新AS_PATH属性,将最优路由的AS_PATH属性复制到该新AS_PATH属性中,将能够与最优路由形成负载分担的所有非最优路由的AS_Path属性中与最优路由的AS_Path属性不同的AS号放入新AS_PATH属性的AS_Set中,将本AS的AS号添加到该新AS_Path属性的AS_Sequence的最前面;
路由通告模块:向所有EBGP邻居发送该前缀的路由,该路由中携带AS_Path属性生成模块生成的新AS_Path属性;
所述路由学习模块具体用于,
步骤a、接收EBGP邻居发来的一前缀的路由,判断本BGP设备的路由表中是否已存在该EBGP邻居发来的该前缀的路由,若已存在,删除路由表中该EBGP邻居发来的该前缀的路由,转至步骤b;若不存在,直接执行步骤b;
步骤b、判断接收到的路由的AS_Path属性中是否包含本AS的AS号,若是,丢弃接收到的路由,结束本流程;否则,将接收到的路由学习到本BGP设备的路由表中。
6.根据权利要求5所述的装置,其特征在于,该装置进一步包括负载分担模块,用于,
接收到发往一前缀的数据报文,在本BGP设备的路由表中查找该报文的目的前缀对应的最优路由,若查找到,且针对该前缀存在能够与该最优路由形成负载分担的非最优路由,则采用预设的负载分担算法,在所述最优路由和所述非最优路由中选择一条,根据所选择的路由将报文发送出去。
7.根据权利要求5所述的装置,其特征在于,所述BGP设备被预先配置为支持AS_Path属性生成新规则;
所述AS_Path属性生成模块发现路由学习模块学习到一前缀的路由之后、发现本BGP设备已存在该前缀的多条路由之前进一步用于,
发现本BGP设备被配置为支持AS_Path属性生成新规则。
8.根据权利要求5所述的装置,其特征在于,所述AS_Path属性生成模块发现路由学习模块学习到一前缀的路由之后进一步用于,
若发现本BGP设备仅存在该前缀的一条路由,则将本AS的AS号添加到该路由的AS_Path属性的AS_Sequence的最前面,将该路由发给本BGP设备的所有EBGP邻居;或者,
所述AS_Path属性生成模块查找到最优路由之后进一步用于,
若发现本BGP设备针对该前缀不存在能够与该最优路由形成负载分担的非最优路由,则将本AS的AS号添加到该最优路由的AS_Path属性的AS_Sequence的最前面,将该最优路由发给自身的所有EBGP邻居。
CN201510113974.5A 2015-03-16 2015-03-16 向外部边界网关协议邻居通告路由的方法及装置 Active CN104660502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510113974.5A CN104660502B (zh) 2015-03-16 2015-03-16 向外部边界网关协议邻居通告路由的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510113974.5A CN104660502B (zh) 2015-03-16 2015-03-16 向外部边界网关协议邻居通告路由的方法及装置

Publications (2)

Publication Number Publication Date
CN104660502A CN104660502A (zh) 2015-05-27
CN104660502B true CN104660502B (zh) 2018-03-23

Family

ID=53251224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510113974.5A Active CN104660502B (zh) 2015-03-16 2015-03-16 向外部边界网关协议邻居通告路由的方法及装置

Country Status (1)

Country Link
CN (1) CN104660502B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106169978B (zh) * 2016-07-07 2019-09-17 新华三技术有限公司 Bmp报文的处理方法和装置
CN108111423B (zh) * 2017-12-28 2020-11-17 迈普通信技术股份有限公司 流量传输管理方法、装置及网络分路设备
CN111800338B (zh) * 2020-06-01 2022-09-16 锐捷网络股份有限公司 跨as的evpn路由交互方法及装置
CN114422430B (zh) * 2020-10-12 2023-05-16 中国电信股份有限公司 用于控制路由泄露的电子设备、方法和介质
CN114640623A (zh) * 2020-11-28 2022-06-17 华为技术有限公司 一种路由处理方法、装置及设备
CN113726663B (zh) * 2021-07-31 2022-11-18 新华三信息安全技术有限公司 一种路由处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076029A (zh) * 2007-07-12 2007-11-21 中兴通讯股份有限公司 一种边界网关协议递归路由更新的方法
CN101453407A (zh) * 2007-12-03 2009-06-10 华为技术有限公司 路由器及路径消息处理的方法
CN102244599A (zh) * 2010-05-11 2011-11-16 华为技术有限公司 防止或消除数据环路的方法以及网络节点和网络系统
CN104348723A (zh) * 2013-07-30 2015-02-11 华为技术有限公司 生成路由表项的方法和边界网关协议演讲者

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611628B (zh) * 2012-04-05 2015-08-05 杭州华三通信技术有限公司 用于实现传输路径切换的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076029A (zh) * 2007-07-12 2007-11-21 中兴通讯股份有限公司 一种边界网关协议递归路由更新的方法
CN101453407A (zh) * 2007-12-03 2009-06-10 华为技术有限公司 路由器及路径消息处理的方法
CN102244599A (zh) * 2010-05-11 2011-11-16 华为技术有限公司 防止或消除数据环路的方法以及网络节点和网络系统
CN104348723A (zh) * 2013-07-30 2015-02-11 华为技术有限公司 生成路由表项的方法和边界网关协议演讲者

Also Published As

Publication number Publication date
CN104660502A (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
CN104660502B (zh) 向外部边界网关协议邻居通告路由的方法及装置
Dai et al. Distributed dominant pruning in ad hoc networks
CN105634940B (zh) Sr信息获取方法及建立段路由网络的方法
CN102594678B (zh) 一种dvpn大规模组网的方法和客户端
CN103384223B (zh) 一种流表项更新方法及设备
US20080310342A1 (en) Addressing Messages in a Two-Tier Network
CN104080112B (zh) 一种提高无线自组织网络业务可靠性的方法
US20100008231A1 (en) Method and Apparatus for Automatic Sub-Division of Areas that Flood Routing Information
CN106921572B (zh) 一种传播QoS策略的方法、装置及系统
CN103873373A (zh) 一种组播数据报文转发方法及设备
CN104883304B (zh) 用于部分纠缠量子对桥接通信网络的路由方法
CN102957589A (zh) 业务数据传输的方法、网络节点及系统
US20080304497A1 (en) Methods of route control in communications network
Mishra et al. Comparison of MANET routing protocols
CN108134772B (zh) 一种采用aodv或dsdv协议实现的安全路由方法
CN101640628B (zh) 基于Mesh网络的路由管理与路由方法、节点、装置及系统
CN101902391B (zh) 基于智能的静态路由进行报文转发的方法和设备
CN106941447A (zh) 基于蚁群模型的自由空间光网络路由方法
CN109803342A (zh) 一种面向能量均衡高可靠传输的无人机自组织网络路由方法
CN110391981A (zh) 为网状网络中的网关节点建立源路由树
CN110300426A (zh) 一种无线自组网中路由选择方法及装置
CN106804053A (zh) 一种移动自组织网络中基于自适应吸引子选择的单播路由方法
CN104135441B (zh) 一种报文处理方法和装置
CN106254241B (zh) 一种基于igp的跨区域cspf全网计算实现方法
CN106209625B (zh) 一种在分布式网络中支持集中控制的高效方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant