设定 LS 标识的一种算法

这里以类型5 LSA的生成为相同的LS标识算法,根据RFC2328中附录E得出

RFC2328中附录E中对生成LSID的算法说明(前提是如上图多条相同网络位都是在OSPF同一个ADV Router所生成的类型5 LSA)
当如上图,R7(通告者为R7:7.7.7.7它自己)生成外部路由其LS标识为10.0.0.0(假设为NA),该路由器会检查本地的LSDB内是否有相同的NA的类型5 LSA的LS标识,如果没有则终止该算法。如果在数据库检查新生成的类型5 LSA在数据库里有同样LS标识,那么就会检查新生成的类型5 LSA与原来的类型5 LSA检查谁的掩码精度更长(NM1为第一条生成类型5 LSA,NM2为后生成)

 相同LS标识情况1:NM1要比NM2的掩码长度要长(掩码更精确),那么路由器将NM1 LSA的LS标识修改为(原来LS标识+NM1的反掩码),通过把NM1修改为新标识的LS标识(这里说的是重新生成该LSA更改LS标识),NM2的LS长度还是网络地址,这样就不重叠LS标识了,这里有一个LSA的序列号会被增加

假设10.0.0.0/24为NM1先生成 ,10.0.0.0/16为NM2后生成,那么将NM1的LS标识修改为10.0.0.255(原LSID+NM1的反掩码),NM2的LS标识为10.0.0.0不变,如果有后面还有相同的LS一样,执行一样的结果,进行更新计算,具有相同的LS标识谁的掩码精度更准确就修改精确度更高的LSA的LS标识,

相同LS标识情况2:NM2要比NM1的掩码长度要长,那么路由器将NM2的LS标识修改为(LS标识+NM2的反掩码),也就是NM2的LS标识为10.0.0.255的结果,注意该两条LSA都会被泛洪出去。

这里用一个实验更直观的理解,上面是比较逻辑和废话多的解释

OSPF rfc2328中的附录E中设定LSID一种方法-个人实验笔记_第1张图片

Lab说明
图中R5和R6还有R7互相建立OSPF邻居关系,R5与R6为OSPF中的区域0邻居关系,R6与R7为OSPF中的区域1邻居关系,现在假设R7有三条外部路由(Static or others into OSPF domain)进到OSPF域内,路由前缀按照顺序分别是,10.0.0.0/24,10.0.0.0/16,10.0.0.0/8,这里我们就在R7上通过写静态方式引入OSPF域内

————————————————————————————————————————————————————
R7的关键配置

router ospf 1
 router-id 7.7.7.7
 redistribute static subnets tag 70
 network 7.7.7.7 0.0.0.0 area 1
 network 10.1.67.0 0.0.0.255 area 1

ip route 10.0.0.0 255.255.255.0 null 0 ##外部路由就用静态路由来模拟,这里先按顺序将第一条路由into OSPF域内,看看下面这张图的效果是什么吧,该条LSA的LSID为10.0.0.0,掩码为255.255.255.0,接下来在按照上图拓扑图将第二天没有第一条更精细的路由充分布到OSPF域内
OSPF rfc2328中的附录E中设定LSID一种方法-个人实验笔记_第2张图片

ip route 10.0.0.0 255.255.0.0 null 0 ##这里是按照拓扑图的顺序将第二条静态充分布到OSPF域内,在来看看这两条充分布到OSPF域内的效果把,这里可以看到第一条的路由的LSID变成了10.0.0.255这里上面有算法,来看下LSA的变化情况吧,1.10.0.0.0/24的LSID为10.0.0.255,掩码为255.255.255.0,序列号为xx1,2.10.0.0.0/16的LSID为10.0.0.0,掩码为255.255.0.0,序列号被增加了一位变成了80000002。每次增加新的LSA如果LSID与原来的数据库中的重叠,就比较掩码更精确的LSA修改其LSID号,并重新泛洪更新
OSPF rfc2328中的附录E中设定LSID一种方法-个人实验笔记_第3张图片
OSPF rfc2328中的附录E中设定LSID一种方法-个人实验笔记_第4张图片

这里可以看到RFC2328中的附录E中也是这个例子的执行结果
OSPF rfc2328中的附录E中设定LSID一种方法-个人实验笔记_第5张图片