第八天
Bellman-Ford算法:贝尔曼-福特算法(Bellman-Ford)是由理查德·贝尔曼(Richard Bellman) 和 莱斯特·福特 创立的,求解单源最短路径问题的一种算法。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为 Edward F. Moore 也为这个算法的发展做出了贡献。
1, AR2发送2.0网段的信息给AR1, 如果, AR1本身并不存在该网段的路由 信息, 则将直接刷新到本地的路由表中。
Destination/Mask Proto Pre Cost Flags NextHop
Interface
1 2.2.2.0/24D 12.0.0.2RIP 100G0/0/0
2, AR2发送2.0网段的信息给AR1, 如果, R1本身存在该网段的路由信息, 且下一跳就是AR2。则将AR2发来的信息刷新到路由表中。
3, AR2发送2.0网段的信息给AR1, 如果, R1本身存在该网段的路由信息, 但是下一跳不是AR2, 则比较开销值, 如果, 本地路由的开销值大于AR2发 来的开销值, 则将AR2发来的信息刷新到路由表中。
4, AR2发送2.0网段的信息给AR1, 如果, R1本身存在该网段的路由信息, 但是下一跳不是AR2, 则比较开销值, 如果, 本地路由的开销值小于AR2发 来的开销值, 则不刷新路由条目。
RIP的计时器
周期更新计时器 --- 30S
失效计时器 --- 180S --- 路由条目刷新后启动一个180S的失效计时 器, 若计时器时间结束, 路由未刷新, 则认为路由不可达, 将该路由 从全局路由表中删除掉。 --- 带毒传输
垃圾回收计时器 --- 120S --- 失效计时器归0后开始计时, 时间 到, 则将该路由彻底删除
RIP的破环机制
1, 触发更新 : 当拓扑结构发生变化时, 直接将变化信息传递出去 而不去等待周期更新。
2, 水平分割: 从哪个接口学到的信息, 不再从哪个接口发出去。 3, 毒性逆转: 从哪个接口学到的信息, 还可以从这个接口发出去, 但是, 要带毒。
因为水平分割和毒性逆转的做法相反, 所以, 在选择时, 只能选择其 中一个来执行。华为设备默认开启水平分割。如果水平分割和毒性逆转同 时开启, 华为设备将按照毒性逆转的规则来执行。
RIP配置
1, 启动RIP进程
[r1]rip 1 --- 1为进程号, 仅存在本地意义, 用来区分一台设备上的多 个RIP进程
2, 选择版本
[r1-rip-1]version 1
3, 宣告
要求:
1, 宣告所有直连网段
2, 必须按照主类进行宣告
[r1-rip-1]network 1.0.0.0
目的:
1, 激活接口 --- 只有激活的接口才能收发RIP的数据
2, 发布路由 --- 只有激活的接口所对应路由信息才能被发布 [r1]display rip 1 route --- 查看RIP路由表
RIP的拓展配置
1, RIPV2的手工认证
[r2-GigabitEthernet0/0/0]rip authentication-mode md5 usual
plain 123456
2, RIPV2的手工汇总
[r1-GigabitEthernet0/0/0]rip summary-address 192.168.0.0 255.255.254.0
3, 沉默接口
使得该激活接口, 只接收不发送RIP数据。
[r1-rip-1]silent-interface GigabitEthernet 0/0/2 4, 加快收敛 --- 减少计时器的时间
[r1-rip-1]timers rip 30 180 120 --- 修改计时器时三个计时器的
倍数关系不能该变
5, 缺省路由
[r3-rip-1]default-route originate
第九天
选路佳, 收敛快, 占用资源少
1, 因为RIP是依据跳数作为开销值进行选路的, 所以, 本身就存在不合理 性;
2, 因为RIP的计时器时间较长, 所以, 收敛速度较慢;
3, RIP本身单个数据包占用资源并不大, 但是, 因为他存在30S一次的周 期更新, 所以, 从整体的角度看, 占用资源较大;
OSPF --- 开放式最短路由优先协议
1, OSPF使用SPF算法计算路径信息, 不会出现环路, 并且, OSPF使用带宽 作为开销值进行选路, 相对更合理一些, 所以, 选路的层面优于RIP;
2, 因为OSPF计时器时间短于RIP, 所以, 从收敛速度的角度看, OSPF优于 RIP;
3, 从单个数据包的角度来看, 因为OSPF传递的是拓扑信息(链路状态信 息 --- LSA) ,所以, 数据量远远大于RIP的单个数据包。但是, 因为RIP 存在30S一次的周期更新, 整体上看, 占用资源量巨大; 再加上OSPF本身 存在很多减少更新量的手段, 所以, 从整体的角度来看, OSPF小优于 RIP。
RIP存在三个版本 --- RIPV1,RIPV2 --- IPV4
RIPNG --- IPV6
OSPF也存在三个版本 --- ospfv1(实验室阶段夭折) ,ospfv2 --- IPV4 ospfv3 --- IPV6
RIPV2和OSPFV2的相同点:
1, OSPFV2和RIPV2一样, 都是无类别的路由协议(传递目标网段信息时携 带子网掩码) -- 都支持VLSM, CIDR
2, OSPFV2和RIPV2都是以组播发送信息 ----- OSPFV2所使用的组播地址 为 224.0.0.5和224.0.0.6
3, OSPFV2和RIPV2一样, 都支持等开销负载均衡
不同点:
RIP只适用于小型网络环境中, OSPF可以适用于中大型的网络环境 --- OSPF为了适用中大型的网络环境, 需要进行 --- 结构化部署 (区域划分)
如果网络规模不大, 仅存在一个OSPF区域, 则称之为单区域OSPF网络; 若
存在多个OSPF区域, 则称之为多区域OSPF网络
区域划分的主要目的: 区域内部传递拓扑信息, 区域之间传递路由信 息 --- 链路状态型协议的距离矢量特征
区域边界路由器(ABR) --- 同时属于多个区域, 一个接口对应一个区 域, 必须有一个接口在区域0。
区域之间可以存在多个ABR设备, 一个ABR可以对应多个区域 区域划分的要求:
1, 区域之间必须存在ABR;
2, 区域划分必须遵循星型拓扑结构 --- 星型拓扑的中间区域称为骨 干区域
为了方便对OSPF的区域进行管理, 我们给区域设计了一个编号 --- 区域ID(area ID) ---- 32位二进制构成 ---- 一般会采用点分十进制 的方法来表示/也可以直接用十进制来表示 ---- 规定骨干区域的area ID 为0
1, OSPF的数据包类型
Hello包 --- 周期发现, 建立和保活邻居关系
hello的周期发送时间默认为 10s --- hello时间。
失效判断的默认时间为4倍的hello时间 --- 40S ---- 死亡时间 (dead time)
OSPF为了区分和标定不同的路由器, 给每个路由器设立了一个 RID --- 1,全网唯一; 2, 格式统一 --- 统一按照IP地址的格 式 ---- 32位二进制构成
RID的获取方法有两种
1, 手工配置 --- 仅需满足以上两点要求即可
2, 自动获取 --- 路由器会先在自己的环回接口的IP地址中 选择最大的IP地址作为RID; 如果, 路由器不存在环回接 口, 则将在自己物理接口的IP地址中选择最大的作为RID;
DBD包 --- 数据库描述报文 ---- 携带的时路径信息的摘要
LSR包 --- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息 LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包
LSACK包 --- 链路状态确认报文 --- 确认包
OSPF存在每30MIN一次的周期更新
2, OSPF的状态机
TWO-WAY ---- 标志着邻居关系的建立
(条件匹配)
主从关系选举 --- 使用未携带数据的DBD包(主要是为了和之前的邻居关 系进行区分) ,通过比较RID来进行主从关系选举, RID大的为主, 可以优 先进入下一个状态
LSDB --- 链路状态数据库 --- 存储LSA信息的数据库
FULL状态 --- 标志着邻接关系的建立 ---- 邻接关系主要为了和邻居关 系进行区分, 邻居关系仅使用hello包进行周期保活, 邻接关系才可以进 行LSA信息的交换。
down状态 --- 启动ospf, 发出Hello包之后进入下一个状态
init(初始化) 状态 --- 收到hello包中携带自己本地的RID, 进入下一 个状态
two-way(双向通讯) 状态 --- 标志邻居关系的建立
(条件匹配) 条件匹配成功, 则进入下一个状态; 否则, 将停留在邻居状 态, 仅发送hello包周期保活
exstart(预启动) 状态 --- 使用未携带数据的DBD包进行主从关系选 举, RID大的为主, 优先进入下一个状态
exchange(准交换) 状态 --- 使用携带目录信息的DBD包进行目录共享 loading(加载) 状态 --- 基于DBD包中的未知的LSA信息, 使用LSR包进 行请求, 邻居使用LSU包回复, 需要LSACK进行确认
FULL状态 --- 标志着邻接关系的建立
3, OSPF的工作过程
启动配置完成后, OSPF会向所有运行协议的接口以组播224.0.0.5的 形式发送hello包; hello包中携带本地的RID以及本地已知的邻居的RID。 之后, 将收集到的邻居关系记录在一张表中 ---- 邻居表。
邻居建立之后, 需要进行条件匹配; 匹配失败则停留在邻居关系, 仅 使用Hello包进行周期保活。
匹配成功, 则可以开始建立邻接关系。首先使用未携带数据的DBD包 进行主从关系选举, 之后使用携带数据的DBD包进行数据库目录信息共 享; 之后本地使用LSR/LSU/LSACk来获取未知的LSA信息; 完成本地数据库 的建立; 生成数据库表 --- LSDB。
最后, 基于本地的链路状态数据库生成有向图及最短路径树, 之后计 算本地到未知网段的路由信息, 生成路由并添加到路由表中。
收敛完成之后, hello包10S一次进行周期保活, 30MIN一次周期更 新。
结构突变
1, 新增一个网段
2, 断开一个网段
3, 无法沟通 ---- 40S
4, OSPF的基本配置
第十天
4, OSPF的基本配置
1) 启动OSPF进程
[r1]ospf 1 router-id 1.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 1.1.1.1 0.0.0.0 --- 反掩 码 --- 由连续的0和连续的1组成, 0带表不可变, 1代表可变
[r1]display ospf peer --- 查看OSPF邻居表
[r1]display ospf peer brief --- 查看邻居关系简表
[r1]display ospf lsdb --- 查看OSPF的链路状态数据库
[r1]display ospf lsdb router 2.2.2.2 --- 查看LSA详细信息 [r1]display ip routing-table protocol ospf
OSPF协议 --- 华为设备分配的默认优先级为10
OSPF是以带宽作为开销值的度量标准的
cost = 参考带宽/真实带宽 --- 华为设备OSPF的参考带宽默认为 100Mbps
[r1-ospf-1]bandwidth-reference 1000 ---- 修改参考带宽的命令 注意: 如果需要修改一台路由器的参考带宽, 则需要将所有(OSPF网络 内) 路由器的参考带宽都修改为一样的
指定路由器 --- DR
备份指定路由器 --- BDR
DROther
当一个广播域中存在DR和BDR时, 想要看到邻居关系, 至少需要4台路由设 备
DR/BDR是接口概念
条件匹配: 在一个广播域中, 若所有设备均建立邻接关系, 将造成大量的 重复更新, 故需要进行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的选举是非抢占模式的 --- DR/BDR一旦选举成功, 则将不能被抢 占。DR/BDR的选举时间40S。
<r1>reset ospf 1 process --- 重启OSPF进程
5, OSPF的拓展配置
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.254.0
3) 沉默接口
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
4) 加快收敛 --- 减少计时器时间 [r1-GigabitEthernet0/0/0]ospf timer hello 5
注意: 修改hello时间后, 死亡时间将自动按照4倍关系匹配 注意: ospf要求, 邻居之间的hello时间和死亡时间必须相同, 否则无法建立邻居关系。
5) 缺省路由
[r3-ospf-1]default-route-advertise
注意: OSPF要求边界路由器自身必须存在缺省路由, 才能下发缺 省路由信息
[r3-ospf-1]default-route-advertise always --- 强制下发
缺省信息