Windows下本地路由表

时间:2022-03-27 04:37:42

什么是本地路由表

路由表

首先简单介绍下路由表:
在计算机网络中,路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。在现代路由器构造中,路由表不直接参与数据包的传输,而是用于生成一个小型指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径,这个表格通常为了优化硬件存储和查找而被压缩或提前编译。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table)。

路由表中的表项内容包括:

  • destination mask pre costdestination:目的地址,用来标识IP包的目的地址或者目的网络。
  • mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。
  • pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。
  • cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。
  • interface:输出接口,说明IP包将从该路由器哪个接口转发。
  • nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。

本地路由表

本地路由表,顾名思义,根据和自己运用协议连接的各个网段的集合表,为本机数据和通过计算机的数据指明传输方向。

Windows下的本地路由表

首先在windows cmd模式下执行该命令会显示如下内容:

C:\Documents and Settings\1st>route print

======================================================================

Interface List

0x1 ........................... MS TCP Loopback interface

0x2 ...00 0a e4 54 b7 20 ...... Realtek RTL8139 Family PCI Fast Ethernet NIC -

acket Scheduler Miniport

======================================================================Active Routes:

Network Destination Netmask Gateway Interface Metric

0.0.0.0 0.0.0.0 192.168.0.13 192.168.0.3 30

0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.3 40

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

192.168.0.0 255.255.255.0 192.168.0.3 192.168.0.3 30

192.168.0.3 255.255.255.255 127.0.0.1 127.0.0.1 30

192.168.0.255 255.255.255.255 192.168.0.3 192.168.0.3 30

224.0.0.0 240.0.0.0 192.168.0.3 192.168.0.3 30

255.255.255.255 255.255.255.255 192.168.0.3 192.168.0.3 1

Default Gateway: 192.168.0.13

======================================================================

Persistent Routes:

None

在显示内容列中:

Network Destination 表示目的网络

Netmask 表示子网掩码

Gateway 网关地址

Interface 接口(网卡)

Metric 这里表示路由优先值

其中目的网络和掩码全0表示任意网络。如这一条:

Network Destination        Netmask          Gateway       Interface  Metric

0.0.0.0 0.0.0.0 192.168.0.13 192.168.0.3 30

是表示去网往任意网络的IP数据包将被送到网关设备192.168.0.3上去。这种全0的路由通常是指上internet的路由,也称默认路由,俗称指网关。

大家可否注意到这里有两条的默认路由,如下:

Network Destination        Netmask          Gateway       Interface  Metric

0.0.0.0 0.0.0.0 192.168.0.13 192.168.0.3 30

0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.3 40

它们的区别在于Metric值不同,那么这样的路由有什么用处呢?

前面已讲到Metric值是表示路由的优先值,所以理论上讲这两条路由可以实现互为备份的作用,也就是说本地主机192.168.0.3/24这个台主机所属网段里存在两台可以上internet的设备或主机,分别是192.168.0.13和192.168.0.1,假设网络内192.168.0.13这台设备或主机掉电停机后那么本地主机将自动将网关切换到192.168.0.1上,注意必需是192.168.0.13掉电或与本地主机网络隔离才会切换本地主机才会切换网关,如果只是拔掉其接外网线路(如adsl)本地主机是不会有任何动作的。

那么将Metric值改成相等又是否有可以实现负载均衡呢?

两个2M的adsl加起来就是4M了,这个需求对某些用户还是很吸引人的。

答案是,理论上可以的。大多数路由器可以实现windows 2000是否可以实现,本人还没有做实验证实;各位如果有空可以找个环境做一下,别忘了告诉我结果!

看了前面我写的这些你也许对找出为什么有时adsl拨上号却上不了网原因而有所眉目了。

