动态路由选择要求
选路佳,收敛快,占用资源少
RIPV2和OSPFV2的异同点
1,RIPV2和OSPFV2都是无类别(传递路由信息时是否携带子网掩码)的路由协议。2,RIPV2(224.0.0.9)和OSPFV2(224.0.0.5,224.0.0.6)都使用组播来更新信息。 --- 所有224.0.0.X格式的组播地址我们称为本地链路组播 ---- 目标IP地址是本地链路组播的数据包,中的TTL值被设定为1。 --- 所有本地链路组播都会存在对应的组播MAC地址 ---01-00-5e-后24位为组播IP地址的后24位。3,RIPV2和OSPFV2都支持等开销负载均衡
RIPV2只能适用于中小型网络环境中,而OSPFV2可以适用于中大型网络环境。 --- OSPF支持结
构化部署 --- 区域划分
如果网络规模不大,只存在一个区域,这样的OSPF网络 --- 单区域OSPF网络
如果存在多个区域,则我们称为 --- 多区域OSPF网络
OSPF区域划分
区域划分的目的 --- 区域内部传递拓扑信息,区域之间传递路由信息。
区域边界路由器 --- ABR --- 同时处于多个区域,一个接口连接一个区域,并且,有一个接口
连接在区域0中
区域之间,可以存在多个ABR设备,一个ABR设备也可以连接多个区域。
区域划分的要求:
1,区域之间必须存在ABR设备2,必须按照星型拓扑结构划分 --- 所有区域需要连接在骨干区域上区域ID(area ID) --- 用来区分和标识OSPF的不同区域。 --- 32位二进制构成 --- 可以使用点分十进制来进行表示,还可以直接使用十进制来表示。其中,骨干区域的区域ID必须设置为0。
OSPF的数据包
1,OSPF的数据包
hello包,DBD包,LSR包,LSU包,LSACK包
1,hello包 --- 周期性的发现,建立,保活邻居关系。hello时间 --- 10S(30S)Dead time --- hello时间的4倍。RID --- 可以区分和标定不同的路由器 --- 32位二进制构成 --- 1,全网唯一;2,格式统一(采用点分十进制的方式来表达)RID的获取方法:1,手工配置 --- 仅需满足以上两点需求即可2,自动生成 --- 1,优先选择环回接口中IP地址最大的作为RID;2,如果没有环回接口,则选择物理接口中IP地址最大的作为RID。2,DBD包 --- 数据库描述报文 --- 数据库 --- LSDB(链路状态数据库 --- 存储LSA信息的数据库)3,LSR包 --- 链路状态请求报文 --- 基于DBD报文请求未知的LSA信息4,LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据报5,LSACK -- 链路状态确认报文OSPF存在30min一次的周期更新
OSPF的状态机
Two-way --- 标志着邻居关系的建立。(条件匹配)--- 匹配成功,则可以进入下一个状态;如果匹配失败,则只能停留在邻居关 系,仅使用hello包进行周期保活。
EXSTART状态 --- 通过比较RID进行主从关系选举,RID大的为主,为主可以优先获得LSA信息。为主的可以主导隐形确认,可以定义隐形确认中的序列号。 --- 这里使用未携带数据的DBD包来进行主从关系选举主要是为了和之前的邻居关系进行区分。
FULL状态 --- 标志着邻接关系的建立。 --- 邻接关系的设定是为了和之前邻居关系进行区分,邻居关系只是单纯的使用hello包进行保活,而只有邻接关系,才会发LSA信息。
DOWN状态 --- 启动OSPF,发送hello包之后进入下一个状态;
Init(初始化)状态 --- 收到hello包中存在本地的RID,则将进入到下一个状态
Two-way(双向通信)状态 --- 标志着邻居关系的建立。
(条件匹配)条件匹配成功,则进入下一个状态;如果失败,则停留在邻居关系,仅使用hello包进行周期保活
Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,为主的可以优先获取LSA信息;
EXCHANGE(准交换)状态 --- 使用携带数据的DBD包共享目录信息
LOADING(加载)状态 --- 使用LSR,LSU,LSACK包获取未知的LSA信息
FULL状态 --- 标志着邻接关系的建立。
OSPF的工作过程
启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello
包,hello包中包含本地的RID以及自己已知的邻居的RID。,获取对端的RID,建立邻居关系,生成邻居表;
之后需要关注条件,若条件不匹配将保持为邻居关系,仅hello包周期保活即可;
若条件匹配可以建立邻接(毗邻)关系;先使用未携带数据库目录信息的DBD包来进行主从关系的选举;之后由主引导先后顺序使用携带目录信息的DBD包共享数据库目录;
之后本地基于其他设备的目录,判断出本地未知的LSA信息,再使用LSR/LSU/LSack来通过邻接获取具体的LSA信息,完成本地的数据库表(LSDB链路状态数据库);
本地数据库完整后,本地将基于数据库中的内容启动SFP算法,将数据库整理为有向图-->最短路径树--将本地到达所有未知网段的最短路径加载于本地的路由表中;
路由表建立完成,收敛结束;之后每10s使用hello包周期保活;每30min邻接间进行一次数据库目录核对;
结构突变:
1,突然新增一个网段 --- 触发更新,会立即将变更信息通过LSU包传递出去,需要ACK
确认;
2,突然断开一个网段 --- 触发更新,会立即将变更信息通过LSU包传递出去,需要ACK
确认;
3,无法通信 --- dead time
OSPF的基本配置
1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1
[r1-ospf-1]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0 --- 反掩码 --- 由连续的1和连续的0组
成,其中,0对应位不可变,1对应位可变。
[r1]display ospf peer --- 查看OSPF邻居表
[r1]display ospf peer brief --- 查看邻居表摘要信息
[r1]display ospf lsdb --- 查看数据库表
[r1]display ospf lsdb router 2.2.2.2 --- 展开一条LSA信息
华为体系下OSPF协议的默认优先级为10。COST = 参考带宽 / 真实带宽 ---- 华为体系下,参考带宽的默认值为100Mbps注意:开销值如果算出来是个小数,如果是大于1的小数,则直接取整数部分;如果是小于1的小数,直接取1。[r1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽
OSPF的条件匹配
条件匹配 --- 在MA网络中,若所有的设备均为邻接关系,将出现大量的重复更新;所以,需要进行DR/BDR的选举,所有非DR/BDR(DROther)之间仅维持邻居关系。
DR和BDR需要和其他设备之间建立邻接关系,一个MA网络中,如果DR和BDR都齐全,则至少需要4台设备才能看到邻居关系。DR和BDR其实是接口的概念。
指定路由器 --- DR备份指定路由器 --- BDRDR/BDR的选举规则:1,先比较优先级,优先级大的为DR,次大的为BDR;所有接口的优先级默认为1。[r1-GigabitEthernet0/0/0]ospf dr-priority 0如果将一个接口的优先级设置为0,则该接口将放弃DR和BDR的选举。2,如果优先级相同,则比较RID,RID大的为DR,次大的为BDRDR和BDR选举是非抢占模式的。 ---- 选举时间 --- 等同于死亡时间OSPF协议号 --- 89
OSPF数据包的内容
OSPF五种数据报文的头部是相同的
版本 --- OSPF协议的版本
类型 --- OSPF数据包的类型
Hello -- 1
DBD -- 2
LSR -- 3
LSU -- 4
LSACK -- 5
RID --- 携带的是发出数据包设备的RID
AREA ID --- 发出数据包的接口所在区域的ID
认证类型 --- 分为三种 --- NULL -- 0
simple明文认证 --- 1
MD5 --- 2
1,hello包 --- 周期发现,建立和保活邻居关系,DR和BDR选举
网络掩码 --- 数据包发出的接口所对应的网络掩码 --- 邻居双方这个参数必须相同才能正常建立邻居关系(但是,这个参数在点到点网络中是不生效的)
hello时间,死亡时间 --- 这两个时间参数如果不相同,则邻居关系无法建立
可选项 --- 每一个标记位都代表设备遵循OSPF的某一种特性。
其中包含特殊区域的标记位。这个标记位不同,则邻居关系无法正常建立。
路由器优先级 -- 指发出数据包的接口在进行DR和BDR选举时的优先级
DR和BDR --- 在没选出来之前,使用0.0.0.0进行填充,选出来之后,将对应接口的IP地址进行
携带。
影响邻居关系建立的参数:1,网络掩码2