bgp初认识

bgp概述

作用:as间路由控制和优选

什么是bgp:

bgp是应用层协议,报文格式:ip+tcp(179)+bgp,跨路由器建立邻居,因为报文是单播,一个路由器只能有一个bgp进程,bgp邻居关系有两种:ebgp,ibgp

为什么要ibgp?

ospf等协议不能携带bgp的属性,ibgp能

bgp的五种报文

open:用来建立邻居,tcp连接好后只发一次

keepalive:维持邻居,60s一次,180s结束邻居

update:路由更新,增量

Route-Refresh:BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送Route-Refresh报文,收到信息后,对等体将其路由信息重新发送给本地BGP路由器

notification:错误报告,之后BGP就会中断,只要收到Notification报文就会返回idle状态

配置

只有ebgp之间用环回口建立邻居时,才需要修改TTL

 refresh bgp all export         刷新邻居,重新发送update报文

状态机制:参考大佬

connect状态和active状态不是都会发tcp连接请求吗,如果都会发,那么为什么要设置俩状态?

尽管Connect状态和Active状态都涉及到TCP连接的建立,但是它们之间的区别在于重试机制和网络同步问题的处理:

  1. 初始连接尝试:Connect状态用于初始的TCP连接尝试。如果第一次尝试失败,BGP路由器会进入Active状态。

  2. 重试机制:Active状态提供了一个重试机制,使得BGP路由器可以在一段时间后再次尝试建立TCP连接。这种机制有助于在网络问题暂时解决后恢复连接。

  3. 避免同步:在Active状态下,BGP路由器在尝试重新建立连接之前会等待一个随机时间,这有助于避免在网络问题恢复时多个BGP路由器同时尝试建立连接,从而减少网络拥塞和同步问题。

注意:

当对方不配置bgp 200时,tcp 179端口监听不打开,此时状态是connect

当对方配置了bgp 200,却没有指定邻居,或者错误,此时状态是active

用ibgp的原因 

 bgp路由的生成方式

有3种:network,import,路由汇总

network

 注意:

当10.1.23.0这条路由的next-hop不可达时(在bgp表里存在,但是在ip路由表中没有),意味着路由器不知道这个路由怎么去,因此这条路由是无效的。因为ebgp将路由传递给ibgp邻居时,不会修改下一条,因此我们要宣告边界网段

*        有效,代表这个路由参与ip路由表里的竞选,不一定选用来自bgp的这个条目

>       最优的, 代表可能会发给其他邻居,有>也不一定发,还要满足其他的发布规则

两个都有不代表ip路由表里一定使用

import

[]bgp 200

        import-route ospf 1

发路由

bgp路由信息在update里

为了避免环路,发布信息需要满足一些规则,这些条件都必须满足,才有可能会发给邻居

1.只将最优的路由发给邻居,就是带>的

怎么判断是不是最优呢?(看收且处理路由)

  • 路由器发现这个路由的下一条不可达,那他就不是最优的
  • 然后还要看各种属性,比较出一个最优的

2.ebgp邻居发来的路由会发给自己的所有邻居

3.ibgp邻居发来的路由不会再发给自己的ibgp邻居,可以发给ebgp邻居

防止as内部环路

4.bgp和igp同步:这条路由必须在bgp表和igp表中都存在,才能发出去

默认不开启,华为不能开启,如果开启会导致路由的传递不了,不开会出现路由黑洞

常见问题

对于igp和bgp路由不同步导致的路由黑洞,解决方法:

  • as内部全互联,保证所有参与运输报文的由路由器学到bgp里所有路由
  • 将bgp引入igp路由表

解决 ibgp水平分割导致有的路由器学不到路由

  • as内部所有ibgp全互联,所有运行bgp的路由器全互联
  • 联盟
  • 设置RR路由反射        

 peer 10.1.1.1 reflect-client        在rr上将邻居1.1设置为自己的客户端

解决运行ebgp的路由器向他的ibgp邻居发送update报文时,next-hop不可达

  • 将ebgp间直连网段放入igp里,并将出接口设置为静默接口
  • 在ebgp上:peer 1.1.1.1 next-hop-local      发出update报文时修改next-hop值为这个路由器建立邻居的地址 

这样就没有下一条导致的路由黑洞了

还有个下一条不可达导致的路由黑洞

  • 将bgp引入igp路由表
  • mpls

开启多路径传输(负载分担):

开启后选最优路由就不看router-id,接口地址大小了,只要前面的9个属性一样都是最优的。会将这些最优的给ip表

