HCNP Routing&Switching之OSPF LSA类型
前文我们了解了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类型的更多相关文章
- HCNP Routing&Switching之OSPF LSA类型(二)
前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...
- HCNP Routing&Switching之OSPF LSA更新规则和路由汇总
前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...
- HCNP Routing&Switching之OSPF网络类型
前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html:今天我们聊聊一聊OSPF中的网络类型相关话题: ...
- HCNP Routing&Switching之OSPF特殊区域
前文我们了解了OSPF LSA更新规则以及路由汇总相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15231880.html:今天我们来聊一聊OSPF的 ...
- HCNP Routing&Switching之OSPF外部路由类型以及forwarding address
前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...
- HCNP Routing&Switching之OSPF虚连接
前文我们了解了OSPF的网络类型.帧中继交换机映射以及路由器帧中继映射相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15195762.html:今天我 ...
- HCNP Routing&Switching之IS-IS报文结构和类型
前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html:今天我们来聊一聊IS-IS动态路由协 ...
- HCNP Routing&Switching之BGP报文结构、类型和状态
前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
随机推荐
- Java 加载、操作和保存WPS文字文档
本文通过Java程序代码来展示如何来加载.操作及保存WPS格式的文字文档. 一.基本步骤:加载时,通过流加载WPS文字文档,完成相关文字操作后,再将结果文档保存到流,将流写入WPS文档,闭关闭流. 二 ...
- Python自动化测试面试题-Linux篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- Python入门 -- 001
在Windows系统下安装python: 从Python的官方网站(http://www.python.org/)下载最新版的程序安装包. 安装完成后设置路径,使得在Windows系统的CMD中能够通 ...
- 监控实战之Prometheus
author:JevonWei 版权声明:原创作品 目录 一 背景 二 部署Prometheus Server Prometheus 主配置文件 targets 节点配置文件 rules 告警规则 运 ...
- videojs文档翻译-Player(v6.0.0-RC.2)
Player 当使用任何Video.js设置方法初始化视频时,将创建Player类的实例. 创建实例后,可以通过两种方式在全局访问: 调用videojs('example_video_1');直接通过 ...
- Hadoop 3.1.1 - Yarn 服务 - 快速开始
快速开始 本文描述了如何用 Yarn 服务框架在 Yarn 上部署服务. 配置和启动 HDFS 和 Yarn 组件 首先启动 HDFS 和 Yarn 的各个组件.为启用 Yarn 服务框架,添加以下参 ...
- vue 子目录配置,负载均衡 nginx
1. 我使用的是,腾讯云做负载均衡. 负载均衡配置: https://www.xxxx.com/vue 域名指向的服务器地址:10.10.10.10:80/vue 2. nginx 配置: ser ...
- Git 修改历史 commits 中的用户名和邮箱
一.作用 修改某个仓库历史 commit 的用户 name 和 email 信息. 将历史提交记录中的指定 name/email 修改为新的 name/email. 二.步骤 确认本地全局邮箱/用户名 ...
- 月薪60k,仍无人问津,腾讯阿里到底有多缺这类程序员?
不知道大家发现没,近几年,国内对音视频人才需求越来越大了,在某招聘网站上居然薪酬高达60k. 从未来的大趋势来看,随着5G时代的到来,音视频慢慢变成人们日常生活中的必须品.除了在线教育.音视频会议.即 ...
- 5年Android开发诉苦:47天21家面试,半年空档期觉得整个人生都被毁了
近日,我在逛某社交论坛时,发现一位做了五年的Android开发将自己这段时间的所有面试经历发表了出来,根据网友自己提供的信息显示,主要面试的地点都在北京,上海等地. 微软和亚马逊刚面试完一面,都是以算 ...