感谢井维利同学的帮忙.
该文档主要针对ospf比较核心的几类LSA做实验进行验证一下来帮助记忆。是OSPF的一个进阶的补充材料。
对于OSPF来说,常用的几类LSA意义比较重大。
先来看看各种LSA的定义吧:
代码类型 |
描述 |
1 |
路由器LSA router links |
2 |
网络LSA Network LSA |
3 |
网络汇总LSA Summery links LSA |
4 |
ASBR汇总LSA |
5 |
AS外部LSA |
6 |
组成员LSA |
7 |
NSSA外部LSA |
第一类LSA(路由器LSA): 每台路由器都会产生一条一类的LSA,并且一类的LSA只会在区域内传递。
第二类LSA(网络LSA): 只在DR/BDR选举的多路访问网络中产生,点到点或者帧中继没有DR/BDR选举,所以不会产生二类的LSA.
第三类LSA:(网络汇总) 将区域内的LSA汇总和简化,并发往另一个区域,由ABR发送。
第四类LSA:(ASBR汇总LSA):外部路由重分布进来以后,由于LSA的Router-ID还是ASBR的,这个时候就需要由ABR告知非ASBR区域的路由器一条LSA,谁是ASBR的router-id,由ABR发。
第五类LSA:(AS外部LSA):从外部路由重分布进OSPF,携带了ASBR的Router-ID,会再所有的OSPF区域内进行传递,任何路由器都不能更改他得router-id,由ASBR始发。
第七类LSA:(NSSA外部LSA):NSSA区域允许所有ASBR存在,在把外部路由重分发进NSSA区域后,将产生第七类LSA,7类只会在NSSA区域中传递,当药传递到其他的区域时,ABR会将7类LSA转换成5类的LSA.
OSPF末节区域:
○末节区域stub area不会传递5类LSA
○完全末节区域totally stub area不会传递3类和5类,只通过一条默认路由。
○NSSA,同末节区域,但可以存在ASBR.
○Totally NSSA: 同完全末节区域,但是可以存在ASBR.
在R4上面,没有把EIGRP充分发到OSPF进城里面,R1上面只会有除了EIGRP的network的网段其他都有。
首先看看R1上面的一类LSA都有哪些,根据原则,应该是同区域的每台路由器发送一条一类LSA:
R1:
在R1上面,有两条一类的LSA.在区域0里面就2台路由器,R1和R2.
这里第一条是R1自己发给自己的,另外一条是R2发送过来的。
再来看看二类的LSA:
在OSPF网络中,各路由器之间不直接两两发链路状态信息,而是通过选举DR/BDR,DR为主,BDR为备份DR,把链路状态信息发给DR/BDR,由DR在组播给所有非DR/BDR的DROTHER路由器。当DR/BDR选举完成后,DROTHER就只和DR/BDR逻辑上形成邻居关系,DROTHER组播链路状态信息LSU到ALL DROTHER地址224.0.0.6,而只有DR/BDR监听该地址。而DR组播泛洪LSU的hello包到224.0.0.5,DROTHER监听该地址,以使所有非DR/BDR的OSPF路由器跟踪其它邻居的信息。
这里在R1上面可以看到,R2发送了一个二类的lsa给自己。R1的router-id是10.10.10.10,R2的router-id是20.20.20.20,所以如果正常交互的情况下,再把DR的40S的问题排除,两边都是默认的优先级1,最后DR应该是R2.因为R2的router-id比R1要大。
所以这里R1应该可以收到由R2发送过来的network LSA.
在实际的环境中我们也可以看到,R2确实是DR:
所以总结一下,第一类LSA在区域0中,R1和R2各产生一条。第二类LSA在区域0中只有一条,由DR产生(R2).
下面来看第三类LSA:
LSA-type3:将区域内的LSA简化, 然后发送给其他区域,由ABR产生的。
这里仍然是在R1上面,可以看到第三类LSA里面包括4条信息,但是所有的宣告路由器都是20.20.20.20.那是R2的router-ID.而R2又是ABR,所以最后LSA-type3都是由R2这个ABR发给R1.
问题一:
在R1上面观察是否有1类,2类,3类LSA,识别3种LSA会再哪里传递,并且都是由哪些设备产生的?
答:类型1和2类的LSA,只会在本区域内进行传递,类型1是router lsa,本区域每台路由器都会通告出来一条。在区域内进行泛红。类型2是本区域的DR产生的LSA,在本区域内扩散。类型3是汇总LSA,由ABR产生的。将区域内的LSA简化,然后发送到另外一个区域,由ABR发送,这里ABR对于区域0来说就是R2.
==========================================================================================================
问题二,在R4上将172.16.0.0等路由network进EIGRP,关闭自动汇总,并将其重分发到OSPF中,再次在R1上观察多了哪几种LSA,并且指出这些LSA是由哪些路由器产生的,再去R3上观察,与R1比较,他少了哪些LSA,为什么?
或者这里引申出一个经典的问题:
到底是:有4类一定会有5类LSA. 还是有4类不一定有5类的LSA?
那么反之,有5类LSA,就一定会有4类的LSA?还是有5类不一定有4类的LSA?
为什么?
依然是上面的拓扑图。在R4上面将EIGRP的100重分发到R4里面。
下面是R1和R3的ospf数据库的对比,我们来看看R3比R1少了哪些东西:
R1:
再来看看R3上面:
这里可以看到,在R1上和R3上面不同的地方就是第四类LSA.R1上面有,而R3上面没有。
第四类LSA:(ASBR汇总LSA):外部路由重分布进来以后,由于LSA的Router-ID还是ASBR的,这个时候就需要由ABR告知非ASBR区域的路由器一条LSA,谁是ASBR的router-id,由ABR发。
第五类LSA:(AS外部LSA):从外部路由重分布进OSPF,携带了ASBR的Router-ID,会再所有的OSPF区域内进行传递,任何路由器都不能更改他得router-id,由ASBR始发。
所以这里为了让这两句话更加容易记忆,我画了下面一个图:
还有一点需要理解清楚,就是关于第四类LSA,实际上是由ABR通告给非ASBR区域的一个LSA,这个LSA仅仅是告诉非ASBR区域的路由器,谁,是ASBR.跟通告到ASBR的路由是没有关系的,不能理解混了。
在R1上面可以看到下面有2个LSA,通告路由器和link ID都是一样的:
也就是说,在3类的lsa中也要通告link ID为40.40.40.40,那么是否就是说3类和4类通告的东西一样呢?
为什么说四类lsa仅仅是通告给R1,让R1知道谁是ASBR呢?
继续回到问题二:
问题二,在R4上将172.16.0.0等路由network进EIGRP,关闭自动汇总,并将其重分发到OSPF中,再次在R1上观察多了哪几种LSA,并且指出这些LSA是由哪些路由器产生的,再去R3上观察,与R1比较,他少了哪些LSA,为什么?
答:R1上面多了type=4 的LSA.4类LSA 是ABR产生的,通告给非ASBR区域的路由器,谁是ASBR.R3上面没有type=4的LSA.因为R3可以由type=1/2知道相关的信息.
或者这里引申出一个经典的问题:
到底是:有4类一定会有5类LSA. 还是有4类不一定有5类的LSA?
那么反之,有5类LSA,就一定会有4类的LSA?还是有5类不一定有4类的LSA?
为什么?
有四类,一定会有5类,而有5类不一定有四类的LSA.
具体原因,总结一下,4类是ABR产生的,发送给非ASBR区域的路由器通告出去谁是ASBR,5类的LSA会再所有区域中进行泛红通告。也可以参考刚才的手绘图。