网络互联技术与实践教程(汪双硕、姚羽)——第四章 路由技术

第四章 路由技术

4.1 路由原理

路由是指通过相互连接的网络将数据从源地点转发到目标地点的过程。在路由过程中,数据通常会经过一个或多个中间节点,路由发生在网络层。路由包含两个主要的动作:确定最佳路径和通过网络传输信息,后者也称为数据转发。

在图4-4中,我们可以看到计算机A和计算机C通过路由器相连。当A向C发送数据时,数据需要通过路由器进行转发才能到达C。在A到C的路由过程中,我们需要首先解决以下几个问题:

在这里插入图片描述

  • A是如何将发送至C的数据转发至路由器R1的?

当A要将数据发送至C时,首先需要将数据包封装成IP数据报,其中包含目标IP地址为C的信息。然后A将数据包发送至它所连接的路由器R1。A将数据包发送至R1的方式可以是通过一个直接连接,也可以是通过其他中间节点进行转发。

  • R1如何决定将发往C的数据转发至R2?

当R1收到来自A的数据包时,它会检查数据包中的目标IP地址,并根据自己的路由表来确定下一跳。如果R1的路由表中已经包含了到达C的最佳路径,它会将数据包转发至该路径。否则,R1会将数据包转发至与C所在网络相连的其他路由器,例如R2。

  • R1如何决定将发往C的数据转发至R2?

当R2收到来自R1的数据包时,它会检查数据包中的目标IP地址,并根据自己的路由表来确定下一跳。如果R2的路由表中已经包含了到达C的最佳路径,它会将数据包转发至该路径,最终将数据包发送至C。如果R2的路由表中没有到达C的最佳路径,它会将数据包转发至与C所在网络相连的其他路由器,例如R3。这个过程会一直持续,直到数据包到达C所在的网络,然后被C接收处理。


IP协议是基于路由器的路由来实现数据转发的,而路由表中有两种路由:直连路由和非直连路由。

直连路由是指路由器各网络接口所直接连接的网络之间的通信,这些路由是根据路由器网络接口配置的IP地址自动生成的,因此这些网络之间可以直接通信。直连路由的配置比较简单,不需要特殊限制,但只适用于小规模网络和固定的网络拓扑结构。

非直连路由则是人工配置的静态路由或通过动态路由协议获得的动态路由。静态路由是通过在路由器中设置固定的路由表来实现的,一旦配置完成就不会再发生变化,因此适用于网络规模不大、拓扑结构固定的网络。静态路由的优点是简单高效、可靠性高,但不能适应网络结构的变化。

动态路由则是通过路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由表的过程来实现的。它可以实时适应网络结构的变化,当路由更新信息表明网络发生变化时,路由协议会重新计算路由,并发出新的路由更新信息。动态路由适用于网络规模大、网络拓扑复杂的情况,但会占用网络带宽和CPU资源。

在路由器中寻找最优路由时,首先会查找静态路由,如果找到则根据相应的静态路由转发数据包;否则再查找动态路由。在网络中,动态路由通常作为静态路由的补充,两者有各自的特点和适用范围。


4.2 路由表

路由器是互联网中转站。它通过内部的路由表来转发网络中的数据包到达目的网络。路由表中包含了该路由器所知道的目的网络地址以及通过此路由器到达这些网络的最佳路径,比如某个接口或下一跳的地址。

当路由器接收到一个数据包时,它会先查看数据包中的目的网络地址。如果发现目的地址不在接口所在的子网中,路由器就会查看自己的路由表,找到数据包的目的网络所对应的接口,并从相应的接口转发出去。

路由器的主要工作是判断到给定目的地的最佳路径,这些路径的学习可以通过管理员的配置或者通过路由协议实现。路由器在内存中保存着一张路由表,该表是关于路由器已知的最佳路由的列表。

为了进行路由,路由器必须确定它是否激活了对该协议组的支持,知道目的地网络,以及知道哪个外出接口是到达目的地的最佳路径


路由器的IOS系统中提供了 show ip route 命令,该命令用于观察TCP/IP路由表的内容细节。使用该命令可以查看路由器当前的路由表,包括目的网络、下一跳地址、出接口、路由类型等信息。这些信息有助于管理员了解路由器在转发数据包时的路由决策过程,也有助于排查网络故障。


以下是一个使用 show ip route 命令的例子:

Router# show ip route

Codes: C - connected, S - static, R - RIP, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2

Gateway of last resort is not set

     172.16.1.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet1/0
     172.16.21.0/24 is subnetted, 1 subnets
C       172.16.21.0 is directly connected, Serial1/2
S    172.16.2.0/24 [1/0] via 172.16.21.2
R    172.16.3.0/24 [120/2] via 172.16.21.2, 00:00:27, Serial1/2
R    172.16.4.0/24 [120/2] via 172.16.21.2, 00:00:27, Serial1/2

这个命令输出显示了路由表的详细信息,其中包括以下内容:

第一行是路由表条目的类型和来源的解释,其中

  • C 表示直接连接,
  • S 表示静态路由,
  • R 表示 RIP 动态路由,
  • O 表示 OSPF 动态路由,
  • IA 表示 OSPF inter area,
  • N1 表示 OSPF NSSA external type 1,
  • N2 表示 OSPF NSSA external type 2,
  • E1 表示 OSPF external type 1,
  • E2 表示 OSPF external type 2。

这些代码用于指示路由表条目的来源,便于管理员进行诊断和调试。


第二行显示当前没有设置默认路由的网关。

接下来是路由表中的具体路由信息,每个路由信息都包含了以下内容:

  • 子网掩码子网地址,用于指示该路由信息所描述的网络范围;
  • 路由类型administrative distance,用于指示该路由信息的来源和优先级;
  • 下一跳地址和出接口,用于指示该路由信息的下一跳地址和出接口;
  • 如果该路由信息是一个 RIP 动态路由,还会显示 aging timer,用于指示该路由信息的存活时间。

据此,我们可以得到以下具体的路由信息:

172.16.1.0/24 子网是通过 FastEthernet1/0 直接连接的,因此是一个直接连通的路由。
172.16.21.0/24 子网也是通过 Serial1/2 直接连接的,同样是一个直接连通的路由。
172.16.2.0/24 子网是通过静态路由连接的,该路由的 administrative distance 是 1,metric 是 0,下一跳地址是 172.16.21.2。
172.16.3.0/24 子网和 172.16.4.0/24 子网都是通过 RIP 动态路由连接的,该路由的 administrative distance 是 120,metric 是 2,下一跳地址是 172.16.21.2,且这两个路由的 aging timer 都是 00:00:27,下一跳出接口都是 Serial1/2。


在这里插入图片描述
在一台路由器中,可能同时配置了静态路由或多种动态路由。它们各自维护的路由表提供转发,但这些路由表的表项之间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决,管理距离提供了路由选择优先等级。


4.3 直连路由

路由技术可以分为直连路由和非直连路由两种类型。直连路由是指通过路由器接口直接连接的子网形成的路由,即路由器各网络接口所直连的网络之间使用直连路由进行通信。直连路由是在配置完路由器网络接口的IP地址后自动生成的。

直连路由由链路层协议自动学习发现,直接指向路由器的接口所连接的网段,完成直连网络间的通信。这些路由信息不需要网络管理员维护,也不需要路由器通过算法计算获得,只要该接口配置有有效接口IP地址,并保证该接口处于活动状态,路由器就会把通向该网段的路由信息直接填写到路由表中去生成直连路由。直连路由无法使路由器获取与其不直接相连的路由信息,因此也不能保证它们之间的通信。

为了实现直连路由,路由器的每个接口都必须单独占用一个网段,并且路由器能够自动产生激活端口IP所在网段的直连路由信息,从而实现这些网段之间的连接。


以下是一个简单的路由器配置示例,包括为三个接口配置 IP 地址和子网掩码,以及启用它们的命令行代码:

Router(config)# hostname MyRouter  // 设置路由器名称为 MyRouter

Router(config)# interface fastethernet 0/0  // 进入 FastEthernet 0/0 接口配置模式
MyRouter(config-if)# ip address 192.168.1.1 255.255.255.0  // 配置接口 IP 地址和子网掩码
MyRouter(config-if)# no shutdown  // 开启该接口

Router(config)# interface fastethernet 0/1  // 进入 FastEthernet 0/1 接口配置模式
MyRouter(config-if)# ip address 10.0.0.1 255.255.255.0  // 配置接口 IP 地址和子网掩码
MyRouter(config-if)# no shutdown  // 开启该接口

