APP下载

基于多自治系统的路由过滤仿真设计*

2022-04-22孙光懿

关键词:路由表回环列表

孙光懿,缴 健

(1.天津音乐学院网络安全和信息化办公室,天津 300171;2.天津市教育委员会教育综合服务中心,天津 300191)

0 引 言

现实中的网络通常是由多自治系统构建而成,而在自治系统内部往往运行着多种动态路由协议.众所周知,动态路由协议,如:RIP、IGRP、OSPF和ISIS等,在运行时均会以各自的方式产生路由更新.例如:RIP的路由更新是以周期性的方式产生的,而OSPF的路由更新不仅可以以周期性的方式产生,而且还可以以触发的方式产生.需要读者明确的是,路由更新对路由器能否做出合理的路由决策起决定作用,且其传递只在成功建立邻接关系的路由器之间进行.虽然路由更新对路由决策至关重要,但管理者如不对其进行合理控制和调整,势必会对网络的整体性能造成影响.原因如下:其一,大量的路由更新会抢占路由器CPU资源和用户数据带宽;其二,在双向路由重分发的网络中,路由更新有可能造成路由反馈或路由环路现象的出现;其三,出于安全性的考虑需要禁止对特定的路由更新进行通告.因此,网络管理者在构建网络的过程中,有必要使用相关技术对动态路由协议产生的路由更新进行过滤.

1 路由更新控制关键技术

1.1 被动接口

被动接口技术的设计初衷,就是为了有效防止网络中的其他路由器动态学习到本路由器的路由更新[1].无论路由器运行的是哪类动态路由协议,一旦某个接口被设置为被动接口,那么该接口将不会对外发送任何路由更新.特殊情况下,如果有个别路由器需要从该接口接收路由更新,那么可通过手动指定邻居路由器来实现.设置后,该接口只会将路由更新发送给所指定的邻居路由器.需要注意的是:不同种类的动态路由协议,被动接口技术的工作方式也不近相同,例如在RIP路由协议中设置被动接口后,虽然该接口不能以广播或组播的方式对外发送任何路由更新,但该接口还可从邻接路由器接收路由更新,而在OSPF路由协议中设置被动接口后,该接口将不会发送和接收任何路由更新;与上述2类路由协议不同的是,在EIGRP路由协议中设置被动接口后,该接口不仅不会发送和接收任何路由更新,而且还不会发送用于建立EIGRP邻接关系的Hello数据包.

1.2 分发列表

分发列表是一种通过引用访问控制列表(ACL),来对路由更新进行控制的技术[2].之所以要引用ACL,主要是因为ACL拥有既可对用户数据流进行精准控制,又不会对出站的路由通告产生任何影响的特性.该技术的诞生使管理者对路由更新的控制有了极大的灵活性.不仅可过滤相同路由域中的邻接路由器发出的路由更新,而且还可过滤重分发自其他动态路由协议的路由更新.通常情况下,分发列表技术基于3种方式在路由协议进程中进行部署:(1)在入站接口进行部署,主要用于过滤从路由器某指定接口进入的路由更新;(2)在出站接口进行部署,主要用于过滤从路由器某指定接口发出的路由更新或指定路由协议的路由更新;(3)在路由重分发中进行配置,主要用于过滤重分发自其他动态路由协议的路由更新.此外,由于分发列表不能过滤链路状态广播(LSA),因此该技术更适合部署在距离矢量路由协议中,无论部署在入接口方向还是在出接口方向均能正常过滤路由更新.如果将其部署在OSPF链路状态路由协议中,那么就会存在以下问题:其一,部署在入接口方向,只可过滤执行分发列表的OSPF路由器本地路由表.其二,部署在出接口方向,只可过滤重分发到OSPF路由域内的外部路由,而无法过滤OSPF区域内路由和区域间路由.

1.3 路由映射表

路由映射表功能强大,不仅可用于过滤重分发而来的外部路由更新,而且还可应用于策略路由、网络地址转换以及控制BGP协议路径属性.路由映射表由一组名称相同的route-map语句所构成,每条语句均存在一个编号(编号默认为10,且不会自动递增),因此管理者可对其进行编辑[3-5].与访问控制列表相类似,路由映射表也是按照从小到大的编号顺序来处理每条语句.通常建立路由映射表需要如下步骤:首先,在全局配置模式下使用routemap命令定义路由映射表.其次,使用match命令定义要检查的条件(可根据标准访问控制列表、扩展访问控制列表、前缀列表、数据包的长度、路由类型、路由度量值和路由标记等来设定检查条件).如果出现route-map语句不包含match命令的情况,那么路由器就会认为该route-map语句与所有数据包相匹配.在这里需要明确的是:单条match语句可以同时设置多个检查条件,但只要匹配其中一个检查条件,路由器就会认为与该match语句相匹配.再次,使用set命令定义当与措施为permit的条件相匹配时,路由器应采取的动作(可使用set命令控制路由度量值、设置数据包出接口及下一跳、设置目标路由协议的度量类型等).最后,应用路由映射表.

