HCNP Routing&Switching之路由过滤工具Filter-Policy
前文我们了解了路由控制技术中路由策略和路由匹配工具IP-Prefix相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15314262.html;今天我们来聊一聊路由过滤工具Filter-Policy相关话题;
Filter-Policy
Filter-Polciy是一种常用的路由过滤工具,只能过滤路由,无法过滤LSA,不能修改路由属性;它可以直接调用条件工具ACL或IP-Prefix 或者调用route-policy工具;在路由策略里担任着调用工具的角色;我们知道路由的学习是有方向的,相对来说控制路由或过滤路由也是有方向的;我们可以在路由器的出方向或入方向进行路由过滤,最终结果都是将对应路由过滤掉;
距离矢量路由协议中路由过滤

提示:距离矢量路由协议是直接传播的是路由信息,所以我们可以选择在路由发出或入的方向上进行过滤,不管在出或入方向进行过滤,对应最后的结果都是一样的;一般根据现网环境来决定到底是在哪个方向上进行过滤比较好;

提示:距离矢量路由协议中,路由信息是直接传播的,所以在链路途中任意路由器在过滤了某条路由,随后后面的路由器就学习不到对应的路由;比如上图,我们在交换机的路由入方向过滤掉192.168.3.0以后,对应C交换机就学习不到对应192.168.3.0这条路由;当然如果在交换机A的出方向过滤掉192.168.3.0,则随后交换机B和交换机C都学习不到对应192.168.3.0这条路由;
链路状态路由协议中路由过滤---单区域

提示:上图是OSPF单区域里路由过滤的示意图;我们知道链路状态路由协议主要是通过传播LSA,建立数据库,然后通过LSDB数据库结合SPF算法来进行计算路由;所以对于我们要想过滤掉某条路由,我们只能在某个路由器的生成路由信息时来影响,即只能在路由的入方向来过滤某些路由;但是对于ospf来说,在单区域里主要通过1类或2类LSA在整个区域内不泛洪,从而同步LSDB数据库生成路由,我们在区域中某台路由器上进行路由过滤其实不影响其他路由器;原因是单区域里的LSDB数据库是相同的,对应路由是依靠LSDB数据库中的内容算出来的;入上图所示,我们在交换机B上过滤掉10.1.1.0/24这条路由,但对于交换机C来说,它的路由表中还是可以正常学习到10.1.1.0/24的路由;这是因为路由过滤并不能过滤LSA,其次单个区域中的所有路由器的LSDB都是同步的;
链路状态路由协议中路由过滤---多区域---区域间路由

提示:对于多区域,区域间的路由传播主要通过3类LSA;其实3类LSA就是把对应区域里的路由进行打包然后通过3类LSA的格式发送给其他区域;这也意味着如果我们在一个区域的abr上过滤掉某些路由,那么对于它传递给其他区域的路由也就无法学习到对应被过滤掉的路由;其原因是多区域,每个区域的LSDB数据库是不相同的,其次区域间路由通过abr发送3类LSA,对应内容就是abr路由器所在区域的路由信息;如上图,我们在交换机B上的入方向过滤掉10.1.1.0/24这条路由,那么对于交换机B向区域1里交换机c发送的3类LSA里面就没有10.1.1.0/24这条路由;所以交换机C也是学习不到10.1.1.0/24的路由;
链路状态路由协议中路由过滤---多区域---外部引入路由

提示:对于内部ospf的路由还是只能在计算路由信息生成时,即路由学习的入方向进行过滤;对应外部引入的路由,我们可以通过路由发出的方向进行过滤;外部路由引入只所以能够在出方向进行过滤,其主要原因是路由信息实现存在asbr的路由表中,在向其他路由器发送时,是通过路由表中的路由信息,生成对应的5类LSA,所以我们在发出5类LSA时过滤掉路由,对应5类LSA里就不会有对应路由,从而其他路由器也就无法通过5类LSA学习到对应的外部路由;
总结:距离矢量路由协议路由过滤

提示:距离矢量路由协议的路由过滤我们可以在入和出两个方向上进行过滤,因为路由矢量路由协议是直接传播的路由信息;
总结:链路状态路由协议路由过滤

