华为 BGP认证功能

BGP是一种运行在AS之间的动态路由协议,具有强大的路径限制能力,这也是使得BGP协议可以管理超大大型网络。
simple与cipher可一块儿使用,可是显示的类型不同。
Cipher 密钥加密;simple明文。加密须要密钥一致。
web

1、拓扑

在这里插入图片描述

2、基础配置

一、按照图配置IP地址算法

<Huawei>system-view 
[Huawei]sysname AR-1
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[AR-1-GigabitEthernet0/0/0]int l0
[AR-1-LoopBack0]ip address 1.1.1.1 32
[AR-1-LoopBack0]quit

AR二、3同上;网络

二、配置BGP路由协议svg

[AR-1]bgp 100                          //本设备建立BGP AS,所属AS 100
[AR-1-bgp]router-id 1.1.1.1            //设置本设备的BGP的R-ID为1.1.1.1
[AR-1-bgp]peer 12.1.1.2 as-number 100  //手动指定与对等体的接口地址12.1.1.2创建IBGP邻居

[AR-2]bgp 100
[AR-2-bgp]router-id 2.2.2.2
[AR-2-bgp]peer 12.1.1.1 as-number 100
[AR-2-bgp]peer 23.1.1.3 as-number 200  //手动指定与对等体的接口地址23.1.1.3创建EBGP邻居

[AR-3]bgp 200
[AR-3-bgp]router-id 3.3.3.3
[AR-3-bgp]peer 23.1.1.2 as-number 100

在AR-2上查看BGP邻居关系
在这里插入图片描述
能够看到,AR2与AR1和AR3之间的邻居状态均为Established,说明邻居关系已正常创建。oop

三、配置基于单一密钥的BGP认证功能ui

[AR-1]bgp 100
[AR-1-bgp]peer 12.1.1.2 password simple Huawei

[AR-2]bgp 100
[AR-2-bgp]peer 12.1.1.1 password simple Huawei123	
[AR-2-bgp]peer 23.1.1.3 password simple Huawei

[AR-3]bgp 200
[AR-3-bgp]peer 23.1.1.2 password cipher Huawei

在AR-1上查看BGP邻居关系
在这里插入图片描述
AR1与AR2的邻居状态变成了Connect,说明AR1与AR2的邻居状态关系未能正常创建。加密

在AR-2上查看BGP邻居关系
在这里插入图片描述
AR2和AR3之间的邻居状态为Established,与AR1的邻居状态为Connect;说明AR2和AR3邻居状态关系正常创建,AR2和AR1邻居状态关系未能正常创建。3d

查看当前的BGP认证配置信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在AR2上配置的认证密钥是明文显示的,在AR3上配置的认证密钥是密文显示的,而且AR2上配置的密钥和AR1上的不一致。code

在AR2上将错误的密钥进行更正,而后再次查看AR2的BGP邻居关系router

[AR-2-bgp]peer 12.1.1.1 password simple Huawei

在这里插入图片描述
修改密钥后,AR2和AR1邻居状态关系正常创建。

四、配置基于keychain的BGP认证

[AR-1]keychain key mode periodic daily 
[AR-1-keychain]key-id 1
[AR-1-keychain-keyid-1]algorithm md5	
[AR-1-keychain-keyid-1]key-string huawei
[AR-1-keychain-keyid-1]send-time daily 08:00 to 18:00
[AR-1-keychain-keyid-1]receive-time daily 08:00 to 18:00
[AR-1-keychain-keyid-1]bgp 100
[AR-1-bgp]undo peer 12.1.1.2 password
[AR-1-bgp]peer 12.1.1.2 keychain key

AR2设备配置同上;

查看BGP邻居关系
在这里插入图片描述
在AR1上使用dis keychain key命令查看keychain的信息。
在这里插入图片描述
接收容忍时间只对接受端的key有效,其原理就是延长了receive-time时间
在这里插入图片描述
Infinite表示容忍全部的时间延长。

在keychain方式下定义密钥的存活期分为Absolute与periodic两种模式。
periodic模式,一个key的有效时间为周期性的一段时间,分为daily,monthly,weekly,yearly等。
Key 具备多个属性,包括key-ID,认证算法,key-string以及send-time和receive-time。

3、BGP的数据包

一、Open报文(类型1)
做用:
TCP 会话创建起来自之后,两个邻居都要发送一个 Open 报文,每一个邻居都使用该报文标识本身,而且规定本身的 BGP 运行参数。若是 open 消息被接受,则回送一条 keepalive 消息进行确认,确认后就能发送 update