1.4 前缀列表

与访问控制列表相比,前缀列表通常具有以下不可替代的优势:首先,可使网络管理者更为灵活的过滤路由更新.前缀列表不仅可以明确指定子网掩码的大小,而且还可以对子网掩码的范围做出限定.其次,可有效提升路由器过滤路由更新的处理速度.这是因为路由器在处理前缀列表时,会将其转换为树形结构并进行测试,从而使路由器IOS能够快速决定是允许还是拒绝.再次,网络管理者可对前缀列表的条目进行添加或删除操作.最后,可将前缀列表部署在BGP协议中.

2 仿真实验

在思科GNS3虚拟仿真环境下,构建了一个拥有8台思科3725路由器(IOS镜像文件为c3725-ad‐venterprisek9-mz.123-4.t4.bin)的大型网络,该网络由AS 64530及AS 64532共2个自治系统所组成.网络设备间连接及相关接口情况如图1所示.AS 64532自治系统不仅包含有OSPF路由域(由路由器R1、R4、R5所组成,路由器R1为该路由域的边界路由器),而且包含有RIP路由域(由路由器R1、R2、R3、R8所组成,路由器R1为该路由域的边界路由器).而AS 64530自治系统只包含一个EIGRP路由域(由路由器R6、R7通过双链路互联所组成.在这里把R6 E1/2接口至R7 E1/2接口之间的链路,简称为M1链路;把R6 S2/0接口至R7 S2/1接口之间的链路,简称为M2链路).本次仿真实验首先研究被动接口、分发列表、路由映射表、前缀列表等技术在RIP路由域中、OSPF路由域中、EIGRP路由域中以及路由重分发过程中进行路由过滤的实现机制和过程.研究使用BGP协议实现自治系统间互联的实现机制和过程.拟计划实现如下目标:

图1 网络拓扑结构

(1)在OSPF路由域内,允许路由器R1学习到去往目标地址“路由器R5回环接口1(175.13.1.1/24)及回环接口 2(175.13.2.1/24)”的路由条目,禁止路由器R4学习到去往目标地址“路由器R5回环接口 2(175.13.2.1/24)”的路由条目.

(2)在RIP路由域内,不仅需要禁止路由器R1、R2、R3学习到去往目标地址“路由器R8回环接口1(192.168.80.10/24)”的路由条目,而且还需要禁止路由器R1、R2学习到去往目标地址“路由器R3回环接口3(192.168.70.9/24)”的路由条目.只允许路由器R8学习到该路由域内的全部路由条目.

(3)在AS 64532自治系统内,不仅允许OSPF路由域中的全部路由条目在RIP路由域中进行传播,而且还允许RIP路由域中的4条路由条目(196.10.10.0/24、 196.10.11.0/24、 196.10.12.0/24、192.168.50.0/24)在OSPF路由域中进行传播.

(4)在EIGRP路由域内,实现路由器R6、R7之间链路分流.当路由器R7访问路由器R6回环接口1时,或当路由器R6访问路由器R7回环接口1时,数据包走M1链路.当路由器R7访问路由器R6回环接口2时,或当路由器R6访问路由器R7回环接口2时,数据包走M2链路.

(5)实现AS 64530自治系统内的终端计算机C3,能够正常访问AS 64532自治系统内路由器R5回环接口1.

2.1 在OSPF路由域内部署分发列表过滤路由

为保证OSPF域内路由器R4无法学习到去往目标地址“路由器R5回环接口2”的路由条目,同时也为了保证路由器R1能够学习到去往目标地址“路由器R5回环接口1与回环接口2”的路由条目.因此,有必要在路由器R4入站接口部署分发列表.之所以这样做是因为:在入站接口部署分发列表,只会对路由器R4的本地路由表起过滤作用,而被过滤网段的相关LSA会继续泛洪给路由器R1(OSPF路由器之间传递的消息为LSA,分发列表无法对其进行过滤)[6].因此,路由器R1仍可学习到被路由器R4过滤掉的路由条目.路由器R4的相关配置命令为

