BGP---BGP的拓展特性和增强特性

BGP扩展特性

1.安全特性

MD5认证

BGP使用TCP作为传输层协议,

为提高BGP的安全性,在建立TCP连接时进行MD5认证

BGP的MD5认证并不能对BGP报文认证

在TCP连接设置MD5认证密码,由TCP完成认证。如果认证失败,则不建立TCP连接。(自然导致BGP邻居无法建立)

两种认证方式

  • 普通密码认证
  • kechain认证

配置

##普通密码认证
[AR1-bgp]peer  2.2.2.2 password cipher 密码
##kechian认证
[AR1-bgp]peer  2.2.2.2 kechain 名字
kechain

keychain是加密规则(key)的集合。它可以为应用程序提供认证功能,在认证过程中,keychain可以动地更改认证算法和密钥。keychain在不中断业务的前提下,通过定期更改认证加密的密钥和算法,提升网络数据传输的安全性

  • 长期使用同一个认证规则容易被非法用户破解,keychain可以集中控制所有认证过程,并且能够在认证过程中动态更改认证算法和密钥

keychain的配置

###1.创建keychain
##创建名字为huawei的keychain并且进入,指定kechian生效模式为周期生效、一周一次
[RouterA] keychain huawei mode periodic weekly 
##配置Keychain认证的TCP类型值。
[RouterA-keychain-huawei] tcp-kind 182
##配置TCP认证加密算法与算法ID的对应关系
[RouterA-keychain-huawei] tcp-algorithm-id sha-256 17
##配置Keychain的接收容忍时间
[RouterA-keychain-huawei] receive-tolerance 100

###2.配置key
##进入key-id 1的视图
[RouterA-keychain-huawei] key-id 1
##配置key采用的认证加密算法
[RouterA-keychain-huawei-keyid-1] algorithm sha-256
##配置key的认证加密的密钥
[RouterA-keychain-huawei-keyid-1] key-string cipher Huawei@1234
##配置发送时间。创建Keychain时,选择的时间模式不同,配置发送时间的命令也不同
[RouterA-keychain-huawei-keyid-1] send-time day fri sat
##配置接收时间。创建Keychain时,选择的时间模式不同,配置接收时间的命令也不同
[RouterA-keychain-huawei-keyid-1] receive-time day fri sat
##配置该key为缺省发送key
[RouterA-keychain-huawei-keyid-1] default send-key-id
[RouterA-keychain-huawei-keyid-1] quit
[RouterA-keychain-huawei] quit

##3.配置应用keychain
[RouterA]bgp 100
[RouterA-bgp] peer x.x.x.x keychain huawei

GTSM

检测IP报头中的TTL值是否在一个预先设置好的范围内,对IP层以上业务进行保护增强系统的安全性

使能GTSM后,接口对所有BGP报文的TTL值进行检查

  • 对不符合TTL值范围的报文可以设置通过或丢弃(默认为丢弃)

避免了网络攻击者模拟的“合法”BGP报文占用CPU

注意:GTSM功能和EBGP多跳不能同时使用

配置

##配置GTSM的动作
[AR1]gtsm default-action drop/pass	##drop丢弃,pass通过
##
[AR1-bgp]peer  2.2.2.2 valid-ttl-hops 1	

限制从对等团体接收的路由数量

防止资源耗尽性攻击

配置

[AR1-bgp]peer  2.2.2.2  route-limit 10 

在这里插入图片描述

AS_Path长度保护

通过在入口和出口两个方向对AS_Path的长度进行限定,直接丢弃AS_Path超限的报文

配置

[AR6-bgp]as-path-limit 5

在这里插入图片描述

2.路由衰减

解决路由不稳定的问题,BGP主要应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由震荡带来的不利影响,BGP使用路由衰减来抑制不稳定的路由

如何实现抑制不稳定的路由
  • 使用惩罚值(penalty value)来衡量一条路由的稳定性
  • 惩罚值越高说明路由越不稳定,最高为16000,路由没发生一次震荡,增加1000惩罚值,惩罚值超过抑制阈值(Suppress Value)2000时,路由被抑制
    • 震荡:路由从激活状态变为未激活状态。实际中就是先network,再取消
    • 路由被抑制:路由不加入到路由表中,也不再向其他BGP对等体发布更新报文
  • 当路由惩罚值达到最大抑制值(Maximum suppress Value)16000,不会再增加
    • 确保路由在非常短的时间内震荡十几次后,不会将惩罚值累计到一个很高的、持续保持被抑制状态的值
  • 被抑制的路由经过一段时间没有震荡,惩罚值减半,称为半衰期(Half-life),默认15分钟
  • 当惩罚值降到再使用阈值(reuse value)750时,路由变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文

路由衰减只适用于EBGP路由,对于从IBGP收到的路由不能进行衰减

  • 因为IBGP路由大多含有本AS路由,内部IGP网络要求AS内部路由表尽可能抑制。
  • 如果路由衰减对IBGP路由起作用,那么当不同设备的衰减参数不一致时,将会导致路由表不一致

在这里插入图片描述

注意

惩罚值、抑制阈值、半衰期都可以手动调整

配置

[AR1]BGP 100
[AR1-bgp]dampening
##查看抑制路由
display bgp routing-table dampening parameter

