动态路由(二)---OSPF协议学习

动态路由(二)—OSPF协议学习

1. OSPF相关

1.1 内部网关协议和外部网关协议

自治系统(AS)
是指由同一个技术管理结构使用统一选路策略的一些路由器的集合,泛指同一个区域。
内部网关协议(IGP)
其中有RIP,OSPF等
外部网关协议(EGP)
BGP等
内部网关协议在各个AS内部,外部网关协议在各个AS外部,负责AS之间的相连协议。
在这里插入图片描述

1.2链路状态路由协议

OSPF, ISIS
路由器对全网拓扑完全了解。是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的新编戏放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所以路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运行相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。

1.3OSPF工作过程

OSPF 链路状态路由协议有三个关键的表
邻居列表
链路状态数据库
路由表
1.通过各个路由的传信过程建立邻接关系。
2 再学习所有链路状态信息,这时所有路由对整个网络结构都了解清楚了。
3 把全部的信息放入链路状态数据库。
4 再通过SPF算法计算出最短路径树。
5 最后生成路由表。
在这里插入图片描述

1.4 OSPF区域

为了适应大型的网络,OSPF再AS内划分多个区域
每个OSPF路由器只维护所在区域的完整链路状态信息,非骨干区域直接是互相不了解的。
以下Area 0 就是骨干区域(图中的主干区域),1和2就是非骨干区域,非骨干区域围绕骨干区域
非骨干区域之间的通信全部都需要经过骨干区域,骨干区域为必经。

在这里插入图片描述

1.5 区域ID

可以表示成一个十进制的数字,也可以表示成一个IP地址
骨干区域 Area 0:负责区域间路由信息传播
Router ID: OSPF区域内唯一标识路由器的IP地址

1.6 Router ID选取规则

:(手工优先级最高)
自动:
1.选取路由器loopback接口上数值最高的IP地址
2. 如果没有loopback接口,在物理端口中选取IP地址最高的
手工:
也可以使用router-id 命令指定Router ID

2. DR和BDR

在一个广播网络中,多台路由设备时,两两之间相互形成邻接关系,十分的复杂如下图所示,如果在一个网络中更多路由器的话,相互邻接会造成大量拥塞。
这里可以由n(n-1)/2个邻接关系,可想而知,当路由器变多时,邻接关系会有多么的复杂。

在这里插入图片描述
所以此时为了缓解这种情况,我们出现了DR和BDR。
DR:在一组网络中通过选举或者第一个运行起来(先入为主)的路由器为DR路由器,用来与所有其他路由器相连,负责其他路由之间的通信,全部经过DR路由器(队长路由器)
BDR:通过选举出来第二优先的路由器,它负责做DR的备份路由,当DR路由器故障,它自动顶替DR的队长位置。
DRothers:除开DR和BDR之外的路由器,都和DR和BDR相连,others之间不能直接相连,都需要通过DR或者BDR。
DR的作用,在同一组网络中,所有的其他的路由器都只和DR和BDR形成路由邻接关系。就i和他俩相连接。
如下图所示,把原先复杂的连接方式直接简化成所有其他路由器都和DR或者和BDR相连。所有其他路由器之间如果先通信,都需要和DR通信,然后DR接受到后再转接到其他路由器上。当DR故障断掉后,BDR自动顶替DR功能。
在这里插入图片描述
介绍完DR和BDR相关,下面来说一下如何选举。

2.1 选举方法:

ps:只有原DR和BDR都挂掉才会重新进行选举。就算优先级高也不能强制更换已存在的DR和BDR,直到主备全挂掉才会选举。
自动:
网段上Router ID (以IP形式表现)最大路由器选举为DR ,第二大选举为BDR
手工:
优先级范围为0~255,数值越大,优先级越高,默认为1
如果优先级相同,则比较RouterID
如果路由器的优先级设为0,那么它不参与DR和BDR的选举。

2.2 OSPF组播地址

有两个:
224.0.0.5和224.0.0.6
一开始没有选出DR和BDR时,所有路由都在224.0.0.5这个地址中发送HELLO包,进行主备选举。
当主备选举成功时,224.0.0.5只给主备使用,其他路由器全部在224.0.0.6的地址进行通信。
所有路由器在224.0.0.5中发hello 包选举,确定DR和BDR后,其他路由发224.0.0.6和DR和BDR通信,DR和BDR接受到后,通过224.0.0.5发给其他路由器。
因此,当选举结束后:
DR和BDR(主备路由器)始终监听224.0.0.6组播地址
DRothers(其他路由器)始终监听224.0.0.5组播地址

2.3 OSPF的度量值为COST

COST=10^8/BW
最短路径是基于接口指定的代价(cost)计算的

接口类型 代价(108/BW)
Fast Ethernet 1
Ethernet 10
56K 1785

如图所示,接口带宽越大,代价越小。

2.4 OSPF数据包

承载在IP数据包(网络层)内,使用协议号89.
OSPF的包类型(五种包)