路由器R4配置完成后,分别查看路由器R1、R4的路由表,如图2和3所示.在路由器R4入站接口部署分发列表后,路由器R4的路由表中并不存在去往目标地址“路由器R5回环接口2”的路由条目.而路由器R1的路由表中不仅存在去往目标地址“路由器R5回环接口1”的路由条目,而且还存在去往目标地址“路由器R5回环接口2”的路由条目(上述2条路由条目的路由标识符、度量值以及下一跳地址均相同).这足以充分说明:在OSPF路由域内部署的分发列表,实现了既定目标(1).

图2 路由器R1路由表

图3 路由器R4路由表

2.2 在RIP路由域内过滤路由

2.2.1 在路由器R8中部署被动接口过滤路由

为保证RIP域内路由器R1、R2、R3无法学习到去往目标地址“路由器R8回环接口1(192.168.80.10/24)”的路由条目,同时也为保证路由器R8能够学习到该路由域内的全部路由条目.因此,有必要将路由器R8的e1/2接口设置为被动接口.这样以来不仅可以确保路由器R8不会以组播或广播的方式(组播方式最节省网络流量)向邻居路由器R3发送任何RIP路由更新,而且还可以确保其继续接收邻居路由器R3发来的RIP路由更新.需要注意的是:即使为RIP路由器设置了被动接口,网络管理者还可通过单播的方式向其邻居路由器发送RIP路由更新.路由器R8的相关配置命令为

为使读者能更清楚地了解被动接口技术在RIP协议中的工作机制与工作过程.首先,使用命令查看路由器R8的路由表,如图4所示.其次,使用Wireshark网络分析软件并以路由器R3的e1/2接口为源,对其进行抓包分析(图5).其一,路由器R8已成功学习到了RIP路由域内的全部路由条目;其二,在路由器R3的e1/2接口捕获的RIP数据包中,只有路由器R3用来传送路由更新的RIP响应数据包(Response为“1”代表该数据包为RIP请求数据包,为“2”代表该数据包为RIP响应数据包),而从未收到来自路由器R8的任何RIP数据包;其三,路由器R3通过 e1/2接口,不断的将以下5条RIP路由 更 新(192.168.50.0、192.168.55.0、192.168.70.0、196.10.10.0、196.10.11.0)发 送 给 RIPv2组播地址224.0.0.9(由于路由器R8的e1/2接口与路由器R3的e1/2接口互联并已开启RIP,因此会自动监听并处理来自RIPv2组播地址224.0.0.9的报文).这足以充分说明:在将路由器R8的e1/2接口设置为被动接口后,不仅成功禁止了路由器R1、R2、R3学习到去往目标地址“路由器R8回环接口1(192.168.80.10/24)”的路由条目,而且还保证了路由器R8能够学习到RIP路由域内的全部路由条目.

图4 路由器R8的路由表

图5 路由器R3的e1/2接口RIP数据包

2.2.2 在路由器R3中部署分发列表过滤路由

为保证RIP路由域内路由器R1、R2无法学习到去往目标地址“路由器R3回环接口3(192.168.70.9/24)”的路由条目,因此有必要在路由器R3出站接口或路由器R2的入站接口部署分发列表.原因如下:RIP协议为距离矢量协议,RIP路由器之传递的是路由更新信息,而分发列表对路由更新具有绝对的控制权[7].如将其部署在入站接口,可对特定的路由更新进行过滤,从而使执行分发列表的本地路由器的路由表发生改变.如将其部署在出站接口,实际上本地路由器给下游路由器传递的内容是执行分发列表后的路由更新条目.在这里选择在路由器R3的出站接口部署分发列表,相关配置命令为

上述配置完成后,以路由器R1为例查看其路由表(图6).路由器R1共学习到4条RIP路由条目(196.10.11.0/24、196.10.12.0、24、192.168.50.0/24、192.168.55.0/24),其路由表中并不存在去往目标地址“路由器R3回环接口3”的路由条目.这足以充分说明:在路由器R3、R8中采取的路由过滤措施,实现了既定目标(2).

图6 路由器R1的路由表

2.3 在单点双向路由重分发过程中过滤路由

在AS 64532自治系统内,为使OSPF及RIP路由域中的相关路由能够在对方路由域中进行传播,有必要在路由器R1(同为上述2个路由域的边界路由器)中实施双向路由重分发[8-9].这样不仅可将OSPF路由通告到RIP路由域,而且还可将RIP路由通告到OSPF路由域.

