BGP知识点总结

目录

一、BGP基础知识

1.1 BGP概念

1.2 BGP的特点

1.3 BGP数据包

1.4 BGP的工作过程

1.5相关名词

二、BGP的路由黑洞

三、BGP防环机制

四、BGP的基本配置

4.1邻居关系建立

4.2 宣告路由 

五、BGP的相关问题及优化 

5.1 BGP的宣告问题

5.2 BGP的自动汇总问题 

5.3 BGP的认证 

5.4 BGP的聚合

5.5 路由传递干涉策略

5.6 有条件的打破IBGP水平分割

 六、BGP的属性----基础属性

6.1 PrefVal(优先级)     不传播 

6.1 LocPrf 本地优先级

6.3 优先本地下一跳  

6.4 AS-PATH – 记录条目经过的所有AS编号

6.5 起源属性

 6.6 MED -多出口鉴别属性

七、BGP的选路规则 


一、BGP基础知识

1.1 BGP概念

BGP:边界网关路由协议。(其属于EGP--外部网关路由协议),其工作于AS之间。其本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目。

AS:自治系统类似于国家之间,全球之间的区域。

1.2 BGP的特点

1、EGP的协议追求

可控性强

管理员可以方便进行策略干涉选路

可靠性

BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居。--- 基于TCP工作 -三次握手四次断开 4种可靠传输机制 --  TCP只能基于单播工作,单播—需要IP可达—依赖IGP    BGP承载于IGP之上   

AS-BY-AS

以一个AS为一跳。

IGP协议追求:1、无环(选路佳) 2、收敛快   3、占用资源少。

2、特点

  1. 无类别路径矢量 -----距离矢量的升级版---AS--BY--AS
  2. 使用单播更新来发送所有信息;基于TCP 179端口工作
  3. 增量更新--仅触发无周期
  4. 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
  5. 可以在进项和出项对流量实施强大的策略--可控性
  6. 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(汇总)

1.3 BGP数据包

基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障。

Open       

 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive   保活    周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update   携带路由条目     目标网络号+各种属性
Notification出现错误数据时收发;

1.4 BGP的工作过程

1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)

2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP;--- 装载本地发出及接收到的所有路由条目;默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)

3、收敛完成,仅keeplive周期保活即可;

4、若出现错误信息,邻居间将使用Notification报文进行报错操作

5、结构突变

(1)新增网段 – BGP更新源设备将使用update来告知本地所有的邻居

(2) 断开网段 – BGP更新源设备将使用update来告知本地所有的邻居

(3) 无法沟通 – 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息;

1.5相关名词

邻居--------直连  因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;

EBGP邻居关系 ----  外部BGP邻居关系,建邻的两台设备处于不同的AS中

IBGP邻居关系  ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中

二、BGP的路由黑洞

非直连建邻到达控制层面路由条目可传递,递归计算路由可达;而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回。

解决:

  1. 物理、逻辑拓扑全连 --  物理链路直连、或者MPLS vpn
  2. 邻居关系全连 – 网络中所有设备运行BGP
  3. BGP重发布到IGP(LAB)
  4. MPLS 多协议标签交换--- 推荐做法

三、BGP防环机制

水平分割是有效解决环路的一种解决方法。

在EBGP上的水平分割,是依赖BGP路由条目中的一种属性来进行防环的,AS-PATH路径属性

BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;在接收到的路由条目中,若存在本地的AS号将拒绝该条目进入。

在IBGP上的水平分割,

本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)

但是在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;后期可通过联邦,反射器等方法来打破水平分割。

四、BGP的基本配置

4.1邻居关系建立

1、直连的EBGP邻居关系建立

[r1]bgp 1   启动BGP协议,启动时需要键入AS号;没有多进程概念

[r1-bgp]router-id 1.1.1.1   建议配置RID;若不配置将自动生成—规则同OSPF相同

[r1-bgp]peer  12.1.1.2 as-number 2  对端IP地址,及对端所在的AS编号

2、IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递;

[r2]bgp 2

[r2-bgp]peer  3.3.3.3 as-number 2               对端环回接口ip地址,及对端所在AS号

切记:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口

[r2-bgp]peer  3.3.3.3 connect-interface LoopBack 0

3、EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立

{1}IP可达,建议静态路由

{2}正常环回做为源、目ip地址建立邻居关系

{3}默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立

[r4-bgp]peer  5.5.5.5 ebgp-max-hop 2

完成配置后,就建立了邻居关系,生成了邻居表,可以通过 display  bgp peer来查看其邻居表。

4.2 宣告路由 

运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输。

注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致

[r1-bgp]network 1.1.1.0 24

进行宣告配置后,条目将加载于本地的BGP表中;BGP表是装载本地发出及接收到的所有路由信息。

可以通过display  bgp routing-table 查看BGP表,并且在里面显示*>表示优秀可用且传递给其他BGP。

状态     * 可用     >  优秀         *> 同时存在—可以加表(路由表)   可以传递(传递给

本地的其他BGP邻居)

