以下为评判路由好坏的几个角度
1.占用资源少
2.收敛速度快
3.选路越快越好
总结:选路佳,收敛快,占用资源少。
RIP --- 距离矢量型
1,以跳数作为开销值进行选路,本身存在不合理性
2,由于RIP本身计时器时间较长,收敛速度较慢
3,RIP单个数据包占用资源并不算大,但是,因为RIP存在30S一次的周期更新,所以,整体看来,RIP的资源占用很大。
由于RIP三个维度的表现都不算太好,所以,只能适用于中小型网络环境中。
(一)OSPF 中文名:开放式最短路径优先协议,是链路状态型。
传递的是LSA --- 链路状态协议
距离矢量性协议与链路状态型协议区别:
距离矢量性协议 ,穿滴的是路由信息,距离体现在看开销值,矢量在方向上,
链路状态型协议 ,传递的是拓扑(LSA--- 链路状态通告)信息,
一个好的路由协议应具备的三个特点:
选路佳,收敛快,占用资源少
OSPF于RIP比较:
1,OSPF因为是链路状态型协议,所以计算出的路径不会出现环路,并且,OSPF以带宽作为开销值进行选路,相较于跳数更加合理。所以从选路的角度看,OSPF由于RIP.
2,由于OSPF的计时器时间短于RIP的计时器时间,所以从收敛角度比较,OSPF优于RIP。
3,从单个数据包携带的数据量来看,因为OSPF携带的拓扑信息(LSA),所以数据量较RIP大很多。但是由于RIP存在30S一次的周期更新,而OSPF不存在,并且OSPF本身存在很多减少更新量的措施,所以从整体的角度看,OSPF略优于RIP。
RIP版本:RIPV1,RIPV2 --- IPV4
RIPNG --- IPV6
OSPF版本:OSPFV1(在实验阶段夭折),OSPFV2 --- IPV4
OSPFV3 --- IPV6
OSPFV2的特点:
1,OSPFV2是无类别的路由协议。
2,OSPFV2采用组播的形式进行邻居间通信 ---
224.0.0.5,224.0.0.6 ---- 本地链路组播
3,OSPFV2支持手工认证和汇总(区域汇总)
4,OSPFV2支持等开销负载均衡
RIPV2和OSPFV2比较:
相同点:
1,RIPV2 和OSPFV2都是无类别的路由协议,都支持VLSM,CIDR。
2,RIPV2和OSPFV2都是以组播的形式发送信息 --- 224.0.0.5和224.0.0.6
3,RIPV2和OSPFV2都支持等开销负载均衡
不同点:
1,RIP只能适用于中小型网络; OSPF可以应用在大型网络当中。OSPF为了适应中大型网络环境(原因:OSPF为适应中大型的网络环境会进行结构化部署 --- 实际就是:区域划分)
区域划分的主要目的:
区域内部传递拓扑信息,区域之间传递路由信息(距离矢量型)区域之间想要实现路由递,需要存在中间设备 ---- 区域边界路由器 --- 英文名:ABR --- 同时属于两个区域,并且一个接口对应一个区域。至少有一个接口属于骨干区域。
区域之间可以存在多个ABR,一个ABR可以属于多个区域。
区域划分要求:1,区域之间必须存在ABR
2,区域划分必须按照星型拓扑结构划分 --- 星型拓扑中间区域叫做骨干区域。
OSPF区域存在区域编号 --- 区域ID(area ID) --- 32位二进制构成,用点分十进制进行表达。骨干区域的areaID为0。
OSPF不一定必须进行区域划分:
如果一个OSPF网络中只存在一个区域,那这样的OSPF网络称为单区域OSPF网络
如果一个OSPF网络中只存在多个区域,那这样的OSPF网络称为多区域OSPF网络
(二)OSPF协议 ---- 开放式最短路径优先协议,是链路状态型
OSPF协议号 --- 89
ospf头部信息:
1)OSPF的数据包类型:(5种)
Hello包 - 1
DBD包 - 2
LSR包 - 3
LSU包 - 4
LSACK包 - 5
NULL --- 不认证 --- 对应数值:0
Simple --- 明文认证 ---对应数值: 1
MD5 --- 比对摘要值认证 ---对应数值: 2
1.hello包
作用:用来建立和维护OSPF邻居的,要交换LSA,必须先通过Hello包建立OSPF邻居。
网络掩码 --- 华为要求,在以太网环境中,相邻的接口必须配置相同的子网掩码,否则无法建立邻居关系(这一点对串口无效)
hello时间和死亡时间 --- 邻居间hello时间和死亡时间必须相同,否则,无法建立邻居关系。
可选项 --- 每一位都表示路由器的某个OSPF特性。
需要注意里面存在表示特殊区域的标记字段,在邻居关系建立中会检查,如果邻居间特殊区域的标记字段不一致,则无法建立邻居关系。
DR和BDR的选举使用的也是hello包,一旦DR和BDR选举完成后,将携带DR/BDR的接口的IP地址。
hello包中限制邻居建立的条件:(五点同时满足)
1,子网掩码
2,hello时间
3,死亡时间
4,特殊区域标记
5,认证字段
周期时间:OSPF的hello包默认10S为周期进行周期发送
死亡时间:4倍的hello时间 (40S)
hello包中会携带RID包。
RID --- 用来标定和区分OSPF网络中不同的路由器
RID的特点:
1.全网(OSPF网络)唯一
2.格式统一 --- RID要求必须符合IP地址格式(由32位二进制构成,并且使用点分十进制进行表达)
RID的获取方式:
1,手工配置 --- 仅需要满足以上两点要求即可。
2,自动获取 --- 路由器先从环回地址中选取数值最大的IP地址作为RID。若不存在环回地址,则从本地的物理接口对应的IP地址中选取数值最大的作为RID。
2,DBD包 --- 数据库描述报文 --- LSDB(中文名:数据链路状态数据库---存储LSA信息)--- “数据库的目录”
作用:1,进行主从关系选举 2,携带数据库摘要信息
可选项前5位为0,是保留选项;后三位I、M 、MS介绍如下:
I位 :初始化位 --- 如果该位置1 ,则代表这个数据包是进行主从关系选举的数据包,将不会携带数据库摘要信息。
M位:该位如果置1,则代表后续还有更多的DBD包。
MS位:主从关系标记位。如果该位为1,则代表发出这个数据包的路由器为主。若为0,则代表为从。
DBD的序列号 --- 在DBD报文交互中,会主次加一,以确保DBD报文传输从可靠性和有序性。
链路状态类型、链路状态ID、通告路由器 这三个称为LSA的三元组, 通过这三个参数,可以唯一的标识出来一条LSA信息。
3, LAU包 --- 额外携带的就两种参数,一个是携带的LSA数量,一个是具体的LSA信息。
LSR包 --- 链路状态请求报文--- 作用是:基于DBD包请求未知的LSA信息
LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包
4.LSACK包 --- 链路状态确认报文 --- 确认包
2),OSPF的状态机
two-way state状态--- 双向通信 --- 标志着邻居关系的建立
条件匹配: --- 条件匹配成功,则进入下一个状态;如果条件匹配失败,则停留在邻居关系,使用hello包进行周期保活
EXSTART 状态 --- 使用未携带数据的DBD包进行主从关系选举。主可以优先进入下一个阶段
主从关系选举:使用未携带数据的DBD包(主要目的是为了和之前的邻居关系进行区分)通过对比RID,RID的为主,主可以优先进入下一个状态。
FULL STATE状态 --- 标志着邻接关系的建立 ---- 邻接主要是为了和邻居状态进行区分。邻接关系之间才会进行真正的链路状态数据的交换,邻居之间仅使用hello包进行保活。
以下为7种状态的解释:
down状态 --- 启动OSPF,发出hello包之后,进入下一个状态
init(初始化)状态 --- 收到hello包中包含自己本地RID,则进入下一个状态。
Two-way(双向通讯)状态 --- 邻居关系建立的标志
(条件匹配)条件匹配成功,则进入下一个状态,否则,将停留在邻居关系中,仅使用hello包进行保活。
exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,RID大的为主,主可以优先进入下一个阶段
exchange(准交换)状态 --- 使用携带数据的DBD包进行链路状态数据库(LSDB)目录的共享
loading(加载)状态 --- 基于未知的LSA信息,使用LSR/LSU/LSACK数据包进行LSA信息的交换。
FULL状态 --- 标志着邻接关系的建立。
3),OSPF的工作过程
启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播224.0.0.5的形式发hello包。hello包中需要携带自身本地的RID及自身已知邻居的RID,之后,将收集到的邻居关系记录在一张表中 --- 邻居表。
邻居表建立完成后需要进行条件匹配,失败则停留在邻居关系,仅使用hello包进行周期保活。
匹配成功,则开始建立邻居关系,首先需要使用未携带数据的DBD包进行主从关系选举。之后使用携带数据的DBD包共享数据库目录。之后使用LSR/LSU/LSACK数据包来获取未知网段的LSA信息;完成本地数据库表的建立。 --- LSDB ---链路状态数据库
最后,基于本地的链路状态数据库,生成有向图及最短路径树,之后,计算本地到达未知网段的路由信息。生成的路由信息加载到路由表中。
收敛完成后,OSPF需要10S一次使用hello包进行周期保活。每30MIN进行一次周期更新。
拓扑结构突变三种场景:
1,突然增加一个网段:触发更新,立即发送携带LSA信息的LSU包,需要ACK确认。
2,突然断开一个网段:触发更新,立即发送携带LSA信息的LSU包,需要ACK确认。
3,无法联系 ---- 40S死亡时间
OSPF遇到结构突变时有三种情况,在第三种情况无法联系最好处理
4),OSPF的接口的网络类型
P2P
MA(又包括两种类型:BMA 、NBMA)
OSPF接口网络类型 --- 实际上就是指的OSPF接口在不同网络类型下的不同的工作方式。
[r2]display ospf interface GigabitEthernet 0/0/0 ---- 查看OSPF接口的网络类型
华为的串线按照E1标准来执行,传输速率为2.048Mbps
环回接口的开销值为0 --- 这个值是华为规定的值,不受外界因素影响
(修改参考带宽没有用)
修改OSPF接口的网络类型 --- [r2-LoopBack0]ospf network-type broadcast
环回接口默认学习到的是32位的主机路由,要是想还原成真实的掩码长度,可以将环回接口的网络类型修改为broadcast
NBMA --- 需要手工指定邻居,通过单播邻居的方式进行邻居关系的建立。
NBMA在建立邻居的过程中,增加了一个Attempt状态 ---尝试状态 --- 只有在需要手工建立邻居关系的网络中才会出现。
5),OSPF的基本配置
第一步:启动ospf进程
[r1]ospf 1 router-id 1.1.1.1 --- 配置RID,启动ospf进程
[r1-ospf-1]
第二步:创建区域
[r1-ospf-1]area 0 --- 创建区域
[r1-ospf-1-area-0.0.0.0]
第三步:宣告 (宣告的作用:1.激活接口,接受OSPF的数据;2.激活接口对应的路由才能发送出去。)
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 (0.0.0.0 为反掩码,由连续的0和1组成,其中0代表的不可变位,1代表可变位
[r1-ospf-1-area-0.0.0.0]
第四步:查看OSPF邻居表
[r1]display ospf peer --- 查看邻居表
[r1]display ospf peer brief --- 查看邻居关系简表
OSPF Process 1 with Router ID 1.1.1.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 2.2.2.2 Full
----------------------------------------------------------------------------
[r1]display ospf lsdb ---查看ospf数据库表
OSPF Process 1 with Router ID 1.1.1.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 546 48 80000007 1
Router 1.1.1.2 1.1.1.2 545 48 80000005 1
Network 12.0.0.2 2.2.2.2 546 32 80000001 0
Sum-Net 23.0.0.0 2.2.2.2 586 28 80000001 1
Sum-Net 3.3.3.3 2.2.2.2 538 28 80000001 1
[r1]
[r1]display ospf lsdb +类型 +id ---- 查看一条LSA信息
例如:display ospf lsdb router 2.2.2.2 --- 展开具体的LSA信息
[r1]display ip routing-table protocol ospf ---- 查看路由表
OSPF在华为体系中默认优先级为10。
OSPF是以带宽作为开销值的度量标准 。
COST=参考带宽/真实带宽 ---华为默认的参考带宽是:100Mbps
修改带宽操作:(修改一台设备时,必须把ospf所有的设备都改)
[r1]ospf
[r1-ospf-1]bandwidth-reference 100 --- 修改的带宽(参考带宽的修改方法注意:参考带宽一旦修改,必须所有路由器都进行修改。)
[r1]display ospf 1 routing --- 查看OSPF路由表
6),路由条件匹配
指定路由器 --- 又称:DR
备份指定路由器 --- 又称: BDR
(DR和BDR是接口的概念)
一个广播域中,在DR和BDR都存在的情况下,至少需要4台路由器才能看到邻居关系。
条件匹配实质是: 在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;所以需要进行DR/BDR选举;所有非DR和BDR的设备之间仅维持邻居关系。
DR和BDR的选举规则:
1,先比较优先级。优先级最大的为DR,次大的为BDR。优先级的初始默认值为1。
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
优先级的取值范围:0-255。若优先级为0,则代表放弃DR/BDR选举。
2,如果优先级相同,则比较RID。RID最大的路由器对应接口为DR,次大为BDR。
DR/BDR的选举模式为非抢占模式。选举时间为40S。
若出现一下情况:
则 所有设备同时重启,<r2>reset ospf 1 process --- 重启OSPF进程,重新选举。
7),拓展配置
1.手工认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
注意:两边的key ID 必须相同
2.手工汇总 --- 区域汇总
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.252.0
3.沉默接口
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
4.加快收敛 --- 减少计时器时间
[r1]int g 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 更改为5秒后,(此时,0/0/0接口将按照每5S一次的间隔去发送hello 包,20S的时间去叛定死亡。)
注意:修改Hello时间,死亡时间会自动按照4倍关系进行匹配
注意:邻居之间Hello时间(死亡时间)必须相同,否则无法建立邻居关系
5.缺省路由
方法一:
[r3]ospf
[r3-ospf-1]dsf
[r3-ospf-1]default-route-advertise --- 指向缺省路由
[r3]display ip routing-table --- 查看是否已生成缺省路由
(当自身配置有缺省路由时才会去下发缺省路由)
当自身没有缺省时,先配置一个缺省
[r3]ip route-static 0.0.0.0 0 3.3.3.10 ----(缺省路由指向缺省源3.3.3.10)
[r3]display ip routing-table --- 查看是否已生成缺省路由
此时别的路由器均生成缺省路由,
注意:这样下发缺省路由必须要求边界路由器自身具备缺省路由
方法二:
[r3-ospf-1]default-route-advertise always --- 当自身没有缺省时,此命令可强制执行下发缺省路由
加always可以强制下发缺省路由信息