前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html;今天我们来聊一聊路由控制技术中的路由策略相关话题;

  为什么要路由控制?

  在企业网络的设备通信中,经常面临一些非法流量访问的安全性及流量路径不优等问题,为了保证数据访问的安全性、提高链路带宽利用率,我们就需要对网络中的流量行为进行控制;比如控制网络流量可达性、调整网络流量路径等;

  路由控制应用场景

  控制网络流量可达性

  提示:如上图所示,我们可以对路由进行过滤,让对端只能学习到我们想要它学习的路由,从而实现控制网络流量的可达性;

  更改路由属性

  提示:如上图所示,我们可以通过修改路由属性,来影响路由的选路;比如更改某条路由开销、给某条路由打标签等;

  路由策略

  路由策略(routeing policy)的作用是当路由器在发布、接收和引入路由信息时,可根据实际组网需求实施一些策略,以便对路由信息进行过滤或改变路由信息属性;如控制路由的发布,我们可以只发布满足条件的路由信息;控制路由接收也是同样的逻辑,只接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性;过滤和控制引入的路由,我们只需要在一种路由协议在引入其他路由协议时,只引入一部分满足条件的路由信息,并对引入的路由信息的某些属性进行修改,以使其满足本协议的要求;

  提示:如上如所示,我们想要控制交换机A到相同网络的路径都走左边,我们可以在交换机A上设置不接收右边的路由;如果我们需要让交换机到达相同网络的流量有主备链路,可以修改对应路由的开销,从而实现对流量路径的影响;

  总结:路由策略是指通过一系列工具或方法对路由进行各种控制的“策略”,来影响路由的产生、发布、选择,进而影响报文转发路径;比如对路由进行过滤,即对应路由要不要做一些策略;修改路由属性,即将对应路由的某些属性进行修改至特定的值;不管是对路由的过滤还是修改路由信息属性,最终的目的是控制路由的接收、发布和引入,提高网络安全性和网络性能;

  路由策略的实现机制

  路由策略的核心内容是过滤器,通过使用过滤器,定义一组匹配规则,即通过过滤器定义的规则来对应路由信息分类;对满足过滤器规则的路由信息通过策略工具做特定的处理,比如做允许、拒绝或修改属性等操作;最后通过调用工具将对应的路由策略应用到某些具体的路由协议里面,使其生效;即只定义了过滤器和策略工具,如果不调用对应路由策略是不生效的,只有被调用到具体的路由协议里面,对应路由策略才会生效;

  路由策略各工具之间的调用关系

  提示:首先我们需要通过条件工具(过滤器)来定义一组规则;然后通过策略工具调用条件工具来实现路由策略的定义;最后通过调用工具调用路由策略来应用对应的路由策略;当然有些调用工具也可以直接调用条件工具,来实现对应规则生效;比如调用工具filter-policy和peer这两个工具可以直接调用条件工具,使对应条件工具中定义的规则生效;策略工具route-policy它调用条件工具后,必须要调用工具的调用才能是对应规则生效,如果只是策略工具调用条件工具,对应条件工具中定义的规则不会生效;

  条件工具IP-Prefix List

  IP-Prefix List(IP前缀列表):它能同时精准匹配网络号和前缀长度;性能和可控性比ACL更高;对于ACL来说,它无法匹配掩码和前缀长度;但是ip前缀列表不能用于数据包过滤,只能用于路由信息过滤;

  提示:对于ACL来讲,我们无法实现将路由引入到OSPF中,只引入192.168.0.0/16的路由,而前缀列表可以;

  实验:如下拓扑,配置ospf,分别使用acl和IP-Prefix 过滤路由信息

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24 ospf 1 router-id 1.1.1.1
area 11
net 12.0.0.1 0.0.0.0

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24 ospf 1 router-id 2.2.2.2
area 11
net 12.0.0.2 0.0.0.0

  在R1上配置静态路由,出接口指向NULL 0口

  提示:静态路由存在于路由表的必要条件是对应路由能有对应的出接口,没有出接口只有下一跳,对应静态路由不会存在于路由表,且对应静态路由的状态也是非活动状态(Inactive);

  定义acl匹配192.168.0.0/16路由信息,然后将acl匹配到的路由信息导入ospf,看看对应ospfR2能够学习到那些路由?

  使用route-policy工具调用acl过滤路由信息

  提示:上述命令表示创建一个名为test的路由策略,其中调用过滤器acl 2000中的条件,即满足过滤器acl2000中定义的规则,则路由策略允许放行;

  使用调用工具import-route 调用路由策略test

  验证:查看R2的路由表,看看对应R1导入的静态路由,R2学习到了那些?

  提示:可以看到对应在R2上还是能够学习到192.168.0.0/24的路由;这意味着我们使用acl 不能精确匹配后面的掩码长度;

  在R1上使用ip prefix过滤路由

  使用策略工具route-policy调用条件工具ip-prefix

  验证:再次在R2上查看路由表,看看现在R2通过ospf学习到那些路由?

  提示:可以看到现在R2只能学习到192.168.0.0/16网络的路由,对应掩码为24的网络路由学习不到,其原因是前缀列表中只允许了掩码为16的路由通过;

  通过上述实验我们可以看出,ACL不能够精确匹配掩码长度,而前缀列表可以正常匹配对应掩码长度;

  IP-Prefix匹配流程

  提示:前缀列表和acl匹配流程差不多,都是从上至下依次匹配,匹配到的路由信息后,不再匹配下一条;如果没有匹配上,继续下一条规则的匹配,直到所有规则都不匹配,此时就会走,默认规则;不同之处在于acl默认规则是允许通过,即所有规则都没有匹配上,默认是允许操作;而前缀列表中默认规则是拒绝,即所有规则没有被匹配上,最后都会被默认规则匹配,做拒绝操作;

  IP-Prefix语法规则

  提示:ip地址后面的数字表示匹配前缀的长度;如果不配置greater-equal 24和 less-equal 28 ,则表示精确匹配前缀长度和掩码长度为16;如果只配置了greater-equal 24,则表示匹配掩码长度为24-32,前缀长度为16;如果只配置了less-equal 28,则表示匹配掩码长度为16-28,前缀长度为16;如果同时配置了greater-equal 和less-equal,则表示匹配掩码的长度为后面两者指定的范围,前缀长度为16;如上图表示匹配掩码长度为24-28,前缀长度为16;即前面的16为必须相同;后面的掩码必须在指定的范围之内的网络才能被匹配上;

  IP-Prefix特殊通配地址

  提示:0.0.0.0 0表示任意地址,前缀长度为0,即任意地址,不需要任何一位相同;如果后面不跟大于等于或小于等于掩码的范围,则表示之匹配缺省路由;如果后面跟上小于等于,则表示匹配任意长度前缀和任意地址,对应掩码必须是指定的范围内的掩码路由;如0.0.0.0 less-equal 32就表示匹配所有路由;任意路由都满足上述条件;如果跟大于等于,则表示匹配任意长度前缀和任意地址,对应掩码必须是大于等于指定的长度的掩码网络路由;即0.0.0.0 0 greater-equal 表示匹配所有主机路由(掩码长度为32);

HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List的更多相关文章

  1. HCNP Routing&Switching之OSPF外部路由类型以及forwarding address

    前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...

  2. HCNP Routing&Switching之BGP路由控制

    前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...

  3. HCNP Routing&Switching之路由过滤工具Filter-Policy

    前文我们了解了路由控制技术中路由策略和路由匹配工具IP-Prefix相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15314262.html:今天我们 ...

  4. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

  5. HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter

    前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...

  6. HCNP Routing&Switching之路由引入导致的问题及解决方案

    前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...

  7. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  8. HCNP Routing&Switching之BFD

    BFD技术背景 什么是BFD?它的主要作用是做什么的,这是我们学习BFD需要搞清楚的地方: BFD是Bidirectional Forwarding Detection的缩写,翻译成中文就是双向转发检 ...

  9. HCNP Routing&Switching之OSPF LSA类型

    前文我们了解了OSPF中的虚连接相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15202348.html:今天我们来聊一聊OSPF数据包中LSA类型相 ...

随机推荐

  1. 使用TestNG,Apahcje POI和Excel文件进测试行数据驱动测试

    import com.cxy_fanwe.common.test_fanwe_qiantai;import org.apache.http.Header;import org.apache.http. ...

  2. 清理docker常用命令

    0.查看docker占用空间docker system df1.一键删除所有已经停止的容器 docker container prune 2.删除所有容器(包含停止的 正在运行的) docker rm ...

  3. 安鸾CTF Writeup SSRF02

    SSRF02 题目链接:http://www.whalwl.host:8090/ 看到题目,以为是SSRF 获取内网信息, SFTP FTP Dict gopher TFTP file ldap 协议 ...

  4. 一次关于shiro反序列化漏洞的思考

    0x01前言 之前在我反序列化的那篇文章中(https://www.cnblogs.com/lcxblogs/p/13539535.html),简单说了一下反序列化漏洞,也提了一嘴常见的几种Java框 ...

  5. 一种简易但设计全面的ID生成器思考

    分布式系统中,全局唯一 ID 的生成是一个老生常谈但是非常重要的话题.随着技术的不断成熟,大家的分布式全局唯一 ID 设计与生成方案趋向于趋势递增的 ID,这篇文章将结合我们系统中的 ID 针对实际业 ...

  6. CF1264D2 Beautiful Bracket Sequence

    我们枚举每两个字符的空档,统计一个空档左边有 \(l\) 个左括号, 右边有 \(r\) 个右括号,左边有 \(u\) 个问号,右边有 \(v\) 个问号. 则对于 \(p\) 的答案 \(ans_p ...

  7. Git进行clone的时候,报错:remote: HTTP Basic: Access denied fatal: Authentication failed for ...

    先执行: git config --system --unset credential.helper 原因:用户名或者密码错: 会提示让重新输入用户名和密码,输入正确的用户名和密码即可! 这样以后发现 ...

  8. RHEL 7 “There are no enabled repos” 的解决方法

    RHEL 7 "There are no enabled repos"  的解决方法 [root@system1 Desktop]# yum install squidLoaded ...

  9. python的GUI框架tkinter,实现程序员的流氓式表白逻辑

    导入依赖 '''导入依赖''' import tkinter as tk import tkinter.messagebox as msg 创建并隐藏根窗口 '''创建并隐藏根窗口''' root_w ...

  10. nodejs 更改项目端口号的 方法

    我这里是 koa2 项目 1.项目目录 serverConf.js 这里面配置端口 代码如下: const ServerConf= { ServicePort: 3036 }; module.expo ...