路由过滤和清除BGP对等体

BGP允许在任何BGP路由器上过滤BGP更新消息。路由器可以针对任何BGP路由器上的入站和出站更新筛选每个邻居的更新。在将新的BGP过滤器添加到路由器的配置后,必须重置或清除BGP邻居关系,以使过滤器生效。

Cisco BGP clear命令专门告诉路由器如何重置邻居。

BGP过滤概述

BGP过滤通常像IGP过滤一样工作,尤其是 EIGRP。与EIGRP相似,可以在任何路由器上过滤BGP更新,而对于存在各种区域设计问题的OSPF 没有任何限制 。过滤可以检查任何路由器上有关每个路由器的前缀信息以及方向(输入或输出)中的前缀和前缀长度信息。

BGP和IGP过滤之间最大的概念差异与BGP可以匹配的前缀有关,以决定是否过滤路由。EIGRP专注于匹配前缀/长度。BGP不仅可以匹配前缀/长度,而且还可以匹配大量的BGP路径属性(PA)。

例如,过滤器可以比较BGP路由的AS_Path PA,并检查第一个ASN是否为4,是否存在至少三个ASN,并且AS_Path不以567结尾。根据其PA设置进行的路由匹配包括没有任何IGP与之等效。

除了匹配BGP PA的详细信息外,BGP和IGP过滤之间最大的配置差异还与过滤器必须应用于BGP的特定邻居这一事实有关。使用EIGRP,可以使用单个EIGRP Distribution-list命令将过滤器应用于EIGRP的所有出站更新,或应用于EIGRP的所有入站更新。

BGP配置不允许筛选所有入站或出站更新。取而代之的是,BGP过滤配置启用每个邻居的过滤器(使用邻居命令),并引用BGP过滤器的类型,过滤器编号或名称以及方向(入站或出站)。

因此,路由器实际上可以对路由器发送的所有BGP更新使用相同的过滤器,但是该配置将要求每个启用了相同过滤器的邻居都使用一个邻居命令。

本节简要介绍BGP过滤命令,并提供一些示例以供参考。下表总结了BGP过滤选项和命令,以及BGP Update消息中可以与每种类型匹配的字段。

表格后的文字显示了一个示例,说明企业如何根据前缀/长度应用出站和入站过滤器。 

BGP过滤工具


前缀/长度的入站和出站BGP过滤

选择使用BGP的企业将受益于从连接的ISP学习路由,并将企业的公共前缀通告给相同的ISP。但是,当 建立与各种ISP的 eBGP连接时,企业BGP路由器会通过eBGP连接在每个路由器的BGP表中发布所有最佳路由。

结果,ISP可以学习最佳路由,从而使一个ISP将数据包发送到企业,然后由企业将数据包转发到另一个ISP。在这种情况下,企业AS将充当中转AS。

企业工程师可以并且可能应该努力过滤通过eBGP对等连接发送给ISP的不适当的路由,目的是防止其企业AS成为过渡AS。

此外,企业可以过滤所有专用IP地址范围,以防任何此类地址范围进入企业BGP路由器的BGP表中。作为示例,请考虑下图,其前缀为192.135.250.0/28。

该图以虚线显示BGP路由更新。

BGP路由过滤

E1的最佳路由为192.135.250.0/28,将E2列为下一跳路由器。因此,在没有进行任何过滤的情况下,E1然后将前缀192.135.250.0/28通告给ISP1中的路由器I1-1。可以将I1-1配置为过滤此前缀。

但是,如果企业在向ISP1进行广告发布时未过滤该前缀,并且ISP1也未对其进行过滤,则ISP1可能会选择通过ASN 11的路由作为其最佳路由,从而使ASN 11成为此前缀的中转AS,并占用企业的Internet带宽。

通常,企业会在其eBGP邻居上使用出站过滤,过滤所有路由,除了需要在Internet上发布的已知公共前缀之外。

清除BGP邻居

在清除邻居关系之前,Cisco路由器不会使新配置的BGP过滤器生效。可以通过多种方式清除邻居关系,包括重新加载路由器以及使用邻居关闭且不使用邻居关闭配置命令来管理上禁用和重新启用BGP邻居关系。

但是,出于重置BGP连接的特定目的,Cisco IOS在clear ip bgp EXEC命令上支持多个选项。本节研究了这些选项的差异。

clear ip bgp 命令上的每个变体对一个或多个BGP邻居执行硬重置或软重置。当发生硬重置时,本地路由器将断开邻居关系以及基础的TCP连接,并删除从该邻居学到的所有BGP表条目。 

本地路由器和邻居路由器都通过删除从该邻居学习到的BGP表条目,就像对任何失败的BGP邻居所做的反应一样。通过软复位,路由器不会断开BGP邻居关系或基础TCP连接。

但是,本地路由器会重新发送出站更新(根据出站过滤器进行调整),并根据入站过滤器重新处理传入的更新,从而根据当前配置调整BGP表。

下表列出了clear ip bgp命令的许多变体,并提供了有关使用硬重置还是软重置的参考。

BGP清除逗号

表格中列出的命令应成对使用。在第一对中,两个命令都执行硬重置。第一个命令使用*代替邻居IP地址,从而导致所有BGP邻居的硬重置,而第二个命令重置该特定邻居。

显示BGP过滤的结果

要验证过滤配置并对其进行故障排除,您需要同时查看过滤器前后的结果。Cisco IOS提供了几个show命令,这些命令可让您准确地做到这一点。例如,show ip bgp neighbor advertised-routes命令显示路由器发送的后过滤BGP更新。

下图总结了这些命令,显示了如何使用它们显示预过滤器和后过滤器BGP表的内容。该图显示了路由器E1,其中包含对从路由器I3-1接收的更新的入站过滤以及对发送至路由器I1-1的BGP更新的出站过滤。

show与BGP过滤相关的命令

在图的底部,用于显示入站更新的命令以与show ip bgp命令相同的格式显示输出。这些命令将内容限制为恰好从那个邻居收到的内容。

对入站方向有用的两个命令之一,即show ip bgp neighbor Received-routes命令,需要配置BGP子命令neighbor soft reconfiguration inbound

因此,要查看从邻居收到的预过滤器BGP更新,路由器必须配置此额外命令,这将导致路由器使用更多内存来存储入站更新。 

觉得文章有用?

点个广告表达一下你的爱意吧 !😁