提示:链路状态路由协议路由过滤主要在入方向进行过滤;其主要原因是链路状态路由协议通过传播LSA构建LSDB数据库,而路由过滤只能过滤路由信息,对于LSA它并不能过滤;所以链路状态路由协议中过滤路由,对应LSDB在相同区域里是同步的;我们过滤路由只能在路由的入方向,即通过spf在生成路由时来影响;对于外部路由引入我们是在发出时进行过滤;发出时过滤影响的是所有其他路由器;之所以外部路由能在asbr的出方向过滤,是因为外部路由事先存在ip路由表单中,在发出时过滤,对应生成5类LSA里就不会包含过滤掉的路由,从而其他路由器也就无法通过5类LSA学习到对应ASBR过滤掉的路由;
实验:如下拓扑,配置RIP,使用路由过滤工具Filter-Policy过来路由信息

R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24 int lo 1
ip add 1.1.1.1 32
int lo 2
ip add 2.2.2.2 32
int lo 3
ip add 3.3.3.3 32 rip 1
ver 2
net 12.0.0.0
net 1.0.0.0
net 2.0.0.0
net 3.0.0.0
R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24 int lo 1
ip add 4.4.4.4 32
int lo 2
ip add 5.5.5.5 32
int lo 3
ip add 6.6.6.6 32 rip 1
ver 2
net 12.0.0.0
net 4.0.0.0
net 5.0.0.0
net 6.0.0.0
验证:查看R2或R1的路由表,看看是否学习到对方的路由信息?

提示:可以看到在R2上能够正常学习到R1的lo接口路由;
在R2上使用IP-Prefix 工具匹配1.1.1.1/32的路由信息

在R2的rip进程中,路由入方向只允许1.1.1.1/32的路由

验证:查看R2的路由表,看看对应1.1.1./32的路由是否被过滤掉了呢?

提示:可以看到此时R2只能学习到1.1.1.1/32的路由;之前的2.2.2.2和3.3.3.3就被过滤工具Filter-policy工具调用ip-prefix的默认策略给拒绝掉了;这里需要说明一点,filter-policy工具调用ip-prefix作为条件来过滤路由,默认规则是拒绝操作;如果我们需要拒绝某条路由,允许其他路由,我们需要在ip-prefix里写上permit 0.0.0.0 0 less 32;
在R2上新建前缀列表规则,拒绝4.4.4.4/32的路由,允许其他所有路由

在R2的出方向使用路由过滤工具filter-policy调用ip-prefix test1进行路由过滤

验证:在R1上查看路由表,看看对应4.4.4.4的路由是否被过滤掉了呢?

提示:可以看到对应4.4.4.4/32的路由R1没有被学习到,其原因是R2在发送路由信息时通过filter-policy工具调用ip-prefix将4.4.4.4/32的路由拒绝掉了;
实验:如下拓扑,配置ospf,使用filter-policy工具调用ip-prefix进行路由过滤

R3的配置

sys
sys R3
int g0/0/0
ip add 34.0.0.3 24
int lo 1
ip add 1.1.1.1 32
int lo 2
ip add 2.2.2.2 32 ospf 1 router-id 3.3.3.3
area 0
net 34.0.0.0 0.0.0.255
R4的配置

sys
sys R4
int g0/0/0
ip add 34.0.0.4 24
int g0/0/1
ip add 45.0.0.4 24 ospf 1 router-id 4.4.4.4
area 0
net 34.0.0.0 0.0.0.255
area 1
net 45.0.0.0 0.0.0.255
R5的配置

sys
sys R5
int g0/0/0
ip add 45.0.0.5 24 ospf 1 router-id 5.5.5.5
area 1
net 45.0.0.0 0.0.0.255
在R3新建ip-prefix 匹配1.1.1.1/32的路由

在R3上将直连路由注入到ospf中,然后使用路由过滤工具调用ip-prefix 在出方向

验证:查看R4或R5的ospf路由表,看看对应1.1.1.1的路由是否存在路由表?

提示:可以看到在R4学习到的外部路由中就只有1.1.1.1/32的路由,2.2.2.2/32的路由被默认规则给拒绝掉了;
在R4上创建前缀列表匹配1.1.1.1/32路由

在R4的入方向拒绝1.1.1.1/32的路由,看看对应R5是否会受影响?

验证:查看R4的路由表,看看1.1.1.1是否被拒绝?

提示:可以看到R4本地路由表没有1.1.1.1的路由了;这里需要注意一点,链路状态路由协议在入方向过滤路由,只是影响到ip路由表中的路由,并不影响协议路由表;即ospf路由表里还是会有1.1.1.1的路由;
验证:在R5上查看路由表,看看R5是否会受影响?

