【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

路由的定义、分类、选路规则和匹配原则

28次阅读
没有评论

1 路由定义

路由是网络中将数据包从源地址转发到目的地址的过程。它是一种逐跳(Hop-By-Hop)的、基于路径选择的数据转发过程。

路由与交换的区别:

  • 路由是端到端的通信,数据包可以从一个网络的任意一端发送到另一个网络的任意一端,是全局的概念;
  • 交换是点到点(设备到设备)的通信,是在同一个网络内的不同设备之间传输数据帧的过程,是局部的概念。
  • 交换使用的MAC地址只具有本地意义,而路由使用的IP地址具有全球唯一性(私有地址除外)。

2 路由类别

  1. 按路由决策方式分:
    • 静态路由:由网络管理人员手动配置的路由条目;配置简单但不够灵活,不能自适应网络变化;
    • 直连路由:本地直连网络的路由,由设备自动生成;
    • 动态路由:运行特定路由协议,自动学习并维护路由表;能够自适应网络变化,但会消耗一定资源(设备资源+带宽资源);
  2. 按路由协议类型分:
    • 内部网关协议:IGP,Interior Gateway Protocol,用于同一自治系统AS(Autonomous System)内的路由选择,常见的IGP协议有RIP、OSPF等;
    • 外部网关协议:EGP,External Gateway Protocol,用于不同自治系统AS之间的路由选择,典型的EGP协议有BGP。
  3. 按路由算法分:
    • 距离向量算法:基于跳数或者其他度量标准来决定最优路径,如RIP协议;
    • 链路状态算法:每个路由器都拥有整个网络的完整拓扑图,并据此计算出到各个目标网络的最佳路径,如OSPF协议;
    • 路径向量算法:主要用于防止路由环路,如BGP协议。
  4. 按应用范围分:
    • 单播路由:负责将数据包从一个单一的源地址转发到一个唯一的目的地址;
    • 组播路由:将数据包从一个源地址转发到多个接收者(都加入了组播地址),适用于视频会议、在线直播等;
    • 广播路由:在局域网内将数据包发送给所有设备,适用于发现服务或设备,如发送DHCP服务请求。

3 选路规则

当路由器收到一个需要转发的数据包时,会在路由表中查找匹配目的ip地址的路由条目,而选路规则即决定了在找到多个匹配条目时,哪一条是最优的、应该被用来转发数据包。

核心规则(按优先级顺序排列):

  1. 最长前缀匹配(LPM,Longest Prefix Match):路由器查找路由表中网络地址部分(由子网掩码定义)与数据包目的ip地址匹配位数最多的路由条目。更长的前缀意味着更具体的网络范围,指向更精确的下一跳。前缀匹配过程: 将数据包的目的ip地址与本地路由表中每个路由条目的子网掩码进行按位逻辑与运算,得到的结果再与路由条目中的网络地址进行比较。举例: 有一个待转发的数据包目的ip为192.168.1.2,路由表中有一条路由条目为192.168.1.0/24。
     1. 将目的ip地址192.168.1.2与子网掩码255.255.255.0进行逻辑与运算,得到结果192.168.1.0;
     2. 将结果与路由条目网络地址192.168.1.0进行比较,发现匹配,则该路由条目被选中。
  2. 最低管理距离(AD,Administrative Distance):也叫路由优先级Preference,当存在多条指向同一目的网络的路由条目、且具有相同的最长前缀长度时,比较管理距离,管理距离数值越小越优先。常见路由协议的默认管理距离:
     +--------------------+--------------------+
     | 路由类型 | 默认协议优先级 |
     | 直连路由(Direct) | 0 |
     | OSPF | 10 |
     | IS-IS | 15 |
     | 静态路由(Static) | 60 |
     | IGRP | 80 |
     | RIP | 100 |
     | OSPF ASE(自治系统外部路由) | 150 |
     | OSPF NSSA(非完全末梢区域路由) | 150 |
     | IBGP | 255 |
     | EBGP | 255 |
     +--------------------+--------------------+
  3. 最低度量值(Metric):当存在多条来自同一种路由协议、指向同一目的网络、且具有相同最长前缀长度的路由条目时,再比较度量值,度量值数值越小越优先。度量值是路由协议内部计算出的到达目的网络路径的代价,不同协议有不同的计算方法,比如RIP以跳数(经过路由器数量)作为度量值,OSPF以开销Cost(基于接口带宽)作为度量值,EIGRP则以复合度量值(默认包含带宽、延迟,可选可靠性、负载、MTU等)作为度量值,BGP以路径属性组合(如AS_PATH长度、LOCAL_PREF、MED等)作为度量值。
  4. 其他高级规则(特定协议或场景):如在BGP协议中,如果上述3条规则比较结果均相同,还可以进行更多精细的属性比较。

4 匹配原则

路由匹配原则描述路由器如何在路由表中查找与数据包目的ip地址对应的路由条目的过程。

核心原则:

  1. 精确匹配(最长前缀匹配): 路由器将数据包目的ip地址与路由表中每个路由条目的子网掩码进行按位逻辑与运算,如果结果等于该路由条目的网络地址,则认为该条目匹配;在所有匹配的条目中,选择前缀长度最长(子网掩码最长)的那一条;
  2. 顺序无关(基于目的网络的查找): 路由条目在表中存储的物理顺序不影响匹配结果;
  3. 递归查找: 也叫路由迭代,如果匹配到的路由条目的下一跳地址不是直连接口,而是另一个ip地址时:
     1. 路由器以这个下一跳ip地址作为新的目的ip地址,再次查找路由表,找到一条能够到达“下一跳路由器”的路由;
     2. 上述过程可能递归多次,直到找到最终指向一个直连接口的路由条目,数据包才能被发送出去。
  4. 默认路由(0.0.0.0/0): 能匹配任何目的ip地址,是一个兜底的路由条目,通常指向一个默认网关。
 此处含有隐藏内容,登录后即可查看!

5 路由过程

当路由器接收到一个数据包需要进行路由转发时:

  1. 提取目的ip地址:从数据包头部提取目的ip地址;
  2. 查找路由表:根据最长前缀匹配原则进行匹配;
  3. 处理多条最长匹配:如果有多条最长匹配路由条目,则先比较管理距离,再比较度量值;
  4. 确定下一跳和出接口:根据选出的最有路由条目,确定数据包的下一跳ip和出接口;
  5. 递归查找(如有需要):如果下一跳为非直连接口,则重复步骤“2. 查找路由表”的过程,直到找到直连出接口;
  6. 转发数据包:将数据包封装到以太网帧中并通过出接口转发出去。
 此处含有隐藏内容,登录后即可查看!
正文完
 
itylq
版权声明:本站原创文章,由 itylq 2025-06-03发表,共计3219字。
转载说明:本站文章遵循CC-4.0国际许可协议,转载请注明出处(格式如“来源:IT摇篮曲www.itylq.com")。
评论(没有评论)
验证码