IS-IS:09 ISIS路由过滤

  在IS-IS 网络中,有时需要使用 filter-policy 工具对 IS-IS 路由进行过滤。这里所说的过滤,是指路由器在将自己IS-IS 路由表中的某些 IS-IS 路由纳入进自己的 IP 路由表的过程,一些满足了过滤条件的 IS-IS 路由将被限制纳入 IP 路由表中。

  需要注意的是, filter-policy 进行过滤的并非是生成那些 IS-IS 路由的 LSP ,所以 filter-policy 进行路由过滤之后,路由器中的 IS-IS 链路状态数据库和 IS-IS 路由表都不会受到任何影响。

实验拓扑,所有路由器均为 level-2路由器

基本配置:

R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int g0/0/0
ip add 192.168.12.1 24
int g0/0/1
ip add 192.168.14.1 24
q
R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.23.2 24
q
R3:
sys
sysname R3
int loop 1
ip add 172.16.1.1 24
int loop 2
ip add 172.16.2.1 24
int g0/0/1
ip add 192.168.23.3 24
int g0/0/2
ip add 192.168.34.3 24
q
R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int g0/0/1
ip add 192.168.14.4 24
int g0/0/2
ip add 192.168.34.4 24
q

配置IS-IS 协议,所有路由器均为 Level-2路由器:

R1:
isis
network-entity 10.0000.0000.0001.00
is-name R1
is-level level-2
int loo 0
isis enable
int g0/0/0
isis enable
int g0/0/1
isis enable
q
R2:
isis
network-entity 10.0000.0000.0002.00
is-name R2
is-level level-2
int loo 0
isis enable
int g0/0/0
isis enable
int g0/0/1
isis enable
q
R3:
isis
network-entity 20.0000.0000.0003.00
is-name R3
is-level level-2
int loo 1
isis enable
int loo 2
isis enable
int g0/0/1
isis enable
int g0/0/2
isis enable
q
R4:
isis
network-entity 10.0000.0000.0004.00
is-name R4
is-level level-2
int loo 0
isis enable
int g0/0/1
isis enable
int g0/0/2
isis enable
q

配置完成后,查看邻居的建立,路由表学习也正常
 

使用 filter-policy实现路由过滤:

R1 只能经R2 访问 R3 的loopback 1
R1 只能经R4 访问 R3 的loopback 2

在R2 上过滤掉R3的loopback 2

R2:
acl 2000
rule deny source 172.16.2.0 0.0.0.255
rule permit source any

isis
filter-policy 2000 import

172.16.2.0 已经没有了,只有1.0

但在IS-IS 路由表中,还是有的

过滤掉的路由条目不能进入IP 路由表,但并不会对生成这些路由的LSP进行过滤。

在R4 上过滤掉R3的loopback 1

R4:
acl 2000
rule deny source 172.16.1.0 0.0.0.255
rule permit source any

isis
filter-policy 2000 import

查看一下,R4 的路由表中,已经没有 172.16.1.0 的路由
 

配合使用filter-policy 和 route-policy:

在R1 上查看路由表,还是有两个下一跳的,在R2 R4上的过滤,对R1不起作用,这两条路由的LSP还继续泛洪。
在R1上进行路由过滤时,不能只考虑路由的前缀,同时还要考虑到路由的下一跳。

R1 :
定义ACL 2012匹配路由下一跳 192.168.12.2
定义ACL 2014匹配路由下一跳 192.168.14.4
定义ACL 2001匹配路由前缀 172.16.1.0/24
定义ACL 2002匹配路由前缀 172.16.2.0/24

R1:
acl 2001
rule permit source 172.16.1.0 0.0.0.255
acl 2002
rule permit source 172.16.2.0 0.0.0.255
acl 2012
rule permit source 192.168.12.2 0
acl 2014
rule permit source 192.168.14.4 0

route-policy 10 deny node 1
if-match ip next-hop acl 2012
if-match acl 2002

route-policy 10 deny node 2
if-match ip next-hop acl 2014
if-match acl 2001

route-policy 10 permit node 3

isis
filter-policy route-policy 10 import

 也可以 permit 放行

R1:
route-policy 10 permit node 1
if-match ip next-hop acl 2012
if-match acl 2001

route-policy 10 permit node 2
if-match ip next-hop acl 2014
if-match acl 2002

配置完成后,查看 R1 的路由表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354757.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序员该懂的一些测试(四)测试覆盖率

测试覆盖率通常被用来衡量测试的充分性和完整性,从广义的角度来讲,测试覆盖率主要分 为两大类,一类是面向项目的需求覆盖率,另一类是更偏向技术的代码覆盖率。 需求覆盖率 需求覆盖率是指测试对需求的覆盖程度,通常的…

Linux 驱动开发基础知识——总线设备驱动模型(七)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

C++ //练习 3.5 编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。

