设为首页收藏本站language 语言切换
查看: 2999|回复: 11
收起左侧

[书籍] 路由原理概述

[复制链接]
 成长值: 63385
发表于 2021-11-2 10:37:04 | 显示全部楼层 |阅读模式
IP路由概述简介
路由是数据通信网络中最基本的要素。路由信息就是指导报文发送的路径信息,路由的过程就是报文转发的过程。

根据路由目的地的不同,路由可划分为:
网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。
主机路由:目的地为主机,IPv4地址子网掩码长度为32位或IPv6地址前缀长度为128位。
根据目的地与该路由器是否直接相连,路由又可划分为:
直连路由:目的地所在网络与路由器直接相连。
间接路由:目的地所在网络与路由器非直接相连。
根据目的地址类型的不同,路由还可以分为:
单播路由:表示将报文转发的目的地址是一个单播地址。
组播路由:表示将报文转发的目的地址是一个组播地址。

路由器及路由基本原理
在因特网中,网络连接设备用来控制网络流量和保证网络数据传输质量。常见的网络连接设备有集线器(Hub)、网桥(Bridge)、交换机(Switch)和路由器(Router)。这些设备的基本原理类似,下面就以路由器为例来介绍一下设备的基本原理。

路由器是一种典型的网络连接设备,用来进行路由选择和报文转发。路由器根据收到报文的目的地址选择一条合适的路径(包含一个或多个路由器的网络),然后将报文传送到下一个路由器,路径终端的路由器负责将报文送交目的主机。

路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。最佳路由的选取与发现此路由的路由协议的优先级、路由的度量有关。当多条路由的协议优先级与路由度量都相同时,可以实现负载分担,缓解网络压力;当多条路由的协议优先级与路由度量不同时,可以构成路由备份,提高网络的可靠性。


静态路由与动态路由
路由器不仅支持静态路由,同时也支持RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、IS-IS(Intermedia System-Intermedia System)和BGP(Border Gateway Protocol)等动态路由协议。


静态路由与动态路由的区别
路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。依据来源的不同,路由可以分为三类:
通过链路层协议发现的路由称为直连路由。
通过网络管理员手动配置的路由称为静态路由。
通过动态路由协议发现的路由称为动态路由。
静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。


动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。


动态路由的分类
对动态路由协议的分类可以采用以下不同标准:


根据作用范围不同,路由协议可分为:


内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。


外部网关协议EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP是目前最常用的EGP协议。


根据使用算法不同,路由协议可分为:


距离矢量协议(Distance-Vector Protocol):包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。


链路状态协议(Link-State Protocol):包括OSPF和IS-IS。


以上两种算法的主要区别在于发现路由和计算路由的方法不同。

路由表和FIB表
路由器转发数据包的关键是路由表和FIB表,每个路由器都至少保存着一张路由表和一张FIB(Forwarding Information Base)表。路由器通过路由表选择路由,通过FIB表指导报文进行转发。
路由表
每台路由器中都保存着一张本地核心路由表(即设备的IP路由表),同时各个路由协议也维护着自己的路由表。
  • 本地核心路由表
    路由器使用本地核心路由表用来保存决策优选路由,并负责把优选路由下发到FIB表,通过FIB表指导报文进行转发。这张路由表依据各种路由协议的优先级和度量值来选取路由。
  • 协议路由表
    协议路由表中存放着该协议发现的路由信息。
    路由协议可以引入并发布其他协议生成的路由。例如,在路由器上运行OSPF协议,需要使用OSPF协议通告直连路由、静态路由或者IS-IS路由时,要将这些路由引入到OSPF协议的路由表中。


路由表中的内容
在路由器中,执行命令display ip routing-table时,可以查看路由器的路由表概要信息,如下所示:
<Huawei> display ip routing-tableProto: Protocol        Pre: PreferenceRoute Flags: R - relay, D - download to fib, T - to vpn-instance------------------------------------------------------------------------------Routing Table: _public_         Destinations : 14       Routes : 14                                                                                                                    Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface                                                                                              0.0.0.0/0   Static  60   0          RD   10.137.216.1    Vlanif20     10.10.10.0/24  Direct  0    0           D   10.10.10.10     Vlanif20    10.10.10.10/32  Direct  0    0           D   127.0.0.1       InLoopBack0       10.10.10.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0         10.10.11.0/24  Direct  0    0           D   10.10.11.1      LoopBack0           10.10.11.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0       10.10.11.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0       10.137.216.0/23  Direct  0    0           D   10.137.217.208  Vlanif20       10.137.217.208/32  Direct  0    0           D   127.0.0.1       InLoopBack0     10.137.217.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0          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    127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0    255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
路由表中包含了下列关键项:
  • Destination:表示此路由的目的地址。用来标识IP包的目的地址或目的网络。
  • Mask:表示此目的地址的子网掩码长度。与目的地址一起来标识目的主机或路由器所在的网段的地址。
    将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为10.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为10.1.1.0。
    掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。例如掩码255.255.255.0长度为24,即可以表示为24。
  • Proto:表示学习此路由的路由协议。
  • Pre:表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级高(数值小)者将成为当前的最优路由。各协议路由优先级请参见路由协议的优先级
  • Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。

                                   
    登录/注册后可看大图
    说明:
    Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。


  • NextHop:表示此路由的下一跳地址。指明数据转发的下一个设备。
  • Interface:表示此路由的出接口。指明数据将从本地路由器哪个接口转发出去。

