前文我们了解了路由控制技术中路由策略和路由匹配工具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的更多相关文章

  1. HCNP Routing&Switching之路由策略工具Route-Policy

    前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来 ...

  2. HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List

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

  3. HCNP Routing&Switching之路由控制-策略路由

    前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...

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

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

  5. HCNP Routing&Switching之路由引入

    前文我们了解了路由控制技术策略路由相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15333139.html:今天我们来聊一聊路由引入技术相关话题: 路 ...

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

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

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

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

  8. HCNP Routing&Switching之BGP团体属性和团体属性过滤器

    前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...

  9. HCNP Routing&Switching之BGP基础

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

随机推荐

  1. SpringBoot开发十三-检查登录状态

    需求介绍-检查登录状态 防止用户知道我们的一些功能的链接,直接就进到了该页面,就像有些功能是管理员访问才能进的,就需要进行登录状态的判断. 我们知道这个功能点很多其他的功能点都需要使用,所以我们需要使 ...

  2. AQS源码分析看这一篇就够了

      好了,我们来开始今天的内容,首先我们来看下AQS是什么,全称是 AbstractQueuedSynchronizer 翻译过来就是[抽象队列同步]对吧.通过名字我们也能看出这是个抽象类 而且里面定 ...

  3. NOIP 模拟 $34\; \rm Equation$

    题解 \(by\;zj\varphi\) 发现每个点的权值都可以表示成 \(\rm k\pm x\). 那么对于新增的方程,\(\rm x_u+x_v=k\pm x/0\) 且 \(\rm x_u+x ...

  4. noip模拟15

    T1 恶心的数学题,还卡空间... 于是考虑数组二次调用,用完memset 记录一手二维前缀和对不同询问离线修改,最后一块回答即可 Code #include<cstdio> #inclu ...

  5. Java线程池中submit()和execute()方法有什么区别

    两个方法都可以向线程池提交任务,execute()方法的返回类型是void,它定义在Executor接口中,而submit()方法返回有计算结构的Future对象,它定义在ExecutorServic ...

  6. Specification排序orderby

    废话不多说直接贴代码 Specification<Course> sf = new Specification<Course>() { @Override public Pre ...

  7. 请问在电脑里PNP是什么意思啊?

    PnP(Plug and Play,即插即用)是指用户不必干预计算机的各个外围设备对系统资源的分配,而将这一繁杂的工作交给系统,由系统自身去解决底层硬件资源,包括IRQ(中断请求).I/O(输入输出端 ...

  8. 【转】springcloud底层原理

    本文为转载文章,作者:中华石杉,十余年BAT架构经验,倾囊相授.作者微信公众号:石杉的架构笔记(ID:shishan100) 概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的 ...

  9. Javascript - Vue - 在vscode里使用webpack

    cnpm(node package manager)和webpack模块 npm是运行在node.js环境下的包管理工具,使用npm可以很快速的安装前端文件里需要依赖的那些项目文件,比如js.css文 ...

  10. C++字符串【string】和【char []】操作全攻略

    异想之旅:本人博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章发布平台为CSDN.博客园.简书和开源中国,后期可能会有个人博客,除此之外 ...