二、Update报文(类型2)
做用:
当BGP对等体之间成功创建会话后利用Update报文进行路由信息的交换;Update报文既用来通告可用路由信息,也能够通告不可达须要撤销的路由信息。每条update 消息只描述一类具备相同路径属性的可达路由;可达路由信息放在NLRI字段中;同时Update报文能够携带多条不可达路由信息;不可达路由信息放在Withdrawn Router字段中。

三、Notification 报文(类型3)
做用:
当BGP检测到错误状态时,就会向对等体发出Notification通知报文,以后BGP链接会当即中断。例如对等体之间的AS号非法,认证失败,邻居地址不可达等

四、Keepalive 消息(类型4)
做用:
若是路由器接受了邻居在 OPEN 消息中的参数,就会应答一个 keeplive 消息,而且在此后 1/3 的 holdtime(但不小于 1S)为周期发送该消息,华为设备默认 60S一发,保持时间默认180S。若是协商后保持时间为 0,标识此邻居永远UP,则不发送 keepalive 保活消息。

五、Route-refresh报文(类型5)
做用:
路由刷新报文用来要求对等体从新发送指定地址族的路由信息。

4、BGP的邻居状态机

一、Idle状态:
(1)BGP空闲状态,在Idle状态下BGP拒绝邻居发送的链接请求,此时等待由BGP系统发出的Start事件
(2)Start(管理员配置邻居)事件发生后,BGP会对本身的资源进行初始化,重置链接计时器(Connect Retry 默认32S)发起TCP链接请求,并开始侦听远端对等体发起的链接端口,并转至Connect状态
1.1 停留在此状态的缘由:
(1)本BGP设备没有去往对等体的路由
(2)收到来自邻居的Notification报文触发Notification报文条件(再一个重置计时器后从新创建BGP的TCP链接,即从新发送用于BGP的TCP链接报文)
① AS号错误;
② R-ID重复
③ 认证失败
④ Hold time 链接超时(中间设备或者目标设备策略限制)
⑤ 其余错误缘由
二、Connect状态
在Connect状态下,BGP启动链接重传定时器,等待TCP完成链接。
(1)若是TCP链接成功,那么BGP会向对等体发送Open报文,并转至OpenSent状态
(2)若是TCP链接失败,那么BGP转至Active状态
(3)若是链接重传定时器超时,BGP任没有收到BGP对等体的响应,那么BGP继续尝试TCP链接,停留在Connect状态。
2.1 停留在Connect状态的缘由:
(1)与BGP对等体TCP链接超时
① 中间设备没有本设备去往对等体的路由,
② 中间设备拒绝了本BGP设备发出的BGP相关数据(过滤了本设备IP流量或者TCP流量或者TCP-179端口数据)
③ 对等体设备未开启BGP(TCP-179端口处于关闭状态)
三、Active
在Active状态下,BGP老是试图创建TCP链接
(1)若是TCP链接成功,那么BGP向对等体发送Open报文,关闭链接重传定时器,并转至OpenSent
(2)若是TCP链接失败,停留在Active状态
(3)若是链接重传定时器超时,任没有收到BGP对等体的响应,那么BGP转至Connect状态
3.1 停留在Active状态的缘由:
(1)与BGP对等体TCP失败
(2)–本BGP设备配置错误的对等体地址

四、OpenSent
在OpenSent状态,BGP等对等体的Open报文,并对收到的Open报文中的AS号,版本号,认证信息等进行检查
(1)若是收到的Open报文正确,那么BGP发送Keepalive报文,且重置Keepalive定时器,并转至OpenConfirm状态。
(2)若是发现收到的Open报文有错误,那么BGP发送Notification报文给对等体。并转至Idle状态。
4.1 停留在OpenSent状态的缘由:
(1)对等体发送的Open报文中的AS号与本BGP设备配置不一致。(本端BGP配置时邻居的AS号配置错误)

五、OpenConfirm
在OpenConfirm状态下,BGP等待Keepalive或Notification报文。
(1)若是收到Keepalive报文,则转至Established状态(BGP邻居的最终状态)
(2)若是收到Notification报文,则转至Idle状态
5.1 停留在OpenConfirm状态的缘由:
(1)BGP的TCP创建成功,对等体未发送Keepalive报文(邻居设备BGP配置对本BGP的AS号错误配置)
六、Established状态 在Established状态下,BGP对等体之间交互Update,Keepalive,Route-refresh报文和Notification报文。 (1)若是收到正确的Update或Keepalive报文,那么BGP就人为对端处于正常运行状态,保持BGP链接; (2)若是收到错误的就发送Notification报文告知对端,并转至Idle状态 (3)Route-reFresh报文不会改变BGP状态 (4)若是收到Notification报文,那么BGP转至Idle状态。 (5)若是收到TCP拆除连接通知,那么BGP将断开链接,转至Idle状态