bgp知识总结

目录

简介

Bgp报文

邻居状态机 

Ibgp邻居关系与ebgp有何不同

bgp属性

BGP选路原则

BGP路由汇总

BGP默认路由

Bgp路由过滤

其他


简介

BGP是一种高级距离矢量型协议,用于解决AS间路由信息的传输,和eigrp一样初始化的时候BGP邻居传输的是整张路 由表,以后只传输网络变化的部分-增量更新(更新比较慢)。采用TCP连接传输,端口179,BGP没有另外设置可靠传 输机制,TCP本身就是可靠的。

Igp中的路由协议的重点在路由的发现和计算

Bgp主要在路由的控制和选择

BGP的AS号  

2字节:1-65535    公有1-64511 私有64512-65534

4字节:65536-4294967295 (扩充)

Bgp版本有四个,高往低兼容

Bgp报文

邻居状态机 

没有自动发现机制,只能手动neighbor BGP-peer-IP

Idle state

配置了neighbor 或重置了邻居,BGP初始化所有资源打开connectRetry 计时器,初始化邻居的TCP连接,接听来自邻居 初始化消息并将它的状态转到connect状态

为了防止差错的持续出现造成BGP邻居的摆动,connectRetry计时器会呈现级数级的增加第一次60s,下一次的为前一 次的2倍120s,再下次240s。

 

Connect state

BGP等到TCP连接完成以后再决定后续的动作

1.如果tcp同步成功,BGP将connectRetry 清零,完成初始化并发送一个open消息给邻居并把状态置为open

2.如果失败,BGP继续监听邻居发出的连接,重置connectRetry计时器并转移到active状态

3.如果connectRetry时间超时,计时器重新开始,在试图与邻居建立TCP连接,bgp保持connect状态,出现其他事件转 入idle状态。

 

Active state   

BGP试图与邻居建立一个TCP的连接

1.如果TCP连接成功,BGP将connectRetry计时器清零,完成初始化,给邻居发送Open消息并将状态置为open,hold时 间置为4mins

2.如果在active状态,connectRetry计时器超时回到connect状态并重置connectRetry计时器

3.如果试图与一个未知IP建立TCP会话,同时connectRetry计时器重置,连接拒绝并保持active状态

4.任何一个事件都会导致重回idle

 

Open send state

在此状态,已经发送了open消息,BGP等待邻居发送的open消息

1.收到open消息,如果发现差错,将给邻居发送一个notification消息并置为idle

2.如果收到open消息没错,将发送keeplive给邻居,并建立IBGP或者EBGP状态置为open confire state

3.如果收到TCP断开消息则断开BGP连接重置connectRetry计时器,状态置为active

 

Open confire state

在此状态下BGP会等待一个keeplive消息或notification消息

1.如果后搜到一个keeplive消息状态置为establish

2.如果收到notification消息状态置为idle断开tcp连接

3.如果hold计时器超时,检测到一个差错或者stop事件,bgp将给邻居发送一个notification并断开连接,状态置为idle

 

Establish state

此状态,BGP对等体间的连接已经完全建立,可以交换update, keeplive和notification消息,收到notification状态置为idle 中断连接。

 

Ibgp邻居关系与ebgp有何不同

Ibgp邻居关系不能中转路由,不改路由下一跳

ebgp邻居关系能中转路由,改路由下一跳

 

用上图分析邻居关系

R1宣告的路由R2,R3有,R4,R5没有。 R3宣告的路由每个路由器都有

Ibgp邻居关系不能中转路由的原因?

Bgp主要研究域间的路由传输, bgp没有为ibgp设置算法,防环的终极方案是不中转,不该下一跳

Ibgp邻居关系不能中转路由的后果?

1、会遇到域外路由下一跳不可达, 方案:手工更改下一跳

2、全互联建邻,   方案:反射(主要)(本质是中转路由,肯定有强力的防环机制)、联盟

 

bgp属性

路由11条属性(cisco  其他的没有weight)

weight ,origin ,as_path ,next_hop ,local_pref ,atomic_aggregate ,

Aggregator ,community ,MED,originator_id ,cluster_list

分为4类

  • 公认必遵

所有BGP路由器必须识别遵守的原则有origin,as_path ,next_hop

  • 公认可遵

所有路由器都能识别但是不一定要遵守,local_pref,atomic_aggregate

  • 可选传递

不是所有BGP路由器都能识别,但是所有BGP都能传递,aggregator和community

  • 可选非传递

不是所有路由器都被识别,不能识别的BGP路由器就丢弃它,MED,originator_id和cluster_id,weight

 

Weihgt

cisco私有属性,对于离开AS的路由在路由器选择那一条最优,本台路由器产生为32768,

学习的为0 别的路由器传的路由在本路由器的weihgt为0. 不能传递(只在本路由器有用),

适用于一台路由去往别的AS有多个出口,越大越优,。

 

Origin(本质识别路由来源,可以用来选路(不多用))

