ospf(开放式最短路径优先)
协议号:89 属于网络层
rip 224.0.0.9 ospf 224.0.0.5
命令
ospf 1router-id 1.1.1.1创建ospf进程1,ospf router-id 为1.1.1.1
bandwidth-reference xx 修改ospf参考带宽缺省参考带宽为100mbit/s
area 0 创建ospf区域
network x.x.x.x反掩码 精确宣告 网段宣告 (宣告的是自身的IP地址信息或者接口)
反掩码:就是网络位全0主机位全1
int g 0/0/0 ospf enable 1 a 0 将接口0/0/0宣告进程1中的区域0里面
注意:需要先创建ospf进程1区域0
在接口里修改ospf开销
ospf cost xx
距离矢量路由协议
●运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。 ●对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质。
链路状态路由协议-LSA泛洪(链路状态通告)
链路状态通告,可以简单的理解为每台路由器都产生一个描述自己直连接口状态 (包括接口的开销、与邻居路由器之间的关系等)的通告。
链路状态路由协议工作原理:
1.建立邻居关系
2.交互lsa信息,同步lsdb库(链路状态数据库)
3.进行spf(计算最短路劲数算法)算法计算路由
4.将最优路由加入到全局路由表
链路状态路由协议-SPF计算(最短路径优先)
●每台路由器基于LSDB,使用SPF (Shortest Path First, 最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的"树"。有了这棵"树",路由器就已经知道了到达网络各个角落的优选路径。
(链路状态路由协议)OSPF基础术语:区域
1.单个区域过大,某条链路发生故障后,会影响整个区域对该链路或设备所处的链路的重新计算
2.lsdb范围变大,ospf计算会消耗更多性能
非骨干区域必须与骨干区域相连,区域只有骨干区域与非骨干区域area 0是骨干区域 除area 0之外所有区域都属于非骨干区域
-
内部路由器(IR):所有端口在同一区域的路由器,维护一个链路状态数据库。
-
主干路由器(BR):具有连接主干区域端口的路由器。
-
区域边界路由器(ABR):具有连接多区域端口的路由器,一般作为一个区域的出口。ABR为每一个所连接的区域建立链路状态数据库,负责将所连接区域的路由摘要信息发送到主干区域,而主干区域上的ABR则负责将这些信息发送到各个区域。
-
自治域系统边界路由器(ASBR):至少拥有一个连接外部自治域网络(如非OSPF的网络)端口的路由器,负责将非OSPF网络信息传入OSPF网络。
OSPF基础术语:Router-ID(路由器标识符)
●Router-ID (Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。 ●Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。
OSPF基础术语:度量值
缺省时接口Cost(开销)值=100 Mbit/s/接口带宽其中100 Mbit/s为OSPF指定的缺省参考值。会取整,最小为1,四舍五入
笼统地说,一条0SPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。
OSPF协议报文类型
hello:每10秒发送一次,40秒没收到对方hello回信就断开邻居关系
ospf报文
---------------+---------------+-------------------------------+ | Version | Type | Packet length | +---------------+---------------+-------------------------------+ | Router ID | +---------------------------------------------------------------+ | Area ID | +-------------------------------+-------------------------------+ | Checksum | AuType | +-------------------------------+-------------------------------+ | Authentication | +---------------------------------------------------------------+ | Authentication |
Version | 1字节 | 版本,OSPF的版本号。对于OSPFv2来说,其值为2。 |
---|---|---|
Type | 1字节 | 类型,OSPF报文的类型,有下面几种类型:1:Hello报文;2:DD报文;3:LSR报文;4:LSU报文;5:LSAck报文。 |
Packet length | 2字节 | OSPF报文的总长度,包括报文头在内,单位为字节。 |
Router ID | 4字节 | 发送该报文的路由器标识。 |
Area ID | 4字节 | 发送该报文的所属区域。 |
Checksum | 2字节 | 校验和,包含除了认证字段的整个报文的校验和。 |
AuType | 2字节 | 验证类型,值有如下几种表示:0:不验证。1:简单认证。2:MD5认证。 |
Authentication | 8字节 | 鉴定字段,其数值根据验证类型而定:当验证类型为0时未作定义。类型为1时此字段为密码信息。类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。 |
ospf三大表项
OSPF三大表项-邻居表
OSPF有三张重要的表项,OSPF邻居表、LSDB表和OSPF路由表。 对于OSPF的邻居表,需要了解: ●OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。 ●OSPF的邻居关系通过交互Hello报文建立。 ●OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
OSPF完成邻接关系的建立有四个步骤,建立邻居关系、协商主从、交互LSDB信息,同步LSDB。
当一台OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init状态。 当OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时,从Init切换2-way状态。
状态机
down状态 表示协议未启动,设备处于down状态 init状态 发出hello报文后没有邻居信息进入init 状态
init:发送hello报文,也收到hello报文,但是收到hello报文中的邻居表里面没有自己(单项建立邻居关系)
2-way:发送了hello报文,也收到了hello报文,并且收到的hello报文中含有自己的信息(邻居关系最高状态,双向建立邻居关系)
exstart通过交换第一个dd报文(空的)协商主从(通过rid来确定谁是主)
1.确认dd报文序列号,确认dd报文交互的有序性
2.dd报文交互的可靠性
exchange 描述自身lsdb数据库
loading:进行spf最短路径树计算路由,发送lsr(包含lsa摘要信息),lsu(包含lsa所有信息),lsack(三元组信息),hello报文
full:收到lsack后,标识lsdb同步完成,邻居关系的最终状态
ospf lsdb中的三元组(类型,lsid,通告者)确认唯一lsa信息,先比序列号,越大越优,比校验值,越越大越优,比ls age若插值在900内则认为一样,反之越小越优,注意:若时间3600则人为是最新的,则删除该条lsa信息。
OSPF三大表项-LSDB表 对于OSPF的LSDB表,需要了解: ●LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。 ●Type标识LSA的类型,AdvRouter标识发送LSA的路由器。 ●使用命令行display ospf lsdb查看LSDB表。
OSPF三大表项-OSPF路由表 对于OSPF的路由表,需要了解: ●OSPF路由表和路由器路由表是两张不同的表项。本例中OSPF路由表有三条路由。 ●OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。 ●使用命令display ospf routing查看OSPF路由表。
OSPF网络类型简介
p2p点对点
bma广播式多路访问
nbma非广播式多路访问
p2mp点到多点
DR与BDR
BDR (Backup Designated Router,备用指定路由器)会监控DR (Designated Router, 指定路由器)的状态,并在当前DR发生故障时接替其角色。
选举规则:
dr/bdr选举过程:首先选举出bdr,先比较路由器优先级缺省为1(0-255)已大为优,优先级为0的不参加选举dr/bdr,优先级相同则比较router-id,以大优,dr具有非抢占性,只能从bdr进行晋升,网络中可以没有bdr,但不能没有dr,dr与bdr在邻居时40秒内必须选举出来
route-id的作用与选择
1.在SPF路由中会使用route id来标识路由器的序列号,竞选DR和BDR根据router-id的大小进行。 2.loopback 口叫回环口,是一个虚拟的接口,如果路由器不关机,即使物理口全down了,loopback口还是会存在的,一般loopback口是用来检测和管理路由器用的,同时,我们也可以用它来模拟主机等,因为它在正常的情况下非常稳定。 3.router-id在OSPF中,起到了一个表明身份的作用,不同的router-id表明了在一个OSPF进程中不同路由器的身份。一般如果不手工指定的话,会默认用loopback口来作为router-id,就如同我前面说的,因为loopback口非常的稳定,不会受链路的up/down的影响; 4.如果loopback口没有地址,会用物理接口上最大的IP地址作为router-id,如果连物理地址都没有,路由器会提示手工指定一个router-id。