OSPF的包类型 描述
Hello 包 用于发现和维持邻居关系,选举DR和BDR
数据库描述包(DBD) 用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR) 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU) 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包好几个LSA
链路状态确认包(LSAck) 确认已经收到DBD/LSU,每个LSA需要备分别确认

2.5 OSPF七种状态


链接:这里引用别人的CSDN对于状态的解释。 [七种状态详解]
(https://blog.csdn.net/qq_37716168/article/details/86362509?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param).

七种状态过程:
OSPF采用SPF算法计算路由,从算法上保证不会产生路由环路。基于链路状态的。默认管理距离为110,使用IP数据报进行封闭,协议号89,组播地址为224.0.0.5(未选出了DR/BDR)和224.0.0.6(选出了DR/BDR)。

动态路由协议自带备份功能。路由器通过路由表转发数据。

OSPF协议并不传递路由条目,而是传递链路状态信息,并根据该信息来计算路由.
在一个网络中,路由器采用相同协议情况下:一台路由器从两个方向接收到去目的地,依靠带宽决定(cost开销值)
在一个网络中,路由器采用不同协议情况下:一台路由器从两个方向收到相同的目的地,比较管理距离(优先级)

来看一下OSPF的七个状态。
在这里插入图片描述

看上图:两个路由器已开启OSPF的接口,但是没有从邻居收到任何信息,这是Down状态,也是邻居的初始状态。
在这里插入图片描述

路由器之间通过交互问候(hello),建立和维护邻居关系。(检测对方还活着)

在这里插入图片描述

A发送了hello包,B也收到了A的hello包,但是B发现这个包里面没有自己的router-id,虽然收到了hello包,但是里面没有自己的名字。这就是init状态。
在这里插入图片描述

现在B也发送一个hello包给A,A收到了邻居的hello包,并且在包里面发现了自己的router-id,这就进入2-way状态,双向通信状态,形成邻居关系。

在这阶段会选举DR/BDR,DR好比是山寨中的大哥,那BDR就是二哥,大哥挂了就由二哥顶替。那怎么选举呢?看优先级,越大越优,优先级相同,就比较router-id越大越优。

选举DR的作用:多路访问中为了减少邻接关系
在这里插入图片描述

选举DR/BDR完成后,现在进入EXstart,在这状态每个路由器都会发送DBD报文,根据DBD报文中的router id,也是越大越优,此时选举出master,确认主从关系。这个master是可以抢占的,如果后面加入进来的路由器(router-id)更优就会抢占成为管理员。

DBD作用
1、建立邻接关系
2、不带有LSA头部的DBD,用于选举主从
3、带有头部的DBD,用于交换链路状态摘要消息
在这里插入图片描述

master会安排DBD报文的发送顺序。大家看,在这两个路由器中,B路由器的router id较大,所以b路由器先发送DBD报文,里面携带它自己的链路状态数据库,其次路由器A也发送DBD报文给B。从而交换链路状态。
在这里插入图片描述

此时路由器A根据路由器B报文,发现链路状态数据库中缺失某条信息,那A会发请求报文LSR,让B把相应的信息发给自己。B收到A发来的LSR请求后,把它要的信息通过LSU更新报文发给A,发送LSACK确认报文。说已经收到了。

Full:邻接状态
A接收到了会保存LSDB中,学习完后从而实现LSDB完全同步。


在这里插入图片描述
Down:没有启用OSPF的状态;邻居失效后变为该状态

Init:初始化状态,第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init

2-way:邻居状态,相互间周期发送hello的状态(双方建立会话)

Exstart:交换信息的初始化状态

发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,DBDR才能上)

Exchange:交换信息的状态

该状态下,相互间发送DBD,告知对端本地所有的LSA的目录;同时,可以发送 LSR,LSU,LSACK来学习对端的LSA

Loading:加载状态(没有学习完的状态)

发送LSR,LSU,LSACK,专门学习对端的LSA的详细信息

Full:邻接状态(学习完的状态)

彼此的LSDB同步,即所有的LSA相同
在这里插入图片描述

2.6 OSPF将网络划分为四种类型

  1. 点到点网络
    自动发现邻居,不需要DR/BDR, 组播224.0.0.5
  2. 广播多路访问网络
    自动发现邻居,选DR/BDR ,组播224.0.0.5 224.0.0.6
  3. 非广播多路径访问网络
    手工指定邻居,选DR/BDR 单播
  4. 点到多点网络
    自动发现邻居,不需要DR/BDR,组播224.0.0.5

2.7 OSPF的特点

在这里插入图片描述

2.8 OSPF与RIP的比较

在这里插入图片描述

3. OSPF模拟实验

1.先把拓补图中的所有路由器的接口IP地址配置好,以及各个路由上的回环地址(loopback)

在这里插入图片描述
2.在各个路由器上配置OSPF协议

在这里插入图片描述
其他路由器也是如此配置。

猜你喜欢

转载自blog.csdn.net/weixin_44324367/article/details/109487801