前文我们了解了OSPF中的虚连接相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15202348.html;今天我们来聊一聊OSPF数据包中LSA类型相关话题;

  我们知道OSPF的核心就是通过LSA建立LSDB数据库,然后根据SPF算法从LSDB数据库中的内容计算出对应的路由;其中LSA并不是ospf的数据包类型,它存在于LSU当中;对于不同类型的LSA,其作用和内容也各不相同;

  LSA头部

  提示:LSA是ospf链路状态信息的载体,是LSDB的最小组成单位,即lsdb是由一条条LSA构成的;所有的LSA都拥有相同的头部;其中LS age表示LSA已经生存的时间,单位是秒,默认这个字段会每半个小时更新一次,即1800秒就会更新一次LSA;LS type字段主要用于标识LSA的格式和功能,对于不同类型的LSA其格式和功能各不相同,常用的LSA类型有五种;Link State ID用于描述该LSA所描述的链路的标识;advertising Router用于描述产生该LSA的路由器的router ID;LSsequence number用于检测旧的和重复的LSA;LS type,Link State ID和Advertising Router这三个字段共同标识了一条LSA,即LSA判断是否一样,就看这三个字段是否一样;

  Router—LSA描述P2P网络

  实验:如下拓扑,配置OSPF

  R1的配置

sys
sys R1
int s4/0/0
ip add 12.0.0.1 24
int lo 1
ip add 1.1.1.1 32
ospf 1 router-id 1.1.1.1
area 0
net 12.0.0.1 0.0.0.0
net 1.1.1.1 0.0.0.0

  R2的配置

sys
sys R2
int s4/0/0
ip add 12.0.0.2 24
int lo 2
ip add 2.2.2.2 32
ospf 1 router-id 2.2.2.2
area 0
net 12.0.0.2 0.0.0.0
net 2.2.2.2 0.0.0.0

  验证:在R1上抓包,看看对应LSU中的LSA的类型和内容

  提示:从上面的抓包信息可以看到,对应LSU中LSA的类型为Router-LSA;描述的是1.1.1.1这条链路的信息;其中该LSA是由1.1.1.1这台路由器发出的;该LSA里包含了两条链路,一条是12.0.0.0,掩码是24,开销为48;一条是1.1.1.1,掩码为32,开销为0;当然这些是我们用抓包软件上抓到的ospf LSU中的内容;我们也可以用命令在对应路由器上查看;

  在R1上查看自己发送的LSA内容

  提示:type是用于描述LSA的类型;其中Router表示一类LSA,该LSA是由路由器自己产生,主要用于描述自身所在区域链路状态信息;ls id表示链路状态的ID;adv rtr用于描述产生此LSA的路由器router id ;第一个link ID表示邻居路由器的router id;data表示宣告该路由LSA的路由器接口ip地址;link type用于描述对应链路的网络类型,metric用于描述对应链路的开销;后面的link id用于描述对应的路由信息,其中link id用于描述对应子网的ip地址,data表示掩码,metric用来描述开销;这里需要注意一点,链路类型并不是ospf定义的始终网络类型,router LSA描述的链路类型有,P2P(Point-to-point点到点类型);transnet是描述一个从本路由器到一个transit网段的连接;例如多路访问的网段信息;stubnet是描述一个从本路由器到一个stu网段(例如到回环接口)的连接;

  查看lsdb数据库

  提示:可以看到对应lsdb数据库就只有两条信息其类型为router,即一类LSA;一条是R1发送的一条是R2发送的,有了这两条信息,ospf就可以根据里面的内容,构建出对应的路由;

  查看ospf路由

  提示:ospf根据lsdb中的LSA计算出对应的路由信息;从上面的实验可以看到,对于点到点类型的链路,只需要用类型1的lsa就把对应网络描述清楚了;

  总结:一类LSA是每个路由器都会发送的LSA,其主要作用描述对应路由器接口所在区域的端口链路状态的集合;该LSA只在所描述的区域内泛洪,不能跨区域;对于点到点类型的链路,一类LSA就足以描述清楚对应接口链路状态;

  Router-LSA描述MA网络(多路访问网络)

  实验:如下拓扑,配置ospf

  提示:该拓扑和上面的拓扑没有太大的去边,唯一的区别是对应链路类型发生了变化,此拓扑链路类型就是BMA(广播多路访问);

  配置R1

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
int lo 1
ip add 1.1.1.1 32
ospf 1 router-id 1.1.1.1
area 0
net 12.0.0.1 0.0.0.0
net 1.1.1.1 0.0.0.0

  提示:这里的接口不是串口,而是以太网接口;

  配置R2

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int lo 2
ip add 2.2.2.2 32
ospf 1 router-id 2.2.2.2
area 0
net 12.0.0.2 0.0.0.0
net 2.2.2.2 0.0.0.0

  在R1上抓包,查看对应发送的一类LSA

  提示:可以看到在R1上抓包,明显比上次抓到的包要多,其次在LSU中的一类LSA中,对应网络并没有子网掩码;对应网络的子网掩码却在另一个LSA中,该LSA类型为Network-LSA;除了有对应接口ip的子网掩码外,二类LSA还描述了对应链路上有几个路由器,它们的router ID;

  在R1上查看自己发送的一类LSA内容

  提示:在ma网络类型的Router-LSA中,Link ID是DR接口ip地址,Data为本地接口的ip地址;从上面的信息可以看到,