提示:可以看到R5的ip路由表里还是有1.1.1.1的路由;但是34.0.0.0/24的路由被过滤掉了;其原因是在R4的入方向过滤了1.1.1.1/32,并且没有允许其他路由通过,所以34.0.0.0/24的路由也被过滤掉,然后R4生成3类LSA中就没有34.0.0.0/24的路由,所以到达R5时,对应34.0.0.0/24的路由不会被R5学习到;对应1.1.1.1这个路由,它本身就是R3产生的5类LSA,在全网传播,虽然R4在入方向过滤掉1.1.1.1,但不影响R3发送的5类LSA向R5传播;所以我们在R5上能够看到1.1.1.1的路由,34.0.0.0/24的路由看不到;
通过上述实验可以看到链路状态路由协议在路由入方向过滤路由,只是影响本地到ip路由表里的路由,并不影响其他路由器的路由(本地区域或外部路由);对于外部路由,只有在ASBR出方向过滤时,对应其他路由器才会受到影响;对于区域间路由,如果abr在入方向没有被允许,则后续的其他区域路由器也不会学习到对应区域间的路由;对于abr出方向过滤路由是没有意义的,也不会生效,即出方向过滤路由只针对外部路由引入有效,区域间路由并不会生效;
HCNP Routing&Switching之路由过滤工具Filter-Policy的更多相关文章
- HCNP Routing&Switching之路由策略工具Route-Policy
前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来 ...
- HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List
前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...
- HCNP Routing&Switching之路由控制-策略路由
前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...
- HCNP Routing&Switching之路由引入导致的问题及解决方案
前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...
- HCNP Routing&Switching之路由引入
前文我们了解了路由控制技术策略路由相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15333139.html:今天我们来聊一聊路由引入技术相关话题: 路 ...
- HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter
前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- HCNP Routing&Switching之BGP团体属性和团体属性过滤器
前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
随机推荐
- JavaScript学习02(js快速入门)
快速入门 基本语法 JavaScript的语法和Java的语法类似,每个语句以;结束,语句块用{...}.但是JavaScrip并不强制要求在每个语句的结尾加;,浏览器中负责执行JavaScript代 ...
- Linux中的账号权限管理
一.用户账号和组账号概述 Linux基于用户身份对资源访问进行控制 1.1.用户账号 超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限.系统中超级用户是唯一 ...
- 加载GIF图片优化方案
前言 许多项目需要加载GIF图片,但是在直接使用UIImageView加载存在许多问题,于是查找资料做了一个加载GIF的Demo,思路来源. 思路 使用FLAnimatedImage来加载GIF图片, ...
- How to build your custom release bazel version?
一般情况下用源代码编译,生成的都是开发版本,这种版本做版本号校验方面会有很多问题,所以需要编译自己的release版本. export USE_BAZEL_VERSION=1.2.1 # 选择使用版本 ...
- 保护亿万数据安全,Spring有“声明式事务”绝招
摘要:点外卖时,你只需考虑如何拼单:选择出行时,你只用想好目的地:手机支付时,你只需要保证余额充足.但你不知道这些智能的背后,是数以亿计的强大数据的支持,这就是数据库的力量.那么庞大数据的背后一定会牵 ...
- SSM自学笔记(一)
本文内容 Ioc和DI Spring快速入门 Spring配置文件 Spring IoC和DI注解开发 Spring配置数据源 Spring注解开发 Spring整合Junit IoC 和 DI 1. ...
- opencv入门系列教学(四)处理鼠标事件
一.鼠标事件的简单演示 opencv中的鼠标事件,值得是任何与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等.我们先来看看鼠标事件有哪些,在python中执行下面代码: import cv2 ...
- MAC下Jetbrains编译器无法打开问题解决
这段时间不知道怎么回事,每次打开Rider必定闪退,毫无头绪,只好暂时放弃使用Rider,试用了一段时间Visual Studio. 可惜...虽然大学时候觉得VS天下第一,但是用惯了JB的编译器,再 ...
- VS2017 添加预定义宏
project_name[right click] -> Properties -> C/C++ -> Preprocessor -> Preprocessor Definit ...
- lsyncd替代inotify+rsync实现实时同步
因公司业务需要需要实时同步日志文件,刚一开始使用的是inotify+rsync来实现实时同步,但时间久而久之发现同步的速度越来越慢,往往延迟好几个小时.查了一下网上的inotify+rsync方案基本 ...