前言
对于思科和计算机网络的初学者,有不少人都被路由协议中复杂的概念以及配置选项吓过,我也是其中之一……动态路由协议确实非常复杂,特别是 OSPF,RFC 文档无比冗长!不过,新手来说,根本不需要了解那么多内容,配置其实都是非常简单的!
本文纯属个人学习经验,希望可以帮到刚入门网络的新手,老司机勿喷。有错误请及时提出!
路由协议的核心配置:公告直连网段!
路由协议(英语:Routing protocol)是一种指定数据包转送方式的网络协议。Internet 网络的主要节点设备是路由器,路由器通过路由表来转发接收到的数据。转发策略可以是人工指定的(通过静态路由、策略路由等方法)。在具有较小规模的网络中,人工指定转发策略没有任何问题。但是在具有较大规模的网络中(如跨国企业网络、ISP 网络),如果通过人工指定转发策略,将会给网络管理员带来巨大的工作量,并且在管理、维护路由表上也变得十分困难。为了解决这个问题,动态路由协议应运而生。动态路由协议可以让路由器自动学习到其他路由器的网络,并且网络拓扑发生改变后自动更新路由表。网络管理员只需要配置动态路由协议即可,相比人工指定转发策略,工作量大大减少。
来自: 维基百科
路由协议的核心其实就是让网络中各个路由器公布自己的直连网段和可到达的网段,然后让其他路由器学习,学习之后再告诉别人……一直这样持续下去,全网的路由信息交流也就打通了!
RIP、OSPF、EIGRP 之间的区别
功能上区别
下面都是最明显的区别
- RIP 协议有跳数限制,最多 15 跳,也就是传输数据的时候最多允许经过 15 台路由器,不适用于大型网络。
- RIP 属于有类路由,无法设置子网掩码。OSPF、EIGRP 属于无类路由,可以设置子网掩码,可灵活配置。
- RIP 无法得知路径开销,也就是说哪条路带宽大一点哪条路带宽小一点完全不知道,只知道要走最短的路。OSPF、EIGRP 均可以自动选择开销最小的路径。
综合来看,这三者中,RIP 协议是最落后的,现在用的也不是特别多了。OSPF、EIGRP 都差不多。但 EIGRP 又是思科专有协议,其他品牌的设备不能用,所以我感觉 OSPF 是通用性最好的。
配置上区别
下面都是最简单的配置
1、RIP:进入 RIP 设置菜单 -> 公告直连网段 -> 完成
2、OSPF:进入指定进程号的 OSPF 设置菜单 -> 公告直连网段、掩码、所对应的 OSPF 区域 -> 完成
3、EIGRP:进入指定 AS 号的 EIGRP 设置菜单 -> 公告直连网段、掩码 -> 完成
再简单点?对于小型网络,进程号、OSPF 区域、AS 号全部设置为 1 就好了!
网络拓扑图及说明