在这里插入图片描述

被抑制的路由都会带有h

在这里插入图片描述

BGP增强特性

1.BGP ORF

作用:基于本地入口策略构建对端出口策略,实现BGP按需发布路由

优点:BGP邻居根据这些策略构建出口策略,在路由发送时对路由进行过滤,避免了本端设备接收大量无用路由,降低本端设备的CPU使用率,减少BGP邻居的配置工作、降低了链路带宽的占用率。

实现:基于前缀的路口策略打包进route-refresh报文中发送给邻居,邻居会构建出口策略

由open报文的扩展能力协商,以支持ORF功能

在这里插入图片描述

配置

peer X.X.X.X capability-advertise orf ip-prefix both	##双方设备都要配置
##ip-prefix:使用ip-prefix路由过滤策略
##both:允许发送和接收ORF报文
查看从邻居x.x.x.x接收的路由/发送的路由
display bgp routing-table peer x.x.x.x accept-route/adv-route

2.Active-Route-Advertise

默认情况下路由只需在BGP路由表中优选即可发送给邻居

开启此特性后,路由必须同时满足BGP路由表优选IP路由表活跃(即此路由在IP路由表中是IBGP或者EBGP路由)两个条件,才能向邻居发布

配置

bgp 100
active-route-advertise

注意:与命令bgp-rib-only(用来禁止BGP路由下发到IP路由表)互斥。

3.4字节AS号

将AS号编码范围由2字节扩大为4字节

协议扩展
  • 定义一种新的open能力码用于进行BGP的能力协商
  • 2种新的可选过渡属性,AS4_path、AS4_Aggregator属性
  • 定义AS_TRANS(保留值为23456),用于衔接2字节和4字节
新AS号的三种写法
  • splain整数形式:一个十进制数字

  • asdot+点分形式:”2字节 . 2字节“ 形式,最大为:65535.65535

    • 2字节AS 4字节AS
      123 0.123
      65536 1.0
  • asdot:旧的2字节写法照旧,新的4字节写成asdot+形式

整数形式与点分形式的转化: X*65536+Y=X.Y (左边为整数形式、右边为点分形式)

角色
  • New Speaker:支持四字节AS号扩展能力的对等体
  • Old Speaker:不支持四字节AS号扩展能力的对等体
  • New Session:New Speaker之间建立的BGP连接
  • Old Session:New Speaker和Old Speaker之间或者Old Speaker之间建立的BGP连接

当拓扑中存在支持4字节AS的设备和只支持2字节AS的设备时,会有两张AS_path表

  • 支持4字节的可以动两张表
    • 将自己的4字节AS写入AS4_path
    • 将AS_TRANS(23456)写入AS_path
  • 不支持4字节的设备只能动AS_path表
    • 将字节2字节AS写入AS_path

每台支持4字节AS的设备都可以将AS_path表与AS4_path表结合还原

在这里插入图片描述
R2收到R1的一条四字节AS的路由,AS号码为10.1;

R2与R3建立邻居,需要令R3认为R2的AS号为AS_TRANS;

R2发送路由给R3的时候把AS_TRANS记录在AS_Path里面,把10.1与自己的AS号码20.1按照BGP要求的顺序记录在AS4_Path;

R3对于不识别的属性AS4_Path不作处理依然保留,它只按照BGP的规则来发送路由给RD。当然它认为R4的AS号码也是AS_TRANS;

这样当R4收到从R3来的路由会把AS_PATH中的AS_TRANS按照顺序替换为AS4_Path里所记录的相应的地址,在R4上把AS_PATH属性还原为30 20.1 10.1

4.按策略进行下一跳迭代

BGP需要对非直连的下一跳进行迭代,如果不对迭代到的路由进行过滤的话可能会迭代到一个错误的转发路径上

在这里插入图片描述
此场景里面

条件:

  • 当R1想去访问10.0.0.0/24网段

  • 路由优选R2的2.2.2.2为下一跳

此时如果R2上的2.2.2.2路由被撤销了

  • R1身上会使用原始的下一跳2.2.2.2在IP路由表种进行最长掩码匹配迭代
  • 结果会迭代到E0/0/0端口的2.2.2.0/24网段,从e0/0/0接口发出
  • 但是此时用户期望的是当2.2.2.2路由不可达时,可以重新选路优选到3.3.3.3的路由

实际上该故障主要是由于BGP收敛引起的,从而产生了路由的瞬时黑洞

按策略进行下一跳迭代就是通过配置策略路由来限制迭代到的路由。如果路由不能通过策略,则该路由迭代失败

解决方法:
写一条策略,只允许迭代到掩码为32位的路由

配置

nexthop recursive-lookup  route-policy\ip-prefix

5.下发默认路由

peer X.X.X.X  default-route-advertise   ##直接针对邻居下发默认路由
##当设备中存在某些路由,并且是同时存在才会下发默认路由
peer 10.1.68.6 default-route-advertise conditional-route-match-all + 条件   
##当设备中存在某些路由,只需要满足其中一条路由存在就可以下发默认路由
peer 10.1.68.6 default-route-advertise conditional-route-match-any + 条件    
posted @ 2021-04-10 19:00  dragon's  阅读(846)  评论(0)    收藏  举报