Router(config)# interface serial 0/0/0  // 进入 Serial 0/0/0 接口配置模式
MyRouter(config-if)# ip address 172.16.1.1 255.255.255.0  // 配置接口 IP 地址和子网掩码
MyRouter(config-if)# no shutdown  // 开启该接口

MyRouter(config-if)# end  // 退出接口配置模式,返回特权模式

MyRouter# write memory  // 保存配置

当路由器的接口激活后,路由器会自动产生相应的直连路由,这些路由将会被添加到路由表中。可以使用 “show ip route” 命令来查看路由表的内容,例如:

Router# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set  // 默认网关未设置

C    192.168.1.0/24 is directly connected, FastEthernet0/0  // 直连路由,192.168.1.0/24 网络通过 FastEthernet0/0 连接
C    10.0.0.0/24 is directly connected, FastEthernet0/1  // 直连路由,10.0.0.0/24 网络通过 FastEthernet0/1 连接
C    172.16.1.0/24 is directly connected, Serial0/0/0  // 直连路由,172.16.1.0/24 网络通过 Serial0/0/0 连接

在这里插入图片描述
直连路由的管理距离为0,这意味着它们在路由选择过程中具有最高的优先级。在路由器接口保持活动状态的情况下,直连路由可以保证路由器的直连网络的路由可达性。


4.4 静态路由

静态路由是由网络管理员手工配置的路由信息。与动态路由不同,静态路由不会自动学习和更新路由表,而是需要管理员手动添加和修改路由信息。当网络的拓扑结构或链路的状态发生变化时,管理员需要手动修改路由表中的相关静态路由信息。

1. 静态路由概述

静态路由一般适用于比较简单的网络环境,特别是那些网络管理员能够清楚地了解其拓扑结构并且需要对路由选择过程进行更精细的控制的情况下。

在这里插入图片描述

在图4-8所示的网络拓扑中,如果Network 1之外的其他网络需要访问Network 1时必须经过路由器A和路由器B,可以在路由器A中设置一条指向路由器B的静态路由信息,以确保数据包能够正确地转发到Network 1。

使用静态路由可以减少路由器A和路由器B之间WAN链路上的数据传输量,因为使用静态路由后,路由器A和B之间没有必要进行路由信息的交换。由于静态路由信息是由管理员手动配置的,因此管理员可以更精细地控制路由选择的过程,以满足特定的网络需求和安全策略。


静态路由除了具有简单、高效、可靠等优点之外,还具有一定的安全保密性。使用动态路由时,路由器需要交换路由信息,因此网络拓扑结构和网络地址等信息可能会被揭示出来。出于安全方面的考虑,有时候可以采用静态路由,以减少对网络拓扑结构和地址等信息的泄露风险。

然而,在大型和复杂的网络环境中,使用静态路由往往不太合适。一方面,网络管理员难以全面地了解整个网络的拓扑结构,这使得手动配置静态路由信息变得困难。另一方面,当网络的拓扑结构和链路状态发生变化时,需要大范围地调整路由器中的静态路由信息,这一工作的难度和复杂程度是可想而知的。

在这种情况下,通常会使用动态路由协议来自动学习和分发路由信息,以便更好地管理和扩展网络。动态路由协议可以自动适应网络拓扑结构和链路状态的变化,从而实现更高效、更灵活的路由选择过程。同时,动态路由协议也可以提供一定的安全保护机制,以确保路由信息的机密性和完整性。


2.静态路由的配置

静态路由是手动添加路由信息来指定数据包要去往某个目的网络的路径。常用的描述转发路径的方式是指向本地接口或者指向下一跳路由器直接连接口的IP地址。

在配置静态路由时,可以使用命令"ip route",其格式通常为:

ip route [目的网络地址] [子网掩码] [下一跳路由器的IP地址/本地接口]

其中,目的网络地址是指要到达的目的网络的网络地址,子网掩码是网络上使用的子网掩码,下一跳路由器的IP地址是指将数据包转发给下一个路由器的IP地址,本地接口是指数据包被转发出去的接口。

一般静态路由的配置步骤如下:

  1. 确定每个链路的地址,包括子网地址和网络地址;
  2. 标识每个路由器的非直连链路地址;
  3. 编写每个路由器的非直连链路地址的路由语句,不需要编写直连地址的语句。

图4-9给出了一个静态路由的配置案例,了解静态路由的配置过程和配置命令。

在这里插入图片描述

  1. 配置R1的FastEthernet 1/0接口的IP地址为172.16.1.1,子网掩码为255.255.255.0,并启用该接口。
R1# configure terminal
R1(config)# interface fastethernet 1/0  # 进入F1/0接口模式
R1(config-if)# ip address 172.16.1.1 255.255.255.0  # 配置接口地址
R1(config-if)# no shutdown  # 启用接口
  1. 配置R1的Serial 1/2接口的IP地址为172.16.21.1,子网掩码为255.255.255.0,并启用该接口。
255.255.255.0,并启用该接口。
R1(config)# interface serial 1/2  # 进入serial 1/2接口模式
R1(config-if)# ip address 172.16.21.1 255.255.255.0  # 配置接口地址
R1(config-if)# no shutdown  # 启用接口
  1. 为R1配置指向172.16.2.0/24网络的静态路由信息,并指定下一跳路由器的IP地址为172.16.21.2。
R1(config)# ip route 172.16.2.0 255.255.255.0 172.16.21.2  # 配置静态路由
  1. 配置R2的Serial 1/2接口的IP地址为172.16.21.2,子网掩码为255.255.255.0,并启用该接口。
R2> configure terminal
R2(config)# interface serial 1/2  # 进入serial 1/2接口模式
R2(config-if)# ip address 172.16.21.2 255.255.255.0  # 配置接口地址
R2(config-if)# no shutdown  # 启用接口
  1. 配置R2的FastEthernet 1/0接口的IP地址为172.16.2.1,子网掩码为255.255.255.0,并启用该接口。
R2(config)# interface fastethernet 1/0  # 进入F1/0接口模式
R2(config-if)# ip address 172.16.2.1 255.255.255.0  # 配置接口地址
R2(config-if)# no shutdown  # 启用接口
  1. 为R2配置指向172.16.1.0/24网络的静态路由信息,并指定下一跳路由器的IP地址为172.16.21.1。
R2(config)# ip route 172.16.1.0 255.255.255.0 172.16.21.1  # 配置静态路由
  1. 使用"show ip route"命令来验证路由器的路由表信息是否正确。
R1# show ip route  # 查看路由表信息
Codes: C - connected, S - static, R - RIP, P - OSPF, IA - OSPF inter area
     N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
     E1 - OSPF external type 1, E2 - OSPF external type 2
     i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
     ia - IS-IS inter area, * - candidate default

Gateway of last resort is not set  # 默认路由未设置

C 172.16.1.0/24 is directly connected, FastEthernet1/0  # 直接连接到172.16.1.0/24网络
C 172.16.21.0/24 is directly connected, Serial1/2  # 直接连接到172.16.21.0/24网络
S 172.16.2.0/24 [1/0] via 172.16.21.2  # 静态路由,下一跳为172.16.21.2

注意:静态路由两端都要配置。


3.默认路由

默认路由是一种特殊的静态路由,它用于当路由器无法确定目标网络的路由信息时,将数据包发送到一个指定的出口接口或下一跳。默认路由的目的是在网络中提供一个备用的转发路径,以确保网络的连通性和稳定性。

默认路由的目标网络为0.0.0.0/0,这意味着它匹配所有的IP地址。当路由器无法匹配到其他路由表项时,它将使用默认路由来转发数据包。默认路由通常用于连接到互联网或其他外部网络的边界路由器上,以便在无法确定目标网络的路由信息时将数据包发送到外部网络。

需要注意的是,虽然默认路由可以帮助路由器在网络中找到备用的转发路径,但它也可能成为网络安全的漏洞。攻击者可以通过伪造数据包并将其发送到默认路由,从而将数据包重定向到他们想要的目的地。因此,在配置默认路由时,需要谨慎考虑网络安全问题。


在Cisco IOS路由器上,配置默认路由的命令如下:

ip route 0.0.0.0 0.0.0.0 <next-hop-ip-address>