现在在R1发送的一类LSA中,并没有包含对应网络的掩码;其原因是在多路访问网络中一类LSA并不足以描述清楚对应链路状态;所以产生了2类LSA;

  在R1上查看二类LSA信息

  提示:type表示LSA的类型,network表示二类LSA;LS id用来描述对应DR接口ip地址;adv rtr用来描述产生此二类LSA的路由器的router id,即DR的router id;net mask用来描述该网段的网络掩码;attached router用来描述连接到该网段的路由器列表;基于上述字段信息,LS id和Net mask做与运算,即可算出该网络的ip网络号;上述信息中我们可以看到DR所在路由器的router id为1.1.1.1,DR所在接口的ip地址为1.1.1.1;对应网络的子网掩码为24,对应有两台路由器连接在这个多路访问网络中;

  验证:查看DR是否是R1的g0/0/0接口?

  提示:可以看到R1的g0/0/0接口就是DR,和上述的描述一样;

  查看lsdb

  提示:现在R1的LSDB中,要比点到点网络中的LSDB要多一条二类LSA;

  总结:在多路访问网络中,光凭一类LSA并不能完全描述清楚对应接口链路状态,需要借助二类LSA进行补充;对于二类LSA来说,它是由DR接口发出,主要目的是用来描述多路访问网络上所连接路由器的列表,以及对应网络的子网掩码;该类型LSA只会在对应网络所属的区域内泛洪,不能跨区域;综上所述,一类LSA和二类LSA都只能在对应接口所属区域内泛洪,不能跨区域;对于一类LSA来说,是区域内的每个路由器产生,主要用来描述对应接口链路状态集合;而二类LSA只会在多路访问网络中产生,其原因是二类LSA是DR接口发出,主要用来描述多路访问网络上所连接的路由器以及对应网络的掩码;而只有在多路访问网络中才会选举DR,所以二类LSA只会在多路访问网络中存在,对于点到点网络中不会存在二类LSA;也就是说在ospf里一类LSA是必须要产生的,对于是否有二类LSA产生,取决对应网络类型;

  对于单区域,有一类LSA和二类LSA就能够将对应网络描述清楚,对于多区域,ospf区域与区域间该如何传递路由信息呢?

  实验:如下拓扑配置ospf

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
ospf 1 router-id 1.1.1.1
area 0
net 12.0.0.1 0.0.0.0

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 23.0.0.2 24
ospf 1 router-id 2.2.2.2
area 0
net 12.0.0.2 0.0.0.0
area 1
net 23.0.0.2 0.0.0.0

  R3的配置

sys
sys R3
int g0/0/0
ip add 23.0.0.3 24
ospf 1 router-id 3.3.3.3
area 1
net 23.0.0.3 0.0.0.0

  在R2上查看lsdb

  提示:可以看到在R2上查看lsdb就有两个数据库,在area 0和area 1中都多了一条sum-net类型的LSA;这两条LSA都是由R2产生;

  在R2上查看sum-net类型LSA内容

  提示:类型为sum-net的LSA是三类LSA,其中LS id用来描述目标网络地址;ada rtr用来描述此LSA产生的路由器的router id;net mask用来描述对应目标网段的子网掩码;通过上述的信息,我们不难看到,该LSA就是在描述去往12.0.0.0/24的网络信息;该LSA是由R2产生,其开销为1;

  在R1或R3上查看abr或asbr

  提示:可以看到R2是abr(区域边界路由器);

  区域间路由传递

  提示:上述描述了三类LSA传递的过程;在area 1中RTD首先会发送一条一类LSA在区域1里泛洪(回环接口的网络类型是点到点类型,所以没有二类LSA)其主要目的是描述自己有192.168.1.0/24网络接口,在RTB收到对应一类LSA以后,它一看自己有多个区域,所以它会把区域1里的一类LSA汇总,然后以三类LSA的格式向区域0发送;此时区域0中的其他路由器收到该类型LSA就会学习到对应去往192.168.1.0/24网络的路由,出接口都指向对应路由器发送三类LSA的接口(RTB);当区域0中的RTC收到RTB发送的三类LSA以后,它一看自己又连接着多个区域,此时RTC就会把RTB发送的LSA中宣告者(adv rtr)字段修改成自己,然后再向区域2发送;此时区域2中的路由器收到此类LSA,就会把对应去往192.168.1.0/24网络的路由,出接口指向RTC发送三类LSA的接口;对应192.168.2.0/24网络也是类似的过程;首先在区域2里是一类LSA,然后经过RTC,RTC就会以三类LSA向区域0发送,此时宣告者还是RTC,在经过RTB时,对应三类LSA的宣告者会被修改为RTB,然后再由RTB向区域1发送;我们可以理解三类LSA就是对应的路由信息;一条三类的LSA只能描述一条路由信息;所以区域间有多少个网段,对应就会发送多少条三类LSA;

  总结:三类LSA是由ABR产生,其主要作用是描述和传递区域间的路由;该类型LSA会在所生成的区域内泛洪,再由其他区域的ABR重新生成;重新生成的目的是更换宣告者,以便其他路由器找到对应的宣告者;对于单纯的ospf进程来说(除开外部路由),有了一类、二类LSA可以描述单区域路由,三类LSA可以描述区域间的路由;有了这三种类型LSA,对应ospf的lsdb,路由计算都可以正常完成;

