3.2管理BGP连接

Cisco IOS提供了一系列功能特性,以帮助管理BGP对等体连接。第一个功能特性就是neighbor description语句,与description语句可以在接口配置模式下进入类似,neighbor description语句也不会对路由器造成功能上的影响,而且还为配置文件增加了一个描述性的文本字符串。前面已经遇到了很多应用于BGP邻居的配置选项,在本章后面的内容中还将遇到很多其他选项。当BGP的配置变得越来越复杂时,neighbor description语句可以帮助提示每个对等体是谁、在何处。例3-71演示了neighbor description语句的使用方法。

描述性语句可以包含任何希望加入的有用信息,最多80个字符。该例中包含了链路类型、邻居路由器的名字以及用于何处和电路ID。

例3-71:neighbor description语句可以减轻复杂的BGP配置所带来的混淆程度。

img164a

利用neighbor password语句,两个BGP对等体之间还可以使用密码进行相互验证,在例3-72所示配置中,为邻居192.168.1.253输入了密码noT4U2n0。

例3-72:BGP的邻居验证。

img164b

请注意,在路由器的全局配置中加入了service password-encryption选项,这样在显示配置文件时会对密码进行加密,从而提高了私密性。

不同BGP邻居连接之间的密码既可以不一样,也可以完全一样。通过指定一个对等体组名(而不是一个IP地址),可以为一个对等体组设置一个通用密码,而不用为每个邻居单独设置密码。但是对每条BGP连接来说,两个邻居的密码必须一致。

在配置BGP邻居密码时,IOS使用了MD5验证机制。MD5是一种由RSA Data Security公司开发的单向报文摘要(message digest)或安全哈希(secure hash)函数,由于其工作方式有些类似于算术校验和,因而有时也被称为密码校验和(cryptographic checksum)。MD5对任意长度的明文报文(此处就是BGP消息)和密码计算出一个128位的哈希值,该“指纹”信息会与报文一同被传送,知道密码的接收方也会计算其自己的哈希值;如果报文未发生变化,接收方的哈希值应该与发送方随同报文传送的哈希值完全一致。如果不知道密码将无法解密(除非拥有非常强大的计算能力),因而未经验证的路由器(可能是恶意的也可能是无意的)无法与运行了邻居验证机制的路由器建立对等关系。

可用于邻居连接的其他选项是命令neighbor advertisement-intervalneighbor version。其中,第一个命令用于将默认的BGP更新间隔更改到指定间隔(0~600秒之间),如果需要通过某条链路交换大量路由,利用该命令可以增大宣告间隔,从而降低对该链路可用带宽的影响。除非能真正了解了这样做的后果,否则不应更改宣告间隔,以免降低重收敛时间。

在BGP邻居不支持默认的BGP-4时,命令neighbor version非常有用。比起通过协商让版本4的路由器向下兼容邻居所支持的版本,更好的做法是配置路由器与特定邻居运行特定版本。如果邻居双方都支持版本4,那么该命令将毫无用处,也无需使用该命令。

在多个去往同一目的地的路由中进行选择时,Cisco IOS实现的BGP决策进程已经考虑了AS_PATH属性的长度。但RFC 1771并不包含本步骤,因而Cisco的BGP发言者偶尔也会与不考虑AS_PATH长度的其他厂商路由器建立对等关系,这样就存在潜在的路由决策不 兼容性。此时,可以用命令bgp bestpath as-path ignore让Cisco路由器在其决策进程中忽略AS_PATH的长度。

在某些路由策略场合中,可能希望限制某路由器能够从其邻居所接受的前缀数量。例如,从某特定AS只能向外宣告一定量的前缀,当前缀数量超过该数量时都可能会被该自治系统的管理员指示为错误。也可以签订某服务协议,仅同意接收一定数量的前缀,为了宣告更多的前缀,邻居AS的管理员必须首先得到许可。为了增强这样的路由策略,需要使用命令neighbor maximum-prefix。下面来看一下例3-73。

例3-73:限制路由器能从邻居处接收的前缀数量。

img165a

例3-73中的路由器被配置为最大能从192.168.1.253接受300个前缀,如果超出了这个数量,路由器就会关闭与该邻居的BGP连接,在应用命令clear ip bgp 192.168.1.253之前,都不会再次建立BGP会话。

在前缀数量超限时断开对等会话的做法可能会产生比较严重的后果,但同时又希望在事情发生时能得到通告。例3-74就没有关闭会话,而是让路由器生成一个日志消息。

例3-74:当邻居发送的前缀数量超限时让路由器生成一条日志消息。

img165b

当邻居宣告的前缀数超过最大值的75%(本例中为225个前缀)时,就会生产一条日志消息。当然也可以更改默认比例,例3-75就示范了如何让路由器在超过最大值的90%时生成日志消息。

例3-75:当邻居发送的前缀数量超过最大允许值的90%时,路由器将生成一条日志消息。

img165c

有时可能需要临时断开与某个对等体的连接,但又不想删除其邻居配置。如例3-76所示,此时就可以利用命令neighbor shutdown来断开与邻居192.168.1.237的连接。

例3-76:临时中断邻居连接。

img165d

与命令shutdown关闭单个接口类似,例3-76中的命令neighbor shutdown可以关闭到指定邻居的TCP端口179的连接。利用命令show ip bgp neighbor可以看出,该邻居被指示为出于管理目的而被关闭。

最后,可以利用命令timers bgp来更改默认的BGP Keepalive(保持激活)时间间隔(默认60秒)和保持时间间隔(默认180秒),一种可能争论的是通过减小这些时间间隔来加速邻居不可达性的检测速度,但实际上,对这个问题的解决方案是消除邻居不可达性的原因。利用命令timers bgp来更改默认的时间间隔时,是应用于每个邻居,而不是单个邻居。即便某邻居的默认Keepalive(保持激活)时间间隔和保持时间间隔有所不同,所要使用的时间间隔也要作为对等进程的一部分进行动态协商。因而在正常情况下,几乎没有任何理由来使用本命令。