状态处若出现i代表该条目是本地通过IBGP邻居学习到的

 优秀的条件:

1、同步问题

2、下一跳可达

因为基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达;导致条目不优;所以需要在建立邻居时修改下一跳为本地,在传递时,下一跳才可达。

[r2-bgp]peer  3.3.3.3 next-hop-local  将BGP路由传递给本地的邻居3.3.3.3时修改下一跳地址为本地与3.3.3.3建立邻居关系的源ip地址

五、BGP的相关问题及优化 

5.1 BGP的宣告问题

  1. 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
  2. 在BGP协议中运行BGP协议的设备来宣告,通过IGP学习到的,未运行BGP协议设备产生的路由;

在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居;

若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输;导致选路参考值不优;

故,建议在一个AS中若需要BGP设备宣告某条路由,那么该AS内所有运行BGP协议的设备均宣告;--便于其他AS的BGP设备判断自己的EBGP邻居,那台离目标更近;

5.2 BGP的自动汇总问题 

自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关;仅针对从IGP重发布到BGP的路由条目;

BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP;BGP中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP 协议;宣告优于重发布;

在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总;

5.3 BGP的认证 

[r1-bgp]peer  12.1.1.2 password cipher cisco123   邻居间需要秘钥一致,传递出去的秘钥必然被加密

5.4 BGP的聚合

(1)简单的汇总。不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;宣告特征—本地路由表中任何方式产生的路由均可被BGP宣告;不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中

以上的汇总配置完成后,若还需要同时传输部分明细路由,再逐一宣告需要传递的明细路由即可。

(2)标准的BGP聚合配置.

1、先逐条宣告所有的明细路由

2、再在更新源路由上进行聚合配置,自动产生空接口防环路由

[r5-bgp]aggregate 100.100.0.0 22   此时聚合与所有明细条目均传递

