前言
静态配置路由虽然精确性高,但是在面对复杂的网络时,手动配置起来复杂又容易出错。我们可以使用动态路由配置,让路由器自动学习将IP信息添加到路由表中。
一、动态路由
1.1 动态路由介绍
动态路由要基于某种路由协议实现,路由协议是路由器之间用来交换信息的语言。动态路由的路由之间会相互通告自己的直连路由表,学习对方路由表中我没有的IP信息。
特点:减少了管理任务,会占用网络宽带
路由器会通过度量值来确定最优路由路径。度量值有:跳数、带宽、负载、时延、可靠性、成本。
收敛:使所有路由表都达到一致状态的过程。
按照路由执行的算法,动态路由能分成两类:
距离矢量路由协议
- 依据从源网络到目标网络所经过的路由器的个数(跳数)选择路由。使用这样的协议有RIP、IGRP(思科私有协议)。
链路状态路由协议:
- 依据从源网络到目标网络的各条路径的情况选择路由。使用这样的协议有OSPF、IS-IS。
1.2 RIP路由协议
RIP是距离-矢量路由选择协议
Routing Information Protocol,路由信息协议
RIP的基本概念:
- 定期更新路由表
- 通过邻居获取路由信息
- 通过广播更新
- 全路由表更新
RIP的度量值使用的是:跳数,最大跳数为15跳,16跳为不可达。
RIP更新时间:每隔30s发送路由更新消息,UDP使用 520端口。
RIP路由更新消息方式:发送整个路由表信息。
RIP有两种应用类型:RIP v1 和 RIP v2 ,区别如下:
RIP v1 | RIP v2 |
---|---|
有类路由协议 | 无类路由协议 |
广播更新(255.255.255.255) | 组播更新(224.0.0.9) |
不支持VLSM | 支持VLSM |
自动路由汇总,不可关闭 | 自动汇总可关闭, 可手工汇总 |
不支持不连续子网 | 支持不连续子网 |
因为
有类路由协议:不支持子网划分;
无类路由协议:支持子网划分,支持不连续的联网。
所以RIP version2 比较常用。
路由表形成步骤:
- 路由器先学习直连路由;
- 当更新周期30s到时,路由器会向邻居发送路由表,并进行学习;
- 再过30s,第二个更新周期到了,路由器会向邻居再次发送路由表,并进行学习
1.3 会产生的环路问题
因为路由器之间不停的相互读取对方的路由表信息,可能会导致环路的问题。动态路由通过执行 水平分割 和 毒性逆转 可以阻止路由环路的发生。
水平分隔:路由器从某个接口上学习到路由信息后,不再再将这个网段从这个接口发送出去。
这样也能减少路由更新信息占用的链路带宽资源。
毒性逆转:路由器从某个接口上接收到某个网段的路由信息之后,会将这个网段标志为不可达 再发送出去,而不是像水平分隔那样不往回发送信息了。收到此种的路由信息后,接收方路由器会立刻抛弃该路由,而不是等待其老化时间到。
这样也可以加速路由的收敛。
二、实验
2.1 RIP基础命令
[R1]rip 1 #启动RIP
[R1-rip-1]version 2 #启动版本2(缺省为版本1)
#关闭路由自动聚合(即所有路由信息都会按照IP地址分类归类)
[R1-rip-1]undo summary
#宣告主网络号,v2会携带掩码组播更新224.0.0.9,v1不携带掩码广播更新 #255.255.255.255
[R1-rip-1]network 192.168.10.0
[R1-rip-1]network 200.1.1.0
----兼容模式(不常用)-----
[R1]int g0/0/1
#把设置成rip1路由器的某一接口单独设置成rip版本2
[R1-GigabitEthernet0/0/1]rip version 2 multicast
2.2 RIP实验
实验一:
实验内容,使用RIP实现PC1与PC2之间的通信。
步骤:1. 分别给三台路由器的各个网关接口配置IP地址;
2. 给每个路由器进行RIP配置;
3. 给PC1和PC2配置IP信息
【R1】
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.100.1 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/1]un sh
#配置RIP
[R1]rip 1
[R1-rip-1]version 2
[R1-rip-1]undo summary
[R1-rip-1]network 192.168.100.0
[R1-rip-1]network 12.0.0.0
[R1]dis ip routing-table
【R2】
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.0.0.2 24
[R2-GigabitEthernet0/0/1]un sh
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 23.0.0.2 24
[R2]rip 1
[R2-rip-1]version 2
[R2-rip-1]un summary
[R2-rip-1]network 12.0.0.0
[R2-rip-1]network 23.0.0.0
[R2]dis ip routing-table
【R3】
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 23.0.0.3 24
[R3-GigabitEthernet0/0/0]un sh
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.200.1 24
[R3]rip 1
[R3-rip-1]version 2
[R3-rip-1]un summary
[R3-rip-1]network 23.0.0.0
[R3-rip-1]network 192.168.200.0
[R3]dis ip routing-table
实验结果:
给PC1配置IP 192.168.100.100 DNS: 192.168.100.1
给PC2配置IP 192.168.200.200 DNS: 192.168.200.1
结果是可以互相ping通。
如R1执行命令 [R1]dis ip routing-table
结果如下图:23.0.0.0/24 和 192.168.200.0/24 网段通过RIP的方式加入了路由表中。
如R2执行命令 [R2]dis ip routing-table
结果如下图:192.168.100.0/24 和 192.168.200.0/24 网段通过RIP的方式加入了路由表中。
实验二:
【R1】
配置如下:
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.3 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.4.1 24
[R1]rip 1
[R1-rip-1]version 2
[R1-rip-1]un summary
[R1-rip-1]network 192.168.1.0
[R1-rip-1]network 192.168.4.0
R2 R3 R4 参照配置就行
实验结果能够互相ping通,各个路由器的路由表中有各个网关(RIP方式添加的)。