华为路由与交换--路由控制复习笔记

 在企业网络的设备通信中,常面临一些非法流量访问的安全性及流量路径不优等问题,故为保证数据访问的安全性、提高链路带宽利用率,就需要对网络中的流量行为进行控制,如控制网络流量可达性、调整网络流量路径等。而当面对更加复杂、精细的流量控制需求时,就需要灵活地使用一些工具来实现,本次博客主要介绍一些有关流量控制的常用工具及其使用场景

1.控制网络流量可达性。 

为保证网络安全性,客户常提出一些部门之间不可互访的需求,如下图所示:市场部不可以访问财务部和研发部,公司总部不能访问研发部

 

 2.调整网络流量路径。

如下图所示,根据OSPF协议计算生成的路由,市场部和财务部访问公司总部都选择通过一条开销最小的路径,即使该路径发生拥塞也如此,而另外一条路径的链路带宽则一直处于空闲状态,这样就造成了带宽浪费的问题。

解决:控制流量的可达性,有两种方式:直接与间接

直接方式:直接针对流量进行过滤----流量工程
间接方式:对路由进行控制筛选---路由策略

 解决方案一:可通过修改路由条目(即对接收和发布的路由进行过滤)来控制流量可达性,这种方式称为路由策略

解决方案二:可使用Traffic-Filter工具对数据进行过滤,这种方式称为流量过滤 

在解决方案一中,可以利用Filter-Policy工具对RTAOSPF引入的路由和RTC写入路由表的路由进行过滤:首先使用ACL或IP-Prefix List工具匹配目标流量;然后在协议视图下,利用Filter-Policy向目标流量发布策略

 也可以利用Route-Policy工具,在RTA引入直连路由时对路由进行过滤:首先使用ACL或IP-Prefix List工具来匹配目标流量;然后在协议视图下,利用Route-Policy对引入的路由条目进行控制

 路由策略的实现分为两个步骤