其中,0.0.0.0 0.0.0.0表示目标网络为所有IP地址,next-hop-ip-address表示下一跳的IP地址。默认路由可以通过一个接口作为下一跳,也可以通过下一跳路由器的IP地址作为下一跳。

例如,如果要将所有未知目标网络的数据包转发到172.16.1.1这个下一跳路由器上,可以执行以下命令:

ip route 0.0.0.0 0.0.0.0 172.16.1.1

这将在路由器上添加一个默认路由,用于将所有未知目标网络的数据包转发到172.16.1.1这个下一跳路由器上。


在互联网中,大约99.99%的路由器都会配置一条默认路由,用于在路由表中找不到目标网络的情况下将数据包转发到下一跳。

在图4-10中,路由器R连接了一个存根网络(Stub Network),该网络只有一条路径连接到外部网络。

在这里插入图片描述

为了让存根网络中的主机可以访问外部网络,最好的方法是在路由器R上配置一条默认路由,指向连接到外部网络的路由器A。这样,当存根网络中的主机发送数据包到外部网络时,路由器R将使用默认路由将数据包转发到路由器A,然后路由器A将根据自己的路由表将数据包转发到外部网络。

路由器R配置的一条默认路由如下:

router# configure terminal
router(config)# ip route 0.0.0.0 0.0.0.0 172.16.2.2  # 配置一条默认路由,将所有目标网络都匹配到这条路由,下一跳地址为172.16.2.2,用于将数据包转发到外部网络

需要注意的是,在配置默认路由时,需要考虑网络安全问题,并采取必要的安全措施,以确保网络的安全性和稳定性。


4.5 动态路由协议

静态路由和动态路由是网络中常见的两种路由选择方式。静态路由是管理员手动添加和配置的路由,不会自动更新,因此需要管理员手动维护。动态路由是通过网络中的路由协议自动交换路由信息来决定最佳路径的路由方式,能够自动适应网络拓扑变化。

静态路由的优点是没有额外的CPU负担、节省带宽和增加安全性。由于静态路由不需要路由协议交换路由信息,因此可以减少网络流量,从而节省带宽。此外,静态路由不会自动更新,因此攻击者无法利用路由协议中的漏洞来篡改路由信息,从而增加了网络的安全性。

然而,静态路由的缺点也很明显。管理员必须了解整个网络拓扑结构,并手动配置所有的路由信息。如果网络拓扑发生变化,管理员就必须在所有的路由器上手动修改路由表,这样的操作非常繁琐和容易出错。因此,在大型网络中使用静态路由并不是一个好的选择。相比之下,动态路由可以自动适应网络拓扑变化,减轻了管理员的工作负担,因此更适合在大型网络中使用。


1. 动态路由协议

动态路由协议是一种路由选择协议,用于路由器之间自动交换路由信息,以决定最佳路径来转发数据包。动态路由协议的实现可以基于不同的算法,例如OSPF、RIP和BGP等,每种算法都有自己的优缺点和适用范围。

动态路由的优点是能够自动建立和维护路由表,根据网络拓扑和链路状况自动调整路由选择,因此具有更好的网络适应性和可靠性。此外,动态路由协议不需要管理员手动配置路由信息,可以减轻管理员的工作负担。

不同的动态路由协议可以使用不同的参数来衡量路径的优劣,例如路径所包含的路由器结点数、网络传输费用、带宽、延迟、负载、可靠性和最大传输单元等。这些参数可以通过路由算法的计算来得出最佳路径。管理员可以根据网络的特点和需求选择合适的动态路由协议和路由算法。


2. 可被路由的协议和路由协议

可被路由的协议(也称为网络协议)是指执行在源与目的设备之间的用户应用间通信所需的各种功能,例如IP、DECnet、AppleTalk、Novell Netware和OSI等。这些协议通过路由协议进行传输,以便在网络中找到最佳路径来转发数据包

与可被路由的协议不同,路由协议是实现路由算法的协议,用于决定数据包在网络中的传输路径。常见的路由协议包括RIP、IGRP、EIGRP、OSPF、IS-IS、EGP和BGP等。这些协议通过在路由器之间交换路由信息来构建路由表,并根据路由算法计算出最佳路径。

因此,可被路由的协议和路由协议是两个不同的概念。可被路由的协议是网络中实现用户应用间通信所需的协议,而路由协议是决定数据包传输路径的协议。两者共同作用,保证网络的正常运行。

“可被路由”这个术语指的是一种网络协议,它路由器用来传输数据包


3.路由过程

路由器的主要任务是将数据包从一个网络传输到另一个网络。为了实现这个任务,路由器必须执行两个基本的动作:寻址转发

路由选择算法是一种用于确定最佳传输路径的技术。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,该表中的路由信息取决于所使用的路由选择算法。不同的路由选择算法使用不同的信息来填充路由表,例如邻居路由器、到达远端网络的所有路径和最佳路径等。路由选择算法可以根据路由表将目的网络与下一跳路由器的地址相对应,以便路由器可以正确地将数据包转发到下一站。通过这种方式,路由器可以选择最佳路径,确保数据包能够在网络中快速、安全地传输。


Router(路由器)可以路由数据包,必须至少知道以下状况。

  1. 目标地址:路由器必须知道数据包的目标地址,才能将其转发到正确的地方。

  2. 邻居路由器:路由器可以通过邻居路由器了解远端网络的状态。例如,邻居路由器可以告诉路由器哪些网络是可达的,哪些网络是不可达的,以及如何到达这些网络。

  3. 所有路径:路由器需要知道到达远端网络的所有可能路径,以便选择最佳路径来转发数据包。这些路径可能会随着网络拓扑的变化而发生变化,因此路由器需要不断地更新这些信息。

  4. 最佳路径:路由器需要确定到达远端网络的最佳路径,以确保数据包能够在网络中快速、安全地传输。路由选择算法可以帮助路由器确定最佳路径。

  5. 路由信息的保持和验证:路由器需要不断地保持和验证路由信息的准确性。如果路由信息不准确,可能会导致数据包丢失、延迟或者被传输到错误的地方。路由器可以使用路由协议和路由表来维护和验证路由信息的准确性。

由以上内容可知,动态路由协议由于需要更多的运算,它需要占用额外的带宽,CPU负荷高,但路由器能够自动地建立起自己的路由表,并且能够根据情况的变化适时地进行调整。方便灵活的优点,使得动态路由技术可以适应更大范围的网络环境。

运行动态路由协议的每台路由器,将自己已知的路由相关信息发送给相邻的路由器,由于大家都这样做,最终每台路由器都会收到网络中所有的路由信息,然后通过运行某种算法计算出最终的路由表。

路由器动态路由机制的运作依赖路由器的两个基本功能:对路由表的维护路由器之间适时的路由信息交换


4.动态路由分类

根据网络的范围和自治性质,路由协议分为内部网关协议(IGP)外部网关协议(EGP)

内部网关协议是自治系统内部交换路由选择信息的路由协议,常用的有距离矢量算法和链路状态算法。

  • 距离矢量算法是一种基于向量的路由选择方法,路由器将路由信息作为一个包括方向和距离的向量进行交换,并通过它来建立路由表。常用的距离矢量路由选择协议是开放的RIP
  • 相比之下,链路状态算法需要每一个路由器都保存一份最新的整个网络拓扑结构数据库,路由器可以选择出最短的路径以及使用该路径经过哪些路由器。相对于距离矢量路由协议,链路状态路由协议对路由选择过程提供更多的控制和对网络变化的响应更快。常用的链路状态路由选择协议是OSPF

内部网关协议的动态路由机制依赖于路由器的两个基本功能:对路由表的维护和路由器之间适时的路由信息交换。路由器会将自己已知的路由相关信息发送给相邻的路由器,最终每台路由器都会收到网络中所有的路由信息,然后通过运行某种算法计算出最终的路由表,以便找到一条数据交换的“最佳”路径。


距离矢量和链路状态算法的比较
在这里插入图片描述


4.5.1 路由信息协议

路由信息协议(RIP)是一种基于距离矢量算法的路由协议,通过广播的方式将路由信息公告出去,然后各自计算经过路由器的跳数来生成自己的路由表。路由表信息包括目标网络地址、转发路由器地址和经过的路由器数量,用来表示目标、方向和距离。RIP的最大跳数为15,超过15个跳数的路径会被认为是不可达的,并从路由表中删除。

