admin管理员组

文章数量:1607357

目录

一.BGP原理

1.1BGP报文类型

1.2BGP状态机

1.3路由通告原则

1.3.1BGP路由的产生方式:

1.3.2BGP路由通告原则

1.3.3BGP的防环原则

1.3.4BGP路由黑洞:

二.BGP属性

三.选路原则

3.1、如果此路由下一跳不可达,忽略此路由 

3.2、preferred-value

3.3、local-pref

3.4、优选本地生成的路由

3.5、AS路径最短

3.6、Origin起源属性

3.7、MED

3.8、EBDP学的路由优于IBGP

3.9、优选到BGP下一跳IGP Metric较小的路由

3.10、优选Cluster_ List最短的路由

3.11、优选Rouetr ID最小的路由器发布的路由

四.BGP团体属性

    4.1、公共团体属性

     4.2、自定义团体属性

     4.3、团体列表

五.BGP聚合

        5.1、自动聚合

        5.2、手动聚合


目录

一.BGP原理

1.1BGP报文类型

1.2BGP状态机

1.3路由通告原则

1.3.1BGP路由的产生方式:

1.3.2BGP路由通告原则

1.3.3BGP的防环原则

1.3.4BGP路由黑洞:

二.BGP属性

三.选路原则

3.1、如果此路由下一跳不可达,忽略此路由 

3.2、preferred-value

3.3、local-pref

3.4、优选本地生成的路由

3.5、AS路径最短

3.6、Origin起源属性

3.7、MED

3.8、EBDP学的路由优于IBGP

3.9、优选到BGP下一跳IGP Metric较小的路由

3.10、优选Cluster_ List最短的路由

3.11、优选Rouetr ID最小的路由器发布的路由

四.BGP团体属性

                  4.1、公共团体属性

                  4.2、自定义团体属性

4.3、团体列表


一.BGP原理

1.1BGP报文类型

Open报文:协商BGP参数

Updata报文:交换路由信息

Keepalive报文:保持邻居关系

Notification报文:差错通知

Route-Refresh报文:用于在改变路由策略后请求对等体重新发送路由信息

1.2BGP状态机

1.Idle状是BGP初始状态。在Idle状态下,BGP拒绝邻居发送的连接请求。也不会像邻居发送TCP syn,只有32S之后才会向邻居发送Tcp syn并且将邻居转为conrtect状态。

2.Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。
     如果TCP连接成功,那么BGP向对等体发送open报文,并转至opensent状态。
     如果TCP连接失败,那么BGP转至Active状态。
     如果TCP syn没有收到邻居的响应,将会卡在connect状态,总是尝试与BGP邻居建立TCP连接。

常见卡在connect状态的原因:

1、邻居没有启用BGP协议

2、沿途路径存在流量过滤将TCP SYN拒绝了。

3、EBGP邻居建立没有配置多跳。
 

3.在Active状态下,BGP总是在试图建立TCP连接。
如果TCP连接成功,那么BGP向对等体发送open报文,关闭连接重传定时器,并转至openSent状态。

如果TCP连接失败,那么BGP停留在Active状态。
如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态

4.在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。

    如果收到的Open报文正确,那么BGP发送Keepalive报文,并转OpenConfirm状态。
    如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至ldle状态。

5.在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至ldle状态。

6.在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文.

   如果收到正确的Update或Keepallie报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。

如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至ldle状态。

   Route-refresh报文不会改变BGP状态。
   如果收到Notification报文,那么BGP转至ldle状态。
   如果收到TCP拆链通知,那么BGP断开连接,转至ldle状态。

1.3路由通告原则

建立IBGP邻居关系建议使用坏回口,目的是更加稳定。

默认建立EBGP邻居关系的时候,发送报文的TTL=1.默认建立IBGP邻居关系的时候,发送报文的TTL=255。

1.3.1BGP路由的产生方式:


1、通过network的方式,将本地路由中的路由发布出去。
2、通过import-route的方式,将其他协议的路由引入到BGP协议中。

3、通过手动聚合的方式,产生一条聚合路由(汇总)

如何得到BGP路由呢?
@IBGP邻居给我传递

@EBGP邻居给我传递

@自身产生BGP路由


1.3.2BGP路由通告原则

BGP只会将有效路由中的最优的BGP路由通告给邻居。

@自身产生的BGP路由通告给所有的BGP邻居。

@从IBGP邻居收到的路由,只会传递给EBGP邻居
@从EBGP邻居收到的路由,会传递给所有邻居


1.3.3BGP的防环原则


AS内的防环使用IEGP水平分割机制(只传一跳),即从IBGP邻居收到的路由不会传递给另一个IBGP邻居。

AS之问的防环原则:利用了BGP的路由属性,即BGP将路由发送给EBGP邻居的时候会将自身的AS号添加到as-path列表中;并且规定,从EBGP邻居收到的路由如果携带自身AS号则不接受该路由。
 

1.3.4BGP路由黑洞:


BGP同步:用于防止BGP路由黑洞问题。
BGP同步机制:即从IBGP邻居接收的路由,需要在IGP表中存在,才能够参加最优BGP路由的选举,如果IGP表中不存在,则不会发送给EBGP邻居。
为什么不使用BGP同步解决路由黑洞问题呢?

2、出现了更好的解决方案:
@AS内部采用全互联的IBGP邻居架构,让所有路由器都运行BGP协议,从而使每台路由器都能够学到BGP路由,防止黑洞产生。
@在ASBR上将BGP路由引入到IGP协议中。(该方法已被淘汰)

@在ASBR之间建立GRE隧道,解决路由黑洞问题。(节约成本)

@通过LSP隧道解决路由黑洞问题。
 

二.BGP属性

路径属性分类

Next_hop

EBGP邻居更新路由时,该属性值是两端建立BGP邻居时所用的地址,用的是本端地址,用于根据此属性来寻找该条路由的目的网段,

从EBGP学到的发给IBGP邻居,下一跳属性不变,但是这样不可达。可以在指定邻居的时候将下一跳属性改为建立邻居时的本端地址(peer x.x.x.x next-hop-local)

特点:
1、自身产生的路由发送给所有BGP邻居的时候,下一跳自动修改。
2、从EBGP邻居接受的路由发送给IBGP邻居的时候,下一跳不会自动修改。

3、从EBGP邻居接受的路由发送给EBGP邻居的时候,下一跳自动修改。

4、从IBGP邻居接受的路由发送给EBGP邻居的时候,下一跳自动修改。

5、从IBGP邻居接受的路由不存在发送给IBGP邻居的情况(防环)
 

Aggregator:可选过渡属性

         默认聚合路由之后,聚合路由会添加一个可选过渡属性:
         用于对汇总路由的一种标记,标识路由产生的AS,以及产聚合路由设备的router-id,表明发                   生聚合的位置
Aggregator: AS // 聚合路由产生的AS
Aggregator ID: x.x.x.x  //产生聚合路由设备的router-id。

本文标签: 路由属性BGP