一、路由
Linux系统包含一个完整的路由功能。当IP层处理数据发送或者转发时,会使用路由表来决定发往哪里。在通常情况下,如果主机与目的主机直接相连,那么主机可以直接发送IP报文到目的主机。例如:通过点对点的链接或网络共享,如果主机与目的主机没有直接相连,那么主机将IP报文发送给默认的路由器,然后路由器来决定往哪里发送报文。
路由功能由IP层维护一张路由表来实现。当主机接收到数据报文时,它用此表来决策接下来应该做什么操作。当从网络侧接收到的数据报文时,IP层首先会检查报文中目的的IP地址是否与主机自身的IP地址相同。如果数据报文中的目的IP地址是主机的IP地址,那么将报文传输到传输层相应协议中。如果报文中目的IP地址不是主机自身的地址,并且主机配置了路由功能,那么报文将会被转发,否则,报文将会被丢弃。
路由表中的数据一般是以条目形式存在。一个典型的路由表通常包含以下主要条目项:
(1) 目的的IP地址: 此字段表示目标的IP地址。如果这个IP地址可以是某主机的地址,也可以是一个网络地址。如果这个地址表示某主机的地址,那么它的主机ID将被标记为非零;如果这个条目包含的是一个网络地址,那么它的主机ID将被标记为零。
(2)下一个路由器的IP地址:这里采用“下一个”的说法,是因为下一个路由器并不总是最终的目的路由器,它很可能是一个中间路由器。条目给出的下一个路由器的地址用来转发在相应的接口接收到IP数据报文。
(3)标志:这个字段提供了另一组重要信息,例如,目的IP地址是一个主机地址还是一个网络地址。此外,从标志中可以得知下一个路由器是真实路由器还是一个直接相连的接口。
(4)网络接口范围:为一些数据