OSPF LSA深入介绍



理解LSA分组

OSPF LSA组步调允许把OSPF LSA分组并指定更新,校验和老化功能步调.Cisco已经将LSA组速度定位12.0和以后版本的默认行为.

每个OSPF LSA都被用年龄记录并被跟踪来确定该LSA是否可用.当LSA到达最大年龄时(60分钟),LSA会从链路状态数据库中删除.路由器将更新它产生的LSA,老化它从其他路由器收到的LSA.源路由器每30分钟发送一个更新分组来更新它所产生的LSA,这阻止了LSA到达60分钟的老化极限.

在某些网络里,每30分钟发送一次更新分组未必是一种很好的方法.OSPF还每10分钟对链路状态数据库中的LSA进行一次校验.Cisco IOS执行LSA对一个单独的记时器更新,每30分钟扫描整个数据库,更新路由器产生的每一个LSA,不管它是否到老化时间极限.这个过程浪费了CPU资源,因为不是所有的LSA都需要更新.

一个大的OSPF数据库很可能含有上千个LSA,对他们执行同一个记时器,在同一时间进行扫描更新,这会造成一次CPU密集处理,短时内消耗大量网络资源.

因此OSPF可以为每一个LSA都维持一个记时器,每个LSA在30分钟时被更新,这个过程与其他LSA独立.但是如果LSA足够多,那么更新将变得非常频繁.

因此路由器每隔一个特定的时间处理LSA更新,在该时刻到达时累积的LSA组成一个分组,每个分组统一步调.这样可以有效的利用带宽.


 

配置LSA分组

LSA组步调是默认的,步调间距可以调节,默认是4分钟.步调间距与路由器数据库中LSA的数量成反比,如果有10000个LSA,那么将步调间距减小会好一些.如果数据库中只有40-100个LSA,将间距增加到10-20分钟会更好.

LSA步调间距可调范围在10s到1800s之间.可以用以下命令配置:


router ospf 100
times lsa-group-pacing 60

 

这个配置将组步调间距调整为60秒.


 

阻塞LSA泛洪

默认情况下,OSPF泛洪新的LSA到一个相通区域的所有接口.

可以根据网络类型用两种方式阻塞防洪:

l       在广播,非广播和点对点网络中,可以通过指定OSPF接口来阻塞泛洪

l       在点对多点网络中,可以阻塞到一个特定邻居的泛洪

第一种情况中,在接口配置模式下用命令:


 

ospf database-filter all out

 

第二种情况种,在路由配置模式中用命令:


 

router ospf 100
neighbor 192.168.1.1 database-filter all out

 

忽略MOSPF LSA分组

Cisco路由器不支持第6类LSA,如果收到此类分组将产生一个系统日志.如果Cisco路由器总是收到很多该类LSA分组,就可以将路由器配置成忽略MOSPF分组,以避免产生过多系统日志,可以用以下命令来做:


router ospf 100
ignore lsa mospf

改变LSA重发

当一个路由器运行OSPF和向一个邻居传送LSA时,通常OSPF的操作是保留LSA直到路由器接收到一个确认LSA被成功接受的信息.默认情况下,路由器等待5s,如果到时,未收到确认信息,如果需要,该LSA被重发.某些情况,比如慢速链路,该时间不够传送一个来回.因此就需要调整这个等待时间,以避免过多的重发.在接口配置模式下用以下命令:


 

ip ospf retransmit-interval 20

该命令将重传等待时间设为20秒,默认是5秒,可调范围在1-65535之间.

需要主意的是:如果要使用该命令,必须在链路两端同时设置以使OSPF运行通畅.


 

改变LSA传送延迟

该命令也是用于慢速链路,OSPF目前在Cisco实现中用时1s,有些时候这个时间显然不够.此时需要在接口配置模式下用命令:


 

ip ospf transmit-delay 5

 

这条命令将OSPF传送LSA用时改为5秒,取值范围从1到65535.