BGP高级特性之认证
一、概述
BGP使用TCP作为传输协议,只要TCP数据包的源地址、目的地址、源端口、目的端 口和TCP序号是正确的,BGP就会认为这个数据包有效,但数据包的大部分参数对于攻击 者来说是不难获得的。
为了保证BGP免受攻击,可以在BGP邻居之间使用MD5认证或者Keychain认证来降低 被攻击的可能性。其中MD5算法配置简单,配置后生成单一密码,需要人为干预才可以 切换密码,适用于需要短时间加密的网络。如果MD5认证失败,则不建立TCP连接。另 外,BGP MD5认证与BGP Keychain认证互斥,不能在同一对等体或者对等体组上配 置。
注意:BGP使用TCP作为传输层协议,为提高BGP的安全性,可以在建立TCP连接时进行MD5认证。BGP的MD5认证只是为TCP连接设置MD5密码,认证字段并没有在BGP的载荷中,认证字段是在TCP的option中。
二、认证的种类
BGP的认证分为两种,分别为MD5以及Keychain两种类型
1、MD5认证
MD5认证的配置方法是在BGP视图下通过peer {ipv4-address | group-name | ipv6- address} password {cipher cipher-password | simple simple-password}命令配置MD5认证密 码(两端的认证方式和密码必须完全一致)。命令中的参数说明如下。
① ipv4-address | group-name| ipv6-address:指定要进行MD5认证的对等体IP地址或对 等体组名称。
② cipher cipher-password:二选一参数,指定MD5密文密码,不允许空格,区分大 小写,可以输入1~255个字符的明文,也可以输入20~392个字符的密文。
③ simple simple-password二选一参数,指定MD5明文密码,1~255个字符,不允许 空格,区分大小写。
注意:在配置MD5认证密码时,如果使用simple选项,密码将以明文形式保存在配置文件 中,存在安全隐患。建议使用cipher选项,将密码加密保存在配置文件中。
在采用输入明文方式来指定明文密码或密文密码字符串时,不支持 以“$@$@”或“^#^#”同时作为起始和结束字符。
缺省情况下,BGP对等体在建立TCP连接时对BGP消息不进行MD5认证,可用undo peer {group-name | ipv4-address} password命令恢复缺省情况。
2、Keychain认证
Keychain认证方式具有一组密码,可以根据配置自动切换,安全性较MD5认证方式更 高,但是配置过程较为复杂,适用于对安全性能要求比较高的网络。配置BGP Keychain 认证前,必须配置keychain-name对应的Keychain认证,否则TCP连接不能正常建立。
注意:BGP对等体两端必须都配置针对使用TCP连接的应用程序的Keychain认证,所使用的 Keychain(密钥链)需已使用keychain keychain-name命令创建,然后分别通过key-id keyid 、key-string {[plain] plain-text | [cipher] cipher-text}和algorithm{hmac-md5 | hmac-sha256 | hmac-sha1-12 | hmac-sha1-20 | md5 | sha-1 | sha-256 |simple}命令配置该keychain采用 的key-id、密码及其认证算法,必须保证本端和对端的key-id、algorithm、key-string相 同,才能正常地建立TCP连接,交互BGP消息。且BGP Keychain认证与BGP MD5认证互 斥,不能在同一对等体间同时配置。
配置BGP Keychain认证的方法是在BGP视图下使用peer {ipv4-address | groupname |ipv6-address} keychain keychain-name命令进行的。命令中的ipv4-address | groupname| ipv6-address用来指定要进行Keychain认证的对等体IP地址或对等体组名称,参数keychainname用来指定所采用的Keychain名称,1~47个字符,区分大小写,不支持空格。配置 BGP Keychain认证前,必须先配置keychain-name参数对应的Keychain。
以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改。