定义规则:首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则,可以以路由信息中的不同属性作为匹配依据进行设置,如目的地址、AS号等;(警察

应用规则:根据设置的匹配规则,再将它们应用于路由的发布、接收和引入等过程中。(法官

就类似生活中警察会把小偷抓起来,但是对于这个小偷是否需要坐牢,或者是判刑是由法官来决定的事情,警察只是负责把小偷抓起来。

ACL可通过匹配报文的信息实现对报文的分类。 

格式如下:

acl 2001    #创建一个基本ACL#

rule 0 permit source 1.1.0.0  0.0.255.255   

 #在这个列表里会允许源ip是1.1.0.0的流量通过,0.0.255.255是反子网掩码,0代表精确匹配,1代表任意匹配,也就是说允许过去的源ip前面两位必须是1.1,后面2位随意,来自于1.1.x.x的流量都可以通过;permit--通过,deny--拒绝#

访问控制列表ACL(Access Control List)是由permitdeny语句组成的一系列有顺序规则的集合,它通过匹配报文的信息实现对报文的分类。

ACL的分类:

基本ACL:主要基于源地址、分片标记和时间段信息对数据包进行分类定义,编号范围为2000-2999

高级ACL:可以基于源地址、目的地址、源端口号、目的端口号、协议类型、优先级、时间段等信息对数据包进行更为细致的分类定义,编号范围为3000-3999

二层ACL:主要基于源MAC地址、目的MAC地址和报文类型等信息对数据包进行分类定义,编号范围为4000-4999

用户自定义ACL:主要根据用户自定义的规则对数据报文做出相应的处理,编号范围为5000-5999

一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则继续匹配下一条。一旦找到一条匹配的规则,就会执行规则中定义的动作,且不再继续与后续规则进行匹配;如果找不到匹配的规则,则设备会对报文直接进行转发。

需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形。 

ACL可以灵活地匹配IP地址的前缀,但无法匹配掩码长度。

IP-Prefix List能够同时匹配IP地址前缀及掩码长度。 IP-Prefix List不能用于IP报文的过滤,只能用于路由信息的过滤。

示例:ip ip-prefix test index 10 permit 10.0.0.0 16 greater-equal 24 less-equal 28

IP地址范围:10.0.0.0 – 10.0.x.x        24<= 掩码长度 <=28 

前缀列表的组成及匹配规则:
前缀过滤列表由IP地址和掩码组成,IP地址可以是网段地址或者主机地址,掩码长度的配置范围为032
IP-Prefix List中的每一条IP-Prefix都有一个序列号index,匹配的时候将根据序列号从小到大进行匹配。
如果不配置IP-Prefixindex,那么对应的index在上次配置的同名IP-Prefixindex的基础上,以步长为10进行增长。如果配置的IP-Prefix的名字与index都和已经配置了的一项IP-Prefix List的相同,仅仅只是匹配的内容不同,则该IP-Prefix List将覆盖原有的IP-Prefix List
当所有前缀过滤列表均未匹配时,缺省情况下,存在最后一条默认匹配模式为deny。当引用的前缀过滤列表不存在时,则默认匹配模式为permit
前缀掩码长度范围:
前缀过滤列表可以进行精确匹配或者在一定掩码长度范围内匹配,并通过配置关键字greater-equalless-equal来指定待匹配的前缀掩码长度范围。如果没有配置关键字greater-equalless-equal,前缀过滤列表会进行精确匹配,即只匹配掩码长度为与前缀过滤列表掩码长度相同的IP地址路由;如果只配置了关键字greater-equal,则待匹配的掩码长度范围为从greater-equal指定值到32位的长度;如果只匹配了关键字less-equal,则待匹配的掩码长度范围为从指定的掩码到关键字less-equal的指定值。

 

ip ip-prefix Pref1 index 10 permit 1.1.1.0  24 greater-equal 24 less-equal 24    像这种,greater-equal 24 less-equal 24”表示掩码长度只能是24

 Filter-Policy能够对接收或发布的路由进行过滤,可应用于ISIS、OSPF、BGP等协议。

对协议接收的路由进行过滤:

      filter-policy { acl-number | ip-prefix ip-prefix-name } import

对协议发布的路由进行过滤:

      filter-policy { acl-number | ip-prefix ip-prefix-name } export

应用各协议中的Filter-Policy工具可通过引用ACL或地址前缀列表,对接收、发布和引入的路由进行过滤。  

Route-Policy是一种功能非常强大的路由策略工具,它可以灵活地与ACLIP-Prefix ListAs-Path-Filter等其它工具配合使用 (法官

 Route-Policy:

    route-policy route-policy-name { permit | deny } node node  允许/拒绝通过node 

  if-match {acl/cost/interface/ip next-hop/ip-prefix}   如果满足后面的这些规则(acl/cost/interface/ip next-hop/ip-prefix)

  apply {cost/ip-address next-hop/tag}  就对这个路由进行应用(cost/ip-address next-hop/tag)

Route-Policy由若干个node构成,node之间是“或”的关系。且每个node下可以有若干个if-machapply子句,if-match之间是“与”的关系。

路由策略配置实现:如下图所示,要求市场部不能访问财务部和研发部,公司总部不能访问研发部。

 在这里我采用的动态路由协议是ospf协议,所有的路由器接口都属于骨干区域,在AR1上通过import-route 引入了直连路由,实现了全网互通,在这里不做展示,现根据要求需要针对市场部不能访问财务部和研发部,公司总部不能访问研发部来做配置。

在没有做路由策略之前,对于AR3的ospf路由表是这样的,如下图所示:

 AR4上的关于ospf的路由表是这样的

 二者的路由表里都有关于去往研发部的路由。

对于市场部和公司总部都不能访问研发部,我们可以在AR1上做配置,将研发部的192.168.11.0 的路由过滤掉,

配置如下:

通过创建ip-prefix 111,来允许路由192.168.1.0和192.168.111.0,也就是财务部和资料部的路由可以通过,相反,研发部的路由就被过滤掉了,此时的ip-prefix 既做警察又做法官,把相应的路由进行匹配,匹配之后的动作是允许(permit),之后在通过filter-policy 在ospf的协议视图下去调用ip-prefix,当你引入直连的时候,直连进入ospf,站在外部路由的角度去考虑,
是不是从ospf出去了,export出向去做一个过滤。

配置完成之后,在AR3和AR4上查看关于ospf的路由表,如下图所示

会发现,原来存在在ospf路由表里的192.168.11.0这个研发部的路由,被过滤掉了,相应的对于市场部和公司总部来说就不能访问研发部的数据了。 

接下来,去满足市场部不能访问财务部的要求,我们可以通过ACL来做路由的过滤,ACL本身是用来过滤流量的,但是也可以用来过滤路由,但是在过滤路由的时候,缺省是拒绝其他所有的路由通过,当用ACL去过滤流量的时候,缺省是允许其他所有的流量通过,这个地方需要注意一下。

 我们可以在AR1上,通过acl来过滤财务部的路由,配置如下图所示:

 

 同样的,这里的acl 既做警察又做法官,将来自财务部的192.168.1.0 的路由过滤掉,通过filter-policy 在ospf的协议视图下应用在引入路由的方向上,同时还有一点需要注意,在acl过滤路由的时候,需要配置一条允许其他所有匹配上的路由通过,因为缺省是拒绝,为了防止其他的路由被筛选掉,需要配置一条允许其他所有的命令。

做完配置之后 ,可以在AR3上查看ospf的路由表

会发现,把来自财务部的路由192.168.1.0过滤掉了。 

 以上是通过ACL和ip-prefix既可以匹配流量,又可以执行动作来做配置的,下面我们来用另外一种方法,会使用到route-policy来执行动作,ACL和ip-prefix来匹配流量,也就是说,下面的acl和ip-prefix只是用来作为警察的,而route-policy是用来作为法官的。

如图所示,是总体拓扑的概况

 通过配置route-policy 在AR3上的配置如下:

先通过配置ACL把财务部的路由匹配出来,这里只是匹配,并不执行动作,

 通过route-policy来执行动作,如果满足acl 2000的路由,执行的动作是deny(拒绝通过),在通过在ospf的协议视图下去调用filter-policy工具执行route-policy shichang的动作(拒绝)

在AR1上的配置如下图所示

首先通过ip-prefix去匹配来自研发部的路由192.168.4.0,这里的ip-prefix只是作为警察,并不是法官。还是通过route-policy来执行拒绝的动作,最后在ospf的协议视图下在引入直连路由的时候,执行route-policy yanfa的动作即可。

 以上两种方式采用的是间接的方式,通过路由策略来实现各个部门之间的访问需求。

下面我们来了解一下采用直接的方式,通过过滤流量来实现各个部门之间的访问需求。

基于自定义策略实现:使用Traffic-Filter工具对数据进行过滤。

如下图所示,是客户的网络于要求

 

 采用流量过滤的方式,可以依靠高级acl来进行配置,如下图所示:

在AR3上的配置,通过配置高级acl 来过滤掉(deny)来自192.168.1.0(市场部),去往财务部192.168.3.0 的流量,以及过滤掉来自市场部192.168.1.0,去往研发部192.168.4.0的流量。 

然后在AR3的入接口上通过使用traffic-filter工具来调用acl 3000.

 结果验证

在AR3上查看关于ospf的路由表,会发现,去往财务部和研发部的路由还是正常存在的,

但是作为市场部的pc1却ping不同作为财务部的pc3和作为研发部的pc4 

 针对流量过滤,即使路由表里有路由,数据流量还是被过滤掉,这是流量过滤的特点。

同样的针对公司总部不能访问研发部的配置,如下图所示

在AR4上的配置

 

结果验证:作为公司总部的pc2是不能去访问作为研发部的192.168.4.4的。

 

在后期对网络进行优化时,常出现调整网络流量路径的需求。 

 

解决方案一:可通过路由策略方式修改协议属性来控制路由表条目,从而调整流量路径。
解决方案二:可采用策略路由方式在查找路由表之前控制流量行为。
解决方案一:采用路由策略方式,去修改开销值即可,在此不做演示 
为充分利用链路带宽,现要求市场部访问总部流量路径为RTA-RTB-RTD,财务部访问总部流量路径为RTA-RTC-RTD

若采用解决方案一来实现以上需求,由于其只能依据数据包的目的地址做转发策略,所以无法满足需求;故当出现基于源地址、目的地址或基于应用层等一些复杂的控制需求时,就体现出其局限性。

 解决方案二:采用策略路由方式

策略路由方式常采用Traffic-Policy工具来实现:
首先使用ACL工具匹配目标流量;
然后对目标流量定义行为,如修改下一跳。

配置案例如下图所示:

 

 在AR1上的配置,如下图所示

先创建一个高级acl匹配上从市场部到公司总部的流量,然后通过traffic classifier 去定义一个类,这个类里是需要和acl 3000做绑定,再通过traffic behavior 去标识动作,将下一跳改为了10.0.12.2,之后,在traffic policy里面将traffic classifier这个类和需要执行的动作traffic behavior做一个绑定,在入接口G0/0/0DE 入方向上执行traffic policy。

 

 结果测试,如下图所示,作为市场部的pc1在访问公司总部的192.168.3.3的路径下一跳是10.0.12.2.

 同样的,在AR1上的配置,针对财务部去往公司总部的路径的配置如下

 

 

 

 

结果验证,发现作为财务部的pc1去往公司总部的192.168.3.3的下一跳是 10.0.13.3.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章