路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号,路由器工作在网络层,用来跨网段通信,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备,因此路由器是互联网中必不可少的网络设备之一.

文字描述,摘抄自《网络设备配置与管理》精简内容,部分内容来自华为《HCIP 安全认证》课程笔记,适合学习面试,其中的架构图,与搭建流程为自己规划并实验的。

路由器,其最重要的功能就是路由,路由是指路由器接收到数据时选择最佳路径将数据穿过网络传输到目标地址的行为,每个路由器负责自己的本地数据的路由或转发,通过多个路由器依次接力将数据最终传递到目标主机,路由的工作流程包括路由选择路由转发两个方面.

1路由器基本配置

路由器与交换机不同,交换机不需要配置也可以正常工作,但是路由器必须经过配置后才可以正常使用,路由器的登陆方式基本和交换机保持一致,下面将用一个实例实现路由器的基本配置,包括配置路由器的主机名称,密码,控制台端口,WAN接口和LAN接口等,来实现一个基本的路由结构.

首先我们准备两台路由器(Router),需要注意的是设备之间的连接所选用的线路类型,一般情况下路由器和PC之间使用交叉线,两台路由器相连接使用串行线,配置成以下拓扑结构即可:

ospf配置三台路由两台PC 两台路由器配置ospf_ospf配置三台路由两台PC

配置WAN接口:

路由器通过WAN接口接入到互联网上,而常见的WAN接口都是串行接口用Serial表示,如下将按照上图接口进行配置.
#----在Router1上操作-------------------------
<R1> system-view
[R1] interface Serial 0/0/0                           // 选择外网接口
[R1-Serial0/0/0]
[R1-Serial0/0/0] ip address 10.10.10.10 255.255.255.0 // 配置外网地址#----在Router2上操作-------------------------
<R2> system-view
[R2] interface Serial 0/0/0
[R2-Serial0/0/0]
[R2-Serial0/0/0] ip address 10.10.10.20 255.255.255.0

配置LAN接口:

LAN接口用来指定内网通讯的地址,接下来分别对两台路由器做配置.
#----在Router1上操作-------------------------
<R1> system-view
[R1]interface Ethernet 0/0/0
[R1-Ethernet0/0/0]
[R1-Ethernet0/0/0] ip address 192.168.1.1 255.255.255.0#----在Router2上操作-------------------------
<R2> system-view
[R2]interface Ethernet 0/0/0
[R2-Ethernet0/0/0]
[R2-Ethernet0/0/0]ip address 192.168.1.1 255.255.255.0

查看路由表:

最后可以使用display ip routing-table命令,查看路由器的路由信息,确定网络是否正确连接.
[R1] display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

     10.10.10.0/24  Direct  0    0           D   10.10.10.10     Serial0/0/0
    10.10.10.10/32  Direct  0    0           D   127.0.0.1       Serial0/0/0
    10.10.10.20/32  Direct  0    0           D   10.10.10.20     Serial0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct  0    0           D   192.168.1.1     Ethernet0/0/0
    192.168.1.1/32  Direct  0    0           D   127.0.0.1       Ethernet0/0/0

查接口信息:

也可以使用display ip interface brief命令,查看路由器的接口信息.
[R1] display ip interface brief 

Interface                         IP Address/Mask      Physical   Protocol  
Ethernet0/0/0                     192.168.1.1/24       up         up        
Ethernet0/0/1                     unassigned           down       down      
GigabitEthernet0/0/0              unassigned           down       down
NULL0                             unassigned           up         up(s) 
Serial0/0/0                       10.10.10.10/24       up         up
Serial0/0/1                       unassigned           down       down

最后测试通信: 在路由器R1上可以ping通R2,每个主机也可以ping通自己网段的路由器.

[R1] ping 10.10.10.20
  PING 10.10.10.20: 56  data bytes, press CTRL_C to break
    Reply from 10.10.10.20: bytes=56 Sequence=1 ttl=255 time=30 ms
    Reply from 10.10.10.20: bytes=56 Sequence=2 ttl=255 time=40 ms
    Reply from 10.10.10.20: bytes=56 Sequence=3 ttl=255 time=70 ms
    Reply from 10.10.10.20: bytes=56 Sequence=4 ttl=255 time=30 ms
    Reply from 10.10.10.20: bytes=56 Sequence=5 ttl=255 time=30 ms