以下介绍的三种路由协议均使用此拓扑,黑色数字笔迹表示表示网段,红色数字笔迹表示主机号。四个路由器之间上面的链路为 10M 链路,下面为 100M 链路。下面只讲 R1 动态路由的配置方法,其他三个的话只要修改下公告的直连网段就可以了。接口以及 IP 的配置也不讲了。
RIP
配置步骤
1. 进入 RIP 配置模式
R1>enable
R1#configure terminal
R1(config)#router rip
2. 公告直连网段
注:由于 RIP 不支持设置变长子网掩码,所以 10.x.x.x
开头的地址都会被强制设定为 255.0.0.0
。所以 10.0.0.0/24
和 10.0.1.0/24
这两个网段都会被视为同一网段,最终在配置文件中都会转换成 10.0.0.0
。下面为了方便理解我还是把所有网段写了出来。
R1(config-router)#network 10.0.0.0
R1(config-router)#network 10.0.1.0
R1(config-router)#network 192.168.1.0
R1(config-router)#exit
R1(config)#exit
设置完成。
其他三个路由器的设置方法完全相同,把直连网段换一下就可以了。
验证结果
检查配置文件
R1#show running-config
以下只截取 RIP 的配置
!
router rip
version 2
network 10.0.0.0
network 192.168.1.0
!
检查 RIP 路由表
R1#show ip route rip
10.0.0.0/24 is subnetted, 4 subnets
R 10.0.2.0 [120/1] via 10.0.1.2, 00:00:20, FastEthernet0/1
R 10.0.3.0 [120/1] via 10.0.0.2, 00:00:20, Ethernet0/0/0
R 192.168.2.0/24 [120/1] via 10.0.0.2, 00:00:20, Ethernet0/0/0
R 192.168.3.0/24 [120/2] via 10.0.1.2, 00:00:20, FastEthernet0/1
[120/2] via 10.0.0.2, 00:00:20, Ethernet0/0/0
R 192.168.4.0/24 [120/1] via 10.0.1.2, 00:00:20, FastEthernet0/1
可以看到,全网的路由表均已成功学习。
需要注意的是,R1 到 192.168.3.0/24
这个网段有两条路可以走,一条百兆带宽,一条十兆带宽。而 RIP 完全不知道哪条路带宽高哪条路带宽低,只知道两条路一样长,所以 192.168.3.0/24
这个网段有两条路由表,而且开销都是 2 !
下面我们用 192.168.1.2
Tracert 192.168.3.2
看看两条路到底怎么走。
C:\>tracert 192.168.3.2
Tracing route to 192.168.3.2 over a maximum of 30 hops:
1 0 ms 0 ms 0 ms 192.168.1.1
2 0 ms 0 ms 1 ms 10.0.1.2
3 0 ms 0 ms 1 ms 10.0.3.2
4 0 ms 0 ms 0 ms 192.168.3.2
Trace complete.
再来一次。
C:\>tracert 192.168.3.2
Tracing route to 192.168.3.2 over a maximum of 30 hops:
1 0 ms 0 ms 0 ms 192.168.1.1
2 0 ms 0 ms 1 ms 10.0.0.2
3 0 ms 0 ms 0 ms 10.0.3.2
4 0 ms 1 ms 0 ms 192.168.3.2
Trace complete.
多重复几次可以看出,10M 的路和 100M 的路轮流走,一次走这条,一次走那条。所以,这是 RIP 的弱点。
OSPF
配置步骤
1. 进入 OSPF 进程 1 配置模式
R1>enable
R1#configure terminal
R1(config)#router ospf 1
2. 公告 OSPF 区段 1 的直连网段
注:这里的子网掩码要写成反掩码的形式,也就是 255.255.255.255
减去子网掩码所得到的值。
R1(config-router)#network 10.0.0.0 0.0.0.255 area 1
R1(config-router)#network 10.0.1.0 0.0.0.255 area 1
R1(config-router)#network 192.168.1.0 0.0.0.255 area 1
R1(config-router)#exit
R1(config)#exit
设置完成。
其他三个路由器的设置方法完全相同,把直连网段换一下就可以了。
验证结果
检查配置文件
R1#show running-config
以下只截取 OSPF 的配置
!
router ospf 1
log-adjacency-changes
network 10.0.0.0 0.0.0.255 area 1
network 10.0.1.0 0.0.0.255 area 1
network 192.168.1.0 0.0.0.255 area 1
!
检查 OSPF 路由表
R1#show ip route ospf
10.0.0.0/24 is subnetted, 4 subnets
O 10.0.2.0 [110/2] via 10.0.1.2, 00:57:00, FastEthernet0/1
O 10.0.3.0 [110/12] via 10.0.1.2, 00:57:00, FastEthernet0/1
O 192.168.2.0 [110/11] via 10.0.0.2, 00:57:00, Ethernet0/0/0
O 192.168.3.0 [110/3] via 10.0.1.2, 00:57:00, FastEthernet0/1
O 192.168.4.0 [110/11] via 10.0.1.2, 00:57:00, FastEthernet0/1
可以看到,全网的路由表均已成功学习。
对比一下上面 RIP 的,到达 192.168.3.2
这里只剩下一条路可以走了,走的当然是 100M 的链路。说明 OSPF 会自动根据最小的路径开销自动选择下一跳。
同样,Tracert 一下看看两条路到底怎么走。
C:\>tracert 192.168.3.2
Tracing route to 192.168.3.2 over a maximum of 30 hops:
1 0 ms 0 ms 0 ms 192.168.1.1
2 0 ms 0 ms 0 ms 10.0.1.2
3 0 ms 0 ms 0 ms 10.0.2.2
4 0 ms 0 ms 0 ms 192.168.3.2
Trace complete.
再来一次。
C:\>tracert 192.168.3.2
Tracing route to 192.168.3.2 over a maximum of 30 hops:
1 0 ms 0 ms 0 ms 192.168.1.1
2 0 ms 0 ms 0 ms 10.0.1.2
3 0 ms 0 ms 0 ms 10.0.2.2
4 0 ms 0 ms 1 ms 192.168.3.2
Trace complete.
多重复几次可以看出,数据包都往 100M 的路走了。
EIGRP
配置步骤
1. 进入 EIGRP 的 1 号 AS 配置模式
R1>enable
R1#configure terminal
R1(config)#router eigrp 1
2. 公告直连网段
注:这里的子网掩码同样要写成反掩码的形式,也就是 255.255.255.255
减去子网掩码所得到的值。
R1(config-router)#network 10.0.0.0 0.0.0.255
R1(config-router)#network 10.0.1.0 0.0.0.255
R1(config-router)#network 192.168.1.0 0.0.0.255
R1(config-router)#exit
R1(config)#exit
设置完成。
其他三个路由器的设置方法完全相同,把直连网段换一下就可以了。
验证结果
检查配置文件
R1#show running-config
以下只截取 EIGRP 配置
!
router eigrp 1
network 192.168.1.0
network 10.0.0.0 0.0.0.255
network 10.0.1.0 0.0.0.255
auto-summary
!
检查 EIGRP 路由表
R1#show ip route eigrp
10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
D 10.0.0.0/8 is a summary, 01:16:22, Null0
D 10.0.2.0/24 [90/30720] via 10.0.1.2, 01:16:21, FastEthernet0/1
D 10.0.3.0/24 [90/286720] via 10.0.1.2, 01:16:21, FastEthernet0/1
D 192.168.2.0/24 [90/284160] via 10.0.0.2, 01:16:21, Ethernet0/0/0
D 192.168.3.0/24 [90/33280] via 10.0.1.2, 01:16:21, FastEthernet0/1
D 192.168.4.0/24 [90/284160] via 10.0.1.2, 01:16:21, FastEthernet0/1
可以看到,全网的路由表均已成功学习。
跟 OSPF 一样,EIGRP 同样会选择开销最小的链路。这里不再赘述。