大家都知道,我们在建立adsl连接后,网络链接里都至少会有两个本地连接;其中一个是物理网卡的连接,另一个则是adsl的pppoe虚接连接,对应route pirnt路由表来说也就是两个接口。通常如果你在物理网卡上如果已经设了网关地址,而后又在adsl拨号后又获得一个网关地址;那么此时如果物理网卡所设的网关的Metric值比adsl所获得的网关Metric值高的话,就会出现adsl拨上号后却不能上网的问题。当然这个问题还有一个前提就是物理网卡所指的网关设备已不具备连接internet的能力。

详细解释如下:

Network destination |  Netmask         |   Gateway            |     Interface | Metric
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.6 20
127.0.0.1 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.2.0 255.255.255.0 192.168.2.6 192.168.2.6 20
192.168.2.6 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.2.255 255.255.255.255 192.168.2.6 192.168.2.6 20
224.0.0.0 224.0.0.0 192.168.2.6 192.168.2.6 20
255.255.255.255 255.255.255.255 192.168.2.6 192.168.2.6 1

Active Routes:活动的路由
network destination 目的网段
netmask 子网掩码
gateway 下一跳路由器入口的ip
interface 到达该目的地的本路由器的出口ip
路由器通过interface和gateway定义一条到下一个路由器的链路,通常情况下,interface和gateway是同一网段的,特殊情况下gateway可以不在当前interface的网段上,比如配置递归寻路的情况下metric 跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由,如果同时连接了有线和无线网络,一般有线是20,无线是30 Persistent Routes:手工配置的静态固化路由,即时重启也不会消失

第一条:

Network destination|Netmask | Gateway | Interface |Metric

0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.6 20

缺省路由:意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到那里!缺省路由的网关是由你的连接上的default gateway决定的.
该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过 192.168.2.6 这个接口发送到 192.168.2.1 这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量: 20.

第二条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

127.0.0.1 255.0.0.0 127.0.0.1 127.0.0.1 1

本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里 该路由记录的线路质量 1

第三条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

192.168.2.0 255.255.255.0 192.168.2.6 192.168.2.6 20

直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的 Interface 和 Gateway 是同一个。 当我接收到一个数据包的目的网段是 192.168.2.0 时,我会将该数据包通过192.168.2.6 这个接口直接发送出去,因为这个端口直接连接着192.168.2.0这个网段,该路由记录的线路质量 20

第四条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

192.168.2.6 255.255.255.255 127.0.0.1 127.0.0.1 20

本地主机路由:当路由器收到发送给自己的数据包时将如何处理。 当我接收到一个数据包的目的网段是 192.168.2.6 时,我会将该数据包收下,因为这个数据包是发送给我自己的,该路由记录的线路质量 20

第五条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

192.168.2.255 255.255.255.255 192.168.2.6 192.168.2.6 20

本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理。当我接收到广播数据包的目的网段是 192.168.2.255 时,我会将该数据从192.168.2.6 接口以广播的形势发送出去,该路由记录的线路质量 20

第六条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

224.0.0.0 224.0.0.0 192.168.2.6 192.168.2.6 20

组播路由:当路由器收到一个组播数据包时该如何处理。
当我接收到组播数据包时,我会将该数据从 192.168.2.6 接口以组播的形势发送出去,该路由记录的线路质量 20。

第七条

Network destination |  Netmask  |   Gateway    |     Interface    |  Metric

255.255.255.255 255.255.255.255 192.168.2.6 192.168.2.6 1

广播路由:当路由器收到一个绝对广播时该如何处理。 当我接收到绝对广播数据包时,将该数据包通过 192.168.2.6 发出去。

修改本地路由表

route命令