上述小实验到这里就算配置成功了,但是这里留下了一个疑问,那就是PC0PingPC1无法通信,这就涉及到路由器没有相应的路由条目的问题,这些问题将在后面小实验中做解释.

2配置静态路由

静态路由需要管理员根据实际需求一条条自己手动配置,路由器不会自动生成所需的静态路由,静态路由中包括目标节点或目标网络的IP地址,还可以包括下一跳IP地址,以及在本路由器上使用该静态路由时的数据包出接口等,但是手动配置静态路由需要管理员非常了解网络的拓扑结构才能够完成配置,在网络规模较大时还需要耗费大量的经历和时间去维护,所以并不是所有的网络都适合配置静态路由.

一般情况下以下几种情况可以考虑使用静态路由

  1. 网络的拓扑结构相对较简单,比如就一台路由器和交换机的情况,可使用静态路由.
  2. 网络保密性要求较高,网络管理员需要控制链路或者控制路由表,则可使用静态路由.
  3. 网络仅通过单个ISP接入Internet,则该ISP就是网络唯一的出口,所以不需要配置静态路由.
  4. 路由资源有限,无法运行路由选择协议,在这种情况下,需要手动配置路由条目来更新路由表数据.

接下来以一个实例具体介绍静态路由的配置流程,在思科模拟器中选择3台Router路由器,按照以下网络拓扑结构构建网路,然后为每台路由器配置静态路由,实现不同网络间的数据互通.

ospf配置三台路由两台PC 两台路由器配置ospf_网络_02

配置路由器: 根据以上拓扑图配置路由器,通过ip address给路由器的每个接口配置好IP地址.

#----在R1上操作-------------------------
<Huawei> system-view
[Huawei] interface Ethernet 0/0/0
[Huawei-Ethernet0/0/0] ip address 192.168.1.1 255.255.255.0
[Huawei-Ethernet0/0/0] quit
[Huawei] interface Ethernet 0/0/1
[Huawei-Ethernet0/0/1] ip address 10.10.10.1 255.255.255.0
[Huawei-Ethernet0/0/1] quit#----在R2上操作-------------------------
<Huawei> system-view
[Huawei] interface Ethernet 0/0/0
[Huawei-Ethernet0/0/0] ip address 10.10.10.2 255.255.255.0
[Huawei-Ethernet0/0/0] quit
[Huawei] interface Ethernet 0/0/1
[Huawei-Ethernet0/0/1] ip address 20.20.20.2 255.255.255.0
[Huawei-Ethernet0/0/1] quit#----在R3上操作-------------------------
<Huawei> system-view
[Huawei] interface Ethernet 0/0/0
[Huawei-Ethernet0/0/0] ip address 192.168.2.1 255.255.255.0
[Huawei-Ethernet0/0/0] quit
[Huawei] interface Ethernet 0/0/1
[Huawei-Ethernet0/0/1] ip address 20.20.20.3 255.255.255.0
[Huawei-Ethernet0/0/1] quit

检查配置结果: 配置完路由器的IP地址后,我们在每个路由器上测试相邻的接口是否可连通.

[R1] ping 10.10.10.2
  PING 10.10.10.2: 56  data bytes, press CTRL_C to break
    Reply from 10.10.10.2: bytes=56 Sequence=1 ttl=255 time=130 ms[R2] ping 20.20.20.3
  PING 20.20.20.3: 56  data bytes, press CTRL_C to break
    Reply from 20.20.20.3: bytes=56 Sequence=1 ttl=255 time=110 ms

配置静态路由: 接下来我们需要在两台路由器上分别配置路由条目,使用ip route-static命令配置,如果想要删除路由可使用undo ip route命令即可删除指定路由条目.

#----在R1上操作-------------------------
<Huawei> system-view
                            [目的网络]   [目的掩码]     [下一跳地址]
[Huawei] ip route-static   192.168.2.0  255.255.255.0   10.10.10.2
[Huawei] display ip routing-table#----在R2上操作-------------------------
<Huawei> system-view
[Huawei] ip route-static 192.168.2.0 255.255.255.0 20.20.20.3
[Huawei] ip route-static 192.168.1.0 255.255.255.0 10.10.10.1
[Huawei] display ip routing-table#----在R1上操作-------------------------
<Huawei> system-view
[Huawei] ip route-static 192.168.1.0 255.255.255.0 20.20.20.2
[Huawei] display ip routing-table

