2021年12月13日笔记
RIP的计时器(华为体系下只有3个计时器,思科体系下有4个):
- 周期更新计时器(默认30s)
- 失效计时器(默认180s):路由条目刷新后启动一个180s的失效计时器(每次刷新后都会重置启动),若计时器时间结束,路由未刷新,则认为路由不可达,将该路由从全局路由表中删除掉。
带毒传输:该路由在缓存当中任然存在,且开销值变为16,并在周期更新的同时发送出去,接收方将按照Bellman-Ford算法中的第二种情况进行接收,然后将该路由丢弃。
- 垃圾回收计时器(默认120s):在失效计时器归零后开始计时,时间到,则将该路由彻底删除(即缓存中的毒被删除)。
异步周期更新可能引发环路,例如R2的一个网段断开了,R1的周期更新比R2在,在R2还没更新时,R1发给了R2到达断开网段的路由信息,然后就形成了环路,虽然最后可以通过开销值到达16来破除,但中间仍有可能产生环路。
因此RIP中设置的16跳机制主要就是为了限制环路的产生。
RIP的破环机制:
- 触发更新机制:当拓补结构发生变化时,直接将变化信息发送出去,而不去等周期更新(不一定可以确保不发生环路)。
- 水平分割机制:从哪个接口学到的信息,不再从哪个接口发出去。
- 毒性逆转机制:从哪个接口学到的信息,还可以从这个接口发出去,但是,要带毒(即将开销值改为16)。
因为水分分割和毒性逆转的做法相反,所以在选择时只能选择其中一个来执行,华为设备默认开启水平分割,如果同时开启,华为设备就按照毒性逆转的规则执行。
RIP配置 :
- 启动RIP进程
[r1]rip 1(1为进程号,仅存在本地意义,用来区分一台设备上的多个RIP进程)
- 选择版本(ripng是一个单独的启动进程,所以该进程只能选择V1和V2版本)
[r1-rip-1]version 1
- 宣告
要求:
- 宣告所有直连网段
- 必须按照主类进行宣告
[r1-rip-1]network 1.0.0.0
目的:
- 激活接口 --- 只有激活的接口才能收发RIP的数据
- 发布路由 --- 只有激活的接口所对应的路由信息才能被发布
[r1]display rip 1 route --- 查看RIP路由表
RIP的拓展配置:
- RIPV2的手工认证
先进入接口界面[r2-GigabitEthernet0/0/0]
然后敲rip authentication-mode选择认证模式
有simple(简单模式---在传输过程中,我们配置的这个口令将以明文的形式进行传输)和md5(传输的数据将被加密,安全性高一点,实质为散列函数中的哈希算法,可以将任意长度的字符信息转换成一个128位的固定位数的字符串,双方进行比对,来确定数据是否有异,但这个和加密不同,这个过程不可逆,无法还原。还有一个雪崩效应---对相同的文本进行两次哈希得出来的字符串将是一模一样的,但如果有一点点不同,算出来的字符串将有极大的差距。)
选择好认证模式后[r2-GigabitEthernet0/0/0]rip authentication-mode md5可选择传输的格式传输格式都可,但邻居双方的标准必须相同,不然无法通信。
然后选择口令在路由器上如何保存
Plain为明文存储
Cipher为密文存储
最后加上口令,双方的口令必须相同。
[r2-GigabitEthernet0/0/0]rip authentication-mode md5 usual plain 123456
- RIPV2的手工汇总 (RIPV1不携带子网掩码,所以无法汇总)
[r1-GigabitEthernet0/0/0]rip summary-address 192.168.0.0 255.255.254.0 (不支持简写,必须写完整的掩码),汇总网段之后,之前的小网段的开销值就会变为16,最后被丢弃。
- 沉默接口
使得该激活接口,只接收不发送RIP数据。
[r1-rip-1]silent-interface GigabitEthernet 0/0/2
- 加快收敛 --- 减少计时器的时间
[r1-rip-1]timers rip 30 180 120 --- 修改计时器时三个计时器的倍数关系不能该变
- 缺省路由
[r3-rip-1]default-route originate将该路由器当做缺省源,其它路由器将自动生成一条缺省路由指向该路由器,或指向去往该路由器的方向。
该路由器为该成为缺省路由的路由器的邻近路由器,然后在设置完后,在该路由器上手写上去往实际路由器的缺省路由。
2021年12月17日笔记
路由协议是否好要从这三个角度看:
选路佳,收敛快,占用资源少。
RIP:
- 因为RIP使用跳数作为选路依据,并不是特别的合理。
- RIP因为计时器时间较长,所以收敛时间较慢。
- RIP本身单个数据包中的资源占用量并不大,但是,因为RIP存在30s一次的周期更新,所以,从整体的角度来看,RIP整体的资源占用量较大。
Ospf(开放式最短路径优先协议):
- 因为Ospf传递的是链路状态信息(拓补信息),收集所有的LSA信息之后将获得整个网络的拓补结构,之后,根据spf算法将图形结构转换为树形结构,这样选出的路径不会存在环路。Ospf使用带宽作为开销值进行选路,相对更合理一些。
- Ospf协议的计时器时间较短(短于RIP),所以从收敛速度的角度来看,优于RIP。
- 从单个数据包携带的数据量来看,Ospf的单个数据包中的数据量远远大于RIP,但RIP中存在着30s一次的周期更新,并且,Ospf本身存在很多减少更新量的手段,所以,从资源占用的角度,Ospf小优于RIP。
RIP存在三个版本:
RIPV1,RIPV2 --- 针对IPV4
RIPNG --- 针对IPV6
Ospf也存在三个版本:
OspfV1(在实验室阶段就已经夭折了),OspfV2 --- 针对IPV4【所以在IPV4主要使用V2版本】
OsofV3 --- 针对IPV6
RIPV2和OspfV2的相同点:
- OspfV2和RIPV2一样,都是无类别的路由协议,都支持VLSM,CIDR。
- .OspfV2和RIPV2都是以组播形式发送信息。
OspfV2的组播地址:224.0.0.5和224.0.0.6
- OspfV2和RIPV2都支持等开销负载均衡。
不同点:RIPV2仅适用于小型网络当中(RIP的资源占用量过大是它不能适用于大型网络的主要原因),Ospf可以适合于中大型的网络环境(Ospf为了适应中大型网络需要进行结构化部署)。
结构化部署(区域划分)的目的:区域内部传递拓补信息,区域之间传递路由信息。
Ospf的区域也不需要设定范围,取决于自身的设备。
单区域Ospf网络:一个网路只包含单一的Ospf区域。
多区域Ospf网络:一个网路包含多个Ospf区域。
区域边界路由器(ABR):同时属于多个区域,一个接口对应一个区域,且至少有一个接口属于骨干区域的路由器。(区域之间可以存在多个ABR,可以在某一个坏了之后继续使用,且一个ABR可对应多个区域。)
区域划分的要求:
- 区域之间必须存在ABR。
- 区域划分必须按照星型拓补结构划分,星型拓补的中心被称为骨干区域。
为了方便对Ospf区域进行管理,我们给不同的区域增加了一个编号---区域ID(area ID),由32位二进制构成,可以使用点分十进制来进行表达,也可以直接使用十进制进行表达。
骨干区域的区域ID必须为0(十进制)或全0(点分十进制)。
Ospf的数据包类型:
- hello包:可以周期发现,建立和保活邻居关系。
hello包的发送周期默认10s(在其它的网络类型中可能发生变化)。
Ospf中判定邻居失效的时间为四倍的hello时间(死亡时间-died time)。
RID(router ID路由器的ID号):用来区分和标定Ospf网络中不同的路由设备。
RID的要求:1.全网(Ospf网络)唯一
2.格式统一,按照IP地址的格式,由32为二进制构成, 可以按照点分十进制来表示。
RID的获取方法:1.手工配置。
2.自动获取(直接用IP地址作为RID)。
自动获取的方法:先取自己环回接口中配置最大的 IP地址作为RID;如果没有环回 接口,则在自己物理接口配置的 IP地址中选择最大的作为RID。
hello包中将会携带RID。
- DBD包(数据库描述报文):【数据库(LSDB存放LSA信息的数据库)】携带的是路径信息的摘要,即数据库的目录,类似点菜时的菜单。
- LSR包(链路状态请求报文):基于DBD包去请求未知的LSA信息,即点菜。
- LSU包(链路状态更新报文):真正携带LSA信息的数据包,即上菜。
- LSACK包(链路状态确认报文):表示收到LSU包。
由上可知,Ospf拥有确认机制与保活机制,但Ospf仍有周期更新。
Ospf收敛完成之后,存在每三十分钟一次的周期更新(防止因为过大的数据出现失误)。
Ospf的状态机:
- Down状态:启动Ospf,之后发送hello包,进入下一状态。
- Init状态(初始化状态):收到hello包中包含自己本地的RID进入下一状态。
- Two-way状态(双向通信状态):标志着邻居关系的建立,条件匹配成功,进入下一状态,如果匹配失败,则将停留在邻居状态,仅依靠hello包进行周期保活。
- Exstart状态(预启动状态):使用未携带菜单的DBD包来进行选举,RID的为主,可以优先进入下一状态。
- Exchange状态(准交换状态):使用携带菜单的DBD包进行目录共享。
- Loading状态(加载状态):基于对端的DBD包中的信息,使用LSR/LSU/LSACK来获取未知的LSA信息。
- Full状态:标志着邻接关系的建立。
Ospf的邻居关系必须在能够双向通信后才能建立。
在建立邻居状态后,会进行条件匹配,如果匹配失败,则将停留在邻居状态,仅依靠hello包进行周期保活。
如果匹配成功,将会进行主从关系选举(使用未携带菜单的DBD包来进行选举),通过比较RID进行,RID大的为主,可以优先进入下一个状态。
使用未携带菜单的BDB包主要是为了和之前的邻居关系进行区分。
Full状态:标志着邻接关系的建立,邻接关系主要是为了和之前的邻居关系进行区分。邻接关系之间才可以真正的交换LSA信息,而邻居之间仅使用hello包进行保活。
Ospf的工作过程:
启动配置完成后,Ospf会向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包;hello包中携带自己的RID以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中(邻居表)。
邻居表建立完成之后,进行条件匹配;失败则停留在邻居关系,仅依靠hello包进行周期保活。
如果匹配成功,则将开始建立邻接关系,首先进行主从关系选举(使用未携带菜单的DBD包来进行选举),之后,使用携带菜单的DBD包进行目录共享。之后,使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立(LSDB链路状态数据库),然后生成数据库表。
最后,基于本地的链路状态数据库,生成有向图及最短路径树。之后计算本地到达未知网段的路由信息,并添加到路由表。
收敛完成后,依然需要每隔10发送hello包进行周期保活,每30分钟进行周期更新。
结构突变:
- 突然新增一个网段 --- 触发更新,直接使用携带LSA信息的LSU包进行更
新,需要对反回复ACK进行确认
- 突然断开一个网段 --- 触发更新,直接使用携带LSA信息的LSU包进行更
新,需要对反回复ACK进行确认
- 无法沟通:等待死亡时间,时间到了将其抛弃。
Ospf的基本配置:
2021年12月18日笔记
Ospf的基本配置:
- 先启动Ospf进程:
先敲ospf,然后加上进程号,如果是手工配置,需要在后面加上router-id。
[r1]ospf 1 router-id 1.1.1.1 ---- 1 --- 进程号,仅具有本地意义。
[r1-ospf-1]
Ospf不需要进行版本选择(因为OspfV1夭折了。)
- 创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
- 宣告
[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的选举,所有非DR/BDR之间仅保留邻居关系。
指定路由器(DR):与一个广播域内所有的路由器的接口为邻接关系。
备份指定路由器(BDR)【在指定路由器坏掉后代替它】:与一个广播域所有的路由器接口也是领接关系。
相互之间为邻居关系的路由器接口(DROther)
当一个广播域中存在DR和BDR的时候,至少需要四台路由器才能看到邻居关系。
DR和BDR是接口概念,不是指路由器。
DR/BDR的选举:
- 先比较优先级,优先级大的为DR,优先级次大的为BDR。(为了人为干涉设计的,手动选举BR与BDR)
优先级的默认初始值为1。
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
优先级的取值范围为【0,255】,如果将一个接口的优先级修改为0,则代表该接口放弃DR和BDR的选举
- 当优先级相同时,则比较RID。RID大的路由器的对应接口为DR,次大的为BDR。
DR和BDR的选举是非抢占模式(一旦广播域中的DR和BDR选好了,其它接口都不能抢)。
DR与BDR的选举时间:40s(死亡时间)【为上限,在40s内选出来就不可能抢占了。】
只有将ospf的进程重启才可以重新选举。
Ospf的拓展配置;
- 手工认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
两边的K-ID必须相同
- 手工汇总(区域汇总)
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0
- 沉默接口
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
- 加快收敛(减少计时器时间)
[r1-GigabitEthernet0/0/0]ospf timer hello 5
修改hello时间后,死亡时间将自动按照4倍关系匹配
Ospf要求邻居之间的hello时间和死亡时间必须相同,否则无法建立邻居关系。
- 缺省路由
[r3-ospf-1]default-route-advertise
OSPF要求边界路由器自身必须存在缺省路由,才能下发缺省路由信息
[r3-ospf-1]default-route-advertise always --- 强制下发缺省信息