BGP属性与路径基础

BGP特点

  • 使用TCP作为传输层协议(端口号为 179 )
  • 只传递路由信息,不传递链路状态
  • 使用触发式更新
  • 路由策略丰富
  • 能承载大批量的路由信息,能够支撑大规模网络。

BGP对等体建立

两端是否属于同一个区域,是则为IBGP,不是则为EBGP
建立对等体关系时可以使用物理接口建立,也可以使用loopbac接口建立

EBGP对等体

建议使用物理接口进行建立
默认TTL值为1,使用loopback接口建立时,需要更改TTL值

①使用物理接口建立:

[AR1]bgp 100
[AR1-bgp]router-id 1.1.1.1   
[AR1-bgp]peer 10.0.12.2 as-number 200

②使用loopback接口建立:

[Ar4]bgp 200       
[Ar4-bgp]router-id 4.4.4.4  
指定router id

[Ar4-bgp]peer 5.5.5.5 as-number 300    
[Ar4-bgp]peer 5.5.5.5 connect-interface loopback0         
如果使用loopback接口建立对等体,必须要指明建立对等体的接口

[Ar4-bgp]peer 5.5.5.5  ebgp-max-hop    
EBGP建立对等体关系默认发出报文TTL值为1,如果用loopback接口建立,到达loopback接口TTL值变成0,此时报文会丢弃,所以需要更改接口的TTL,
ebgp-max-hop命令可以直接设置TTL,至少设置为2,如果不设置,此时TTL值为255

IBGP对等体

建议使用loopback接口建立(更稳定)
IBGP建立对等体关系,发送报文TTL值为255,所以不用考虑TTL不可达问题

①使用loopback接口建立:

[Ar4]bgp 200    
[Ar4-bgp]peer 2.2.2.2 as-number 200  
[Ar4-bgp]peer 2.2.2.2 connect-interface loopback0

②使用物理接口建立:

[Ar4]bgp 200      
[Ar4-bgp]peer 10.0.34.4 as-number 200

BGP对等体关系建立过程

报文

在这里插入图片描述
Hold Time:保持时间。如果在这个时间内未收到对端发来的Keepalive报文或Update报文,则认为BGP连接中断。 默认180s为keepalive的三倍

邻居状态机

在这里插入图片描述
在这里插入图片描述

BGP路由的生成

BGP路由可通过三种方式生成

  • network
    逐条在BGP协议中注入路由,注入的路由必须是路由器的路由表存在的路由
  • import-route
    将某个协议的路由引入到路由表中,直连路由、静态路由、OSPF路由、IS-IS路由等
  • 路由聚合
    bgp 200
    aggregate 10.1.0.0 22 detail-suppressed

BGP的通告原则

1. 只发布最优路由

在路由信息中 * 代表下一跳可达,> 代表最优路由
只发布下一跳可达、最优路由
可通过display bgp routing-table命令可以查看BGP路由表。

在这里插入图片描述

2. 从EBGP对等体获取的路由,会发布给所有对等体。

R2会把从R1学习到的所有路由传递给除R1之外的对等体

在这里插入图片描述

3. 从IBGP对等体获取的路由,不会发送给IBGP对等体(又名为IBGP水平分割)

R1不会把从R2学到的路由通告给R3

在这里插入图片描述

4. BGP同步规则

从IBGP对等体学习到的路由,它不能使用该路由,也不会通告给自己的EBGP对等体,除非又从IGP协议(例如OSPF等,包括静态路由)中学习到这条路由
此处不会通告是因为直接从IBGP学习到的下一跳不可达,不能进行通告,使用其他手段比如IGP学习到之后就下一跳可达。
R3会把从非直连IBGP对等体R2学习到的路由通告给R5

在这里插入图片描述

路由黑洞

如上图R3向R1转发时,R1上没有学习到引入的BGP路由,无法进行转发。

解决方法

  • BGP–IGP互相引入
    该方法不建议,BGP路由太多会影响IGP的路由计算
  • IBGP全互联
  • MPLS

路由反射器

作用:解决IBGP全互联的问题
效果:非非不传
1、RR从EBGP学习到的,会发送给client和非client
2、RR从非client学习到的路由,会反射给自己的client,但是不会给非client
3、RR从client学习到的路由,会反射给自己的非client和client

路由反射器中的防环:Originator_ID,Cluster_List
RR将一条BGP路由进行反射时会在反射出去的路由中增加Originator_ID,其值为本地AS中通告该路由的BGP路由器Router ID。
若AS内存在多个RR,则Originator_ID属性由第一个RR创建,并且不被后续的RR(若有)所更改。

当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。

路由反射簇包括反射器RR及其Client。一个AS内允许存在多个路由反射簇(如下图)。
每一个簇都有唯一的簇ID(Cluster_ID,缺省时为RR的BGP Router ID )。
当一条路由被反射器反射后,该RR(该簇)的Cluster_ID就会被添加至路由的Cluster_list属性中。
当RR收到一条携带Cluster_list属性的BGP路由,且该属性值中包含该簇的Cluster_ID时,RR认为该条路由存在环路,因此将忽略关于该条路由的更新。

配置