测试阶段: 最后在主机PC1上面Ping测试PC2发现数据包可以正常的传递.

PC1> ping 192.168.2.2 -t

Ping 192.168.2.2: 32 data bytes, Press Ctrl_C to break
From 192.168.2.2: bytes=32 seq=1 ttl=125 time=125 ms

--- 192.168.2.2 ping statistics ---
  1 packet(s) transmitted
  1 packet(s) received
  0.00% packet loss
  round-trip min/avg/max = 125/125/125 ms

以上的路由配置方法,适用于小型网络环境,在大型网络环境中这种静态路由的配置方式很不适合维护,一旦设备过多,则可能自己都搞不清头绪,所以在生产环境中,我们会使用动态路由的方式来实现路由器的配置,接下来继续学习动态路由的配置方式吧.

3RIP 动态路由

动态路由是基于某种协议实现的,常见的路由协议有内内部网关协议(IGP)和边界网关协议(BGP),其中内部网关协议又分为路由信息协议(RIP)和开放式最短路径优先协议(OSPF)协议.

其中RIP(路由信息协议)是最先被广泛应用的内部网关路由协议,RIP使用跳数来衡量到达目标地址的距离,跳数是指数据从源地址到达目标地址之间经过的路由器个数.从路由器到直接连接的网络的跳数定义为1,每经过一个路由器则数值会增加1,RIP允许的最大跳数是15跳,超过15跳的网络将无法到达,因此RIP适合用于小型的网络环境中.

RIP协议默认会每隔30秒就会与其他相连的网络广播自己的路由表,收到广播的路由器会将收到的信息与自己路由表进行比较,判断是否将其中的路由条目加入到自己的路由表中,目前RIP共有3中版本,RIPv1,RIPv2,RIPng,其中RIPng应用于IPv6网络环境中,RIPv1是有类路由协议,RIPv2则是无类路由协议.

ospf配置三台路由两台PC 两台路由器配置ospf_智能路由器_03

配置路由器: 首先根据上图将四台路由器的IP地址配置在相应的接口上.

#----在R1上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.10.1 255.255.255.0
[Huawei-Serial0/0/0] quit#----在R2上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.10.2 255.255.255.0
[Huawei-Serial0/0/0] quit
[Huawei] interface Serial 0/0/1
[Huawei-Serial0/0/1] ip address 192.168.20.1 255.255.255.0
[Huawei-Serial0/0/1] quit#----在R3上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.20.2 255.255.255.0
[Huawei-Serial0/0/0] quit
[Huawei] interface Serial 0/0/1
[Huawei-Serial0/0/1] ip address 192.168.30.1 255.255.255.0
[Huawei-Serial0/0/1] quit#----在R4上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.30.2 255.255.255.0
[Huawei-Serial0/0/0] quit

配置并启用RIP路由: 接着我们分别在每台路由器上启用并配置好RIP动态路由,并指定直连网络号.

#----在R1上启用RIP路由协议并配置-------------------
<Huawei> system-view
[Huawei] rip 1                         // 启动RIP进程1
[Huawei-rip-1] version 2              // 指定使用RIP版本为RIPv2
[Huawei-rip-1] network 192.168.10.0   // 声明与R1直连的网络号
[Huawei-rip-1] quit#----在R2上启用RIP路由协议并配置-------------------
<Huawei> system-view
[Huawei] rip 1                        // 启动RIP进程1
[Huawei-rip-1] version 2              // 指定使用RIP版本为RIPv2
[Huawei-rip-1] network 192.168.10.0   // 声明与R2直连的网络号
[Huawei-rip-1] network 192.168.20.0   // 声明与R3直连的网络号
[Huawei-rip-1] quit#----在R3上启用RIP路由协议并配置-------------------
<Huawei> system-view
[Huawei] rip 1                        // 启动RIP进程1
[Huawei-rip-1] version 2              // 指定使用RIP版本为RIPv2
[Huawei-rip-1] network 192.168.20.0   // 声明与R3直连的网络号
[Huawei-rip-1] network 192.168.30.0   // 声明与R4直连的网络号
[Huawei-rip-1] quit#----在R4上启用RIP路由协议并配置-------------------
<Huawei> system-view
[Huawei] rip 1                         // 启动RIP进程1
[Huawei-rip-1] version 2              // 指定使用RIP版本为RIPv2
[Huawei-rip-1] network 192.168.30.0   // 声明与R4直连的网络号
[Huawei-rip-1] quit

