边界网关协议BGP实践课(16)—MD5认证和Keychain认证

1.1   概述

BGP认证分为MD5认证和Keychain认证,对BGP对等体关系进行认证是提高安全性的有效手段。MD5认证只能为TCP连接设置认证密码,而Keychain认证除了可以为TCP连接设置认证密码外,还可以对BGP协议报文进行认证。
本期文章结合实际案例总结分享BGP认证。

1.2   BGP组网案例-BGP认证

1.2.1   组网拓扑图及地址规划

组网拓扑图和地址规划如下图所示。 备注:模拟器采用HCL 5.5.0
 
 

 


1.2.2   组网设备基础配置

 

组网设备基础配置主要涉及设备命名、接口IP地址相关配置。
#SW_1设备基础配置
[H3C]sysname SW_1
[SW_1]interface LoopBack0
[SW_1-LoopBack0] ip address 10.10.0.1 255.255.255.255
[SW_1]interface GigabitEthernet1/0/2
[SW_1-GigabitEthernet1/0/2] port link-mode route
[SW_1-GigabitEthernet1/0/2] ip address 10.10.12.1 255.255.255.252
[SW_1-GigabitEthernet1/0/2]quit
[SW_1]
#SW_2设备基础配置
[H3C]sysname SW_2
[SW_2]interface LoopBack0
[SW_2-LoopBack0] ip address 10.10.0.2 255.255.255.255
[SW_2-LoopBack0]quit
[SW_2]interface GigabitEthernet1/0/2
[SW_2-GigabitEthernet1/0/2] port link-mode route
[SW_2-GigabitEthernet1/0/2] ip address 10.10.12.2 255.255.255.252
[SW_2-GigabitEthernet1/0/2]quit

1.2.3   组网设备BGP配置

#SW_1设备BGP配置
[SW_1]bgp 10
[SW_1-bgp-default] router-id 10.10.0.1
[SW_1-bgp-default] peer 10.10.12.2 as-number 10
[SW_1-bgp-default] #
[SW_1-bgp-default] address-family ipv4 unicast
[SW_1-bgp-default-ipv4]network 10.10.0.1 255.255.255.255 
[SW_1-bgp-default-ipv4]peer 10.10.12.2 enable
[SW_1-bgp-default-ipv4]quit
[SW_1-bgp-default]quit
[SW_1]#
#SW_2设备BGP配置
[SW_2]bgp 10
[SW_2-bgp-default] router-id 10.10.0.2
[SW_2-bgp-default] peer 10.10.12.1 as-number 10
[SW_2-bgp-default] #
[SW_2-bgp-default] address-family ipv4 unicast
[SW_2-bgp-default-ipv4]peer 10.10.12.1 enable
[SW_2-bgp-default-ipv4]network 10.10.0.2 255.255.255.255
[SW_2-bgp-default-ipv4]quit
[SW_2-bgp-default]quit
[SW_2]#


1.3   BGP-MD5认证


#SW_1设备BGP-MD5认证配置
[SW_1]bgp 10
[SW_1-bgp-default]peer 10.10.12.2 password simple admin
[SW_1-bgp-default]quit
[SW_1]#
#SW_2设备BGP-MD5认证配置
[SW_2]bgp 10
[SW_2-bgp-default]peer 10.10.12.1 password simple admin
[SW_2-bgp-default]quit
[SW_2]#
在SW_1设备的接口G1/0/2抓取SW_1设备向SW_2设备发送的BGP更新报文如下图所示。
从下图可知;TCP选项值存在“TCP Option - TCP MD5 signature”及相应的“MD5 digest”。

 

1.4   BGP-Keychain认证

1.4.1   Keychain配置