RIP的基本思路是相邻路由器之间定时广播信息,互相交换路由表,并且只和相邻路由器交换。通过这种方式,路由器可以了解到网络的拓扑结构和路由信息,从而构建自己的路由表。RIP选择最佳路径的标准是计算抵达目的地的最少跳数。当一个路径达到16跳时,将被认为是达不到的,继而从路由表中删除。

在这里插入图片描述


当一台路由器从相邻路由器处学习到新的路由信息时,它将其追加到自己的路由表中,并将该路由表传递给所有的相邻路由器,按照最新的时间进行刷新,以保证所有路由器都能获得完整的、最新的网络路由信息。但是,RIP支持的最大跳数是15,超过15个跳数的路径会被认为是不可达的。

RIP通过定期广播通知本机中的路由信息,路由的更新周期是30s。当接收到该消息的路由器时,它会进行以下判断过程:首先查看路由表中是否已有到该目的的路由,如果没有,则添加该路由;如果有,则查看下一跳地址(或本地接口)是否相同。如果不相同,只有在更新后度量小于原有路由条目的度量值时才更新路由条目。如果相同,则不论更新后的度量值增大还是减小都更新路由条目。

如果经过路由表的老化时间180s都没有得到刷新,路由器就认为它已失效了。经过240s路由表项仍没有得到刷新,它就被从路由表中删除。这样可以避免无效的路由信息对网络的影响。
在这里插入图片描述


配置RIP首先需要创建RIP路由进程,并定义与RIP路由进程关联的网络。执行以下命令。
在这里插入图片描述

其中,Network命令定义的关联网络有两层意思。

  1. RIP只对外通告关联网络的路由信息,即公布属于该主类的子网。

     而不是所有子网的路由信息,不属于该关联网络的子网信息不会被通告
    
  2. RIP只向关联网络所属接口通告路由信息,即包含在该主类网络内的接口将发送和接收路由信息。

    路由器只会将路由信息发送到与该路由器所连接的网络中
    

RIP是一个早期的路由协议,它对网络划分的支持不完整,在安全性方面也存在问题。它的原始版本(RIPv1)发送的路由更新消息中缺乏子网掩码和无类域间路由的支持,只能在严格的网络段中使用A、B、C类地址。随着IP地址危机日益严重,RIPv1逐渐被支持子网掩码更新的RIPv2所取代。

RIPv2弥补了RIPv1的一些缺点,支持变长子网掩码和无类域间路由,因此可以在更广泛的网络环境中使用。RIPv2的更新信息可以被封装在单播或组播报文中,这样不仅节省了网络资源,而且也可以在限制广播报文的网络中使用。

另外,RIPv2不再像RIPv1那样无条件地接受来自任何邻居的路由更新,而是可以通过认证字段来限制只接受来自特定邻居的路由更新,提高了安全性。

与RIPv1相比,RIPv2有如下三个优点:

  • 支持认证功能:为了防止未经授权的路由器发布路由信息,RIPv2引入了认证功能,可以使用明文认证或MD5密文认证来提高系统的安全性。

  • 支持组播功能:RIPv2使用组播地址224.0.0.9来发送路由更新信息,这样可以减少网络开销,同时也提高了安全性,因为只有加入组播组的路由器才能接收到更新信息。

  • 支持VLSM:RIPv2在路由更新信息的路由信息字段中增加了子网掩码字段,从而支持可变长子网掩码(VLSM),可以更灵活地配置不连续的子网。与RIPv1相比,RIPv2消除了这种限制,提高了网络的可扩展性和灵活性。


要启动RIPv2动态路由协议,可以在路由器进程配置模式中执行以下命令:

Router(config)#router rip
Router(config-router)#version 2
!定义RIP版本为2
Router(config-router)#network network-number
!配置网络地址

当出现不连续子网或者需要学习具体的子网路由时,需要关闭路由自动汇总功能。RIPv2支持关闭边界自动汇总功能,而RIPv1则不支持该功能。要配置路由自动汇总,可以在RIP路由进程模式中执行以下命令:

路由自动汇总(Auto-Summary)是一种路由协议的特性,用于在路由聚合(Route Aggregation)时自动汇总路由信息。具体来说,在路由聚合时,路由器会将具有相同网络地址前缀的路由汇总成一个较长的前缀,以减少路由表的规模和路由信息的传输量。

在RIP协议中,路由自动汇总是默认开启的,即当一个网络被RIP协议识别到时,RIP会自动汇总相邻网络的路由信息,形成一个大的网络路由。这种汇总的方式可能导致网络的子网掩码失真,即某些子网掩码会被错误地汇总成一个错误的掩码,这可能会影响到路由的转发和网络的可达性。

因此,在某些情况下,需要关闭路由自动汇总功能,以便更好地控制路由汇总的过程,并确保路由表中的路由信息是准确的和正确的。

Router(config-router)#no auto-summary
!关闭路由自动汇总
Router(config-router)#auto-summary
!打开路由自动汇总

配置RIP之后,可以检查数据是否可以被正确路由。除了使用连通性测试工具之外,还可以使用以下命令:

show ip route
!用于检查路由表
debug ip rip
!用于调试RIP协议信息
clear ip route
!用于清除路由表的信息

4.5.2 RIP路由更新

早期的RIP协议使用定时广播的方式来实现路由信息的更新和传播。每个路由器都会周期性地向与它相连的网络广播自己的路由表信息,其他路由器接收到这些广播后,就可以更新自己的路由表。

默认情况下,RIP协议的更新计时器为30秒,即每隔30秒路由器会向相邻的路由器发送路由表更新信息。如果某个路由信息在6个更新周期(即180秒)内没有收到更新信息的确认,那么该路由器就会认为该路由信息已经失效。如果在8个更新周期(即240秒)内,该路由信息仍然没有收到更新信息的确认,那么该路由信息就会被从路由表中删除。

这些计时器包括更新计时器(Update Timer)、无效计时器(Invalid Timer)和刷新计时器(Flush Timer),它们用于控制RIP协议的路由信息更新、失效和删除的时机。


4.5.3 RIP路由环

距离向量算法如RIP容易产生路由循环,导致信息无法到达目的地。为了解决这个问题,RIP实现了四个机制:

  • 水平分割
    水平分割是RIP协议中最基本的机制之一,其主要作用是避免路由循环。在RIP中,每个路由器都会将自己所知道的所有路由信息广播到相邻的路由器中,以便于建立一张全局的路由表。但是,如果一个路由器在收到某个信息后又将这个信息发送到了信息来源的端口上,那么就有可能形成一个路由循环,导致信息无法到达目的地。为了避免这种情况的发生,RIP规定,当一个路由器收到一个信息后,如果这个信息的下一跳是信息来源,那么这个路由器就不会再将这个信息发送到信息来源的端口上。

  • 毒性逆转
    毒性逆转是RIP协议中防止路由循环的另一种机制。当一个路由器发现某个路径不可达时,它会将这个路径的度量值设置为16,并将这个信息广播到相邻的路由器中。这个度量值16是RIP协议中特有的,表示一条路径不可达。当一个路由器收到一个度量值为16的信息时,它会将这个信息从自己的路由表中删除,并将这个信息广播给相邻的路由器。这样一来,相邻的路由器就不会再将这个信息转发回原来的路由器,从而避免了路由循环的发生。

  • 触发更新
    触发更新是RIP协议中加快网络拓扑更新的机制。在RIP协议中,每个路由器都会维护一张路由表,这张路由表记录了到达各个目的地的最短路径以及相应的度量值。当网络拓扑发生变化时,路由表也需要相应地更新。在RIP协议中,当一个路由器发现自己的路由表发生了变化时,它会立即广播一个更新报文,将新的路由信息告诉相邻的路由器。这样一来,网络中的路由表可以更快地更新,减少了路由循环的可能性。

  • 抑制计时
    抑制计时是RIP协议中减少路由浮动的机制。在RIP协议中,路由信息是通过广播的方式传递的。当一个路由器收到一个新的路由信息时,它会将这个信息加入自己的路由表中,并将这个信息广播给相邻的路由器。但是,如果网络中存在故障或者拓扑变化,那么路由信息可能会频繁地更新,导致路由表的浮动。为了减少路由浮动,RIP协议规定,当一个路由器收到一个新的路由信息时,如果这个信息的度量值比路由表中原有的度量值大,那么这个路由器就会将这个信息抑制一段时间。这个时间通常是180秒,也就是3分钟。在这个时间内,这个路由器不会将这个信息广播给相邻的路由器,从而避免了路由表的浮动。


4.5.4 OSPF路由协议

