动态路由协议:OSPF
我们使用协议的目的,是为了实现通信,没有协议的话只有直连的设备才能够Ping通,
那我们有了RIP协议为什么还要OSPF,答案只有一个?RIP有缺陷。 **RIP的缺陷:**收敛慢(就是更新比较慢),最大可达跳数15跳(意味着网络中最多只能有15台设备), 间隔发送完整性更新(同样的信息也会再次发送,就会导致资源的浪费),存在环路的可能,有可能选择一条次优的路径。
因此我们有了OSPF----open shortest path first----开放最短路径优先(在线网中的使用率占80%以上) 因为OSPF属于公有协议适用于各个厂商
**OSPF属于内部网关协议(IGP)----属于链路状态协议----同样是通过组播的形式发送路由更新 ----直接工作在IP层,协议号是89 **
何为链路状态协议? **链路:**加入ospf的接口以及接口的简要信息。----针对于路由器上链路就是一个接口(也就是一条网段) **状态:**有哪些ospf的邻居
距离矢量协议和链路状态协议的区别: 距离矢量协议再发送路由更新的时候发送的是完整的路由表,而链路状态协议发送路由更新的时候发送的是链路状态数据库;距离矢量协议只能够知道直连的情况,而链路状态协议能知道整个网络的情况。
距离矢量协议是一个听信谣言的协议,而链路状态协议能够知道整个网络的真实情况。 因为距离矢量协议会根据别人告诉你怎么做就怎么做,而ospf就会知道所有的方法并且自己选取一个最优解。
组播地址: 224.0.0.9(RIP) 224.0.0.5----所有的ospf都会加入 224.0.0.6----只有DR/BDR才会加入
要介绍ospf,先介绍ospf路由器的名字--Router ID--RID **RID的作用:**在网络中,用于唯一标示一台ospf路由器。一般情况下使用本台设备的IP地址作为RID。
RID的来源: ①手动指定,通过手动指定的RID具有最高级别的优先权,并且不会更改。 ②如果没有手动指定,那么就选择回环接口地址作为RID。如果同时存在多个回环口地址,那么就选择IP地址最大的那个。 ③如果即不存在手动,又没有回环口地址,那么就选择双up的物理接口地址作为RID,同样是越大越好。
OSPF的hello包: 用于发现、建立和维持邻居之间的关系。 如果hello包中的某些参数匹配,则成功建立邻居关系。
hello时间:10s dead时间:40s
ospf建立的前提: ①hello间隔要一致 ②区域ID要一致 ③认证类型要一致 ④特殊区域要一致
ospf研究要了解三五七-------三张表-------五个报文-------七个状态
三张表:
**①邻居表:**启用了ospf协议的路由器,就会加入组播地址224.0.0.5,并且往组播地址发送hello报文,同时也会接收到其他ospf路由器发送的hello报文,此时如果hello包中的参数匹配,则成功建立邻居,并且会把对方的RID和hello包的接收接口关联起来形成邻居表。
IOU1#show ip ospf neighbor
**②拓扑表:**也叫做链路状态数据库(LSDB),形成邻居关系后,邻居路由器之间就会相互发送链路状态通告(LSA),每一台ospf路由器都会把接受到链路状态通告汇总起来形成拓扑表,拓扑表存放就就是整个网络的信息,并且ospf在发送路由更新的时候发送的就是链路状态数据库。
IOU2#show ip ospf database
**③路由表:**拿到拓扑表运行SPF算法,得到一条最优路径,存放进路由表中。
IOU1#show ip route ospf
SPF算法:也叫作DIJKSTRA算法,是ospf的一个选路标准,是以自己为重构建一棵最短路径树,并且计算出到达目标的最优路径。 如何判断一条路径是否最短?----ospf的选路标准 ospf链路代价的计算:从源到达目的沿途所有出站接口的开销累积和。
接口开销的计算方式:10^8/BW(带宽) 更改接口开销的方式 手动更改: ①更改带宽来更改开销
IOU1(config-if)#bandwidth 100000
--进入出接口更改带宽,从而更改接口开销,但是一般不建议使用这种方法,因为接口的带宽不止于ospf的开销有关,还与eigrp的度量值计算有关。
②直接进接口更改ospf开销
IOU1(config-if)#ip ospf cost n --直接进入接口更改ospf的接口开销--建议使用
OSPF的区域 为什么要对ospf进行区域的划分? ospf使用于大型的网络中,由于设备量大,ospf路由器之间需要相互发送链路状态信息,并且形成庞大的拓扑表,再加上运行复杂的SPF算法,所以就会对设备的性能造成很大的负担,并且消耗更多的资源和带宽。
所以提出了区域的概念,把一整个大的网络域划分成多个比较小的区域,这样每个区域只需要管理同步本区域内的拓扑信息即可。
**ospf的区域分为:**骨干区域(区域0)和非骨干区域(除了区域0以外的其它区域) 要求:非骨干区域一定要与骨干区域连接在一起。
区域划分的优势:
- 每个区域是构成一个网络路由器的一个子集
- 尽量减少路由条目
- 是拓扑的变化只影响区域内的设备
**OSPF的网络类型:**可以根据链路类型来区分网络类型 ①以太网链路(以太网接口):网络类型是广播多路访问环境(MA),MA的网络环境需要进行DR/BDR的选举。会发送组播的hello报文,hello时间是10s。 ②串行链路(串行接口):网络类型是点对点(P2P),点对点链路不需要进行DR/BDR的选举。会发送组播的hello报文,hello时间是10s。 ③回环接口:网络类型是loopbacks ④非广播多路访问环境;
DR/BDR DR:指定路由器 BDR:备份指定路由器 DR/BDR的来源:通过选举的得到,并且是在一条链路上进行选举的。 选举规则: ①先比较接口优先级的大小,优先级大的成为DR。(默认的优先级是1,优先级0的不参与选举) ②如果优先级一致,那么就选择RID比较大的成为DR。 **保持稳定原则:**DR/BDR的选举是非抢占,如果网络已经选择处一个DR,那么此时就算再加入一台具有更高优先级的路由,也不会马上抢夺原来DR的位置,除非重置路由信息。 更改接口的优先级:
IOU1(config-if)#ip ospf priority 2 --越大越优先
OSPF基本配置:
IOU2(config)#router ospf 1 --启用ospf协议,进程号1(进程号只在本地有意义)
IOU2(config-router)#network 12.12.12.2 0.0.0.0 area 0--通告网段,属于12.12.12.0 网段的IP地址所属接口都会加入ospf进程。
IOU2(config-router)#router-id 192.168.1.1--手动更改RID
% OSPF: Reload or use "clear ip ospf process" command, for this to take effect
IOU2#clear ip ospf process
Reset ALL OSPF processes? [no]: y
惯例√