RIP----路由信息协议
基本概念
- 版本
- RIPV1—IPV4网络
- RIPV2—IPV4网络
- RIPng—IPV6网络
- 分类
- 距离矢量型
- RIPV1—有类别路由协议
- RIPV2—无类别路由协议
- RIP是应用层协议----端口号520(UDP)
- 周期更新----30s的周期更新—保活、确认
- RIP协议的优先级------100(华为)
- RIP的开销值
- 以条数位技术计算的,最大15跳;16则认为不可达
- 开销计算方式
- 数据包中传输的开销值=本地开销值+1
RIP的数据包
- 请求报文
- 在启动RIP进程后,设备会发送的报文,希望尽快获取邻居的路由信息
- 应答报文
- 携带了具体的路由信息,用于回答RIP的请求报文
RIP工作原理
- 初始化
- 启动RIP进程后,在每个参与工作的接口上发送请求数据包。该请求数据包会向所有的RIP路由器请求一份完整的路由表信息
- 以组播的形式发送
- 接受请求
- 对端接收到请求报文之后,会立即回复应答报文,应答报文中包含了本地路由表全部信息
- 接收到响应报文
- 路由器会比对接收到的报文中的路由表信息,对本地的路由表进行增加、删除、修改等操作。
- 常规路由更新和定时
- 当收敛结束后,路由器会以30s位周期,发送应答报文
- 邻居路由器收到应答报文后,会设置一个180s的超时时间,如果180s内都没有收到邻居发来的应答报文,则路由器会认为邻居出现问题,并将从该邻居收到的路由项的COST值改为16,并会向周围邻居发送该COST值为16的路由信息。再经过120s后会将该路由项删除
RIP算法
- 贝尔曼福特算法
- 当接收到的数据包含有本地路由表中没有的路由项时,则直接加载到本地路由表(数据第一次收到RIP的应答报文)
- 当接收到的数据包中含有本地路由表已经具备的路由项,且下一跳地址相同,则将数据包中的路由项更新至本地路由表中
- 当接收到的数据包中含有本地路由表已经具备的路由项,但下一跳地址不相同,则比较COST值,若本地路由表中的COST值较大,则将数据包中的路由项更新至本地路由表
- 当接收到的数据包中含有本地路由表已经具备的路由项,但下一跳地址不相同,则比较COST值,若本地路由表中的COST值较小,则不进行更新
RIP计时器
- 更新计时器
- 每台启动了RIP的路由器都会有一个数据自己的更新计时器
- 周期—30s
- 是一个倒计时计时器,每当数值为0,则向周围邻居发送响应报文
- 注意:当设备接收到请求报文后,则必须立刻发送应答报文
- 无效计时器
- 每台路由器上的每一个路由项都会有一个无效计时器
- 无效计时器时间—一般是更新计时器的6倍—180s
- 每次路由条目被更新时,计时器刷新为180s
- 当计时器时间为0时,会认为该路由项已经失效,也可以说该路由项所指的 目的地址不可达了,会将COST值设备为16,并向外界传递路由信息
- 垃圾收集计时器
- 当一个路由项的无效计时器为0时,即cost值被设置为16以后,会启动垃圾收集计时器
- 时间—120s
- 当垃圾回收计时器为0时,则会删除该路由项
- 如果该计时器为0前,接收到对端路由器发送的应答报文,则该计时器直接删除,该路由项直接恢复使用
假设,在某一时刻,一台路由器的RIP路由表中,共有30个路由项,其中cost值小于16的路由项有23个,cost值等于16的有7个,总共有多少个计时器。
RIPv1与RIPv2的区别
- 更新方式
- RIPv1使用广播形式发送
- RIPv2使用组播形式发送(224.0.0.9)
- 更新时是否携带真实掩码
- RIPv1不携带真实掩码(携带主类掩码)
- RIPv2携带真实掩码(IP所对应的掩码)
- RIPv2支持手工认证、也支持自动汇总
RIP环路
RIP防环机制
- 触发更新
- 当某一个路由器中的路由项发生变化时,不需要等待下一次更新周期的到来,就可以直接将发生变化的路由项通过更新报文发送出去
- 注意:仅发送改变的路由项吗,不发送完整的路由表
- 水平分割
- 如果有一个X/Y的路由项的G0/0/0口学习到,那么在发送应答报文时,该路由项不会从G0/0/0口发出。
- 从此口进,不从此口出
- 毒性逆转
- 如果有一个X/Y的路由项从路由器的G0/0/0接口进入,那么在发送应答报文时,虽然还会从该G0/0/0接口发出,但是此时的COST值为16
- 俗称,带毒传输
水平分割和毒性逆转,原理相同,但是做法不同,只能选择一个机制开启
华为:默认开启水平分割
如果同时开启了水平分割和毒性逆转。---->以毒性逆转的机制执行
问题:
能不能光使用水平分割或毒性逆转,而不使用触发更新
理论上可以,实际不行,因为触发更新除了可以降低环路产生的概率,还可以加快路由的收敛速度
RIP基本配置
[r1]rip 1 //启动协议进程,配置进程号为1
[r1-rip-1]version 1 //选择版本1
[r1-rip-1]network 192.168.1.0 //宣告,v1版本会宣告主类
[r1-rip-1]network 12.0.0.0
[r3]display ip routing-table protocol rip //查询RIP路由表
[r1]rip 1
[r1-rip-1]version 2
[r1-rip-1]undo summary ---关闭自动汇总,如果不关闭,宣告的属于同一主类的路由会自动汇总后发送
[r1-rip-1]network 12.0.0.0
宣告
- 要求
- 需要宣告所有直连网段
- 必须按照主类宣告
- 目的
- 激活接口:只有激活的接口才可以收发RIP的数据
- 发布路由:只有激活的接口对应的网段路由信息才可以发布
RIP扩展配置
- 手工汇总—去往多个可以汇总的目标网络范围,且具有相同的下一跳时,则可以不用具体的多个路由条目,仅一条汇总目标的路由即可
- [r1-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.0.0
- 缺省路由
- 一般做在与运营商相连接的边界路由器上
- [r1-rip-1]default-route originate
- 静默接口
- 配置了静默接口的接口无法主动发送数据包,只能被动接受,一般用于与用户相接的接口
- 在RIP的静默接口中,是只收不发
- [r1-rip-1]silent-interface GigabitEthernet 0/0/0
- 手工认证
- 用于路由器之间的身份核实,需要同时在双方路由器相连的接口上配置
- 只能用于RIPv2版本
- [r1-GigabitEthernet0/0/1]rip authentication-mode simple cipher 123
- 注意:一定要双方路由器均配置
- 加快收敛
- 减少计时时间
- [r3-rip-1]timers rip 10 60 40
- 修改的时候,尽量不要更改三个时间之间的倍数关系。修改的时候,尽量将所有路由器均修改
RIP版本不兼容问题
- 华为RIP版本收发信息
- RIPv1,仅收发广播RIP报文
- RIPv2,仅收发组播RIP报文
- 若无配置,则接收v1和v2的报文,只发送v1的报文
[r1-GigabitEthernet0/0/0]rip version 2 //更改接口RIP的版本
RIP不连续子网问题
OSPF----开放式最短路径优先协议
1、RIP是基于跳数选路的----跳数小的优,不会考虑带宽问题,可能会导致选路不佳
2、RIP的占用资源过多---30s的周期更新,使得链路中充斥着大量的广播报文
3、仅支持小规模网络----RIP支持最大跳数为15
基本概念
- OSPF是一个标准的IGP协议(AS内部使用)
- OSPF的协议算法是 链路状态型协议-font>—>传递拓扑
- OSPF版本
- OSPFv1、OSPFv2、OSPFv3
- OSPF是携带真实掩码的?(无类别的路由协议)
- 优先级----10(华为)
- 开销值:参考带宽/实际带宽(华为默认的参考带宽100Mbps)
- OSPF是跨层封装协议----协议号为89
- OSPF协议特点
- OSPF传递的不是路由,是LSA(链路状态通告)
- OSPF的更新方式
- OSPF传递的不是路由,是LSA(链路状态通告)
- OSPF的更新方式
- 触发更新
- 30min的周期链路状态刷新
- 触发更新
- OSPF算法叫做SPF算法
- OSPF是一种比较小号路由器资源的协议,并且也会消耗链路资源
- 更新方式
- 使用组播
- 224.0.0.5(所有OSPF路由器)
- 224.0.0.6(一个MA网络中的DR/BDR接收的信息地址)
OSPF区域化结构
- OSPF为了适应大中型网络环境,进行了结构化部署----区域划分
- 我们把只有一个区域的OSPF网络成为单区域OSPF网络
- 我们把只有多个区域的OSPF网络成为多区域OSPF网络
- 区域划分的特点
- 区域内部传递拓扑信息,区域间传递路由信息
- 区域划分的 标准是基于路由器的接口的
- 区域的编号----帮助设备区分信息的不同来源、方便管理
- 32位二进制组成,也是点分十进制表现形式
- 区域编号为0的区域—>他被成为 骨干区域(有且只有一个),其他编号的区域被成为非骨干区域
- 在单区域网络中,这个区域一定是骨干区域
- 在多区域网络中,所有的 非骨干区域必须和骨干区域直接相连
- 区域边界路由器----ABR
- 同时属于多个区域,并且一个接口对应一个区域,且至少有一个接口是属于区域0的
- 区域间可以存在多个ABR,一个ABR也可以对应多个区域
- 自治系统边界路由器----ASBR
- 同时属于多个网络,例如某台路由器既属于OSPF网络,又属于RIP网络
- 为什么要区域划分
- 限制LSA的传播范围‘
- 减少LSA的数量
OSPF的工作过程:5种数据包、7中状态机、2种关系、3种接口角色、4中路由器角色与3张表
OSPF数据包类型
- hello包
- 周期保活、发现、建立 邻居关系
- 10s hello-time
- 死亡时间hold-time====4倍的hello包时间
- 如果在死亡使劲按内没有接收到对端邻居发送的hello报文,则认为邻居不存在
- Router-ID
- 全网唯一,表示路由器的身份
- 32位二进制组成,由点分十进制形式表示
- DBD包
- 数据库表述报文
- 内部包含了所有的拓扑的 目录信息
- LSR包
- 链路状态请求报文
- 请求获取未知的链路信息
- LSU包
- 链路状态更新报文
- 携带真正得到LSA信息的数据包
- LSAck包
- 链路状态确认报文
OSPF七种状态机
-
down:关闭状态----一旦启动OSPF协议后,则发出Hello报文,进入init状态
-
init:初始化状态—收到的Hello报文中包含本地的Rid时,进入下一状态
-
2-way:双向通信----邻居关系建立的标志
条件匹配:匹配成功进入下一状态,匹配失败,则停留在邻居关系
-
exstart:预启动状态–使用未携带信息的DBD报文进行主从关系的选举,RID大为主
-
exchange:准交换状态—使用携带了目录信息的DBD报文进行目录共享
-
loading:加载状态----接收到LSR后进入该状态,在该状态中使用LSR/LSU/LSAck三种报文来获取完整的拓扑信息
-
full:转发状态—拓扑交换完成后进入,该状态时 邻接关系建立的标志
条件匹配
- 三种接口角色
- 指定路由器—DR
- 备份指定路由器----BDR
- 其他路由器----DROther
- OSPF成为临界关系的条件----根据网络类型不同而不同
- MA网络(以太网)类型
- 点到点网络类型
- 角色之间的关系
- DR与BDR—邻接
- DR与DRother----邻接
- BDR与DRother----邻接
- DRother与DRother----邻居
- 选举规则
- 接口优先级(0-255),优先级越大,则越优。华为默认为1
- 比较RID,越大越优先
- 选举的范围
- 一个广播域,进行一次DR/BDR的选举
- 选举模式
- 非抢占性的
- 一旦选举成功,不会因为新加入的设备而重新选举
- 若需要重新选举,则需要重启OSPF进程
- reset ospf 1 process
- 在一个MA网络中,可以没有BDR,但是一定要有DR
- 非抢占性的
OSPF工作过程
- OSPF协议启动该后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送hello报文;hello报文中携带了本地的全网唯一的RID值;之后对端路由器B也将回复hello报文,该hello报文中若携带了对端A的RID值,则A与B建立邻居关系,并生成邻居表
- 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留在邻居关系,仅使用hello报文保活;若条件匹配成功,则可以开始建立邻接关系
- 邻接间共享DBD报文,将本地与邻接的DBD包进行对比没查找本地没有的LSA信息,之后使用LSR报文来询问,对端使用LSU报文来回复具体的LSA信息,之后本地使用LSAck报文进行显性确认,该过程完成后没生成数据库表(LSDB表)
- 在之后,本地基于数据库表,启用SPF算法,计算到达所有位置网段的最短路径,然后将其加载到本地的路由表中。此时收敛完成
- 最后,邻接间使用hello报文进行保活,并进行30min的周更刷新
结构突变
- 新增网络
- 直接使用更新包(LSU)告知邻居路由器
- 断开网段
- 直接使用更新包告知邻居路由器
- 无法沟通
- hello包10s发送一次,若40s时间未收到对端发来的hello报文,即超出死亡时间
- 断开邻接关系,删除路由
基本配置
[r1]ospf 1 router-id 1.1.1.1 //启动OSPF进程1,并配置rid为1.1.1.1
如果不进行手工配置RID,最大环回IP地址>最大物理接口IP地址
[r1-ospf-1]area 0 //进入骨干区域
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 //宣告,使用反掩码的形式宣告;
反掩码:32位二进制,使用点分十进制表示,由连续的0和连续的1组成,0表示IP的对
应位不变,1表示IP对应位可变
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255
-
OSPF邻居表
- [r1]display ospf peer //查看邻居表
- [r1]display ospf peer brief //查看邻居简表
-
OSPF数据库表
- [r2]display ospf lsdb //查看数据库简表
-
OSPF路由表
- [r1]display ip routing-table protocol ospf
OSPF扩展配置
- 修改参考带宽
- [r1-ospf-1]bandwidth-reference 1000
- 一台设备修改参考带宽后,所有设备均需要修改
- 修改接口优先级
- [r3-GigabitEthernet0/0/0]ospf dr-priority 0
- 当修改接口优先级为0时,则认为不参与选举
- 缺省路由(默认路由)----一般咋子ABR上配置
- 非强制性下发
- [r3-ospf-1]default-route-advertise //路由器中必须有缺省路由存在
- 强制性下发
- [r3-ospf-1]default-route-advertise always
- 非强制性下发
- 静默接口
- 不接不发,一般在连接用户的接口配置
- [r3-ospf-1]silent-interface GigabitEthernet 0/0/1
- 认证
- 支持在邻居间的接口上配置认证密钥
- 认证类型
- 不认证—0
- 明文认证-1
- 密文认证-2
- [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
- 双方都要配置,并且key ID保持一致