起源,0表示宣告(i),1表示EGP学到(E),3表示其他手段得到(重发布?),越低越好 i>E>?

 

AS path(路径记录)

一条路由在传输过程中经历了那些AS(不算自己),可用来放环。越短越好

关掉水平分割的方法:

Nei X.X.X.X allowas-in 允许和具有自己相同的AS的路由进入本AS

Nei x.x.x.x  as-override  把具有和其他AS相同AS号的路由放入这个AS

 

Next_hop 

到达路由的下一跳路由器IP地址

通告路由器和接受路由器不在一个AS,next_hop为通告路由器的更新地址

通告路由器和接受路由器在一个AS内,next_hop为通告邻居的更新地址

通告路由器和接受路由器在一个AS内且为邻居关系更新地址为不同AS,则为外部更新地址

 

Local_pref(只有选路功能,只能在ibgp之间传)

不能传输到其他AS,值越高越优,用于本AS选择离开AS的出口路由器默认为100(适合于本地出口在多个路由器上)

 

MED

用于选择流入AS的入口路由器,可以在俩个AS之间传递,不能传递跟第三个as,越低越好默认0,就是度量值

 Med同一个as才能比较med

  

解决办法:

 

Atomic_aggregate           summary-only把明细干掉   as-set 继承as-path属性

用来警告下游路由器路由聚合后产生的路由路径丢失。

BGP支持向BGP邻居传递重叠路由可以选择多种方式

1.明细和粗略的都公布  //aggregate-address 10.0.0.0 255.0.0.0

2.只公布明细                      //aggregate-address 10.0.0.0 255.0.0.0 suppress-map

3.只公布没有重叠的        //aggregate-address 10.0.0.0 255.0.0.0 summary-only  as-set

4.聚合后公布聚合后的路由 //aggregate-address 10.0.0.0 255.0.0.0 summary-only

5.明细和粗略都不公布

 

Aggregator

用来通告汇总路由的汇聚路由器 BGP_ID(cisco)

 

Community(重要)(是个路由标记)唯一一个拥有子属性的

1.internet 默认属性,可以给任何bgp发送  

2.no_export 只能在一个AS内传递,可以在联盟内传递。

3.no_advertise (不通告)不在IBGP邻居间传递

4.local-as 不向任何EBGP邻居发送(包括联盟的EBGP邻居)

分为标准和扩展community

标准是普通路由可以设置的团体公有和私有

扩展是mpls中的vrf路由传递定义的

设置团体属性

匹配已经设置的团体属性使用 ip community-list  从而可以进一步在route-map中用这个community-list去设置策略。

Show ip bgp community    显示团体属性

 

Originator_id

路由反射使用,是路由发起者产生的一个32比特的值,该值是本地路由发起者的RID,如果路由发起者从属性上看到 自己的RID,说明有环路就忽略

 

 R3的路由A会通过RR反射器R1,R2再返回R3 ,形成环路 使用Originator_id防环

 

Cluster_list

路由反射器使用,是路由进过反射器簇ID的一个序号。如果反射器在属性里看到自己的簇ID就说明有环路,忽略

R3的路由A会 RR反射器R1,R4,R3中来回传递 使用Cluster_list

 

BGP选路原则

  1. 首先比较weight 大优--不传递  Cisco私有            EBGP/IBGP
  2. 比较本地优先级,默认100;仅IBGP邻居传递,大优      IBGP
  3. 优选本地下一跳
  4. 比较as-pash,经过的AS数量少优,EBGP邻居可增添     EBGP/IBGP
  5. 起源码最小 i-igp=0 e-egp=1 ?-incomplete=2              EBGP/IBGP
  6. MED值最小                                          EBGP/IBGP
  7. 普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居
  8. 优选最近的IGP邻居(IGP度量小)
  9. 优选最先建立EBGP邻居
  10. 最小BGP邻居的RID
  11. 最小邻居的ip地址

如果比到第八条之后 如果最大负载均衡数大于1(默认为1)就比到第八条,第九条不比

BGP路由汇总

默认汇总会丢失as_path属性

As-set 汇总后依然继承汇总前明细的as-path属性

Attribute-map 改变汇总路由的origin属性

Advertise-map 与as-set联用选择性的继承as-path的属性

Summary-only 汇总后只通告汇总的路由

Suppress-map 抑制部分明细路由  

 

BGP默认路由

1、精确下发默认路由给特定的邻居

2、粗放式的下发,没有具体的邻居,发给所有邻居

必须先创建一条静态的默认路由,并且重分布/宣告静态至BGP中,才会产生默认路由,并通告给其它的BGP邻居

Bgp路由过滤

针对下一跳来过滤路由使用route-map 匹配

其他

AS欺骗  (如下 邻居2.2.2.2 认为R1 属于as10,实际上属于100)

反射器只有非客户端之间不传递路由

如果bgp宣告了宣告了bgp学习到的路由,这条路由metric 变的非常大

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值