距离矢量算法(如RIP协议)在80年代中期已经无法满足大规模异构互联网络的需求,尤其是对于由几百个路由器组成的大型网络或经常更新的网络环境,路由表的更新速度很慢,远程设备的路由表很难与本地设备的路由表同步更新。

链路状态路由算法是一种基于链路状态的路由协议,每个路由器都会维护一个拓扑图,其中包含了整个网络的拓扑结构以及每条链路的状态信息,如带宽、延迟、可靠性等。路由器之间会交换拓扑信息,以建立网络的全局拓扑图。

  • 链路状态路由算法比距离矢量算法需要更强的处理能力,但对路由选择过程提供更多的控制和对网络的变化提供更快的响应。链路状态路由算法可以根据链路的带宽、延迟、可靠性和负载等信息选择最优路径,从而提高网络的性能和质量。

  • 链路状态路由算法具有更快的收敛速度,可以更快地适应网络拓扑的变化,并且可以动态地调整网络的拓扑结构,具有更好的可扩展性。

  • 链路状态路由算法可以提供更多的路由控制和管理功能,如路由策略、负载均衡、优先级控制等,从而更好地满足网络应用的需求。

常见的链路状态路由协议包括OSPF(开放最短路径优先)和IS-IS(中间系统到中间系统)。


1.OSPF路由协议概述

RIP协议适用于相对较小的网络系统,其跳数限制为15跳,网络拓扑的直径最大为15跳。如果要搭建具有许多特性的网络,而且网络规模较大,RIP可能不是正确的选择。

RIP路由的网络范围不能扩展到超过15跳路由器的范围,并且只能通过邻居之间互相传递消息才能学习到全网路由信息。网络的收敛速度也很慢,无法满足大型网络环境的需求。

在图4-15所示的大型网络环境中,RIP路由协议管理网络有点力不从心。因此,需要一种更先进的动态路由协议来解决这些问题。
在这里插入图片描述


OSPF路由协议是一种广泛应用于网络中的动态路由协议之一,能够适应各种规模的网络环境。它可以处理大规模网络中的路由表,支持更复杂的网络拓扑结构,并且具有更快的收敛速度。

OSPF路由协议的特点包括:支持多种链路类型,包括点对点、广播和多点广播链路;支持IP多播,可以在一个链路上同时传输多个IP数据报;支持VLSM(可变长度子网掩码),可以更有效地利用IP地址空间。

OSPF路由协议还具有更好的可扩展性和可管理性,可以根据网络需求灵活地配置路由策略和优先级,从而更好地满足网络应用的需求。


OSPF是一种适用于各种规模的网络的路由协议,包括大型和小型网络。

在大型网络中,为了提高路由计算效率,OSPF技术采用了区域划分的策略,即将整个网络划分为多个小的区域网络进行路由计算。每个区域内部使用OSPF协议进行路由计算,而区域之间的路由信息则由特殊的区域边界路由器(ABR)进行传递和汇总,如图4-16所示。这样可以减少整个网络中路由表的规模,并提高路由计算的效率。

而对于小型网络,OSPF技术则可以直接将其视为单个区域去应用,无需进行区域划分,如图4-17所示。这样可以简化网络的配置和管理,同时也提供更好的灵活性和可扩展性。

无论是在大型还是小型网络中,OSPF协议都支持多种链路类型和IP多播,可以适应复杂的网络拓扑结构和各种网络需求。此外,OSPF还提供灵活的路由策略和优先级配置,可以根据不同的应用需求进行灵活调整和优化,提高网络的性能和可靠性。
在这里插入图片描述


在这里插入图片描述


OSPF是一种动态路由协议,通过向全网扩散本设备链路状态信息,在每台设备上同步一个具有全网链路状态数据库,从而提高网络可信度和收敛速度。OSPF路由协议利用链路状态算法,建立和计算到每个目标网络的最短路径,但该算法本身较为复杂。

链路状态算法的工作过程如下:

  1. 初始化阶段,路由器产生链路状态通告,包含了该路由器全部链路状态。

  2. 所有路由器通过组播方式交换链路状态信息,每台路由器接收到链路状态更新报文时,将复制一份到本地数据库,并传播给其他路由器。

  3. 当每台路由器都有一份完整的链路状态数据库时,路由器应用Dijkstra算法,针对所有目标网络计算最短路径树,结果包括目标网络、下一跳地址和开销,从而产生IP路由表。

  4. 如果没有链路开销或网络增删变化,OSPF会保持安静。如果网络发生变化,OSPF通过链路状态通告,但只通告变化的链路状态,涉及到变化的路由器将重新运行Dijkstra算法,生成新的最短路径树。


2. OSPF路由协议分层结构
1. OSPF 区域划分原理:
  • OSPF路由域规模较大时采用分层结构,将路由域分割成几个区域(Area)。
  • 区域之间通过骨干区域互联,骨干区域为区域0,主要传递路由信息。
  • 所有区域的网络结构对外部是互不可见的,路由信息先传递至骨干区域,再由骨干区域向其余区域广播。
  • 划分区域的目的是为了控制开销和便于管理,标准划分为骨干域和边缘域,每个边缘域要和骨干域直接相连。
  • 通过划分区域,每个区域路由器保持一个相同的链路连接状态库,不同区域内的路由器的链路连接状态库互不相同。
  • 这使得网络更易于管理,计算和维护的开销也更小,而且局部的路由变化影响的范围被限制在区域的内部,不影响其他区域设备。

在这里插入图片描述

2. OSPF协议中的Router ID:
  • OSPF使用路由器的ID号来唯一标识网络中的每一台路由器,路由器的ID是一个32位无符号整数,和IP地址的长度相同。
  • 路由器的ID可以手动配置,如果没有手动配置,路由器就在所配置的IP地址中选出一个地址作为Router-ID
  • 选择顺序是:首先在当前路由器的Loopback端口的IP地址中选一个最大的,如果没有Loopback端口,就从其他端口的IP地址中选最大的。
  • 如果路由器没有配置任何IP地址,因而选不出Router-ID,路由器会拒绝继续进行OSPF的配置。
  • Loopback端口是路由器的虚拟端口,它不像物理端口一样可以DOWN,一旦开启就永远UP。如果路由器有Loopback端口,在OSPF中该路由器的ID为Loopback地址。

3.OSPF 路由协议的工作原理

在一个OSPF网络中,每个路由器通过生成自己的链路状态通告信息(LSA)来描述自己周围的网络结构,并将LSA发送给网络中的主OSPF路由器,而不是直接向邻居发送自己的路由表。每个路由器都会收集其他路由器发来的LSA,将它们组合成整个网络的链路状态数据库(LSDB),并基于此生成整个网络的连接拓扑图。所有路由器得到的拓扑图都是相同的,每个路由器根据此拓扑图计算以自己为根的最短路径树,并使用它来确定到自治系统中各个节点的路由。

在同一个OSPF路由区域中,只有一个相同的网络路由信息数据库,OSPF路由主要关注链路的状态,即哪条链路最好用?通过哪条链路转发报文代价最小,而且不会有环路。因此,OSPF协议生成的路由表比RIP协议生成的路由表更可靠。


4. OSPF路由协议工作过程

OSPF路由协议是一种链路状态路由协议,它通过在一个区域内的所有路由器之间交换链路状态广播数据包LSA来维护路由信息。在OSPF路由区域内,每台路由器都需要经历以下几个步骤来建立邻接关系、选举DR/BDR、发现路由器、选择适当的路由器以及维护路由信息。

  1. 建立邻接关系:路由器通过发送包含自身ID信息的Hello报文来建立邻接关系。如果一个路由器的某个端口收到来自其他路由器的Hello报文,它会根据该端口所在的网络类型来决定是否可以建立邻接关系。在点对点网络中,路由器会直接和对端路由器建立邻接关系;而在多接入网络中,需要进入第二步操作。

  2. 选举DR/BDR:在一个广播性的、多接入的网络中,需要选举一个指定路由器(Designated Router,DR)和一个备份指定路由器(Backup Designated Router,BDR)。DR负责在该网络中产生用于描述该网段的链路数据包,同时与该网段上的所有OSPF路由器建立相邻关系。BDR则是DR的备份路由器,只有在DR失效时才会履行DR的功能。不同类型的网络,选举DR/BDR的方式也不同。

  3. 发现路由器
    在这个步骤中,路由器之间利用Hello报文确认主从关系,并交换部分链路状态信息。每个路由器对信息进行分析,如果收到信息有新的内容,路由器将要求对方发送完整链路状态信息。这个状态完成后,路由器之间建立完全相邻(Full Adjacency)关系,同时邻接路由器拥有自己独立、完整的链路状态数据库。

  4. 选择适当的路由器
    当一个路由器拥有完整独立的链路状态数据库后,它将采用SPF算法计算并创建路由表。OSPF路由器依据链路状态数据库的内容,用SPF算法计算出到每一个目的网络的最短路径,并将路径存入路由表中。在配置OSPF路由器时,可根据实际情况设置链路Cost大小。Cost越小,则该链路被选为路由的可能性越大。

  5. 维护路由信息
    当链路状态发生变化时,OSPF通过Flooding过程通告网络上的其他路由器。OSPF路由器接收到包含有新信息的链路状态更新报文,将更新自己的链路状态数据库,然后用SPF算法重新计算路由表。在重新计算过程中,路由器继续使用旧路由表,直到SPF完成新的路由表计算。新的链路状态信息将发送给其他路由器。即使链路状态没有发生改变,OSPF路由信息也会自动更新,默认时间为30分钟。


