BGP安全特性(华为设备)

安全特性概述:

在这里插入图片描述

  1. MD5:BGP使用TCP作为传输层协议,为提高BGP的安全性,可以在建立TCP连接时进行MD5认证。但BGP的MD5认证并不能对BGP报文认证,它只是为TCP连接设置MD5认证密码,由TCP完成认证。如果认证失败,则不建立TCP连接。对于认证,不会立刻断开邻居关系,而是像ISIS一样,一旦无法识别对方的认证,但是无法立刻断开,而是需要等待hold时间之后断开邻居关系。
  2. GTSM(Generalized TTL Security Mechanism):GTSM通过检测IP报文头中的TTL值是否在一个预先定义好的特定范围内,对IP层以上业务进行保护,增强系统的安全性。使能BGP的GTSM策略后,接口板对所有BGP报文的TTL值进行检查。根据实际组网的需要,对于不符合TTL值范围的报文,GTSM可以设置为通过或丢弃。配置GTSM缺省动作为丢弃时,可以根据网络拓扑选择合适的TTL有限值范围,不符合TTL值范围的报文会被接口板直接丢弃(默认值为【1-255都可以】),这样就避免了网络攻击者模拟的“合法”BGP报文发送到设备的179端口占用CPU。该功能与EBGP多跳互斥,此功能一般也配置在IBGP邻居之间,EBGP邻居一般为TTL为1不进行修改。当然,这个功能在OSPF中也存在。
  3. 限制从对等体接收的路由数量,防止资源耗尽性攻击。
  4. AS_Path长度保护。通过在入口和出口两个方向对AS_Path的长度进行限定,直接丢弃AS_Path超限的报文。

认证:

一、配置MD5认证:

  1. 执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
  2. 执行命令peer { ipv4-address | group-name | ipv6-address } password { cipher cipher-password | simple simple-password },配置MD5认证密码。

相应报文,我们可以看到在使用了MD5对TCP进行加密并且处于connect状态中,尝试TCP的重新连接。
在这里插入图片描述
说明: 为防止BGP对等体所设置的MD5密码被破解,需要周期性的更新MD5认证密码。BGP MD5认证与BGP Keychain认证互斥。

二、配置Keychain认证:

  1. 执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
  2. 执行命令peer { ipv4-address | group-name | ipv6-address } keychain keychain-name,配置Keychain认证。
    说明: BGP对等体两端必须都配置针对使用TCP连接的应用程序的Keychain认证,且配置的Keychain必须使用相同的加密算法和密码,才能正常建立TCP连接,交互BGP消息。Keychain认证推荐使用SHA256和HMAC-SHA256加密算法。BGP MD5认证与BGP Keychain认证互斥。

小实验:
在这里插入图片描述
现在用R1和R2的两个物理接口之间建立相应的邻居关系,并且配置了相应的默认路由,保证可达了,R1和R2之间进行keychain的认证。

在R1上:
先全局配置keychain:
keychain gok mode periodic daily //按照每天来发
key-id 1 //双方的Key-id需要相同
algorithm md5 //设置加密方式
key-string plain 123456ok //设置密码
send-time daily 08:00 to 09:00 //设置每天发生认证的时间
在BGP进程中调用peer 10.1.2.1 keychain huawei在R2上:

在R2上进行类似的配置即可。

BGP GTSM功能:

相关配置:

  1. 执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
    说明: GTSM和peer ebgp-max-hop功能均与BGP报文的TTL值相关,只能对同一对等体或对等体组使能两种功能中的一种。
  2. 执行命令peer { group-name | ipv4-address | ipv6-address } valid-ttl-hops [ hops ],配置BGP GTSM功能。
    缺省情况下,BGP对等体(组)上未配置GTSM功能。

我们将TTL值设置为255,也就是表示必须为直连BGP邻居发来的TCP建立请求我才和它进行BGP邻居关系的建立(TTL发送的第一跳默认是255,当设备进行转发到不同的网段时再减少,如果减小到0就表示不可达,出现了环路)。

实验:
在这里插入图片描述
现在用R1和R2的两个物理接口之间建立相应的邻居关系,最后互相接收的报文的是TTL值为254,我们在R1上配置TTL值必须为255,然后观察TCP连接是否会端口:接收TTL的计算公式:【255-配置+1,255】,默认为【1,255】,所以我们将配置值设置为1,表示只接收TTL为255 的报文:peer 10.1.2.1 valid-ttl-hops 1

然后当holdtime超时后,连接断开(先断开的那边给对端发送notification消息):
在这里插入图片描述
执行命令display bgp peer verbose,查看BGP对等体的认证详细信息:
在这里插入图片描述
我们可以看到BGP的各种参数,包括加密方式,有效的ttl值,TCP连接超时时间,对等体的RID等。

限制接收对等体的最大数量:

当设备遭到恶意攻击或者网络中出现错误配置时,会导致BGP从邻居接收到大量的路由,从而消耗大量路由器的资源。因此管理员必须根据网络规划和路由器容量,对运行时所使用的资源进行限制。BGP提供了基于对等体的路由控制,限定邻居发来的路由数量,这样可以避免上述问题。

  1. 执行命令system-view,进入系统视图。
  2. 执行命令bgp as-number,进入BGP视图。
  3. 执行命令ipv4-family unicast,进入IPv4单播地址族视图。
  4. 执行命令peer { group-name | ipv4-address } route-limit limit [ percentage ] [ alert-only | idle-forever | idle-timeout minutes ],设置允许从对等体(组)收到的路由数量。
    该命令提供Peer级的控制,并可根据实际需求选择配置具体参数,来控制Peer路由数超限后的行为:
    • 设置alert-only参数:邻居不中断连接也不再接收超限后的路由,产生告警并记入日志。
    • 设置idle-forever参数:邻居中断连接,不自动重新尝试建连,产生告警并记入日志。此时通过display bgp peer [ verbose ]查看,可见peer的状态为Idle。如果需要恢复BGP连接,可执行命令reset bgp。
    • 设置idle-timeout参数:邻居中断连接,定时器到时后重新尝试建连,产生告警并记入日志。此时通过display bgp peer [ verbose ]查看,可见peer的状态为Idle。如果需要在定时器到时前恢复BGP连接,可执行命令reset bgp。
    • 如果不设置以上三个参数:邻居断连,30秒后重新尝试建连,产生告警并记入日志。

AS长度保护:

目的是限制AS号的最大个数,对于AS过长的条目不进行接收。

配置AS_Path属性中AS号的最大个数

  1. 执行命令system-view,进入系统视图。
  2. 执行命令bgp as-number,进入BGP视图。
  3. 执行命令as-path-limit as-path-limit-num,配置AS_Path属性中AS号的最大个数。
    配置as-path-limit命令后,接收路由时会检查AS_Path属性中的AS号是否超限。如果超限则丢弃路由,因此,AS_Path属性中AS号的最大个数被限制得过小,会造成路由的丢失。

参考资料:华为hedex文档

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值