目录
一、BGP定义
BGP全称为边界网关路由协议,它是一种外部网关路由协议,用于在AS之间传递路由信息,工作在应用层,在传输层采用TCP协议,协议号为179,是可靠的路由协议。
二、BGP特点
1、是基于策略的路由协议,着重于控制路由的传递和选择最优路由
2、从设计上避免了环路:
(1)AS之间:BGP路由携带as-path属性,路由器收到带有自身AS号的路由将直接丢弃
(2)AS内部:从IBGP邻居学到的路由不会再发给IBGP邻居
3、提供了丰富的路由策略和过滤策略,能够灵活对路由进行选择和过滤
4、是增强的距离矢量路由协议,发布路由时,只发布更新的路由
5、扩展性好,通过修改TLV字段,能够轻松支持各种技术
6、适用于大型企业网络、互联网接入的场景
三、BGP报文
1、Open报文
负责和对等体之间建立邻居关系;open报文内容有BGP版本、AS号、router-id、认证信息、计时器信息等。
2、keepalive报文
用于维护BGP邻居关系,默认保持时间为60秒,老化时间为180秒。
3、Update报文
用于在对等体之间交换路由信息,包括可达路由信息,撤销路由信息及各种路由属性。
4、notification报文
当检查到错误时就会发送该报文给邻居。
5、Router-refresh报文
该报文用于指定邻居重新进行路由更新。
四、BGP状态机及工作原理
1、Idle
BGP连接的第一个状态,在空闲时间,等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器,同时发起第一个TCP连接,进入Connect状态。
2、Connect
该状态下,BGP已启动连接重试计时器(120秒),发起第一个TCP连接,如果连接重试计时器超时,则重新发起TCP连接,如果TCP连接建立失败,就进入Active状态,如果TCP连接建立成功,就进入opensent状态。
3、Active
该状态下BGP总是尝试不断建立TCP连接,若连接重试计时器超时(180秒),则退回到Connect状态,若TCP连接失败则停留在Active,若TCP连接成功则进入opensent状态。
4、Opensent
该状态下,TCP连接已经成功建立,也发出了第一个open报文,等待对方的open报文,如果收到对方的open报文,就会对报文进行正确性检测,若有错误,则会发出notification报文,并退回到idle状态。
5、Openconfirm
该状态下已经收到对方的open报文,并且已发出keepalive报文,等待对方的keepalive报文,若收到对方的keepalive报文,则进入Establish状态。
6、Established
该状态下表示BGP邻居关系已经建立,BGP邻居可以通过update报文更新路由信息了。
五、BGP邻居无法建立原因
1、peer对端地址不可达
2、邻居AS号配置错误
3、更新源问题(Connect-interface xxx)
4、EBGP跳数问题(从EBGP学习的路由下一跳默认为1跳,在传递给邻居时下一跳信息不变,导致黑洞路由,通过EBGP-max-hop修改)
5、BGP认证错误
6、Open报文协商失败
7、BGP的router-id冲突
8、接口配置了禁止179端口的ACL
六、BGP邻居建立起来后又失败了
1、MTU值问题,接口两端MTU值不一致
2、网络拥塞导致协议报文超时
3、接口设置了QOS,导致协议报文传输有问题
七、BGP邻居分类
1、IBGP邻居
2、EBGP邻居
八、BGP四大属性
1、公认必遵属性:所有路由器都识别该属性,并且要求存在于update报文中,有三种:
(1)origin属性:标识一条BGP路由是怎么成为BGP路由的
1、IGP
通过IGP学习到的路由,一般是network的路由或者聚合的路由,origin属性为IGP。
2、EGP
通过EGP学习到的路由,origin属性为EGP。
3、Incomplete
表明来源不明,一般是import的路由或者聚合的路由,origin属性为Incomplete。
聚合路由的origin属性有可能是IGP,也有可能是Incomplete,当聚合路由的所有成员路由的origin属性为IGP时,聚合后的路由的origin属性就为IGP;当聚合路由的所有成员路由的origin属性为incomplete或者部分为IGP部分为Incomplete时,聚合路由的origin属性为Incomplete。
(2)as-path属性:用于标识BGP路由的起源AS和所经过的AS
有三个作用:1、标识BGP路由的起源AS和所经过的AS 2、用于AS之间防环 3、用于选择最优路由,as-path越小越优。
(3)next-hop属性:标识BGP路由的下一跳信息
1、BGP在将本地始发的路由通告给邻居时,下一跳设置为本端与对端建立BGP邻居关系的接口地址。
2、BGP设备向EBGP邻居发布路由时,下一跳设置为本端与对端EBGP建立BGP邻居关系的接口地址。
3、BGP设备向IBGP邻居发布从EBGP邻居学习的路由,下一跳信息不变,有可能会导致下一跳不可达,从而导致黑洞路由,如要解决有两种方式:(1)在该路由器上引入直连路由 (2)使用peer next-hop local命令将下一跳改为自己。
2、公认任意属性:所有路由器都识别该属性,但是不要求必须存在于update报文中。
(1)local-preference
本地优先级属性,用于控制本地as的流量如何流出本as,越大越优,默认为100,取值为1-2~32-1。
(2)auto-aggregate
主要用于路由聚合时,如果聚合的路由将所有的明细路由都抑制了,就会为该聚合的路由生成该属性,用于告知成员明细路由的路径属性丢失了。
3、可选过度属性:不要求所有路由器都识别该属性,如果有设备识别则会传递该属性。
(1)community
团体属性,将具有相同特征的路由进行标记,便于进行路由控制,有三种:保留的团体属性、公认的团体属性和私有团体属性。
公认团体属性:
1、internet
BGP路由默认的属性,当收到该属性的路由时,可以把路由通告给所有邻居。
2、no-export
当收到该属性的路由时,不应该把路由通告给联盟以外的邻居。
3、no-Advertise
当收到该属性的路由时,不应该把路由通告给任何邻居。
4、no-subconfid
当收到该属性的路由时,可以把路由通告给IBGP邻居,但是不应该通告给EBGP邻居
(2)aggregate:对auto-aggregate属性的补充,用于说明明细路由的路径属性在何处丢失了。
4、可选非过度属性
(1)MED值:也叫外部度量值,用于控制外部的AS流量如何流入本AS,默认为0,越小越优。
九、BGP选路原则
1、丢弃下一跳不可达路由(必要条件)
2、比较协议首选值,越大越优
3、比较本地优先级,越大越优
4、依次优选手动聚合、自动聚合、network、import的路由
5、比较as-path属性,越短越优
6、比较origin属性,IGP>EGP>Incomplete
7、比较MED值,越小越优
8、依次优选从EBGP、联盟EBGP、联盟IBGP、IBGP邻居学来的路由
9、优选到BGP路由IGP开销最小的路由
10、比较Cluster-list属性,越小越优
11、比较origin-id属性,越小越优
12、比较router-id属性,越小越优
13、优选从具有最小IP address邻居学来的路由
十、BGP路由通告原则
1、BGP只会将有效且最优的路由发布给邻居
2、从EBGP邻居学来的路由会发布给所有邻居
3、从IBGP邻居学来的路由不会再发给IBGP邻居,是否会发给EBGP邻居,需要看IGP和EGP是否同步
十一、成为BGP路由的方式
1、通过network方式
2、通过import方式
十二、BGP路由反射器
1、作用:解决IBGP全互联问题,减少IBGP邻居关系数量,降低设备负担。
2、角色
(1)路由反射器
(2)客户端
(3)非客户端
3、反射规则
(1)从客户端学来的路由,会发布给客户端和非客户端
(2)从非客户端学来的路由,只会发布给客户端
(3)从EBGP邻居学来的路由,会发布给客户端和非客户端
十三、BGP路由聚合
1、自动聚合
summary auto命令对BGP引入的IGP路由进行自然网段的聚合,只会将聚合的路由发布给邻居,明细路由会被抑制,缺省情况下自动聚合关闭。
2、手动聚合
aggregate命令用于对BGP引入的路由、network生成的路由和import的路由进行手动聚合,会将聚合的路由和明细的路由发布给邻居,参数detail-suppress用于抑制明细路由的发布。
十四、BGP联盟
将一个AS分为若干个子AS,子AS内部使用IBGP全互联,子AS之间、联盟本身和外部之间用特殊的EBGP连接。
十五、解决大规模BGP网络所遇到的问题
1、IBGP对等体众多问题
(1)配置BGP对等体组
(2)配置团体属性
2、IBGP全互联问题
(1)配置BGP路由反射器
(2)配置BGP联盟
3、BGP路由表变化频繁
(1)配置BGP路由衰减
4、BGP路由表规模庞大
(1)配置BGP路由聚合
本文详细介绍了BGP协议的定义、特点、报文结构、状态机、邻居建立问题、路由属性、选路原则、路由通告机制以及在大规模网络中的应用,包括路由反射、路由聚合和联盟解决方案。

被折叠的 条评论
为什么被折叠?