bgp 200

maximum load-balancing 4             

在ip路由表里才能看到效果

9个比较属性

  1. 原始的下一条不相同(去往同一个地方,下一条不一样)
  2. prefvalue一样
  3. local_pref一样
  4. 都是聚合,或者都是非聚合
  5. origin一样
  6. med一样
  7. 都是ebgp,或者都是ibgp
  8. as内部的cost一样
  9. as_path一样

路由反射

peer 10.1.1.1 reflect-client        将邻居1.1设置为自己的客户端

常用属性

13种

公认必遵:

所有路由器都认识这些属性,update报文里必须有

origin:

  • i(通过network将igp的路由引入bgp路由表里)
  • e(路由从EGP协议学来,不常见,可以用路由策略修改)
  • ?(通过其他方式学的路由,使用import引入)

as_path:

  • as_sequence
  • as_set
  • as_confed_sequence  用于联盟
  • as_confed_set

一开始as内部传递bgp路由的update报文里不带as-path,当出去的时候才加上

next_hop:

as内传递bgp路由的时候不修改下一条,能避免环路

公认任意:

路由器都认识,报文里可以没有 

local_pref:用于as内部,判断流量离开as时的最佳路,大的优先,默认100

atomic_aggregate:原子聚合,当聚合命令(携带detail-suppress,且不带suppress-policy),聚合后的路由会出现这个属性,警告他人出现信息丢失,防环

可选过渡:

如果路由器不认识,可以发给其他人 

aggregator:防环,包含发起聚合设备的as号和router-id

community

可选非过渡:

如果不认识,发出去就去掉这个属性 

med:as间,发给一个as后,这个as不会再发出去,告诉对方如何进入as,默认是0,小的优先

preference_value:本地配置有效

收且处理路由

如果都是bgp路由,优先级都一样,看下面

下一条不可达,不优

  1. pref_val值最大(首选值weight,华为私有的属性,本地有效,不会发给其他人)
  2. local_pref最大的
  3. 手动聚合>自动聚合>network>import>从邻居学到的
  4. as_path最短的
  5. origin:I>E>?
  6. 对于来自同一as的路由,优先med小的
  7. 从EBGP学来的(EBGP>IBGP)
  8. as内部IGP的cost值小的(到下一条的cost)
  9. 以上都一样,可以开启负载分担,默认不开启
  10. cluster_list (rr的router id)最短,经过的rr最少的,防止集群间环路
  11. orginator(产生这个路由的rr的router id)最小,防止集群内环路
  12. router id最小的路由器的发布的路由
  13. 邻居地址较小

改属性(用acl匹配) 

用ip-prefix 

dis route-policy

路由聚合

手动聚合:

bgp 200

        aggregate 10.2.0.0 16 detail-suppressed        加上就不发明细,抑制明细

发一部分明细:为了部署路由策略

aggregate 10.2.0.0 16 detail-suppressed suppress-policy name1      抑制一部分明细

或者不写detail-suppressed ,效果一样

被前缀列表匹配的抑制

自动聚合:

只对import的路由聚合,聚合后的路由是主类路由,比如:A类10.0.0.0

bgp 200

        summary automatic        默认不发聚合前的明细路由

静态聚合:

写个静态,只是为了使聚合后的路由再路由表里有

ip route-static 10.1.0.0 16 null 0        null是垃圾接口

然后宣告聚合后的

bgp 200

net 10.1.0.0 16

聚合后出现环路

as-path有序

用as-set,没有顺序,携带聚合之前的as号,聚合后as号不会消失

如果携带as-set,路由会携带所有as信息,当明细路由震荡,会导致聚合路由频繁刷新

不带as-set,可能出环路

automic-aggregate属性:原子聚合,当聚合命令(携带detail-suppress,且不带suppress-policy),聚合后的路由会出现这个属性,警告他人出现信息丢失,防环

aggregator属性:防环,包含发起聚合设备的as号和router-id

community

共有属性:

internet:默认,给任何人

NO_advertise:不给任何人

NO_export:不给ebgp邻居,不发出as

NO_Export_subconfed

私有:都可以用共有属性

带冒号的100:1 或者 数字8520

在发送报文时,默认community不带

dis bgp ro community        查看带commuty属性的路由

用community-filter筛选报文

因为聚合时,团体属性会丢失,在聚合时给聚合路由加community属性

向邻居发布缺省

ebgp环回口建立邻居

改ttl

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值