目录
- 一、概述
- 二、路由表(Routing table)
- 三、最长匹配、默认路由、特定主机路由
- 四 、IP数据报路由过程
- 五、路由聚合
一、概述
网际协议 IP 大致分为三大作用模块, ①IP寻址、 ②路由(最终节点为止的转发) 、③IP分包与组包。前面两篇文章讨论了IP地址的相关知识,本文继续讨论网际协议的第二个模块——路由,了解IP数据报是怎样从一个网络到另一个网络的。
在进行下面的阅读之前,先了解一个讨论路由时常用到的词语——“跳”,它是指网络中的一个区间。一跳的范围是指利用数据链路层以下分层的功能传输数据帧的一个区间,也就是主机 不经其他路由器 而能直接到达的相邻主机之间的一个区间。
二、路由表(Routing table)
路由表(Routing table)是路由器用来存储路由信息的数据结构,它包含了目的网络地址、下一跳路由器地址、距离、标志、参考计数、使用情况、接口等信息,其中最重要的是【目的网络地址、下一跳路由器地址】。 实现IP通信的主机和路由器都必须持有一张这样的表。
🌰举例子
下图有4个网络,3个路由器,每个路由器都有两个IP地址:
路由器R1的两个IP地址位:10.0.0.4
、20.0.0.7
,分别连接网络1、网络2;
路由器R2的两个IP地址位:20.0.0.9
、30.0.0.2
,分别连接网络2、网络3;
路由器R3的两个IP地址位:30.0.0.9
、40.0.0.2
,分别连接网络3、网络4;
以路由器R2的路由表为例,由于R2同时连接在网络2和网络3上,如果目的网络是网络2或网络3,都可以通过接口0或接口1直接交付(需要利用ARP协议才能找到这些主机的地址);如果目的地址在网络1,则需要发往下一跳路由器R1,其IP地址为20.0.0.7
;如果目的地址在网络4,则需要发往下一跳路由器R3,其IP地址为30.0.0.1
;
三、最长匹配、默认路由、特定主机路由
最长匹配
需要注意的是,一般使用IP地址的 网络地址(网络前缀) 部分来进行路由控制,而不是直接将源IP地址 和 目的IP地址记录在路由表中,这样可以节省大量存储空间。但也会导致查找路由表时可能得到多个匹配结果。那么该选择哪一条路由呢?
答案是,应该从匹配结果中选择相同位数最多的。
例如172.20.100.52的网络地址与172.20/16和172.20.100/24两项都匹配。 此时, 应该选择匹配度最长的
172.20.100/24。
默认路由
默认路由是指当路由表中没有与目标 IP 地址匹配的路由条目时,路由器会将数据包转发到默认路由所指定的下一跳地址。默认路由通常被称为缺省路由或零点路由。默认路由一般标记为
0.0.0.0/0
或default
。
🌰举例子
如图,连接到网络N1的主机只需要三个路由条目,
第一个条目,目的网络是本网络N1,只要直接交付即可;
第二个条目,目的网络是网络N2,对应下一跳路由器R2;
第三个条目,默认路由,只要目的网络不是 N1 或 N2,就一律选择默认路由,把数据报间接交付路由器R1转发;
特定主机路由
特定主机路由是指在路由表中,为某个特定的主机地址(通常是指某个具体的 IP 地址)设置的路由条目。特定主机路由通常用于实现对某个特定主机的访问控制或优化路由转发的目的。
特定主机路由的配置方式与其他路由条目类似,需要指定目标地址、子网掩码、下一跳地址等参数。不同之处在于,特定主机路由的子网掩码通常是
255.255.255.255
,表示只匹配该特定主机地址,而不匹配其他主机地址。
例如,假设一个企业内部的网络需要访问某个外部服务器的特定服务,但是该服务器的 IP 地址可能会变化,那么可以配置一个特定主机路由,将该服务的访问流量转发到一个固定的下一跳地址,从而实现对该服务的优化路由转发。
另外,特定主机路由也可以用于实现对某个特定主机的访问控制,例如限制某个主机的访问权限或者将某个主机的流量转发到一个特定的防火墙进行安全检查等。
四 、IP数据报路由过程
IP数据报路由过程是指当一个IP数据报从源主机发送到目标主机时,经过的路由选择过程。路由选择过程通常包括以下步骤:
检查目标IP地址是否在本地子网中。如果是,则将数据包直接发送到目标主机。
如果目标IP地址不在本地子网中,则检查本地路由表中是否有与目标IP地址匹配的路由。如果有,则将数据包发送到匹配的下一跳路由器。
如果本地路由表中没有与目标IP地址匹配的路由,则将数据包发送到默认网关。
在下一跳路由器上重复上述步骤,直到数据包到达目标主机。
在路由选择过程中,可以使用静态路由或动态路由来实现路由表的更新。静态路由需要手动配置路由表,而动态路由可以自动学习网络拓扑信息并更新路由表。
五、路由聚合
路由聚合是一种路由技术,它通过将多个子网的路由信息合并成一个更具体的路由信息,从而减少路由表的大小和网络中路由器之间的路由信息交换量。路由聚合可以使用CIDR(无类域间路由)技术来实现。
在路由聚合中,将多个具有相同前缀的子网路由信息合并成一个更具体的路由信息。例如,假设有三个子网,分别是192.168.1.0/24、192.168.2.0/24和192.168.3.0/24,它们的路由信息可以被合并成一个更具体的路由信息192.168.0.0/16,这样就可以减少路由表的大小。
路由聚合可以减少路由表的大小,降低路由器之间的路由信息交换量,并提高路由器的性能。但是,它也可能会导致路由器之间的路由信息不够精细,可能会出现路由环路等问题,因此需要谨慎使用。
参考资料:
《计算机网络》第7版 谢希仁 编著
《图解TCP/IP》第5版
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