HCIP-OSPF协议基础

ospf  优先级  10

引入外部路由   150

ospf组播地址:

224.0.0.5

224.0.0.6   DR/BDR用

ospf协议号  89

 

broadcast/NBMA网络需要选DR/BDR(不抢占)

OSPF(Open Shortest  Path First)开放式最短路径优先

 

OSPF的工作过程 

1:邻居建立

2:同步链路状态数据库

3:计算最优路路由

 

hello报文的作用

邻居发现:自动发现邻居路由器

邻居建立:完成hello报文中的参数协商

邻居保持:通过keepalive机制,检测邻居运行状态

broadcast/NBMA的状态下,子网掩码不一致不能ospf不能够连接

 

router id :用于在自治系统中唯一标识一台运行ospf的路由器,每台运行的ospf的路由器都有一个router id

down:这是邻居的初始状态,标识没有从邻居收到任何信息。

init:在此状态下,路由器已经从邻居收到了hello报文,但自己的router id不在所收到的hello报文的邻居列表中,标识尚未与邻居建立双向的通信关系。

2-way:在此状态下,路由器发现自己的router id存在于收到的hello报文的邻居列表中,已确认可以双向通信。

邻居建立过程如下:

 

因为邻居是未知的,所以hello报文的目的地址不是某个特定的单播地址,邻居从无到有,ospf采用组播的形式发送hello报文,(224.0.0.5),对于不支持组播的网络ospf路由器是如何发现邻居呢?

 

对于不支持组播的网络可以通过手动配置实现邻居发现与维护

 

接下来学习ospf如何实现链路状态数据库的同步。

链路状态信息主要包括:

链路的类型;

接口IP地址及掩码;

链路上所连接的邻居路由器;

链路的带宽(开销)。

下面介绍ospf是如何定义多种网络的

 

ospf的链路状态信息中的开销值是如何度量的呢?

ospf在计算接口的cost值时,cost值=参考带宽/实际带宽,默认参考带宽为100M,当计算结果有小数位时,只取整数位;结果小于1时,cost取1;

 

那么ospf路由器怎么表达链路状态信息并完成同步呢?

ospf协议号:89

version:对于当前所使用的的ospfv2,该字段的值是2.

type:ospf报文类型

packet length:标识整个ospf报文的长度,单位是字节

router id:标识生成此报文的路由器的router id。

area id:标识此报文需要被通告到的区域。

checksum:校验字段,其校验的范围是整个ospf报文,包括ospf报文头部。

auth type:为0时标识不认证,为1时表示简单的明文密码认证,为2时表示加密(MD5)认证。

authentication:认证所需的信息,该字段的内容随autype的值不同而不同。

 

 

ospf的报文头部定义了ospf路由器的通信的标准与规则,基于这个标准ospf报文需要实现什么功能呢?

type报文名称报文功能
1hello发现和维护邻居关系
2Database Description交互链路状态数据库摘要
3Link State Request请求特定的链路状态信息
4Link State Update发送详细的链路状态信息
5Link State Ack发送确认报文

 

五种报文交互的过程。

ExStart:邻居状态变成此状态后,路由器开始向邻居发送DD报文,master/slave关系是再次状态下形成的,初始DD序列号也是在此状态下确定的,在此状态下发送DD报文不包含链路状态描述

Exchange:在此状态下,路由器与邻居之间相互发送LSR报文,LSU报文,LSAck报文,

full:LSDB同步过程完成,路由器与邻居之间形成了完全的邻接关系。

 

 

 

 

从建立邻居关系到同步LSDB的过程较为复杂,错误的配置或设备链路故障都会导致无法完成LSDB同步,为了快速排障,最关键的是要理解不同状态之间切换的触发原因。

 

●这是形成邻居关系的过程和相关邻居状态的变换过程。
o
Down :这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此
状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PolInterval ,通常和
Router DeadInterval间隔相同。


o Attempt :此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经
周期性的向邻居发送报文,发送间隔为HelloInterval。如果Router DeadInterval间
隔内未收到邻居的Hello报文,则转为Down状态。


Init :在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的
Hell报文的邻居列表中,示尚未与邻居建立双向通信关系。在此状态下的邻居要
被包含在自己所发送的Hello报文的邻居列表中。


o 2-Way Received :此事件表示路由器发现与邻居的双向通信已经开始(发现自己在
邻居发送的Hello报文的邻居列表中)。Init状态 下产生此事件之后,如果需要和邻居
建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接
关系则进入2-Way。


o 2-Way :在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立
邻接关系以前的最高级状态。


1-Way Received :此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列
中,通常是由于对端邻居重启造成的。


ExStart :这是形成邻接关系的第一个步骤 ,邻居状态变成此状态以后,路由器开始
向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决
定的。在此状态下发送的DD报文不包含链路状态描述。

Exchange :此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地
LSDB的内容。
o
Loading :相互发送LS Request报文请求LSA ,发送LS Update通告LSA。
o Full :两台路由器的L SDB已经同步。

LSA ( Link State Advertisement )是路由器之间链路状态信息的载体。LSA是L .SDB的最
小组成单位,也就是说L SDB由一条l SA构成的。
所有的LSA都拥有相同的头部,关键段的含义如下:
。LS age :齡段表示LSA已经生存的时间,单位是秒。
。LS type :此序段标识了LSA的格式和功能。常用的L SA类型有五种。
。Link State ID :序段是该L SA所描述的那部分链路的标识,例如Router ID等。
。Advertising Router :此字段是产生此L .SA的路由器的Router ID。
。LS sequence number :此字段用于检测旧的和重复的LSA。
LS type , Link State ID和Advertising Router的组合共同标识一条SA。
LSDB中除了自己生成的LSA,另一部分是从邻居路由器接收的。邻居路由器之间相互更新
LSA必然需要一一个“通道”。

 

 

ospf基本工作原理

DR(Designated Router)指定路由器,其负责在MA网络建立和维护邻接关系并负责LSA的同步,

 

DR与其他所有路由器形成邻接关系洴交换链路状态信息,其他路由器之间不直接交换链路状态信息。这样就大大减少了MA网络中的邻接关系数量吸交换链路状态信息消耗的资源。


DR- -旦出现故障,其与其他路由器之间的邻接关系将全部失效, 链路状态数据库也无法同步。此时就需要重新选举DR ,再与非DR路由器建立邻接关系,完成L .SA的同步。为了规避单故障风险,通过选举备份指定路由器BDR ,在DR失效时快速接管DR的工作。

 

 

邻居—>邻接

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值