HCNP Routing&Switching之OSPF LSA类型的更多相关文章

  1. HCNP Routing&Switching之OSPF LSA类型(二)

    前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...

  2. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  3. HCNP Routing&Switching之OSPF网络类型

    前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html:今天我们聊聊一聊OSPF中的网络类型相关话题: ...

  4. HCNP Routing&Switching之OSPF特殊区域

    前文我们了解了OSPF LSA更新规则以及路由汇总相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15231880.html:今天我们来聊一聊OSPF的 ...

  5. HCNP Routing&Switching之OSPF外部路由类型以及forwarding address

    前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...

  6. HCNP Routing&Switching之OSPF虚连接

    前文我们了解了OSPF的网络类型.帧中继交换机映射以及路由器帧中继映射相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15195762.html:今天我 ...

  7. HCNP Routing&Switching之IS-IS报文结构和类型

    前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html:今天我们来聊一聊IS-IS动态路由协 ...

  8. HCNP Routing&Switching之BGP报文结构、类型和状态

    前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...

  9. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

随机推荐

  1. 微信小程序云开发-列表下拉刷新

    一.json文件开启页面刷新 开启页面刷新.在页面的json文件里配置两处: "enablePullDownRefresh": true, //true代表开启页面下拉刷新 &qu ...

  2. GraphPad Prism 9.0安装破解教程

    graphpad prism 9.0是一款强大的科学软件,拥有大量分析图表,prism是回归分析的著名软件之一,非常适用于科研生物医学等领域.本文提供其破解版,激活码,序列号,破解教程等,可以完美激活 ...

  3. mysql查看当前连接数

    show status like 'Threads%';   需要root权限才能看到所有的连接

  4. Jenkins(8080)未授权访问

    下载地址http://mirrors.jenkins.io/debian/ 测试 浏览器访问http://localhost:8080/manage可以直接访问 点击脚本命令行 println &qu ...

  5. DC-9 靶机渗透测试

    DC-9 渗透测试 冲冲冲,好好学习 DC系列的9个靶机做完了,对渗透流程基本掌握,但是实战中出现的情况千千万万,需要用到的知识面太广了,学不可以已. 靶机IP: 172.66.66.139 kali ...

  6. linux中的dhcp

    目录 一.DHCP服务 二.DHCP的租约过程 三.使用DHCP动态配置主机地址 四.安装DHCP服务器 一.DHCP服务 ① DHCP (Dynamic HostConfiguration Prot ...

  7. Matlab 使用filter求解系统响应

    MATLAB 提供了函数filter,可以实现差分方程的递规求解. 设差分方程的形式为\(a_0y(n) + a_1y(n-1) + \cdots + a_my(n-m)=b_0x(n)+b_1x(n ...

  8. 线程的分离状态(detached state)

    说到线程的分离状态,我认为,之所以会有这个状态,是因为系统对某些线程的终止状态根本不感兴趣导致的. 我们知道,进程中的线程可以调用: [cpp] view plaincopyprint? int pt ...

  9. Http协议中的CharacterEncoding、Content-Encoding和Transfer-Encoding

    https://www.cnblogs.com/jinzhiming/p/5765672.html https://www.jianshu.com/p/e918a65b617f https://www ...

  10. SQL 练习41

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水.如果不存在第二高的薪水,那么查询应返回 ...