Keychain配置注意事项
同一个keychain内的各个key使用send-lifetime utc指定的生命周期不可重叠,以确保在同一时刻,应用程序只使用一个key对发送的报文进行校验。
认证双方在同一时间内所使用的key的认证算法和认证密钥必须一致。
#SW_1设备Keychain配置
#配置名称为admin_SW_1的keychain,并指定其工作于绝对时间模式。
[SW_1]keychain admin_SW_1 mode absolute
#配置TCP增强认证选项中的类型值
#缺省情况下,TCP增强认证选项中的类型值为254
#当使用TCP作为传输层协议与友商设备互通时,本端和对端的类型值必须一致。如果不一致,则需要在本端配置本命令
[SW_1-keychain-admin_SW_1] tcp-kind 101
#配置TCP认证算法对应的算法ID
#缺省情况下,MD5认证算法的算法ID是3,HMAC-MD5认证算法的算法ID是5
#当使用TCP作为传输层协议与友商设备互通时,本端和对端的类型值必须一致。如果不一致,则需要在本端配置本命令
[SW_1-keychain-admin_SW_1] tcp-algorithm-id hmac-sha-256 6
# 在keychain admin_SW_1中创建key 1和key 2,并配置其认证算法、认证密钥和生命周期。
[SW_1-keychain-admin_SW_1] key 1
#配置认证密钥
[SW_1-keychain-admin_SW_1-key-1]key-string plain admin
#配置认证算法
[SW_1-keychain-admin_SW_1-key-1]authentication-algorithm md5
#配置用来校验发送报文时key的UTC模式的生命周期
[SW_1-keychain-admin_SW_1-key-1]send-lifetime utc 16:00:00 2023/01/13 to 16:00:00 2023/01/15
#配置用来校验接收报文时key的UTC模式的生命周期
[SW_1-keychain-admin_SW_1-key-1]accept-lifetime utc 16:00:00 2023/01/13 to 16:00:00 2023/01/15
[SW_1-keychain-admin_SW_1-key-1] key 2
[SW_1-keychain-admin_SW_1-key-2]  key-string plain admin
[SW_1-keychain-admin_SW_1-key-2]  authentication-algorithm hmac-sha-256
[SW_1-keychain-admin_SW_1-key-2]  send-lifetime utc 16:00:00 2023/01/15 to 16:00:00 2023/01/16
[SW_1-keychain-admin_SW_1-key-2]  accept-lifetime utc 16:00:00 2023/01/15 to 16:00:00 2023/01/16
[SW_1-keychain-admin_SW_1-key-2]quit
[SW_1-keychain-admin_SW_1]quit
[SW_1]#
#SW_2设备Keychain配置
[SW_2]keychain admin_SW_2 mode absolute
[SW_2-keychain-admin_SW_2] tcp-kind 101
[SW_2-keychain-admin_SW_2] tcp-algorithm-id hmac-sha-256 6
[SW_2-keychain-admin_SW_2] key 1
[SW_2-keychain-admin_SW_2-key-1]  key-string plain admin
[SW_2-keychain-admin_SW_2-key-1]  authentication-algorithm md5
[SW_2-keychain-admin_SW_2-key-1]  send-lifetime utc 16:00:00 2023/01/13 to 16:00:00 2023/01/15
[SW_2-keychain-admin_SW_2-key-1]  accept-lifetime utc 16:00:00 2023/01/13 to 16:00:00 2023/01/15
[SW_2-keychain-admin_SW_2-key-1] key 2
[SW_2-keychain-admin_SW_2-key-2]  key-string plain admin
[SW_2-keychain-admin_SW_2-key-2]  authentication-algorithm hmac-sha-256
[SW_2-keychain-admin_SW_2-key-2]  send-lifetime utc 16:00:00 2023/01/15 to 16:00:00 2023/01/16
[SW_2-keychain-admin_SW_2-key-2]  accept-lifetime utc 16:00:00 2023/01/15 to 16:00:00 2023/01/16
[SW_2-keychain-admin_SW_2-key-2]quit
[SW_2-keychain-admin_SW_2]quit
[SW_2]#


1.4.2   BGP-keychain认证配置

[SW_1]bgp 10
[SW_1-bgp-default] peer 10.10.12.2 keychain admin_SW_1
[SW_1-bgp-default]quit
[SW_1]#
#
[SW_2]bgp 10
[SW_2-bgp-default] peer 10.10.12.1 keychain admin_SW_2
[SW_2-bgp-default]quit
[SW_2]#


1.4.3   查看设备keychain运行状态

通过命令“display keychain”可查看keychain运行状态;
查看SW_1设备的keychain信息,发现TCP kind value:101、HMAC-SHA-256:6和key 2为有效key,如下图所示;
 
查看SW_2设备的keychain信息,发现TCP kind value:101、HMAC-SHA-256:6和key 2为有效key,如下图所示;

 

 


1.4.4   抓包验证keychain

在SW_1设备的接口G1/0/2抓取SW_1设备向SW_2设备发送的BGP更新报文如下图所示。
从下图可知;TCP选项值存在“Kind:Unknown(101)”及相应的“Payload”;

 


1.5   总结


MD5算法配置简单,配置后生成单一密码,需要人为干预才可以更换密码。
keychain是加密规则(key)的集合,用来为应用程序提供动态认证功能。keychain在不中断业务的前提下,通过定期更改用于认证的密钥和算法来提升网络数据传输的安全性。
一个keychain中的不同key可配置各自的认证密钥、认证算法和生命周期。key由认证密钥、认证算法和生命周期三部分组成。一个keychain中不同key的认证密钥、认证算法和生命周期可以不同。当系统时间处于key的生命周期内时,应用程序可以利用它对发送和接收的报文进行校验。当keychain内各个key的生命周期具有连续性时,随着系统时间的推移,各个key能够依次生效,从而实现动态地更改应用程序使用的认证算法和认证密钥。
keychain支持绝对时间模式,该模式的keychain中,key的生命周期是UTC(Coordinated Universal Time,国际协调时间)绝对时间,不受系统的时区和夏令时的影响。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

onme0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值