C Primer(第5版) 练习 3.5 练习 3.5 编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。 环境:Linux Ubuntu(云服务…

.NET高级面试指南专题三【线程和进程】

在C#中,线程(Thread)和进程(Process)是多任务编程中的重要概念,它们用于实现并发执行和多任务处理。 进程(Process): 定义: 进程是正在运行的程序的实例&…

ThinkPhp3.2(qidian)部署文档

宝塔环境部署 申请域名以及域名解析 具体配置,可百度之 在宝塔面板中创建网站 上传代码导入数据配置运行目录 注意:(如果版本:thinkphp3.2 )配置 运行目录要特别注意:运行目录要选择根目录“/”&#xff…

【c++】类和对象 - 类的引入和定义

1.类的引入 C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方式实现,…

报错:AttributeError: ‘str‘ object has no attribute ‘decode‘

original_keras_version f.attrs[‘keras_version’].decode(‘utf8’) AttributeError: ‘str’ object has no attribute ‘decode’ 1、问题描述 original_keras_version f.attrs[keras_version].decode(utf8) AttributeError: str object has no attribute decode2、原…

【英语趣味游戏】填字谜(Crossword)第1天

谜题出处 柯林斯字谜大全(6),Collins——Big Book of Crosswords(Book 6) Puzzle Number: 114 本期单词 横向 1、Situation involving danger (4) 包含危险的情境,4个字母 答案:Risk&#xff…

Spark写入kafka(批数据和流式)

Spark写入(批数据和流式处理) Spark写入kafka批处理 写入kafka基础 # spark写入数据到kafka from pyspark.sql import SparkSession,functions as Fss SparkSession.builder.getOrCreate()# 创建df数据 df ss.createDataFrame([[9, 王五, 21, 男], […

面试篇-SpringBoot自动配置原理

在Spring Boot中,自动装配是一种强大的功能,它允许开发者快速、简单地配置和管理应用程序的组件。以下是对Spring Boot自动装配原理的详细解释: Spring BootApplication注解源码: SpringBootApplication注解是一个复合注解&#x…

leetcode—课程表 拓扑排序

1 题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 …

旋转编码器SIQ-02FVS3驱动(AuroraFOC)

一. 简介 本次将基于AuroraFOC开发板,来教大家如何将旋转编码器按键优雅地使用起来,为大家开发多功能按键提供一种思路。 开发环境 STM32CubeMX HAL库Clion 作者: FPGA之旅(ValentineHP) 二. 原理(图)介绍 旋转编码器按键原理图如下,它…

《动手学深度学习(PyTorch版)》笔记3.1

Chapter3 Linear Neural Networks 3.1 Linear Regression 3.1.1 Basic Concepts 我们通常使用 n n n来表示数据集中的样本数。对索引为 i i i的样本,其输入表示为 x ( i ) [ x 1 ( i ) , x 2 ( i ) , . . . , x n ( i ) ] ⊤ \mathbf{x}^{(i)} [x_1^{(i)}, x_2…

【cdh】hive执行SQL提示缺少3.0.0-cdh6.3.2-mr-framework.tar.gz文件

问题:执行SQL报错提示缺少文件 异常信息如下 在hdfs上查看的时候连文件夹都没有,所以这个异常会抛出,但是我是基于CDH搭建的,可以直接基于下面操作 执行完成之后查看HDFS文件 重新执行SQL发现可以正常执行了

ad18学习笔记十六:v割

所谓“V割”是印刷电路板(PCB)厂商依据客户的图纸要求,事先在PCB的特定位置用转盘刀具切割好的一条条分割线,其目的是为了方便后续SMT电路板组装完成后的分板之用,因为其切割后的外型看起来就像个英文的“V”字型&…

【机器学习】强化学习(六)-DQN(Deep Q-Learning)训练月球着陆器示例

概述 Deep Q-Learning(深度 Q 学习)是一种强化学习算法,用于解决决策问题,其中代理(agent)通过学习在不同环境中采取行动来最大化累积奖励。Lunar Lander 是一个经典的强化学习问题,其中代理的任…

教学质量常态监控与评价平台

教学质量常态监控与评价平台,以提高教学质量为目标导向,利用Al、大数据等新型技术手段作为技术支撑,服务于教学质量科、督导、教师、学生等角色,基于教学过程数据,关注教师的教学内涵,覆盖了对教师、课堂、…

【刷题】 leetcode 面试题 08.05.递归乘法

递归乘法 1 题目描述2 思路一(返璞归真版)3 思路二(二进制乘法器版)4 思路三(变态版)Thanks♪(・ω・)ノ谢谢阅读下一篇文章见!!! 1 题目…

数据结构.双链表循环链表

一、1.双链表的初始化 void InitLNode(LinkList& L)//双链表的初始化 {L (LNode*)malloc(sizeof(LNode));L->prior NULL;L->next NULL;} 2.双链表的插入 void DInsert(LNode* p,LNode*s)//在p结点后面插入s结点 {s->next p->next;s->next->prior s;…

使用dockers-compose搭建开源监控和可视化工具

简介 Prometheus 和 Grafana 是两个常用的开源监控和可视化工具。 Prometheus 是一个用于存储和查询时间序列数据的系统。它提供了用于监控和报警的数据收集、存储、查询和图形化展示能力。Prometheus 使用拉模型(pull model),通过 HTTP 协议…