检查配置信息: 配置完成后RIP会自动生成路由条目,可执行display ip routing-table查询配置结果.

[Huawei] display ip routing-table

------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
   192.168.10.0/24  Direct  0    0           D   192.168.10.2    Serial0/0/0
   192.168.10.1/32  Direct  0    0           D   192.168.10.1    Serial0/0/0
   192.168.10.2/32  Direct  0    0           D   127.0.0.1       Serial0/0/0
   192.168.20.0/24  Direct  0    0           D   192.168.20.1    Serial0/0/1
   192.168.20.1/32  Direct  0    0           D   127.0.0.1       Serial0/0/1
   192.168.20.2/32  Direct  0    0           D   192.168.20.2    Serial0/0/1
   192.168.30.0/24  RIP     100  1           D   192.168.20.2    Serial0/0/1

测试连通性: 此时我们在R1路由器Ping路由器R4是可以通信的,说明配置成功了.

[R1] ping 192.168.30.2
  PING 192.168.30.2: 56  data bytes, press CTRL_C to break
    Reply from 192.168.30.2: bytes=56 Sequence=1 ttl=253 time=100 ms
    Reply from 192.168.30.2: bytes=56 Sequence=2 ttl=253 time=80 ms

4OSPF 动态路由

在上面的配置试验中我们通过使用RIP协议完成了一个路由器之间的数据通信,但是RIP协议最大仅仅支持15个路由节点,虽然在中小型网络中这些节点足够使用了,但是在一些大型企业中往往需更多的跳数,就是因为这种需求我们的OSPF协议就由此诞生啦.

OSPF(开放式最短路径优先),该协议是基于链路状态的协议规范,因此也可以称为链路状态协议,和RIP协议相同,OSPF协议同样使用跳数计量路径开销,但是与RIP不同的是,OSPF协议不受物理跳数的限制,其路径开销与网络中的链路开销等相关.

OSPF协议采用了FPS算法来计算最短路径数,SPF算法将每一个路由作为根(ROOT),来计算其数据包到达每一个目标路由器之间的距离,每个路由器根据一个统一的数据库LSDB计算出路由域的拓扑结构图,该结构很像是一颗树,所以就叫做最短路径树.

OSPF协议的优点
  1. OSPF采用了SPF算法,从而可以很好的避免路由器环路的产生.
  2. OSPF协议虽然也使用跳数作为计量单位,但不受物理跳数的限制.
  3. 当网络链路状态发生变化时,OSPF能够迅速捕捉并应用,收敛快,路由信息流量小.
  4. OSPF路由协议支持路由认证体系,且还可以定义不同的认证方式,提高了网络安全性.
  5. OSPF协议提供了较好的负载均衡性,其数据更新比较智能,相应的减小了网络流量的带宽.

在配置OSPF路由之前还有一个小知识点需要补充,在下面的配置试验中你会看到例如0.0.0.255这样的网络号,这种网络号被称作通配符掩码,通常情况下通配符掩码可由,255.255.255.255(广播地址)减去当前的255.255.255.0(子网掩码),来获得,此处小实验的通配符掩码为0.0.0.255 area 0.

接下来开始步入正题,我们还是使用RIP路由的拓扑结构以及IP地址的配置都相同,但是这里在配置动态路由的时候,我们使用OSPF的方式来配置,过程如下:

ospf配置三台路由两台PC 两台路由器配置ospf_智能路由器_03

配置路由器: 首先根据上图将四台路由器的IP地址配置在相应的接口上.

