BGP(边界网关路由协议)总结

一.介绍

BGP属于无类别的路径矢量协议;EGP协议中最流行的技术,工作在AS之间;

EGP—外部网关路由协议-BGP

BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;

AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;

二.EPG的特点:

1:可控性强(管理员可以方便进行策略干涉选路)

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

单播—需要IP可达—依赖IGP    BGP承载于IGP之上   

 3、AS-BY-AS(防环)  以一个AS为一跳;

三.工作过程:

1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;

会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表

BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;

邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)

2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP;--- 装载本地发出及接收到的所有路由条目;

默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)

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

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

四:黑洞问题:

非直连建邻到达控制层面路由条目可传递,递归计算路由可达;

而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回

解决方式:

1.邻居关系全连 – 网络中所有设备运行BGP(小型)

2.MPLS 多协议标签交换--- 推荐做法

五:防环机制:

1、EBGP水平分割—解决EBGP环路;

依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;

BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;

EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;

2、IBGP水平分割—解决IBGP环路由中的一种机制

  本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;

  AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;

解决方式:打破水平分割的机制-------联邦、路由反射器

六、BGP的基本配置:

  1. BGP邻居关系建立,与路由条目宣告是分开的配置的
  1. 直连的EBGP邻居关系建立

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

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

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

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

bgp 2

router-id 2.2.2.2 

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

切记:一旦使用环回接口建立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

七:BGP的宣告

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

 network 1.1.1.0 24

display  bgp routing-table 查看BGP表

BGP中的符号意思

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

本地的其他BGP邻居)

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

注意:

基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达;导致条目不优;

解决方式:

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

宣告的细节:

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

八:BGP的认证:(邻居之间身份核实)

peer  12.1.1.2 password cipher 123456   邻居间需要秘钥一致,传递出去的秘钥必然被加密

九:BGP的聚合(汇总)

1.不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中;

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

注意:在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不一定能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制

2.

  1. 标准的BGP聚合配置
  1. 先逐条宣告所有的明细路由
  2. 再在更新源路由上进行聚合配置,自动产生空接口防环路由

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

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

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

       3.路由传递干涉策略

 常用:

前缀列表 – 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

10.有条件的打破IBGP水平分割(反射器,联邦)

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

1.反射器:

无论客户端还是非客户端都必须是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

11.BGP的选路规则:

想选哪条路修改属性就好了

                                    传播范围                  默认值                大/小 优

1、PrefVal(优先级)    不传播                   0-65535                  大

该属性为私有属性(华为)

[r3]bgp 2

[r3-bgp]peer  4.4.4.4 preferred-value 1   

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

                                                       传播范围              默认值                大/小 优

2、LocPrf 本地优先级   整个AS内部-IBGP邻居间     100(0-255)          大

用于干涉IBGP邻居关系下选路最常用属性

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

3.

MED -多出口鉴别属性    

BGP协议默认没有度量值,没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;

可用于干涉EBGP/IBGP关系下的选路;最常用于干涉EBGP关系选路

4.

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

注意AS号的添加,一定是在EBGP邻居间进行的;   

优选经过的AS号数量最少的路径;同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收;

可以人为的在EBGP邻居关系间,增加AS号的数量来干涉选路;修改A路径,优选B路径;

因为人为操作只能添加,不能减少;

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

5.

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

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

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

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

规则 i优于e优于?

6.

优先本地下一跳      

本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0;

而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0;本地优选0.0.0.0的路由传递给本地的其他BGP邻居;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
边界网关协议版本4(BGP-4) (RFC1771 A Border Gateway Protocol 4 (BGP-4)) 本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度和状态。本备忘录的发布不受任何限制。 摘要 本文档,以及随同文档,“边检网关协议在互联网中的应用”,定义了互联网的自治系统间路由协议。 目录 1. 致谢 3 2. 介绍 3 3. 操作总结 4 3.1 路由:通告和存储 5 3.2 路由信息库 5 4. 消息格式 5 4.1 消息头格式 6 4.2 OPEN消息格式 6 4.3 UPDATE消息格式 8 4.4 KEEPALIVE消息格式 13 4.5 NOTIFICATION消息格式 13 5. 路径属性 15 5.1 路径属性使用 16 5.1.1 ORIGIN 16 5.1.2 AS-PATH 16 5.1.3 NEXT-HOP 16 5.1.4 MULTI-EXIT-DISC 17 5.1.5 LOCAL_PREF 17 5.1.6 ATOMIC_AGGREGATE 17 5.1.7 AGGREGATOR 18 6. BGP错误处理 18 6.1 消息头错误处理. 18 6.2 OPEN 消息错误处理 19 6.3 UPDATE 消息错误处理 19 6.4 NOTIFICATION 消息错误处理 20 6.5 HOLD TIMER 溢出错误处理 20 6.6 有限状态及错误处理. 20 6.7 终止 21 6.8 连接冲突检测 21 7. BGP版本商议 21 8. BGP 有限状态机 22 9. UPDATE 消息处理 25 9.1 决策过程 26 9.1.1 Phase 1: 优先级的计算 26 9.1.2 Phase 2: 路由选择 27 9.1.3 Phase 3: 路由分发 28 9.1.4 路由覆盖 29 9.2 UPDATE发送过程 29 9.2.1 内部更新 30 9.2.2 外部更新 31 9.2.3 控制路由流量开销 31 9.2.4 路由信息的有效组织 32 9.3 路由选择标准 34 9.4 产生BGP路由 34 附录 1. BGP FSM 状态转换和行为 34 附录 2. 对比RFC1267 37 附录 3. 对比RFC1663 38 附录4. 对比 RFC 1105 38 附录5. BGP可能使用的TCP选项 39 附录6. 应用建议 39 6.1 每个消息的多网络前缀 39 6.2 使用流协议 40 6.3 减少路由抖动 40 6.4 BGP 计时器 40 6.5 路径属性顺序 40 6.6 AS_SET 排序 41 6.7 版本商议控制 41 6.8 复杂 AS_PATH 聚合 41 参考 41 安全考虑 42 作者地址 42

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值