在OSPF中使用基本ACL过滤路由信息示例

1、ACL的基本原理。

        ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。设备支持软件ACL和硬件ACL两种实现方式。

2、ACL的组成。

  • ACL名称:通过名称来标识ACL,就像用域名代替IP地址一样,更加方便记忆。这种ACL,称为命名型ACL。

    命名型ACL一旦创建成功,便不允许用户再修改其名称。

    仅基本ACL与基本ACL6,以及高级ACL与高级ACL6,可以使用相同的ACL名称;其他类型ACL之间,不能使用相同的ACL名称。

    命名型ACL实际上是“名字+数字”的形式,可以在定义命名型ACL时同时指定ACL编号。如果不指定编号,则由系统自动分配,设备为其分配的编号是该类型ACL可用编号中取值范围内的最大值。

  • ACL编号:用于标识ACL,也可以单独使用ACL编号,表明该ACL是数字型。

    不同的ACL类型使用不同的ACL编号取值标识。

  • 规则:即描述报文匹配条件的判断语句。

    • 规则编号:用于标识ACL规则。可以自行配置规则编号,也可以由系统自动分配。

      ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。

    • 动作:报文处理动作,包括permit/deny两种,表示允许/拒绝。

    • 匹配项:ACL定义了极其丰富的匹配项。除了图中中的源地址和生效时间段,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型),三层报文信息(如目的IP地址、协议类型),以及四层报文信息(如TCP/UDP端口号)等。

    3、ACL的实现方式。

目前设备支持的ACL,有以下两种实现方式。

  • 软件ACL:针对与本机交互的报文(必须上送CPU处理的报文),由软件实现来过滤报文的ACL,比如FTP、TFTP、Telnet、SNMP、HTTP、路由协议、组播协议中引用的ACL。

  • 硬件ACL:针对所有报文,通过下发ACL资源到硬件来过滤报文的ACL,比如流策略、基于ACL的简化流策略、用户组以及为接口收到的报文添加外层Tag功能中引用的ACL。

两者主要区别在于:

  • 过滤的报文类型不同:软件ACL用来过滤与本机交互的报文,硬件ACL可以用来过滤所有报文。

  • 报文过滤方式不同:软件ACL是被上层软件引用来实现报文的过滤,硬件ACL是被下发到硬件来实现报文的过滤。通过软件ACL过滤报文时,会消耗CPU资源,通过硬件ACL过滤报文时,则会占用硬件资源。通过硬件ACL过滤报文的速度更快。

  • 对不匹配ACL的报文的处理动作不同:当使用软件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为deny,即拒绝报文通过;当使用硬件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为permit,即允许报文通过。

 4、实验案例。

设备名

接口

对应的VLANIF

IP地址

S1

GE0/0/1

VLANIF10

192.168.1.1/24

S2

GE0/0/1

VLANIF10

192.168.1.2/24

S2

GE0/0/2

VLANIF20

192.168.2.1/24

S3

GE0/0/1

VLANIF20

192.168.2.2/24

实验拓扑:

1、S1配置。

##基础IP地址配置
[S1]vlan 10
[S1-vlan10]q
[S1]interface Vlanif 10
[S1-Vlanif10]ip add 192.168.1.1 24 
[S1-Vlanif10]q
[S1]int g0/0/1
[S1-GigabitEthernet0/0/1]port link-type access 	
[S1-GigabitEthernet0/0/1]port default vlan 10

配置OSPF宣告网络

[S1]ospf
[S1-ospf-1]area 0
[S1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 
[S1-ospf-1-area-0.0.0.0]q
[S1-ospf-1]q

配置5条静态路由,并将它们引入到OSPF中

[S1]ip route-static 172.16.16.0 24 NULL 0
[S1]ip route-static 172.16.17.0 24 NULL 0
[S1]ip route-static 172.16.18.0 24 NULL 0
[S1]ip route-static 172.16.19.0 24 NULL 0
[S1]ip route-static 172.16.20.0 24 NULL 0
[S1]ospf
[S1-ospf-1]import-route static 
[S1-ospf-1]q

在S2上查看路由表可以发现拥有5条静态,所有需要配置路由发布策略只允许17.0、18.0、19.0网段通过 

[S1]acl number 2002
[S1-acl-basic-2002]rule permit source 172.16.17.0 0.0.0.255
[S1-acl-basic-2002]rule permit source 172.16.18.0 0.0.0.255
[S1-acl-basic-2002]rule permit source 172.16.19.0 0.0.0.255
[S1-acl-basic-2002]quit
[S1]ospf
[S1-ospf-1]filter-policy 2002 export static
[S1-ospf-1]quit

 此时再查看就只能看到3条路由了

2、S2配置。

##基础IP地址配置
[S2]vlan batch 10 20
[S2]interface Vlanif 10 
[S2-Vlanif10]ip add 192.168.1.2 24 
[S2-Vlanif10]q
[S2]vlan 20
[S2-vlan20]q
[S2]interface Vlanif 20
[S2-Vlanif20]ip add 192.168.2.1 24 
[S2-Vlanif20]q
[S2]int g0/0/1
[S2-GigabitEthernet0/0/1]port link-type access 
[S2-GigabitEthernet0/0/1]port default vlan 10
[S2-GigabitEthernet0/0/1]q
[S2]int g0/0/2
[S2-GigabitEthernet0/0/2]port link-type access 
[S2-GigabitEthernet0/0/2]port default vlan 20
[S2-GigabitEthernet0/0/2]q

配置OSPF宣告网络

[S2]ospf
[S2-ospf-1]area 0 
[S2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[S2-ospf-1-area-0.0.0.0]q
[S2-ospf-1]q

 3、S3配置。

##基础IP地址配置
[S3]vlan 20
[S3-vlan10]q
[S3]interface Vlanif 20 
[S3-Vlanif10]ip add 192.168.2.2 24
[S3-Vlanif10]q
[S3]int g0/0/1
[S3-GigabitEthernet0/0/1]port link-type access 
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3-GigabitEthernet0/0/1]q

配置OSPF宣告

[S3]ospf
[S3-ospf-1]area 0
[S3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[S3-ospf-1-area-0.0.0.0]q
[S3-ospf-1]q

S3同样需要配置路由策略只允许18.0通过

[S3]acl number 2003
[S3-acl-basic-2003]rule permit source 172.16.18.0 0.0.0.255
[S3-acl-basic-2003]quit
[S3] ospf
[S3-ospf-1]filter-policy 2003 import
[S3-ospf-1]quit

  4、实验结果。

S2和S3的路由表只允许部分网段通过

S2:

S3:

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

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

相关文章

LeetCode 每日一题 Day 3||深度优先搜索(DFS)

1038. 从二叉搜索树到更大和树 给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下, 二叉搜索树 满足下列约束条件: 节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅…

ffmpeg编译支持AVS3编解码

libuavs3d ffmpeg的官方源码中已经支持了libuavs3d解码器的接口(libavcodec/libuavs3d.c中定义),因此如果需要编译ffmpeg支持libuavs3d解码器,只需要安装libuavs3d.so以及开启ffmpeg的编译选项即可。 安装libuavs3d解码器 #代码仓…

ssm党务政务服务热线平台源码和论文答辩PPT

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…

生命周期模型构建方法与分析及实际案例应用

生命周期分析 (Life Cycle Analysis, LCA) 是评价一个产品系统生命周期整个阶段——从原材料的提取和加工,到产品生产、包装、市场营销、使用、再使用和产品维护,直至再循环和最终废物处置——的环境影响的工具。这种方法被认为是一种“从摇篮到坟墓”的…

MES管理系统与MOM系统分别有什么作用

随着科技的不断进步和全球化的竞争加剧,制造业正面临着前所未有的挑战和机遇。为了更好地适应市场需求,提高生产效率和质量,制造企业纷纷引进各种信息化管理系统。其中,MES管理系统和MOM系统是两种重要的解决方案。本文将详细探讨…

js中继承的方法

前言: 本人刚写了一篇原型链的封装继承多态,用家有儿女做的demo。其实我个人感觉封装和多态都容易去理解与实现。关键在于继承,js的才是比较难的,也容易让人混乱,至少我是因为继承头大过\(^o^)/~ js中有很多方法可以实现继承,这篇文章主要对继承的方法进行学习与测试。 这里…

c++ 三目运算符在类中的使用

简介 在类比较方面&#xff0c;三目运算符可以用于重载比较运算符。 代码示例1 #include <iostream> #include <cstring>class Person { public:Person(const char* name, int age) : m_age(age) {m_name new char[strlen(name) 1];strcpy(m_name, name);}~Pe…

LeetCode - 110. 平衡二叉树(C语言,二叉树,配图,简单)

根据题意&#xff0c;我们只需要比较当前节点的左右子树高度差是否小于1&#xff0c;利用分治法&#xff0c;只需要满足&#xff1a; 1. 根节点的左右子树的高度差小于1。 2. 根节点左右子树的满足高度差小于1&#xff0c;在往下走&#xff0c;判断左子树根节点的左右子树是否满…

软件设计之原型模式

原型模式是从一个对象再创建另一个可定制的对象&#xff0c;而且不需要知道任何创建的细节。拷贝分浅拷贝和深拷贝。浅拷贝无法拷贝引用对象。在面试的时候&#xff0c;我们会投多家公司&#xff0c;根据岗位的不同我们会适当调整。使用原型模式可以快速达到需求&#xff0c;下…

自动化测试的4大注意事项

自动化测试能够提高测试效率、覆盖率&#xff0c;降低测试成本和工作量&#xff0c;是软件开发中不可或缺的一部分。但前提是要确保自动化测试的有效性和可靠性&#xff0c;否则无效或错误的自动化测试&#xff0c;往往会对项目造成负面影响&#xff0c;如维护成本高、假阳性和…

JVM——内存溢出和内存泄漏

目录 1. 内存溢出和内存泄漏内存泄漏的常见场景解决内存溢出的思路1.发现问题 – Top命令2.发现问题 – VisualVM3.发现问题 – Arthas4.发现问题 – Prometheus Grafana5.发现问题 – 堆内存状况的对比![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/058d113715b…

STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础

STM32单片机项目实例&#xff1a;基于TouchGFX的智能手表设计&#xff08;1&#xff09;项目介绍及GUI界面基础 一、项目介绍 1.1方案提供 1.2主控选择 1.3硬件平台 1.4 开发环境 1.5 关于华清 二、GUI界面基础 2.1.1 嵌入式绘图系统 2.1.1 色彩格式 2.1.1帧缓冲区 …

蓝桥杯每日一题2023.12.4

题目描述 竞赛中心 - 蓝桥云课 (lanqiao.cn) 题目分析 本题使用树型DP&#xff0c;蓝桥杯官网出现了一个点的错误&#xff0c;但实际答案是正确的 状态表示&#xff1a;f[u]&#xff1a;在以u为根的子树中包含u的所有联通块的权值的最大值 假设s1&#xff0c;s2,…sk 是u的…

Python 网络爬虫(三):XPath 基础知识

《Python入门核心技术》专栏总目录・点这里 文章目录 1. XPath简介2. XPath语法2.1 选择节点2.2 路径分隔符2.3 谓语2.4 节点关系2.5 运算符 3. 节点3.1 元素节点&#xff08;Element Node&#xff09;3.2 属性节点&#xff08;Attribute Node&#xff09;3.3 文本节点&#xf…

深入理解Zookeeper系列-4.Watcher原理

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

华为云之一键安装宝塔面板

华为云之一键安装宝塔面板 一、本次实践介绍1.1 实践环境简介1.2 本次实践目的 二、宝塔面板介绍三、环境准备工作3.1 预置实验环境3.2 查看环境信息3.3 登录华为云3.4 查看弹性云服务器状态3.5 ssh登录弹性云服务器3.6 查看操作系统版本 四、安装宝塔面板4.1 一键部署宝塔面板…

备战春招——12.04 算法

哈希表 哈希表主要是使用 map、unordered_map、set、unorerdered_set、multi_&#xff0c;完成映射操作&#xff0c;主要是相应的函数。map和set是有序的&#xff0c;使用的是树的形式&#xff0c;unordered_map和unordered_set使用的是散列比表的&#xff0c;无序。 相应函数…

[Android] c++ 通过 JNI 调用 JAVA函数

如何使用&#xff1a; Calling Java from C with JNI - CodeProject c里的 JNI 类型 和 JAVA 类型的映射关系&#xff1a; JNI Types and Data Structures Primitive Types and Native Equivalents Java TypeNative TypeDescriptionbooleanjbooleanunsigned 8 bitsbytejbyt…

Redis Desktop Manager for Mac:高效管理Redis数据的必备工具

Redis是一种快速、可扩展的内存数据库&#xff0c;被广泛应用于缓存、消息队列和实时分析等领域。而Redis Desktop Manager for Mac作为一款专为Mac用户设计的Redis桌面管理工具&#xff0c;为用户提供了高效便捷的方式来管理和操作Redis数据。 首先&#xff0c;Redis Desktop…