#----在R1上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.10.1 255.255.255.0
[Huawei-Serial0/0/0] quit#----在R2上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.10.2 255.255.255.0
[Huawei-Serial0/0/0] quit
[Huawei] interface Serial 0/0/1
[Huawei-Serial0/0/1] ip address 192.168.20.1 255.255.255.0
[Huawei-Serial0/0/1] quit#----在R3上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.20.2 255.255.255.0
[Huawei-Serial0/0/0] quit
[Huawei] interface Serial 0/0/1
[Huawei-Serial0/0/1] ip address 192.168.30.1 255.255.255.0
[Huawei-Serial0/0/1] quit#----在R4上操作-------------------------
<Huawei> system-view
[Huawei] interface Serial 0/0/0
[Huawei-Serial0/0/0] ip address 192.168.30.2 255.255.255.0
[Huawei-Serial0/0/0] quit

配置并启用OSPF路由: 在每台路由器上启用并配置好OSPF动态路由.

#----在R1上启用OSPF路由协议并配置-------------------
[Huawei] ospf 1                                              // 启用OSPF路由,并设置进程号为1
[Huawei-ospf-1] area 0.0.0.0                                 // 为R1配置RID编号
[Huawei-ospf-1-area-0.0.0.0]
[Huawei-ospf-1-area-0.0.0.0] network 192.168.10.0 0.0.0.255  // 声明与R1直连的网络号
[Huawei-ospf-1-area-0.0.0.0] quit#----在R2上启用OSPF路由协议并配置-------------------
[Huawei] ospf 1                                              // 启用OSPF路由,并设置进程号为1
[Huawei-ospf-1] area 0.0.0.0                                 // 为R2-R3配置RID编号
[Huawei-ospf-1-area-0.0.0.0]
[Huawei-ospf-1-area-0.0.0.0] network 192.168.10.0 0.0.0.255  // 声明与R2直连的网络号
[Huawei-ospf-1-area-0.0.0.0] network 192.168.20.0 0.0.0.255  // 声明与R3直连的网络号
[Huawei-ospf-1-area-0.0.0.0] quit#----在R3上启用OSPF路由协议并配置-------------------
[Huawei] ospf 1                                              // 启用OSPF路由,并设置进程号为1
[Huawei-ospf-1] area 0.0.0.0                                 // 为R3-R4配置RID编号
[Huawei-ospf-1-area-0.0.0.0]
[Huawei-ospf-1-area-0.0.0.0] network 192.168.20.0 0.0.0.255  // 声明与R3直连的网络号
[Huawei-ospf-1-area-0.0.0.0] network 192.168.30.0 0.0.0.255  // 声明与R4直连的网络号
[Huawei-ospf-1-area-0.0.0.0] quit#----在R4上启用OSPF路由协议并配置-------------------
[Huawei] ospf 1                                              // 启用OSPF路由,并设置进程号为1
[Huawei-ospf-1] area 0.0.0.0                                 // 为R1配置RID编号
[Huawei-ospf-1-area-0.0.0.0]
[Huawei-ospf-1-area-0.0.0.0] network 192.168.30.0 0.0.0.255  // 声明与R4直连的网络号
[Huawei-ospf-1-area-0.0.0.0] quit

检查配置信息: 配置完成后RIP会自动生成路由条目,可执行display ip routing-table查询配置结果.

[Huawei] display ip routing-table 

------------------------------------------------------------------------------
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
   192.168.10.0/24  Direct  0    0           D   192.168.10.2    Serial0/0/0
   192.168.10.1/32  Direct  0    0           D   192.168.10.1    Serial0/0/0
   192.168.10.2/32  Direct  0    0           D   127.0.0.1       Serial0/0/0
   192.168.20.0/24  Direct  0    0           D   192.168.20.1    Serial0/0/1
   192.168.20.1/32  Direct  0    0           D   127.0.0.1       Serial0/0/1
   192.168.20.2/32  Direct  0    0           D   192.168.20.2    Serial0/0/1
   192.168.30.0/24  OSPF    10   3124        D   192.168.20.2    Serial0/0/1

测试连通性: 此时我们在R1路由器Ping路由器R4是可以通信的,说明配置成功了.

[R1] ping 192.168.30.2
  PING 192.168.30.2: 56  data bytes, press CTRL_C to break
    Reply from 192.168.30.2: bytes=56 Sequence=1 ttl=253 time=100 ms
    Reply from 192.168.30.2: bytes=56 Sequence=2 ttl=253 time=80 ms