IP 网络上的所有节点维护路由表中的路由信息。这些表包含有关如何访问与本地和远程网络连接的系统的信息。路由表是从本地配置信息以及与相邻系统交换的路由协议消息生成的。
主机系统最初发送包时,它在自己的路由表中查找包的目标地址,以便确定该目标是否位于本地网络上。如果是,该包直接转至具有该 IP 地址的主机。如果不是,该包转至本地网络上的路由器。
路由器收到包时会检查其路由表,以确定目标地址是否属于与它相连的一个网络上的系统,或者确定是否必须通过其他路由器来转发该消息。然后,它会将该消息发送到目标的路径中的下一个系统。
此过程将在收到该消息的每个路由器上重复,直到该消息到达目标系统。
请参阅将 Oracle Solaris 11.2 系统配置为路由器或负载平衡器 中的第 2 章 将系统配置为路由器。
下图中显示了由两个路由器连接的三个网络的网络拓扑。
图 1-4 具有三个互连网络的网络拓扑
路由器 R1 连接网络 192.9.200.0/24 和 192.9.201.0/24。路由器 R2 连接网络 192.9.201.0/24 和 192.9.202.0/24。
如果网络 192.9.200.0/24 中的主机 A 向网络 192.9.202 中的主机 B 发送消息,则会发生以下事件:
主机 A 在其路由表中检查指向 192.9.202.10 的路径。本地网络地址范围不包括此地址,但是存在先前通过包括该地址的路由器 R1 获悉的缺省路由。因此,主机 A 将包发送到路由器 R1。
路由器 R1 检查其路由表。任何本地网络的地址范围均不包括该目标地址,但是存在通过包括该地址的路由器 R2 到网络 192.9.202.0/24 的已知路由,路由器 R1 将包发送到路由器 R2。
路由器 R2 直接连接到网络 192.9.202.0/24。在执行路由表查找之后显示 192.9.202.10 位于所连接的网络上。路由器 R2 直接将包发送到主机 B。