5.OSPF单区域的配置

当一组运行OSPF路由协议的路由器组成一个自治系统的OSPF路由域规模较大时,通常采用分层结构来将OSPF路由域分割成多个区域。这些区域通过一个骨干区域互联,每个非骨干区域都需要直接连接到骨干区域。骨干区域的区域ID为0.0.0.0,它的主要工作是在其余区域间传递路由信息。在OSPF分层结构中,每个区域都有一个唯一的标识符,称为区域ID。通过采用分层结构,可以提高路由计算的效率和减少网络拓扑的复杂性。

在配置OSPF协议时,需要在路由器上启动OSPF进程并配置路由器的网络地址和区域信息。下面是配置步骤的详细说明:

1. 配置回环地址

为了设置路由器标识符,必须配置回环地址。如果没有配置回环地址,OSPF路由进程会选择最大的接口IP地址作为路由器标识符。但如果该接口关闭或者该IP地址不存在了,OSPF路由进程必须重新计算路由标识符并发送所有的路由信息给邻居。为了增强路由表的稳定性,可以使用Loopback接口配置回环地址。在配置回环地址时,需要使用32位掩码的主机路由来防止伪路由的传播。例如,可以执行以下命令:

Router#configure terminal
Router(config)#interface loopback 0
Router(config-if)#ip address 192.168.1.1 255.255.255.255

Loopback是一种基于软件的技术,用于将网络流量从一个网络接口发送到同一台计算机上的另一个网络接口。这种技术通常被称为“环回”或“回环”,因为它允许网络流量在同一台计算机上进行循环传输,而不需要离开计算机并通过物理网络进行传输。

Loopback技术通常用于本地计算机进行自我测试和自我诊断,以确保网络接口和协议的正确性。例如,可以使用Loopback技术测试网络接口是否能够正确地发送和接收数据包,以及网络协议是否正确配置。

在计算机网络中,Loopback通常指的是回环地址,这是一种特殊的IP地址,用于将网络流量路由到同一台计算机上的网络接口。回环地址是一种标准化的技术,在IPv4中通常是127.0.0.1,在IPv6中通常是::1。

总之,Loopback是一种用于在同一台计算机上进行自我测试和自我诊断的技术,通常使用回环地址实现。


2. 创建OSPF路由进程

可以使用以下命令创建OSPF路由进程:

Router# configure terminal
Router(config)#router ospf

在一些路由器中,可以支持多个OSPF进程,并使用进程号(1~65535)来区分。但是,一台路由器上运行多个OSPF进程会产生多个拓扑数据库,增加路由器的开销,因此不推荐使用这种做法。

3. 定义接口所属区域

使用以下命令定义与该OSPF路由进程关联的IP地址范围,以及该范围IP地址所属的OSPF区域。OSPF路由进程只在属于该IP地址范围的接口发送、接收OSPF报文,并且对外通告该接口的链路状态。当路由器的接口地址与Network命令定义的IP地址范围相匹配时,该接口就属于指定的区域。

Router(config-router)# network network wildcard area area-id

# Router(config-router)#: 这是命令提示符,表示你正在配置OSPF路由协议的模式。
# network: 这个关键字指定你要广告的网络前缀。
# network: 这是你要广告的网络前缀,以点分十进制表示。
# wildcard: 这是网络前缀的反掩码,也以点分十进制表示。反掩码用于指定哪些位在网络前缀中应该精确匹配,哪些位可以变化。例如,反掩码为0.0.0.255表示最后一个八位可以变化。
# area: 这个关键字指定你要将网络前缀广告到的OSPF区域。
# area-id: 这是你要将网络前缀广告到的OSPF区域的ID,以十进制数表示。

例如,命令network 192.168.1.0 0.0.0.255 area 0将网络前缀192.168.1.0/24广告到OSPF区域0中。

通配符掩码与子网掩码的方式刚好相反,其中,二进制的0表示一个“检测”条件,二进制的1表示一个“忽略”条件。例如,匹配源地址198.78.46.0中的所有分组的通配符掩码为0.0.0.255。

将以 198.78.46 开头的 IP 地址的网络(即 198.78.46.0/24 子网)归于 OSPF 区域 0。如果有其他以 198.78.46 开头的子网,如 198.78.46.128/25,也会被归于 OSPF 区域 0。这样,OSPF 协议就知道哪些子网属于哪个区域,进而计算出到达这些子网的最佳路径。

RGNOS也允许使用子网掩码的方式来定义,系统会自动翻译成通配符掩码。在配置网络地址时,需要注意网络地址要求匹配的位数和主机地址要忽略的位数。如果您不使用子网,则在配置网络中的每一个工作站时,使用子网掩码255.255.255.0。在子网掩码中,1表示一个“检测”,而0表示一个“忽略”的条件。因此,网络地址要求匹配的位数为24位,主机地址要忽略的位数为8位。通配符掩码的检测条件与子网掩码是相反的,网络地址要求匹配的位数为24位0,主机地址要忽略的位数为8位1。


例子

图4-19所示的网络拓扑是某区域网络中﹐—
台需要启用OSPF路由协议工作的路由器设备﹐
需要为该路由器进行简单的配置,以启动和激活
设备。在这里插入图片描述

  1. 首先,进入路由器的全局配置模式:
Router#
Router# configure terminal    // 进入全局配置模式
  1. 然后,为路由器上的三个接口进行基本信息配置操作,分别为 fa0/0、fa0/1 和 loopback0 接口。这些配置包括 IP 地址和子网掩码,以及启用接口:
Router (configure) # interface fa0/0    // 进入 fa0/0 接口配置模式
Router (configure)# ip address 192.168.1.1 255.255.255.0    // 配置 IP 地址和子网掩码
Router (configure)# no shutdown    // 启用接口

Router (configure)# interface fa0/1    // 进入 fa0/1 接口配置模式
Router (configure)# ip address 192.168.2.1 255.255.255.0    // 配置 IP 地址和子网掩码
Router (configure)# no shutdown    // 启用接口

Router (configure)# interface loopback0    // 进入 loopback0 接口配置模式
Router (configure)# ip address 192.168.3.1 255.255.255.0    // 配置 IP 地址和子网掩码
Router (configure)# no shutdown    // 启用接口
  1. 接着,进入 OSPF 配置模式,为路由器配置单区域 OSPF 操作。在此过程中,需要申明本网段信息和分配区域号:
Router (config)# router ospf    // 进入 OSPF 配置模式
Router (config-router) # network 192.168.1.0 0.0.0.255 area 0    // 申明本网段信息,分配区域号
Router (config-router)# network 192.168.2.0 0.0.0.255 area 0    // 申明本网段信息,分配区域号
Router (config-router)# network 192.168.3.0 0.0.0.255 area 0    // 申明本网段信息,分配区域号
Router (config-router) # end    // 退出 OSPF 配置模式
  1. 最后,查看配置好的设备信息,包括路由表、区域号和与此相关的信息,以及每一个接口上的邻居信息:
Router# show ip route    // 查看路由表
Router# show ip ospf interface    // 查看区域号和与此相关的信息
Router# show ip ospf neighbor    // 查看在每一个接口上的邻居信息

4.6 三层交换路由技术