图1-1所示的网络中,路由器A与三个网络相连,因此有三个IP地址和三个出接口,其路由表如图所示。
图1-1 路由表示意图

                               
登录/注册后可看大图



路由超限自动恢复本地核心路由表里保存着各路由协议的路由,如果本地核心路由表里的路由数量达到系统上限,协议路由表将无法向本地核心路由表添加路由。本地核心路由表有以下几种路由限制:
  • 整机路由限制:指定所有路由条数的上限值。
  • 整机路由前缀限制:指定所有路由的地址前缀范围。
  • 组播IGP路由限制:指定组播IGP路由条数的上限值。
  • 多拓扑路由限制:指定多拓扑路由条数的上限值。
  • 所有私网路由限制:指定所有私网路由条数的上限值。
  • VPN路由限制:指定VPN路由条数的上限值。
  • VPN路由前缀限制:指定VPN路由的地址前缀范围。

如果协议由于某种路由限制而向本地核心路由表添加路由失败,系统会记录本次添加路由的协议和对应的路由表Table ID。
当协议删除本地核心路由表里的路由释放了路由表的空间之后,路由超限解除,系统会通知所有向本地核心路由表添加路由失败的协议,重新向本地核心路由表添加路由,使得本地核心路由表中的路由能够得到最大程度的恢复。是否可以完全恢复,取决于释放的路由表空间的大小。

FIB表的匹配
在路由表选择出路由后,路由表会将激活路由下发到FIB表中。当报文到达路由器时,会通过查找FIB表进行转发。
FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
FIB表的匹配遵循最长匹配原则。查找FIB表时,报文的目的地址和FIB中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表项中的网络地址则匹配。最终选择一个最长匹配的FIB表项转发报文。
例如,一台路由器上的路由表如下:
Routing Tablesestination/Mask    Proto  Pre  Cost     Flags NextHop         Interface 0.0.0.0/0      Static   60   0       D   192.168.0.2      GigabitEthernet1/0/0 10.8.0.0/16    Static   60   3       D   192.168.0.2      GigabitEthernet1/0/0 10.9.0.0/16    Static   60   50      D   172.16.0.2       GigabitEthernet3/0/0 10.9.1.0/24    Static   60   4       D   192.168.0.2      GigabitEthernet2/0/0 10.20.0.0/16   Direct   0    0       D   172.16.0.1       GigabitEthernet4/0/0
一个目的地址是10.9.1.2的报文进入路由器,查找对应的FIB表。
FIB Table: Total number of Routes : 5Destination/Mask   Nexthop         Flag TimeStamp     Interface              TunnelID0.0.0.0/0            192.168.0.2       SU   t[37]         GigabitEthernet1/0/0  0x010.8.0.0/16          192.168.0.2       DU   t[37]         GigabitEthernet1/0/0  0x010.9.0.0/16          172.16.0.2        DU   t[9992]       GigabitEthernet3/0/0  0x010.9.1.0/24          192.168.0.2       DU   t[9992]       GigabitEthernet2/0/0  0x010.20.0.0/16         172.16.0.1        U    t[9992]       GigabitEthernet4/0/0  0x0
首先,目的地址10.9.1.2与FIB表中各表项的掩码“0、16、24”作“逻辑与”运算,得到下面的网段地址:0.0.0.0/0、10.9.0.0/16、10.9.1.0/24。这三个结果可以匹配到FIB表中对应的三个表项。最终,路由器会选择最长匹配10.9.1.0/24表项,从接口GE2/0/0转发这条目的地址是10.9.1.2的报文。


游客,如果您要查看本帖隐藏内容请回复















发表于 2021-11-2 12:35:22 | 显示全部楼层
谢谢楼主分享
板凳 2021-11-2 12:35:22 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-11-15 11:39:36 | 显示全部楼层
路由原理概述
地板 2021-11-15 11:39:36 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-11-21 10:16:23 | 显示全部楼层
1111111111111111111
6# 2021-11-21 10:16:23 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-9 16:11:43 | 显示全部楼层
非常好,谢谢了!!!!
7# 2021-12-9 16:11:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-9 17:41:29 | 显示全部楼层
路由原理概述
8# 2021-12-9 17:41:29 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-1-24 21:15:22 | 显示全部楼层
制作不易 感谢分享
9# 2022-1-24 21:15:22 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2022-5-2 22:56:51 | 显示全部楼层
谢谢分享                  
11# 2022-5-2 22:56:51 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-1 20:01 , Processed in 0.106488 second(s), 15 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表