quagga 路由器 如何在Quagga BGP路由器中过滤BGP路由

本文是小编带来如何在Quagga BGP路由器中过滤BGP路由,欢迎大家阅读。

我们在本教程中将着重介绍如何使用prefix-list(前缀列表)和route-map(路由映射表),控制入站和出站BGP前缀。

正如在之前的教程中描述的那样,BGP路由决策是根据接收/通告的前缀做出的。为了确保路由没有错误,建议你使用某种过滤机制,以控制这些入站和出站前缀。比如说,如果你的其中一个BGP邻居开始通告并不属于它们的前缀,你又错误地接收了这类虚假的前缀,你的流量就会被发送到那个错误的邻居,最后不知其行踪(这就是所谓的“进入黑洞”)。为了确保没有接收这类前缀,也没有通告给任何邻居,你可以使用前缀列表和路由映射表。前者是一种基于前缀的过滤机制,而后者是一种较为一般的基于前缀的策略机制,用来对动作进行微调。

我们将演示如何在Quagga中使用前缀列表和路由映射表。

拓扑结构和需求

我们在本教程中假设采用下列拓扑结构。

服务提供者A已经与服务提供者B建立了eBGP对等关系,它们在彼此之间交换路由信息。AS和前缀细节如下所述。

•对等块:192.168.1.0/24

•服务提供者A:AS 100,前缀10.10.0.0/16

•服务提供者B:AS 200,前缀10.20.0.0/16

在这个场景下,服务提供者B只想接收来自提供者A的10.10.10.0/23、10.10.10.0/24和10.10.11.0/24这三个前缀。

Quagga安装和BGP对等

我们在前一篇教程中已经探讨了安装Quagga和设置BGP对等的方法。所以我们在此不会重复具体细节。不过,我提供了BGP配置和前缀通告方面的总结:

上述输出结果表明,BPG对等已建立起来。路由器A在向路由器B通告多个前缀。另一方面,路由器B向路由器A通告单单一个前缀10.20.0.0/16。这两个路由器都可以正常接收前缀,没有任何问题。

创建前缀列表

在路由器中,可以用访问控制列表(ACL)或前缀列表来阻止前缀。人们常常更喜欢使用前缀列表,而不是ACL,因为前缀列表不像ALC那样大量占用处理器资源。另外,前缀列表创建和维护起来也更容易。

ip prefix-list DEMO-PRFX permit 192.168.0.0/23

上述命令创建了一个名为“DEMO-FRFX”的前缀列表,它只允许192.168.0.0/23。

前缀列表的另一个出色的特性是,我们可以指定子网掩码范围。不妨看一看下面这个例子:

ip prefix-list DEMO-PRFX permit 192.168.0.0/23 le 24

上述命令创建了一个名为“DEMO-PRFX”的前缀列表,允许192.168.0.0/23到/24之间的前缀,具体包括192.168.0.0/23、192.168.0.0/24和192.168.1.0/24. “le”运算符意味着小于或等于。你还可以使用“ge”运算符来表示大于或等于。

一个前缀列表语句可能有多个允许/拒绝动作。每个语句被赋予可以自动确定或人工指定的序号。

多个前缀列表语句以序号的递增次序逐个加以分析。配置前缀列表时,我们应该牢记一点:在所有前缀列表语句末尾处总是有隐式拒绝(implicit deny)。这意味着,没有显式允许的任何前缀都将被拒绝。

为了允许一切,我们可以使用下列前缀列表语句,该语句允许任何前缀:从0.0.0.0/0开始,直到使用子网掩网/32的任何地址。

ip prefix-list DEMO-PRFX permit 0.0.0.0/0 le 32

现在我们已知道了如何创建前缀列表语句,接下来我们将创建名为“PRFX-LST”的前缀列表,允许我们场景下所需要的前缀。

router-b# conf t

router-b(config)# ip prefix-list PRFX-LST permit 10.10.10.0/23 le 24

创建路由映射表

除了前缀列表和ACL外,还有另一种名为路由映射表的机制,它可以控制BGP路由器中的前缀。实际上,路由映射表可以针对用ACL或前缀列表匹配的前缀,对可能适合的动作进行更灵活的微调。

类似前缀列表,路由映射表语句指定了允许或拒绝动作,后面跟着序号。每个路由映射表语句可能带有多个允许/拒绝动作,比如:

route-map DEMO-RMAP permit 10

上述语句创建了名为“DEMO-RMAP”的路由映射表,并为允许动作增添了顺序10。现在,我们将在顺序10下使用match命令。

router-a(config-route-map)# match (press ? in the keyboard)

as-path 匹配BGP AS路径列表

community 匹配BGP团体属性列表

extcommunity 匹配BGP/VPN扩展团体属性列表

interface 匹配路由的首段接口

ip IP信息

ipv6 IPv6信息

metric 匹配路由度量标准

origin BGP源编码

peer 匹配对等体地址

probability 匹配百分比值定义的路由部分

tag 匹配路由标记

正如我们所见,路由映射表可以匹配许多属性。我们将在该教程中匹配前缀。

route-map DEMO-RMAP permit 10

match ip address prefix-list DEMO-PRFX

match命令将匹配之前创建的前缀列表“DEMO-PRFX”所允许的IP地址(即192.168.0.0/23、192.168.0.0/24和192.168.1.0/24这三个前缀)。

下一步,我们可以使用set命令,改动属性。下面这个例子显示了set可能存在的使用场合。

route-map DEMO-RMAP permit 10

match ip address prefix-list DEMO-PRFX

set (press ? in keyboard)

aggregator BGP聚合器属性

as-path 转变BGP AS路径属性