[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制

若需要在传递聚合条目的同时,再传递部分的明细路由;需要进行路径传递干涉策略。

5.5 路由传递干涉策略

1、抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略 

[r5]ip ip-prefix a permit 100.100.1.0 24

[r5]route-policy a permit node 10

[r5-route-policy]if-match ip-prefix a

[r5-route-policy]q

[r5]bgp 3

[r5-bgp]aggregate 100.100.0.0 22 suppress-policy a

被抑制调用时,表中允许的流量最终反而被抑制传输

2、Route-map  在BGP中将route-map当分发列表用

[r5]ip ip-prefix b permit 100.100.1.0 24      

[r5]route-policy b deny node 10

[r5-route-policy]if-match ip-prefix b

[r5-route-policy]q

[r5]route-policy b permit node 20

[r5-route-policy]q

[r5]bgp 3

[r5-bgp]peer 4.4.4.4 route-policy b ?

  export  Specify export policy  控制层面的出项

  import  Specify import policy  控制层面的入向

[r5-bgp]peer 4.4.4.4 route-policy b export

3、分发列表

[r5]ip ip-prefix c deny 100.100.1.0 24

[r5]ip ip-prefix c permit 0.0.0.0 0 le 32

[r5]bgp 3

[r5-bgp]filter-policy ip-prefix c export(控制层面方向)

4、前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用

[r5]ip ip-prefix d deny 100.100.1.0 24

[r5]ip ip-prefix d permit 0.0.0.0 0 le 32

[r5]bgp 3

[r5-bgp]peer  4.4.4.4 ip-prefix d export

5.6 有条件的打破IBGP水平分割

 有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制;--AS-BY-AY。

【1】路由反射器    角色:RR反射器   客户端  非客户端

无论客户端还是非客户端都必须是RR的IBGP邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;

反射规则:不优路由不能被传递,自然也不能被反射

  1. RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
  2. RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
  3. RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;

[r3-bgp]peer 2.2.2.2 reflect-client     邻居2.2.2.2成为本地的客户端,同时本地成为RR

【2】联邦-将一个AS,逻辑的分为多个小AS;对外依然遵循大AS号传递规则;但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;  

1、所有操作基于小AS号进行;

2、AS内所有设备需要定义自己所在的大AS号

3、小AS间的BGP设备需要告知对端的小AS

[r3]bgp 64512

[r3-bgp]router-id 3.3.3.3

[r3-bgp]confederation id 2   申明本地的大AS号

[r3-bgp]confederation peer-as 64513  告知本地直连的其他小AS号,若没有直连到其他小

AS不用配置

[r3-bgp]peer  2.2.2.2 as-number 64512

[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0

[r3-bgp]peer  4.4.4.4 as-number 64513

[r3-bgp]peer  4.4.4.4 connect-interface LoopBack 0

[r3-bgp]peer  4.4.4.4 ebgp-max-hop 2

 六、BGP的属性----基础属性

6.1 PrefVal(优先级)     不传播 

该属性为私有。

[r3]bgp 2

[r3-bgp]peer  4.4.4.4 preferred-value 1   

本地所有通过4.4.4.4邻居学习到的BGP路由,优先级全部修改为1;

负载分担:访问不同目标时,让路由器选择不同的路径;起到所有路径被使用效果;

路由策略来实现—在BGP路由控制层面传递的过程中,抓取路由修改属性

[r3]ip ip-prefix p permit 1.1.1.0 24   抓住网络号

[r3]route-policy p permit node 10    定制策略

[r3-route-policy]if-match ip-prefix p    匹配流量

[r3-route-policy] apply preferred-value 1   修改优先级属性

[r3-route-policy]q

[r3]route-policy p permit node 20    由于路由策略存在分发列表的功能,必须考虑空表

[r3-route-policy]q

[r3]bgp 2

[r3-bgp]peer 4.4.4.4 route-policy p import   和邻居传递路由的控制层面方向调用;

优先级不传播的特性,只能在本地的入方向调用;

6.1 LocPrf 本地优先级

传播范围------整个AS内部-IBGP邻居间  。用于干涉IBGP邻居关系下选路最常用属性。

[r4-bgp]default local-preference 1   本地传递路由给本地所有IBGP邻居时,修改属性为1;

负载分担:

[r3]ip ip-prefix l permit 1.1.1.0 24

[r3]route-policy l permit node 10      

[r3-route-policy]apply local-preference 101

[r3-route-policy]if-match ip-prefix l

[r3-route-policy]q

[r3]route-policy l permit node 20

[r3-route-policy]q

[r3]bgp 2

[r3-bgp]peer  4.4.4.4 route-policy l import    可以在IBGP邻居关系间的出或入方向调用

6.3 优先本地下一跳  

本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0;而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0;本地优选0.0.0.0的路由传递给本地的其他BGP邻居。

6.4 AS-PATH – 记录条目经过的所有AS编号

优选经过的AS号数量最少的路径;同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收;可以人为的在EBGP邻居关系间,增加AS号的数量来干涉选路;修改A路径,优选B路径;因为人为操作只能添加,不能减少。

可以干涉到EBGP关系/IBGP关系选路,但只能在EBGP关系设备间配置;

ip ip-prefix as index 10 permit 1.1.1.0 24

route-policy as permit node 10

 if-match ip-prefix as

 apply as-path 3 4 5 additive

#

route-policy as permit node 20

bgp 2

peer 12.1.1.1 route-policy as import

出向调用为  x 3 4 5   X代表实际经过过的AS

入向调用为  3 4 5 X   X代表实际经过过的AS

新增AS号处于列表的最左端;

注:以上配置方式,若网络后端真实存在AS3/4/5.那么由于EBGP水平分割,将导致这些路由无法被学习;

解决方案:重复添加实际已经经过的AS编号来增加数量

[r2-route-policy]apply  as-path  1 1 1 additive

6.5 起源属性

该条目的来源—通过什么方法进入到BGP协议的

BGP宣告本地路由表中路由                     i   

将本地路由表中IGP路由重发布到BGP协议      ?

将本地路由表中EGP路由重发布到BGP协议      e

规则 i优于e优于?

[r3]ip ip-prefix o permit 1.1.1.0 24

[r3]route-policy o permit node 10

[r3-route-policy]if-match  ip-prefix o

[r3-route-policy]apply origin egp 2    编写对端设备的AS号

[r3-route-policy]q

[r3]route-policy o permit node 20

[r3-route-policy]q

[r3]bgp 2

[r3-bgp]peer  2.2.2.2 route-policy o import

控制层面流量的入或出接口调用均可;

 6.6 MED -多出口鉴别属性

BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;可用于干涉EBGP/IBGP关系下的选路;最常用于干涉EBGP关系选路;常常用于AS1干涉AS2对AS1的选路;

[r1]ip ip-prefix med permit 1.1.1.0 24

[r1]route-policy med permit node 10

[r1-route-policy]if-match ip-prefix med

[r1-route-policy]apply cost 2

[r1-route-policy]q

[r1]route-policy med permit node 20

[r1-route-policy]q

[r1]bgp 1

[r1-bgp]peer  12.1.1.2 route-policy med export

七、BGP的选路规则 

比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)

优选Preference_Value值最高的路由(私有属性,仅本地有效)。 不传递  权限最高属性    可以干涉EBGP/IBGP选路

优选本地优先级(Local_Preference)最高的路由。IBGP邻居关系间传递    只能,最常干涉IBGP关系的选

优选手动聚合>自动聚合>network>import>从对等体学到的。

优选AS_Path短的路由。

EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;

起源类型IGP>EGP>Incomplete。

起源属性 i优于e优于?; 可在控制层面任意接口修改

对于来自同一AS的路由,优选MED值小的。

默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost

最常用于干涉EBGP选路的属性

优选从EBGP学来的路由(EBGP>IBGP)

优选AS内部IGP的Metric最小的路由。

优选Cluster_List最短的路由。

优选Orginator_ID最小的路由。

​​​​​​​优选Router_ID最小的路由器发布的路由

优选具有较小IP地址的邻居学来的路由。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左水水%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值