由于RIP路由域中只有以下4条路由条目(196.10.10.0/24、 196.10.11.0/24、196.10.12.0/24、192.168.50.0/24)被允许在OSPF路由域中进行传播.因此,还需在路由器R1中部署路由映射表,并将其分别应用于RIP路由到OSPF路由域、以及OSPF路由到RIP路由域的重分发过程中.路由器R1的相关配置命令为

上述配置完成后,以OSPF路由器R5及RIP路由器R8为例,分别查看其路由表,如图7和8所示.路由器R5共学习到4条路由标识符为“O E2”的外部路由(重分发到OSPF时,默认度量值类型为2),以上4条路由既为重分发到OSPF路由域的RIP路由条目(196.10.10.0/24、196.10.11.0/24、196.10.12.0/24、192.168.50.0/24);路由器 R8共学习到 2条路由标识符为“R”,且度量值为“12”(重分发到RIP路由域时度量值为10,而后又经两跳传递到路由器R8)的外部汇总路由(175.12.0.0/16、175.13.0.0/16),以上2条路由包含了重分布到RIP路由域中的全部OSPF路由条目.这足以充分说明在路由器R1中实施的双向路由重分发及采取的路由过滤措施,实现了既定目标(3).

图7 路由重分发后路由器R5的路由表

图8 路由重分发后路由器R8的路由表

2.4 在EIGRP路由域内过滤路由

在EIGRP路由域内,通过在路由器R6、R7中部署前缀列表来实现二者之间链路分流.与使用访问控制列表相类似,使用前缀列表进行过滤路由时,需先判断路由前缀与前缀列表中的前缀是否匹配[10-12].如果前缀列表为空,那么将允许所有路由前缀通过.路由器R6的相关配置与路由器R7的配置类似.

路由器R6的相关配置为

从中不难发现:当路由器R7访问路由器R6回环接口1时,数据包的下一跳地址为“193.168.11.1”,此时数据包走M1链路;而当路由器R7访问路由器R6回环接口2时,数据包的下一跳地址则变为“193.168.10.1”,此时数据包走M2链路.这足以充分说明,通过在路由器R6、R7中部署前缀列表,实现了既定目标(4).

2.5 在路由器R5、R6、R7中部署BGP协议

路由器R5、R6分别为AS 64532和AS 64530的边界路由器.因此,二者之间运行的BGP协议为EBGP[13].而对于路由器R7来说,由于与路由器R6同在AS 64530内,因此其运行的BGP协议为IBGP.需要读者注意的是:其一,2台EBGP邻居路由器在交换BGP路由更新前,必须要先成功建立TCP会话.其二,EBGP邻居路由器的IP地址必须是直连或通过静态路由可达的[14-15].路由器R5、R7的配置与R6类似.

路由器R6的相关配置为

路由器R5、R6、R7配置完成后,首先,以路由器R6为例,使用命令sh ip bgp summary查看其BGP连接状态情况(图9)[16].路由器 R6分别与路由器 R5、R7成功建立了EBGP和IBGP邻接关系.其次,以路由器R7为例,使用命令sh ip bgp summary查看其BGP拓扑数据库.在路由器R7的BGP拓扑数据库中,存在一条去往路由器R5回环接口1所在网络“175.13.1.0/24”的路由(该路由已被BGP选为最佳路由,并提交给路由表).再次,使用Ping命令测试,终端计算机C3访问路由器R回环接口1的连通性(图10).AS 64530自治系统内的终端计算机C3,能够正常访问AS 64532自治系统内路由器R5回环接口1.这足以说明,通过在路由器R5、R6、R7中部署BGP协议,实现了既定目标(5).

图9 查看路由器R6的BGP连接状态

图10 测试终端计算机C3访问路由器R5回环接口1的连通性

3 结束语

现实中网络管理者在构建网络过程中,不仅要考虑网络的可扩展性,而且还要充分考虑网络的整体性能.多数情况下并不需要在网络中通告所有的路由更新,只需通告特定的路由更新即可.因此,有必要部署相关路由过滤技术,在充分考虑网络应用场景的情况下做好网络优化工作.

猜你喜欢

路由表回环列表
《黄帝内经》回环英译的选择与顺应
学习运用列表法
嘟嘟闯关记
扩列吧
基于OSPF特殊区域和LSA的教学设计与实践
研究路由表的查找过程
透 月
列表画树状图各有所长
学习“骑撑前回环”动作的常见心理问题分析及对策
2011年《小说月刊》转载列表