atomic-aggregate BGP原子聚合属性

comm-list 设置BGP团体属性列表(用于删除)

community BGP团体属性

extcommunity BGP扩展团体属性

forwarding-address 转发地址

ip IP信息

ipv6 IPv6信息

local-preference BGP本地偏好路径属性

metric 用于目的地路由协议的度量标准值

metric-type 度量标准类型

origin BGP源编码

originator-id BGP始发器ID属性

src 路由的src地址

quagga 路由器 如何在Quagga BGP路由器中过滤BGP路由

tag 路由协议的标记值

vpnv4 VPNv4信息

weight 路由表的BGP权重

正如我们所见,set命令可以用来更改许多属性。为了演示,我们将设置BGP本地偏好。

route-map DEMO-RMAP permit 10

match ip address prefix-list DEMO-PRFX

set local-preference 500

就像前缀列表一样,所有路由映射表语句的末尾也都有隐式拒绝。所以,我们将在序号20添加另一个允许语句,允许一切前缀。

route-map DEMO-RMAP permit 10

match ip address prefix-list DEMO-PRFX

set local-preference 500

!

route-map DEMO-RMAP permit 20

序号20没有特定的match命令,所以它在默认情况下会匹配一切。由于决策是允许,该路由映射表语句将允许一切。

如果你还记得,我们的要求是只允许/拒绝一些前缀。于是在我们的场景下,set命令没有必要。我们将只使用一个允许语句,如下所示。

router-b# conf t

router-b(config)# route-map RMAP permit 10

router-b(config-route-map)# match ip address prefix-list PRFX-LST

这个路由映射表语句应该能够能取得想要的结果。

运用路由映射表

牢记一点:除非运用于某个接口或BGP邻居,否则ACL、前缀列表和路由映射表不管用。就像ACL或前缀列表那样,单单一个路由映射表语句可以与任何数量的接口或邻居结合使用。然而,任何一个接口或邻居只能支持一个路由映射表语句用于入站流量,只能支持一个路由映射表语句用于出站流量。

我们将为邻居192.168.1.1把刚创建的路由映射表运用到路由器B的BGP配置,使用入站前缀通告。

router-b# conf terminal

router-b(config)# router bgp 200

router-b(config-router)# neighbor 192.168.1.1 route-map RMAP in

现在,我们使用下列命令,检查通告和接收的路由。

针对通告的路由:

show ip bgp neighbor-IP advertised-routes

针对收到的路由:

show ip bgp neighbor-IP routes

你可以发现,虽然路由器A向路由器B通告了四个前缀,但路由器只接收了三个前缀。如果我们检查一下范围,就能发现,只有路由映射表允许的前缀才在路由器B上看得见。其他所有前缀被丢弃了。

提示:要是接收到的前缀没有任何变化,试着使用命令:“clear ip bgp neighbor-IP”,重新设置BGP会话。在我们的例子中:

clear ip bgp 192.168.1.1

正如我们所见,已满足了要求。我们可以在路由器A和B中创建类似的前缀列表和路由映射表语句,以便进一步控制入站和出站前缀。

我在一个地方总结了配置,那样你一眼就能看清。

router bgp 200

network 10.20.0.0/16

neighbor 192.168.1.1 remote-as 100

neighbor 192.168.1.1 route-map RMAP in

!

ip prefix-list PRFX-LST seq 5 permit 10.10.10.0/23 le 24

!

route-map RMAP permit 10

match ip address prefix-list PRFX-LST

结束语

我们在该教程中演示了如何定义前缀列表和路由映射表,从而在Quagga中过滤BPG路由。我们还演示了如何结合前缀列表和路由映射表,以便对入站前缀进行精细控制。你可以以一种类似的方式来创建自己的前缀列表和路由映射表,从而与你的网络要求相匹配。这些工具是保护生产网络避免虚假路由的路由破坏和通告的最有效方式之一。

但愿本文有所帮助。

  

爱华网本文地址 » http://www.413yy.cn/a/227861/980496127.html

更多阅读

如何在局域网中实现屏幕监控 局域网屏幕实时监控

如何在局域网中实现屏幕监控——简介WorkWin局域网管理软件采用一台服务器监视并记录局域网的所有客户机的屏幕,是管理员通过一台机器管理所有客户端,所有客户端的屏幕画面都在管理端查看,管理员也可以根据自己的需要设置截屏的周期以

如何在论坛中设置签名 论坛签名怎么设置

如何在论坛中设置签名——简介现在很多SEO新手都选择去一些老权重的论坛发帖、回复。那么你们知道在论坛里的签名是怎么设置的嘛如何在论坛中设置签名——工具/原料一个论坛的账号如何在论坛中设置签名——方法/步骤如何在论坛中

如何在教学中培养和激发学生的学习兴趣

如何在教学中培养和激发学生的学习兴趣常听到有的教师感叹:“教学真难,教师费这么多的心血,学生的成绩却提不上去。”这种情况在中学教学中确实存在,但原因究竟出在哪里?我想,除教师教法有问题外,更主要的还是没有调动起学生的学习主动性

网店竞争的法律规制 网店经营如何在竞争中脱颖而出

在如今电子商务如此发达的市场竞争中,网店的生存压力及竞争的残酷和实体的竞争相差无几。其中很有感触的一次实例比较:在我家旁边小区进的一模一样的衣服,她不到一个星期两件全卖完了,而我的却足足挂了半年才卖出去,她的价格却是我网店

声明:《quagga 路由器 如何在Quagga BGP路由器中过滤BGP路由》为网友迷途知返分享!如侵犯到您的合法权益请联系我们删除