route print 详解
(2009-03-12 16:38:36)
标签:
杂谈 |
分类: 网络 |
C:\>route print
IPv4 Route Table
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x10003 ...00 03 ff 25 88 8c ...... Intel 21140-Based PCI Fast
Ethernet Adapter
(Generic)
===========================================================================
===========================================================================
Active Routes:
Network
Destination
0.0.0.0
127.0.0.0
172.16.11.0
172.16.11.30
172.16.255.255
224.0.0.0
255.255.255.255
Default Gateway: 172.16.11.1
===========================================================================
Persistent Routes:
None
路由表中每一个路由表项(或路由)都由五个字段组成:
网络目标地址(Network
Destination):代表某个可能的目的地址,它是一个IP地址或子网,即表示IP数据包被转发到何处的地址。
掩码(Netmask):一个用于将某数据包中的IP地址中的目标地址字段与上面可能的网络地址匹配起来的位模式。
网关(Gateway):下一跳的IP地址,数据包必须被转发到此,才能到达特定的目的网络。
接口(Interface):下一跳的接口,这个接口必须用于将数据包进行转发,以达到特定的目的网络。
跳数(metric):表示到达目的的过程中经过了多少跳数(路由器数),即路由的成本。
示例一:目标主机在本地子网上
假设这个服务器(172.16.11.30)要将数据包发往同一子网内的另一台主机(IP地址为172.16.11.80)。那么这个数据包的源地址为172.16.11.30,目标地址为172.16.11.80。下面我们将展示Windows是如何用其路由表来决定选择使用哪条路由的:
1.
Windows首先依次从路由表中取出每一个路由,并将数据包的目标地址(172.16.11.80)与选中路由的掩码执行逻辑“与”运算。下面展示结果,这里,路由表中的每一个路由是通过其网络目的地址确定的:
Route
0.0.0.0
127.0.0.0
172.16.11.0
172.16.11.30
172.16.255.255
224.0.0.0
255.255.255.255
Network Destination
172.16.11.0
3. Windows现在要使用下面的算法来决定下一步做什么:
a) 如果路由的网关字段与服务器上的一个网络接口的地址相匹配(或者如果网关是空的话),那么Windows就会用在路由中指定的接口将数据包直接发送到目标地址。
b) 如果路由的网关字段并不与服务器上网络接口的任意地址相匹配,Windows将会把数据包转发给路由中的网关字段的地址。
很明显,这里符合条件a,路由的网关字段(172.16.11.30)即为分配给服务器单个网卡的地址。Windows因此会作出决定认为目标地址位于本地子网上,这也就是说Windows不需要将数据包发送到任何路由器,而是直接发送给其目的地址。在此例中,Windows使用服务器的172.16.11.30的网络接口,简单地将数据包发送给172.16.11.80,接收主机得到了数据包。
现在,让我们继续同样的过程,不过这次我们假定服务器想把数据包发往一个不同子网上的一台主机(IP地址为172.16.10.200)。换句话说,数据包的源地址为172.16.11.30,目标地址为172.16.10.200。下面我们看一下Windows是如何利用路由表决定选择哪条路由的: 网管网bitsCN_com
1. Windows从路由表中取出每一条路由,将数据包的目标地址(172.16.10.200)与路由中的掩码进行“与” 运算。运算结果如下:
Network Destination Netmask Gateway Interface
Metric
0.0.0.0 0.0.0.0 172.16.11.1 172.16.11.30 20
3. 然后Windows就会使用前述的算法来决定下一步做什么,这次符合条件b,因为路由的网关字段(172.16.11.1)与分配给服务器的单独网卡的地址(172.16.11.30)并不匹配。Windows因此会决定目标地址位于一个远程子网上,将数据包转发给路由器,路由器通过继续转发数据包将其传送到目的地。在此例中,Windows使用服务器的172.16.11.30网络接口,将数据包发送到在网关字段中所显示的地址。一旦位于172.16.11.1的路由器收到了数据包,它会决定下一步需要采取什么步骤,才能将数据包转发到其最后的目标地址172.16.10.200,而这又依赖于172.16.11.10/24网络是172.16.11.11/24(由单个路由器连接)或一个远程网络的邻近子网(由几个中间网络之间的路由器连接)。

加载中…