您现在的位置:首页 > >

BGP安全特性(华为设备)

发布时间:

安全特性概述:


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

认证:

一、配置MD5认证:


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

相应报文,我们可以看到在使用了MD5对TCP进行加密并且处于connect状态中,尝试TCP的重新连接。

说明: 为防止BGP对等体所设置的MD5密码被*猓枰芷谛缘母翸D5认证密码。BGP MD5认证与BGP Keychain认证互斥。


二、配置Keychain认证:


    执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。执行命令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功能:

相关配置:


    执行命令bgp { as-number-plain | as-number-dot },进入BGP视图。
    说明: GTSM和peer ebgp-max-hop功能均与BGP报文的TTL值相关,只能对同一对等体或对等体组使能两种功能中的一种。执行命令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提供了基于对等体的路由控制,限定邻居发来的路由数量,这样可以避免上述问题。


    执行命令system-view,进入系统视图。执行命令bgp as-number,进入BGP视图。执行命令ipv4-family unicast,进入IPv4单播地址族视图。执行命令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号的最大个数


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

参考资料:华为hedex文档


热文推荐
猜你喜欢
友情链接: