08-OSPF路由过滤总结

简介:
Technorati 标签:  , , , ,

OSPF过滤的方式有很多,各种方式达到的效果也不尽相同,这里主要是用实验来验证一下各种工作方式。

首先来说,这个路由过滤背后的需求就是不想让一些区域了解或者直到另外区域的一些隐私路由。

方式方法有很多。如果真的想做好网络设计和优化,那么路由过滤是一个很重要的课题。

还有一点是一定一定得注意的,那就是,一定要分清楚标准访问列表和扩展访问列表在路由过滤中的区别:

标准访问列表是可以路由层面和数据转发层面都可以控制的。

而扩展访问列表只能针对于数据转发层面进行控制,对路由前缀通告是一点都不起作用的。

第一种Distribut-list x in

这种过滤方式不是针对哪个接口的In,而是针对是否要写入核心路由表,而且该命令只会干掉核心路由表,但是LSA依然会存储在路由器的ram里面.

clip_image002

下面我们来验证一下。

首先在R1/R2/R3都将ospf配置好。

然后再R3上面,其实通过查看路由表,可以发现已经学习到了1.1.1.1 2.2.2.2 192.1.12.0这三个网段的路由。

clip_image004

然后再查看R3的ospf数据库

clip_image006

因为只有一个区域,也没有ABR,所以就两类LSA,1类+2类.

然后这个时候再在R3上面加入过滤条件.配置更改为:

router ospf 1

router-id 3.3.3.3

log-adjacency-changes

network 3.3.3.3 0.0.0.0 area 0

network 192.1.13.0 0.0.0.255 area 0

distribute-list 1 in

!

access-list 1 permit 192.1.12.0 0.0.0.255

在该配置中,做了一个标准访问列表。只允许192.168.12.0/24的前缀被R3学习到。

并且是in的方向,就是说是对路由器的核心路由表学习的方向。

前面已经说过了,distribute-list x in只是把核心路由表进行一个过滤,但是lsa都是存放在本地路由器的存储器中的。

之前没有做过滤的时候,show ip route ospf是:

clip_image004[1]

现在再来对比一下做了路由过滤以后,在R3上面:

clip_image008

只有一条了,就是ACL 1允许的那条路由,其他两条:1.1.1.1和2.2.2.2都没有学到,最后看看ospf 数据库呢?

clip_image010

这里已经充分证明了,实际上lsa一类的还是保存在本地的,只是没有计算路由罢了。

这个是比较强硬的过滤方式。对路由器的性能没有很大改善的,只是纯粹的为了过滤路由,为安全着想.

第二种Distribut-list x out

这种过滤方式,是对于从外面学习到的外部路由来说的,不仅仅是要干掉路由,还要干掉LSA.干净,彻底,杀人不留痕迹....

clip_image012

首先,R1和R2配置OSPF,R2作为ASBR,连接外部RIP网络,然后将RIP路由重分发到R2的ospf进程中,这样R1就可以学习到RIP网络中的3.3.3.3和192.168.13.0/24的网络前缀。

现在先来看看R1的路由表:

clip_image014

在R1上面,可以看到有两条OE2的路由,分别是R3上面的loopback0和192.1.13.0/24的网段.

也就是说从路由的层面上来说,实际上R1已经学习到了外部external的RIP路由了。

再来看看ospf的database.

ASBR会将外部路由以5类的lsa通告给ospf域内的所有路由器:

clip_image016

现在来验证一下关于out方向的过滤。

假如说我只想R1收一条外部的lsa,3.3.3.3,而关于192.1.13.0我根本就不想让R1了解。

这个时候就需要在R2这个ASBR上面做过滤。

在R2上面修改配置:

router ospf 1

router-id 2.2.2.2

log-adjacency-changes

redistribute rip subnets

network 2.2.2.2 0.0.0.0 area 0

network 192.1.12.0 0.0.0.255 area 0

distribute-list 1 out

!

router rip

version 2

network 192.1.13.0

no auto-summary

!

no ip http server

no ip http secure-server

!

access-list 1 permit 3.3.3.3

在上面的配置中,先坐一个ACL standard,允许3.3.3.3,deny所有其他的。然后在ospf下面做出方向的路由控制。

最后在R1上面:

clip_image018

我们看到实际上192.1.13.0的网段已经没有了。再来看看ospf的lsdb。

重点看5类的外部lsa,看看是否还有192.1.12.0.

clip_image020

这里可以看到,只有我ACL允许的type-5 3.3.3.3的lsa给传递过来了。192.1.13.0压根就没有发送过来。

总结:

这个out的命令只会工作在将其他的路由重分发到ospf进程中,所以只会工作在ASBR上面。

第三种IP ospf database-filter all out

该过滤方式应用在接口下面,不会通告任何lsa出去,但是,并不影响ospf的邻居建立。

实验拓扑:

clip_image022

我们首先来看一下,如果3个设备正常的建立邻居,然后在R3上面,应该可以学习到下面的路由和LSA:

clip_image024

也就是说,R3通过lsa,计算出了三条ospf路由,R1的loopback0,R2的loopback0,还有192.1.12.0网段的。

现在R2上面的接口F1/1上面.将命令ip ospf database-filter all out应用下去。

注意,在接口下面应用了该命令以后,邻居将会重新协商:

clip_image026

现在在R2上面的配置为:

clip_image028

还有一点值得注意的是,当邻居重新建立以后,在R3上面就应该学习不到从R2发送过来的lsa了。可是我们可以看到:

在R3上面仍然数据库没有发生变化:

clip_image030

必须要手动的将ospf进程重启一次才能从新发送lsa,只要将ospf进程重启启动一次,我们就可以看到。在R3上面你的ospf数据库明显干净多了。只有一个一类的3.3.3.3的lsa了。

clip_image032

所以最后在R3上面,再来看看清楚的结果:

clip_image034

使用了命令ip ospf databse-filter all out命令以后所以该接口不会发送所学习到的所有的lsaf1/1出去。故R3也学习不到任何路由从R1F1/1.但是邻居关系还是会正常建立的。只是不通告lsa出去罢了。这里不通告的lsa类型是所有1-7全部。对端的另据一个LSA

第四种:neighbor x.x.x.x database-filter all out

ip ospf database-filter all out同样的原理,但是该命令是用在router ospf进程下面而不是接口下面的,对象不是某一个接口而是哪一个邻居..该功能只能用于点到点网络或者是NBMA.

第五种area x filter-list prefix xxx in/out

这种功能是对于不同的area进行的lsa过滤。

是用在abr上面的.可以控制lsa的入方向和出方向.

拓扑图:

clip_image036

在这个拓扑中,会分别验证in和out两种。

首先,正常情况下,R1/R2/R3都会学习到相互的路由通过ABR R2.

现在将R2的配置修改为下面的情况:

interface Loopback0

ip address 2.2.2.2 255.255.255.255

!

interface FastEthernet1/0

ip address 192.1.12.1 255.255.255.0

duplex full

speed auto

!

interface FastEthernet1/1

ip address 192.1.13.1 255.255.255.0

duplex full

speed auto

!

router ospf 1

router-id 2.2.2.2

log-adjacency-changes

area 0 filter-list prefix maipu out//这里area0在通告外部其他区域的lsa的时候只会按照ip prefix来进行通告lsa

network 2.2.2.2 0.0.0.0 area 0

network 192.1.12.0 0.0.0.255 area 0

network 192.1.13.0 0.0.0.255 area 10

!

ip prefix-list maipu seq 1 permit 192.1.12.0/24//ip prefix只允许通告192.1.12.0/24的前缀通过观察拓扑图可以看到其实在R1上面还有1.1.1.1/32的前缀因为没有写道prefixpermit所以R3因为收不到R11.1.1.1lsa,而因为没有lsa所以也不可能计算出如何到达1.1.1.1的路由来。

在这里,记忆方法可以为:

area 0 向外通告ip prefix-list的内容prefix允许的我就通告其他的全部被干掉在ABR上面。

下面可以看看R2应用了area 0 filter-list prefix maipu out以后,R3是一个什么情况:

clip_image038




本文转自 hny2000 51CTO博客,原文链接:http://blog.51cto.com/361531/698523

相关文章
|
关系型数据库 测试技术 Linux
|
11天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
5565 51
|
29天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
40323 156
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
7天前
|
存储 人工智能 负载均衡
阿里云OpenClaw多Agent实战宝典:从极速部署到AI团队搭建,一个人=一支高效军团
在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
2139 26
|
3天前
|
人工智能 JavaScript API
2026年Windows系统本地部署OpenClaw指南:附阿里云简易部署OpenClaw方案,零技术基础也能玩转AI助手
在AI办公自动化全面普及的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令操控、多任务自动化执行、多工具无缝集成”的核心优势,成为个人与轻量办公群体打造专属AI助手的首选。它彻底打破了传统AI“只会对话不会执行”的局限——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可灵活接入通义千问、OpenAI等云端API,或利用本地GPU运行模型,真正实现“聊天框里办大事”。
807 1
|
6天前
|
人工智能 自然语言处理 安全
2026年OpenClaw Skills安装指南:Top20必装清单+阿里云上部署实操(附代码命令)
OpenClaw(原Clawdbot)的强大之处,不仅在于其开源免费的AI执行引擎核心,更在于其庞大的Skills生态——截至2026年2月,官方技能市场ClawHub已收录1700+各类技能插件,覆盖办公自动化、智能交互、生活服务等全场景。但对新手而言,面对海量技能往往无从下手,盲目安装不仅导致功能冗余,还可能引发权限冲突与安全风险。
1058 8
|
24天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
9326 26
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手