HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List
前文我们了解了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在作为路由策略调用工具的条件时默认规则是拒绝通过,即所有规则都没有匹配上,默认是拒绝操作;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);