路由是指在计算机网络中选择路径来传输数据包的过程和机制;它包括路径选择、数据包转发、以及维持网络连接所需的各种协议和算法,路由的目标是确保数据包能够高效且可靠地从源设备传输到目标设备;常见的能够实现路由功能网络设备有:
①路由器(Router):路由器是最常见的用于实现路由功能的设备,连接多个网络并转发数据包。 ②三层交换机(Layer 3 Switch):三层交换机除了传统的二层交换功能外还具备路由功能,能在第三层(网络层)进行数据包转发。 ③无线网状网络(Mesh Network)设备:在无线网状网络中,每个节点都可以充当路由器,负责数据包的转发;常见于大范围无线覆盖或物联网(IoT)应用中。 ④防火墙(Firewall):许多防火墙设备也具有路由功能,特别是在需要安全和网络边界保护的场景下。
路由器(具有路由功能的网络设备)连接不同的网络段或子网;它通过检查数据包的目标地址,并根据路由表来决定下一跳,将数据包转发到正确的路径上。
路由表(Routing Table)
路由表是路由器中存储路径信息的数据结构。每条记录通常包括以下信息:
目标网络地址(Destination Network Address):要到达的网络或子网的地址。 子网掩码(Subnet Mask):用于区分网络部分和主机部分的掩码。 下一跳(Next Hop):下一跳路由器的地址,数据包将被转发到这个路由器。 接口(Interface):路由器用于发送数据包的网络接口。 度量(Metric):用于表示路径的代价,常见度量包括跳数、带宽、延迟等。
查看路由器的路由表是网络管理的重要部分,不同品牌的路由器可能有不同的命令和界面;以下是查看华为、思科(Cisco)和华三(H3C)路由器路由表的方法,并分析路由表中的各个字段。
1. 华为路由器
使用以下命令查看路由表:
display ip routing-table
路由表示例及字段分析
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 D 192.168.1.1 GigabitEthernet0/0/1
10.0.0.0/8 Direct 0 0 D 10.0.0.1 GigabitEthernet0/0/2
192.168.1.0/24 Direct 0 0 D 192.168.1.1 GigabitEthernet0/0/1
Destination/Mask
:目标网络及其子网掩码。
Proto
:路由协议(例如,Static表示静态路由,Direct表示直连路由)。
Pre
:优先级。
Cost
:路由开销。
Flags
:路由标志(D表示动态路由)。
NextHop
:下一跳地址。
Interface
:出接口。
2. 思科(Cisco)路由器
查看路由表
使用以下命令查看路由表:
show ip route
路由表示例及字段分析
C 192.168.1.0/24 is directly connected, GigabitEthernet0/0
L 192.168.1.1/32 is directly connected, GigabitEthernet0/0
S 0.0.0.0/0 [1/0] via 192.168.1.254, GigabitEthernet0/1
C
:直连路由(Connected)。
L
:本地路由(Local)。
S
:静态路由(Static)。
Destination/Mask
:目标网络及其子网掩码。
[AD/Metric]
:路由的管理距离(AD)和度量值(Metric)。
via
:下一跳地址。
Interface
:出接口。
3. 华三(H3C)路由器
查看路由表
使用以下命令查看路由表:
display ip routing-table
路由表示例及字段分析
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 Static 60 0 192.168.1.1 GigabitEthernet1/0/1
10.1.0.0/16 Direct 0 0 10.1.0.1 GigabitEthernet1/0/2
192.168.1.0/24 Direct 0 0 192.168.1.1 GigabitEthernet1/0/1
Destination/Mask
:目标网络及其子网掩码。
Proto
:路由协议(例如,Static表示静态路由,Direct表示直连路由)。
Pre
:优先级。
Cost
:路由开销。
NextHop
:下一跳地址。
Interface
:出接口。
各个字段的含义:
目标网络/掩码:定义了路由器可以到达的网络。 协议(Proto):表明路由是通过哪种方式学习到的,例如静态路由、动态路由或直连路由。 优先级(Pre)和开销(Cost):这些字段用于决定路由的优先级,数值越低优先级越高。 下一跳(NextHop):数据包应该发送到哪个IP地址,以便继续前往最终目标。 出接口(Interface):数据包离开路由器的物理或逻辑接口。
在上面的路由表中都有标识该路由条目是通过什么路由协议学到的;那么这个路由协议又是什么东西呢?接下来我们就好好来说道说道。
路由协议
路由协议是网络设备之间共享路由信息并选择最佳路径的协议。不同的路由协议适用于不同的网络环境。下面是一些常见的路由协议及其特性:
1. 静态路由(Static Routing)
静态路由是手动配置的路由条目,不依赖于路由协议的自动更新。适用于小型网络或需要严格控制路由路径的环境;静态路由协议比较简单,下篇文章讲(包含配置)。
2. 动态路由协议
动态路由协议自动发现和维护路由表条目,适用于中大型网络;它们分为内部网关协议(IGP)和外部网关协议(EGP)。
①内部网关协议(IGP)
内部网关协议(IGP,Interior Gateway Protocol)是用于自治系统(AS,Autonomous System)内路由选择的协议。自治系统是由一个或多个网络组成,并由一个单一的管理实体控制,通常是一个企业或组织。IGP协议在AS内部的路由器之间交换路由信息,以确定数据包的最佳传输路径。
常用的IGP:OSPF、EIGRP、IS-IS、RIP
②外部网关协议(EGP)
外部网关协议(EGP,Exterior Gateway Protocol)用于不同自治系统(AS,Autonomous System)之间的路由选择;EGP协议负责在互联网上的多个自治系统之间交换路由信息,以确保数据包能够跨越多个AS传输到达目标目的地
常用的EGP:BGP
用一张图来标识内部网关协议和外部网关协议的关系:
自治系统(AS):AS(Autonomous System)是由一个或多个网络组成,并由单一的管理实体控制的网络集合。AS内部使用IGP进行路由选择。
此处还可以用一张图来帮助我们针对动态路由协议进行总结:
在这张总结图中也可以看到在这里我们IGP分为距离矢量路由协议和链路状态路由协议,那么距离矢量和链路状态又有什么区别呢?
①距离矢量路由协议
距离矢量路由协议是一种路由选择协议,通过每个路由器维护一张包含所有已知目的地和距离(跳数)的路由表来实现路由选择;每个路由器通过定期向其邻居广播其整个路由表来更新和传播路由信息。
距离矢量路由协议工作原理:
1.初始路由表:每个路由器初始化其路由表,只包含直连网络。 2.定期更新:每个路由器定期向其所有邻居发送其整个路由表。 3.路由更新传播:路由器接收到邻居的路由表后,更新其路由表以反映新的信息。如果发现到某个目的地的更短路径,更新其路由表并将更改传播给邻居。
上面的图片圆形为路由器,方形为网络,数字为各个路由器路由表中记录的到达对应网络的开销数值。(没写数字则标识没有对应的路由)
①路由表(初始状态):
A的路由表:N1: 直连,跳数 0、N2: 直连,跳数 1
B的路由表:N2: 直连,跳数 0、N3: 直连,跳数 1
C的路由表:N3: 直连,跳数 0、N1: 直连,跳数 1
路由更新过程:
A 向 B 和 C 发送路由表:B 接收到 A 的路由表,发现到达 N1 的路径(跳数 1)更短,更新其路由表。
C 接收到 A 的路由表,发现到达 N2 的路径(跳数 2)可用,更新其路由表。
B 向 A 和 C 发送路由表:A 接收到 B 的路由表,发现到达 N3 的路径(跳数 2)可用,更新其路由表。
C 接收到 B 的路由表,发现到达 N2 的路径(跳数 1)更短,更新其路由表。
C 向 A 和 B 发送路由表:A 接收到 C 的路由表,发现到达 N3 的路径(跳数 1)更短,更新其路由表。
B 接收到 C 的路由表,发现到达 N1 的路径(跳数 2)可用,更新其路由表。
②路由表(更新后):
A的路由表:N1: 直连,跳数 0、N2: 直连,跳数 1、N3: 通过 C,跳数 1
B的路由表:N2: 直连,跳数 0、N3: 直连,跳数 1、N1: 通过 A,跳数 1
C的路由表:N3: 直连,跳数 0、N1: 直连,跳数 1、N2: 通过 B,跳数 1
通过以上分析,我们确保了每个路由器在更新后的路由表中都包含了到达目的地的最短路径;以上就是距离矢量路由协议的工作原理分析。
②链路状态路由协议
链路状态路由协议(Link-State Routing Protocol)是一种广泛用于计算机网络中的路由协议,其主要特点是每个路由器通过交换链路状态信息来维护一个网络拓扑图,然后使用该拓扑图计算出最短路径。以下是链路状态路由协议的基本概念和工作原理:
拓扑图维护:每个路由器通过定期发送链路状态广播(LSA,Link State Advertisement)消息来描述自己的邻居和链路状态(如链路的带宽、延迟等)。这些信息被存储在路由器的链路状态数据库(Link State Database)中。
全局拓扑计算:使用收集到的链路状态信息,每个路由器构建出整个网络的拓扑图。这张拓扑图包含所有路由器和它们之间的链路状态信息。
最短路径计算:基于构建的拓扑图,每个路由器使用最短路径算法(如Dijkstra算法)计算到达网络中所有其他路由器的最短路径。这些最短路径形成了路由表,用于决定数据包的转发路径。
路由信息传播:路由器之间通过交换链路状态信息来保持拓扑图的最新状态。如果网络拓扑发生变化(如链路故障或恢复),受影响的路由器会更新链路状态信息,并重新计算路径。
常见的链路状态路由协议:OSPF、IS-IS