在RR路由器上配置:
Bgp 200
     peer 6.6.6.6 reflect-client   --谁是client,就peer谁

缺省情况下,每个路由反射器使用自己的Router ID作为集群ID。
[Huawei-bgp] reflector cluster-id  20.2.2.2


BGP属性分类

优先级顺序

  • PL LAO MEN-漂亮老男人
    P L L A O M E N 漂亮老男人
    p—Preference Value (越大越优,仅限路由器本地)
    L— Local Preference,本地优先级 (越大越优,同一AS内的路由器)
    ——————————上面的越大越优——————————
    L— 手动聚合->自动聚合->network->import,为本地始发
    ——————————下面的越小越优——————————
    A —AS Path (短的优先)
    O —Origin,起源i(network)>e(EBGP)>? (import-route)
    M—MED (值越小越优,本AS内或上游AS内所有路由器,EBGP邻居上设置)
    E— EBGP优于IBGP (前面都一样,比不出最优路径时)
    N— Next-Hop,下一跳(BGP选择IGP下一跳cost值最小的)

在这里插入图片描述

AS_PATH

路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS_Path不会发生改变。

  • 作用
    确保路由在EBGP对等体之间传递无环,同时也是路由优选的衡量标准之一;

  • 防环机制
    路由每经过一个AS就会在AS_path中记录经过的AS 号,当路由器收到update报文,检查发现AS_path中含有本AS号,不接收该路由,从而防止了路由环路的产生。

  • 路由优选
    收到同一个网段多条路,比较AS_path属性,哪条路由的AS_Path属性值较短,也即AS号的个数更少,就优选哪条路由。

  • 类型

  • AS_SEQENCE:AS在传递时是有序的,默认就是该类型
  • AS_SET:无序的,在做路由聚合时可以使用该类型。路由聚合解决了两类问题,一是减轻了设备的负担,二是隐藏了明细的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险,为此可以通过AS_SET类型的AS_Path属性携带聚合前的AS路径信息。
  • 修改命令
    在这里插入图片描述

Origin

当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP > EGP > Incomplete。也就是i > e > ?

在这里插入图片描述
在这里插入图片描述

Next hop

  1. BGP路由器在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
  2. BGP路由的始发路由器上,本端查看BGP路由表下一跳是0.0.0.0
  3. BGP路由器将本地始发路由发布给IBGP对等体时,会把该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址
  4. 路由器在收到EBGP对等体所通告的BGP路由后,在将路由传递给自己的IBGP对等体时,会保持路由的Next_Hop属性值不变

IBGP在进行路由传递时,下一跳地址 不变会造成路由不可达这种情况,可以使用一下命令修改
[AR2-bgp]peer 4.4.4.4 next-hop-local

  1. 如果路由器收到某条BGP路由,该路由的Next_Hop属性值EBGP对等体(更新对象)同属一个网段,那么该条路由的Next_Hop地址将保持不变并传递给它的BGP对等体。

Local Preference

Local_Preference即本地优先级属性,只在本地生效,可以被传递给IBGP对等体,而不能传递给EBGP对等体。

缺省值为100,越大越优
load preference 属性不会通告给EBGP对等体,所以查看是为空

  • 注意事项:
    Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGP对等体间传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性中携带了Local_Preference,则会进行错误处理。
    但是可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。
    使用bgp default local-preference命令修改缺省Local_Preference值,该值缺省为100。
    路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺省Local_Preference值(100),然后再将路由传递给自己的IBGP对等体。
    本地使用network命令及import-route命令引入的路由, Local_Preference为缺省值100,并能在AS内向其他IBGP对等体传递,传递过程中除非受路由策略影响,否则Local_Preference不变

Community

Community属性为可选过渡属性,是一种路由标记,用于简化路由策略的执行。
可以将某些路由分配一个特定的Community属性值,之后就可以基于Community值而不是网络前缀/掩码信息来匹配路由并执行相应的策略了。

在这里插入图片描述

MED(Multi-Exit Discriminator,多出口鉴别器)

是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径
MED属性值越小则BGP路由越优
可以开启不同区域的med值进行比较

注意事项

  • 缺省情况下,路由器只会比较来自同一相邻AS的BGP路由的MED值
  • 如果BGP路由本地始发(本地通过network或import-route命令引入),缺省携带MED属性发送给EBGP对等体。
    并通过network或import-route的方式将IGP路由引入BGP,产生的BGP路由的MED值继承路由在IGP中的metric。
  • 如果该BGP路由为从BGP对等体学习到,那么该路由传递给EBGP对等体时缺省不会携带MED属性。
  • 在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED值在传递过程中不发生改变也不会丢失。

可以使用default med命令修改缺省的MED值,default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。

Preferred-Value

是华为设备的特有属性,该属性仅在本地有效。当BGP路由表中存在到相同目的地的路由时,将优先选择Preferred-Value值高的路由。
取值范围:0~65535;该值越大,则路由越优先。
Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传递给任何BGP对等体。

Atomic_Aggregate及Aggregator

Aggregator属性记录了聚合设备的AS号、Router ID,同时通过Atomic-Aggregate属性标明该路由为聚合路由。
自动聚合不能聚合network引入的,只会聚合成自然路由,例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值