如果想要在不同VLAN内的主机或不同子网络中的主机之间进行通信,需要使用路由器或者支持路由功能的三层交换机。与路由器类似,三层交换机也可以通过以下三种方式进行路由:

  1. 使用默认路由:在三层交换机中配置默认路由,将所有无法路由的数据包发送到默认路由指定的下一跳,以实现跨网络的通信。

  2. 使用预先设置的静态路由:在三层交换机中手动配置静态路由,指定网络地址和下一跳地址,以告诉三层交换机如何路由数据包。

  3. 使用动态路由协议生成的路由:三层交换机可以使用动态路由协议(如OSPF、BGP等)与相邻路由器之间交换路由信息,自动学习网络拓扑,并根据路由协议算法计算最佳路径。

通过使用以上三种方式之一,三层交换机可以实现跨网络的通信,使得不同VLAN内的主机或不同子网络中的主机之间可以互相通信。


1.三层交换传输效率

三层交换机是一种带有部分路由器功能的交换机,其主要目的是加速大型局域网内部的数据交换。它具有一定的路由功能,可以一次路由多次转发数据包,从而提高网络通信速度。三层交换机的路由功能由软件实现,包括路由信息更新、路由表维护、路由计算和路由确定等功能。

为了安全和管理方便的考虑,大型局域网必须按功能或地域等因素划分成小的局域网,这就使得 VLAN 技术在网络中得以大量应用。各个不同 VLAN 间的通信都要经过路由器来完成转发,而单纯使用路由器来实现网间访问,由于端口数量有限且路由速度较慢,限制了网络的规模和访问速度。基于这种情况,三层交换机应运而生,它是为 IP 设计的,接口类型简单,拥有很强的二层包处理能力,非常适用于大型局域网内的数据路由与交换。

在企业网和教学网中,一般会将三层交换机用在网络的核心层,用三层交换机上的千兆端口或百兆端口连接不同的子网或 VLAN。但是需要清醒地认识到,三层交换机的主要目的是加快大型局域网内部的数据交换,所具备的路由功能并没有同一档次的专业路由器强。在安全、协议支持等方面还有许多欠缺,不能完全取代路由器工作。

在实际应用过程中,通常采用以下典型做法:处于同一个局域网中的各个子网的互联以及局域网中 VLAN 间的路由,用三层交换机来代替路由器。只有局域网与公网互联之间要实现跨地域的网络访问时,才需要通过专业路由器实现


2.三层交换机的突出特点

网络的快速发展带来了规模和速度方面的挑战,局域网计算机的接入速度已经从最初的10Mb/s提高到100Mb/s,甚至千兆和万兆以太网技术也已得到广泛应用。然而,在网络系统集成的技术中,路由器技术却没有取得质的突破,因此,第三层交换技术应运而生。

第三层交换技术是一种将第二层交换机和第三层路由器的优势有机而智能化地结合起来的交换技术。一个具备第三层交换功能的设备是一个带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。

第三层交换具有以下突出特点:

(1) 有机的硬件结合使得数据交换加速。
(2) 优化的路由软件使得路由过程效率提高。
(3) 除了必要的路由决定过程外,大部分数据转发过程由第二层交换处理。
(4) 多个子网互连时只是与第三层交换模块的逻辑连接,不像传统的外接路由器那样需增加端口,保护了用户的投资。

在一台三层交换机内,分别设置了交换模块和路由模块,内置的路由模块与交换模块类似,也使用了ASIC硬件处理路由。因此,与传统的路由器相比,可以实现高速路由。而且,路由与交换模块是汇聚链接的,由于是内部连接,可以确保相当大的带宽。可以利用三层交换机的路由功能来实现VLAN间的通信。

三层交换机的集成化结构还引进了策略管理属性,不仅使第二层和第三层关联起来,而且还提供了流量优化处理、安全访问机制以及其他多种功能。因此,三层交换技术在网络系统集成的技术中具有重要意义,能够提高网络传输效率,保证网络安全性,有效地管理网络流量。


3.配置三层交换机

三层交换机最优秀的特色是它不仅仅具有交换功能,还具有路由功能。每一个物理接口都可以是一个路由接口,连接一个子网络。三层交换机物理接口默认是交换接口,如果需要,可以开启路由接口,实现跨子网通信。在这里插入图片描述


以下是三层交换机开启路由功能的配置命令,以及在配置路由接口时的两种方法:

  1. 开启三层交换机路由功能:
Switch# configure terminal
Switch(config)# no switching

  1. 通过创建一个物理的三层端口实现路由功能,实现方法是通过no switchport命令把一个二层接口设为三层端口:
Switch# configure terminal
Switch(config)# interface fastethernet 0/5
Switch(config-if)# no switchport
! 开启物理接口 Fa5 的路由功能
Switch(config-if)# ip address 192.168.1.1 255.255.255.0
! 配置接口 Fa5 的 IP 地址
Switch(config-if)# no shutdown

  1. 如果需要关闭物理接口路由功能,则可以执行以下命令:
Switch# configure terminal
Switch(config)# interface fastethernet 0/5
Switch(config-if)# switchport
! 把该端口还原为交换端口
Switch(config-if)# no shutdown
Switch(config-if)# end**

需要注意的是,网络接口是路由设备为一个IP子网提供的网关接口,因此在三层交换机实现路由功能时,也必须提供网络接口。同时,三层交换机默认未开启路由功能,需要通过no switching命令进行开启。


在较大规模的网络环境中,三层交换机可通过以下方式进行路由:

  1. 使用默认路由或预先设置的静态路由。
  2. 使用动态路由协议生成的路由。

在三层交换机中配置路由和在路由器中配置路由没有区别,只需启用该设备的路由功能即可。


  1. 静态路由
Switch(config)# ip route 目标网络 子网掩码 下一跳IP地址

静态路由通过手动配置来实现,适用于网络规模较小或路由变化比较少的情况。


  1. RIP的配置
Switch(config)# router rip
Switch(config-router)# network 主类网络地址
Switch(config-router)# version 2

RIP是一个基于距离向量算法的动态路由协议,通过将路由表中的信息定期广播给相邻的路由器来实现路由信息的更新。


  1. OSPF的配置
Switch(config)# router ospf
Switch(config-router)# network 宣告网络地址 通配符掩码 area 区域号

OSPF是一种基于链路状态算法的动态路由协议,通过将路由器的链路状态信息交换给其他路由器来计算最短路径并更新路由表。

需要注意的是,不同的路由协议在实现路由功能时,具有不同的特点和适用范围。在实际应用中,需要根据网络规模、路由变化等情况选择适合的路由协议。同时,在配置路由时,建议添加注释以便于理解和维护。


4.7 虚拟路由冗余技术

随着网络应用的不断深入和发展,用户对网络可靠性的需求越来越高。为了实现网络的冗余备份,在网络中通常会运行动态路由协议,如RIP、OSPF等。通过这些协议,当一台主路由器发生故障后,网络可以自动切换到它的备份路由器,实现网络的连通。但是对于处于网络边缘的终端用户主机来说,运行动态路由协议来实现可靠性是不可行的。因此,企业局域网通常通过路由器连接外网,局域网内用户主机通过配置默认网关来实现与外部网络的访问

对于处于网络边缘的终端用户主机来说,运行动态路由协议来实现可靠性是不可行的,主要原因有以下几点:

动态路由协议需要复杂的配置和管理,包括协议选择、协议参数配置、路由表配置等,对于终端用户主机来说,这些操作不仅复杂,而且容易出错。

终端用户主机的数量通常非常多,如果每个终端用户主机都运行动态路由协议,将增加网络中的路由信息量和路由计算负担,对网络性能和效率造成不良影响。

终端用户主机通常位于网络边缘,其路由信息变化频繁程度较低,而动态路由协议适用于网络规模较大、路由变化较频繁的场景,因此在终端用户主机中使用动态路由协议并不切实际。


如何实现企业内网中的终端用户,在配置有冗余的网络中,通过配置一个默认网关,就可以实现网络冗余,保持网络的畅通呢?这时候,虚拟路由器冗余协议(Virtual Router Redundancy Protocol, VRRP)就可以发挥作用了。


4.7.1 什么是虚拟路由冗余协议

虚拟路由器冗余协议(VRRP)是一种容错选择协议,它通过建立一个虚拟路由器来实现路由器的冗余备份。在VRRP中,通过动态分配到局域网上配置有VRRP路由器中的一台来确定虚拟路由器的主路由器,当主路由器失效时,备份路由器将成为新的主路由器,接替它的工作,从而保持通信的连续性和可靠性。

