一、BGP简介
BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同 AS(Autonomous
System,自治系统)之间,又可以用于同一 AS 内部的动态路由协议。当 BGP 运行于同一 AS 内部
时,被称为 IBGP(Internal BGP);当 BGP 运行于不同 AS 之间时,称为 EBGP(External
BGP)。AS 是拥有同一选路策略,属于同一技术管理部门的一组路由器。
二、BGP选路原则【重要】
目前,BGP 选择路由的过程为:
(1) 丢弃下一跳(NEXT_HOP)不可达的路由;
(2) 优选首选值(Preferred-value)最大的路由大流量卡;
(3) 优选本地优先级(LOCAL_PREF)最高的路由;
(4) 依次选择 network 命令生成的路由、import-route 命令引入的路由、聚合路由;
(5) 优选 AS 路径(AS_PATH)最短的路由;
(6) 依次选择 ORIGIN 类型为 IGP、EGP、Incomplete 的路由;
(7) 优选 MED 值最低的路由;
(8) 依次选择从 EBGP、联盟 EBGP、联盟 IBGP、IBGP 学来的路由;
(9) 优选下一跳 Cost 值最低的路由;
(10) 优选 CLUSTER_LIST 长度最短的路由;
(11) 优选 ORIGINATOR_ID 最小的路由;
(12) 优选 Ro大流量卡uter ID 最小的路由器发布的路由;
(13) 优选 IP 地址最小的对等体发布的路由。
三、BGP路由属性【重要的属性】
BGP 路由属性是跟随路由一起发布出去的一组参数。它对特定的路由进行了进一步的描述,使得路
由接收者能够根据路由属性值对路由进行过滤和选择。
1. 源(ORIGIN)属性
ORIGIN 属性定义了路由信息的来源,标记一条 BGP 路由是怎么生成的。它有以下三种类型:
A、IGP:优先级最高,表示路由产生于本 AS 内。
B、 EGP:优先级次之,表示路由通过 EGP 学到。
C、 Incomplete:优先级最低,表示路由的来源无法确定。例如,从其它路由协议引入的路由信
息。
2. AS路大流量卡径(AS_PATH)属性
AS_PATH 属性记录了某条路由从本地到目的地址所要经过的所有 AS 号。当 BGP 路由器将一条路
由通告到其他 AS 时,会把本地 AS 号添加在 AS_PATH 列表中。收到此路由的 BGP 路由器根据
AS_PATH 属性就可以知道到达目的地址所要经过的 AS。
AS_PATH 作用:
A、避免路由环路的形成:缺省情况下,如果 BGP 路由器接收到的路由的 AS_PATH 属性中已经
包含了本地的 AS 号,则 BGP 路由器认为出现路由环路,不会接受该路由。
B、影响路由的选择:在其他因素相同的情况下,BGP会优先选择路径较短的路由。
C、 对路由进行过滤:通过配置 AS大流量卡 路径过滤列表,可以针对 AS_PATH 属性中所包含的 AS 号来
对路由进行过滤。
3. 下一跳(NEXT_HOP)属性
BGP的NEXT_HOP属性取值不一定是邻居路由器的IP地址。NEXT_HOP属性取值
情况分为几种:
A、BGP 发言者把自己产生的路由发给所有邻居时,将该路由信息的 NEXT_HOP 属性设置为自
己与对端连接的接口地址;
B、BGP 发言者把接收到的路由发送给 EBGP 对等体时,将该路由信息的 NEXT_HOP 属性设置
为自己与对端连接的接口地址;
C、BGP发言者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的NEXT_HOP
属性。
4. MED(Multi-大流量卡Exit Discriminator,多出口区分)属性
MED 属性仅在相邻两个 AS 之间交换,收到此属性的 AS 不会再将其通告给其它 AS。
MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由。当一个BGP
路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的
情况下,将优先选择MED值较小者作为最佳路由。
5. 本地优先(LOCAL_PREF)属性
LOCAL_PREF 属性仅在 IBGP 对等体之间交换,不通告给其他 AS。它表明 BGP 路由器的优先级。
LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP路大流量卡由器通过不同的IBGP对等体得到
目的地址相同但下一跳不同的多条路由时,将优先选择LOCAL_PREF属性值较高的路由。
友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2
原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/60227.html