在本地 IP 路由表中显示和修改条目。

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
  • 参数-f: 清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网络路由(目标为 127.0.0.0,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0,网掩码为 240.0.0.0 的路由)的条目的路由表。如果它与命令之一(例如 add、change 或 delete)结合使用,表会在运行命令之前清除.

  • 参数-p: 与 add 命令共同使用时,指定路由被添加到注册表并在启动 TCP/IP 协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令一起使用时,则显示永久路由列表。所有其它的命令都忽略此参数。永久路由存储在注册表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes

  • Command 指定要运行的命令。下列出了有效的命令:
    add添加路由
    change更改现存路由
    delete删除路由
    print打印路由Destination
    指定路由的网络目标地址。目标地址可以是一个 IP 网络地址(其中网络地址的主机地址位设置为 0),对于主机路由是 IP 地址,对于默认路由是 0.0.0.0。

  • mask subnetmask 指定与网络目标地址相关联的网掩码(又称之为子网掩码)。 子网掩码对于 IP 网络地址可以是一适当的子网掩码,对于主机路由是 255.255.255.255 ,对于默认路由是 0.0.0.0。如果忽略,则使用子网掩码 255.255.255.255。定义路由时由于目标地址和子网掩码之间的关系,目标地址不能比它对应的子网掩码更为详细。换句话说,如果子网掩码的一位是 0,则目标地址中的对应位就不能设置为 1。

  • Gateway 指定超过由网络目标和子网掩码定义的可达到的地址集的前一个或下一个跃点 IP 地址。对于本地连接的子网路由,网关地址是分配给连接子网接口的 IP 地址。对于要经过一个或多个路由器才可用到的远程路由,网关地址是一个分配给相邻路由器的、可直接达到的 IP 地址。

  • Metric为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

  • Interface 指定目标可以到达的接口的接口索引。使用 route print 命令可以显示接口及其对应接口索引的列表。对于接口索引可以使用十进制或十六进制的值。对于十六进制值,要在十六进制数的前面加上 0x。忽略 if 参数时,接口由网关地址确定。

route命令注意事项

路由表中 跃点数 一列的值较大是由于允许 TCP/IP 根据每个 LAN接口的 IP 地址、子网掩码和默认网关的配置自动确定路由表中路由的跃点数造成的。默认启动的自动确定接口跃点数确定了每个接口的速度,调整了每个接口的路由跃点数,因此最快接口所创建的路由具有最低的跃点数。要删除大跃点数,请在每个 LAN 连接的 TCP/IP 协议的高级属性中禁用自动确定接口跃点数。

如果在 systemroot\System32\Drivers\Etc 文件夹的本地网络文件中存在适当的条目,名称可以用于 Destination。只要名称可以通过“域名系统” (DNS) 查询这样的标准主机名解析技术分解为 IP 地址,就可以将其用于 Gateway,DNS 查询使用存储在 systemroot\System32\Drivers\Etc 文件夹下的本地主机文件和 NetBIOS 名称解析。

如果是 print 或 delete 命令,可以忽略 Gateway 参数,使用通配符来表示目标和网关。Destination 的值可以是由星号 指定的通配符。

使用了无效的目标和子网掩码(网掩码)值的组合,会显示“Route:bad gateway address netmask”错误消息。目标中有一位或多位设置为 1,而其在子网掩码中的对应位设置为 0 时会发生这个错误。可以通过二进制表示法表示目标和子网掩码来检查这种情况。以二进制表示的子网掩码包括表示目标网络地址部分的一连串的 1 和表示目标主机地址部分的一连串的 0 两个部分。查看目标以确定目标的主机地址部分(由子网掩码所定义)是否有些位设置成了 1。

只有 Windows NT 4.0、Windows 2000、Windows Millennium Edition 和 Windows XP 的 route 命令支持 -p 参数。Windows 95 或 Windows 98 的 route 命令不支持该参数。
只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。

route命令范例

    要显示 IP 路由表的完整内容,请键入:
route print

要显示 IP 路由表中以 10. 开始的路由,请键入:
route print 10.*

要添加默认网关地址为 192.168.12.1 的默认路由,请键入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的永久路由,请键入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,跃点数为 7 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,接口索引为 0x3 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

要删除目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由,请键入:
route delete 10.41.0.0 mask 255.255.0.0

要删除 IP 路由表中以 10. 开始的所有路由,请键入:
route delete 10.*

要将目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由的下一个跃点地址由 10.27.0.1 更改为 10.27.0.25,请键入:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

本文来自网络资源自主整合。