为了使VRRP工作,需要在路由器上配置虚拟路由器号和虚拟IP地址,并产生一个虚拟MAC地址,从而在网络中加入一个虚拟路由器。这样,网络上的主机与虚拟路由器通信,无需了解这个网络上物理路由器的任何信息。

一个虚拟路由器由一个主路由器和若干个备份路由器组成,主路由器实现真正的转发功能。网络组建中,把配置虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟IP地址。一旦主路由器不可用,出现故障时,备份路由器将成为新的主路由器,接替它的工作,这种选择过程就提供了动态的故障转移机制,允许虚拟路由器的IP地址可以作为终端主机的默认第一跳路由器。

VRRP的好处是具有更高的默认路径的可用性,而无需在每个终端主机上配置动态路由或路由发现协议。
在这里插入图片描述


4.7.2 虚拟路由冗余协议的工作原理

在企业内部网络构建中,通常每个主机都会配置一个默认网关,以实现与外部网络的通信。然而,当默认网关所连接的路由器出现故障时,所有以该路由器为默认路由下一跳的主机都将失去外部通信的路由。为提高网络的可靠性,可以使用VRRP来消除静态默认路由环境中的缺陷。

VRRP是一种针对备份问题而提出的解决方案,它将局域网的一组路由器组织成一个虚拟路由器,包括一台活动路由器(Master)和若干个备份路由器(Backup),它们的接口地址相同,如10.100.10.1。备份组内的其他路由器也有自己的IP地址,如10.100.10.2和10.100.10.3。在配置时,将局域网主机的默认网关设置为该虚拟路由器的IP地址,即10.100.10.1,作为自己的默认路由下一跳地址。

当Master路由器出现故障时,备份组内的其他Backup路由器将会通过选举策略选出一个新的Master路由器,接替成为新的Master,继续向局域网内的主机提供路由服务,从而实现网络内的主机不间断地与外部网络进行通信。VRRP通过多台路由器实现冗余,任何时候只有一台路由器为Master路由器,其他的为备份路由器。路由器间的切换对用户是完全透明的,用户只需要把默认路由器设为虚拟路由器的IP地址即可。

在实践中,VRRP的配置非常简单,只需要在相关的路由器上配置极少几条命令即可。使用VRRP后,即使某个路由器发生故障,内部网络中的主机也无需做任何更改配置,就能实现下一跳网关的备份,不会对主机带来任何负担。VRRP是为具有多播或广播能力的局域网(如企业内部网络)设计的,它能够提高网络的可靠性,保证网络内的主机不间断地与外部网络进行通信。在这里插入图片描述


4.7.3 虚拟路由冗余协议报文

VRRP是一种协议,用于提供虚拟路由器的高可用性和冗余备份。VRRP采用竞选的方式选择主控路由器,并通过VRRP报文实现对虚拟IP地址的转发请求服务。下面是VRRP的一些核心特性和过程:

  • VRRP报文:VRRP中只定义了一种报文——VRRP报文,这是一种组播报文。由主路由器定时发出来广告它的存在,通过这些报文可以了解虚拟路由器的各种参数,还可以用于主路由器的选举。
  • VRRP状态:VRRP模型中定义了三种状态:初始状态(Initialize)、活动状态(Master)和备份状态(Backup)。其中,只有活动状态可以为到虚拟IP地址的转发请求服务。
  • 优先级:VRRP采用竞选的方法选择主路由器。比较各台路由器优先级的大小,在VRRP路由器组中,VRRP优先级范围是0~255,优先级最大的为主路由器,状态变为Master。
  • IP地址所有者:若VRRP路由器的IP地址和虚拟路由器的接口IP地址相同,则称该虚拟路由器为VRRP组中的IP地址所有者,IP地址所有者自动具有最高优先级255。
  • 优先级抢占:VRRP还提供了优先级抢占策略,如果配置了该策略,高优先级的备份路由器便会剥夺当前低优先级的主控路由器而成为新的主控路由器。
  • 备份路由器:主控路由器选出后,其他路由器作为备份路由器,并通过主路由器发出的VRRP报文监测主路由器的状态。当主路由器正常工作时,它会每隔一段时间发送一个VRRP多播报文,称为广告报文,以通知备份路由器,主路由器处于正常工作状态。如果组内的备份路由器长时间没有接收到来自主路由器的报文,则将自己的状态转为Master。当组内有多台备份路由器时,重复1的竞选过程。

4.7.4 配置虚拟路由元余协议

在三层设备上,我们可以使用虚拟路由冗余协议(VRRP)来提高网络的可靠性和冗余性。以下是基本的VRRP配置命令:

  1. 创建VRRP组并配置虚拟路由器的IP地址(可选):

    vrrp 组号 ip [ip地址]
    

如果不配置虚拟路由器IP地址,则该VRRP组的虚拟路由器将使用默认的IP地址(一般是该VRRP组内优先级最高的路由器的IP地址)。

  1. 配置VRRP组优先级:

      vrrp 组号 priority 优先级别
    
  2. 配置VRRP组抢占:

     vrrp 组号 preempt
    
  3. 验证VRRP组结果:

     show vrrp [brief]
     show vrrp interface 接口
    

在这里插入图片描述

Router-a# configure terminal  // 进入全局配置模式
Router-a(config)# interface VLAN10  // 进入VLAN10接口配置模式
Router-a(config-if)# ip address 10.10.10.1 255.255.255.0  // 配置IP地址
Router-a(config-if)# no shutdown  // 启用接口
Router-a(config-if)# vrrp 1 priority 120  // 配置VRRP组1的优先级为120
Router-a(config-if)# vrrp 1 ip 10.10.10.1  // 配置VRRP组1的虚拟路由器IP地址为10.10.10.1
Router-a(config-if)# vrrp 1 preempt  // 配置VRRP组1的抢占模式
Router-a(config-if)# vrrp 1 timer advertise 3  // 配置VRRP组1的广播时间单位为3
Router-a(config-if)# end  // 退出接口配置模式
Router-a# show vrrp  // 验证VRRP组1的状态和优先级

4.7.5 VRRP应用于园区网络

VRRP技术被广泛应用于大型园区网络核心层的冗余备份,以提高网络的可靠性。在园区网络设计中,核心层设备承担着不同VLAN之间路由的功能,一旦宕机,整个网络将面临瘫痪。因此,在核心层再放置一台设备作为另一台设备的备份,一旦主用设备出现故障,立即切换到备用设备,确保网络核心层的高度可靠性。核心层三层交换机的切换需要应用VRRP技术。

在大型园区网络中,为了抑制广播信号、提高网络的性能、实现网络的安全访问控制,一般将整个网络分成多个不同的VLAN,每个VLAN的主机的默认网关设置为三层交换机上VLAN的接口地址。

在图示的网络拓扑中,将网络中两台核心交换机组成VRRP备份组,设置Interface VLAN 4作为虚拟网关接口,对应于接入网络中每一个VLAN接口,虚拟网关接口拥有一个虚拟默认网关地址(192.168.4.1)。因此,该地址就是VRRP备份组配置的虚拟IP地址,即192.168.4.1。S1为主设备,允许抢占,S2为从设备,备份组中 S1 和 S2 同时分别拥有自己的接口IP。
在这里插入图片描述

以VLAN 3内主机的主机为例,设置其所有主机默认网关为VRRP备份组VLAN 3的虚拟IP地址,即192.168.4.1。VLAN 3内的主机通过这个虚拟IP访问VLAN 3之外的网络资源,但实际的数据处理由备份组内活动(Master)交换机执行。如果活动交换机发生故障,VRRP将自动由备份交换机(Backup)来替代活动交换机。由于网络内的终端配置了VRRP虚拟网关地址,发生故障时,虚拟交换机没有改变,主机仍然保持连接,网络将不会受到单点故障的影响。这样就很好地解决了网络中核心交换机切换的问题。

对于使用固定网关的网络,当此网关出现故障时,要想将故障对用户的影响降低到最小,VRRP无疑是最佳选择。对于使用多个网关的网络,可以使用VRRP让不同的网关之间互相备份,这样既不会增加网络设备,同时又达到了热备份的目的,使网络故障发生时用户的损失降至最低。而且,VRRP是RFC标准协议,能方便地实现各厂家设备间的互通。正是由于VRRP具有这些优点,使得它成为建设一个稳定可靠网络所需的有力工具。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值