Rendering of reStructured text is not possible, please install Docutils.
================================
Route命令的使用
================================

:作者: anyliz 

:原发表日期: 2006-09-19

:摘录: `惑者 <CliffPeng>`_

问题描述:
===================

首先说一下自己的网络情况,PC机的局域网IP192.168.1.X,网关192.168.1.254,
掩码:255.255.255.0。交换机上已接上10.x.x.x相应的网线,现欲使192.168.1.x
能访问10.x.x.x的网络,10.x.x.x的网络是不能访问Internet的。

如果增加一个10.x.x.x的IP同时设置10.x.x.x的路由为网关,则可能出现访问 Internet
时候走10.x.x.x的路由,导致不能上网;访问10.1.x.x网络时候,走192.168.1.254的路
由,出现无法访问的情况。在实际的测试中也确实出现了这样的情况。

解决办法:
=====================

在网络连接的属性中增加一IP为10.1.x.x,掩码255.255.255.0,网关还是原来192.168.1.254
在 cmd 下使用 route 命令::

    C:\Documents and Settings\Administrator>ping 10.0.1.1

    Pinging 10.0.1.1 with 32 bytes of data:

    Control-C
    ^C
    C:\Documents and Settings\Administrator>route print

    IPv4 Route Table
    ===========================================================================
    Interface List
    0x1 ........................... MS TCP Loopback interface
    0x10003 ...00 16 ec ac 96 d5 ...... VIA Rhine II Fast Ethernet Adapter
    ===========================================================================
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0    192.168.1.254     192.168.1.64     20
             10.1.3.0    255.255.255.0       10.1.3.199     192.168.1.64     20
           10.1.3.199  255.255.255.255        127.0.0.1        127.0.0.1     20
       10.255.255.255  255.255.255.255     192.168.1.64     192.168.1.64     20
            127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1      1
          192.168.1.0    255.255.255.0     192.168.1.64     192.168.1.64     20
         192.168.1.64  255.255.255.255        127.0.0.1        127.0.0.1     20
        192.168.1.255  255.255.255.255     192.168.1.64     192.168.1.64     20
            224.0.0.0        240.0.0.0     192.168.1.64     192.168.1.64     20
      255.255.255.255  255.255.255.255     192.168.1.64     192.168.1.64      1
    Default Gateway:     192.168.1.254
    ===========================================================================
    Persistent Routes:
      None

    C:\Documents and Settings\Administrator>route add -p 10.0.0.0 MASK 255.0.0.0 10.1.3
    .254 METRIC 3 IF 0x10003

    C:\Documents and Settings\Administrator>route print

    IPv4 Route Table
    ===========================================================================
    Interface List
    0x1 ........................... MS TCP Loopback interface
    0x10003 ...00 16 ec ac 96 d5 ...... VIA Rhine II Fast Ethernet Adapter
    ===========================================================================
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0    192.168.1.254     192.168.1.64     20
             10.0.0.0        255.0.0.0       10.1.3.254     192.168.1.64      3
             10.1.3.0    255.255.255.0       10.1.3.199     192.168.1.64     20
           10.1.3.199  255.255.255.255        127.0.0.1        127.0.0.1     20
       10.255.255.255  255.255.255.255     192.168.1.64     192.168.1.64     20
            127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1      1
          192.168.1.0    255.255.255.0     192.168.1.64     192.168.1.64     20
         192.168.1.64  255.255.255.255        127.0.0.1        127.0.0.1     20
        192.168.1.255  255.255.255.255     192.168.1.64     192.168.1.64     20
            224.0.0.0        240.0.0.0     192.168.1.64     192.168.1.64     20
      255.255.255.255  255.255.255.255     192.168.1.64     192.168.1.64      1
    Default Gateway:     192.168.1.254
    ===========================================================================
    Persistent Routes:
      None

    C:\Documents and Settings\Administrator>ping 10.1.2.240

    Pinging 10.1.2.240 with 32 bytes of data:

    Reply from 10.1.2.240: bytes=32 time=35ms TTL=253
    Reply from 10.1.2.240: bytes=32 time=34ms TTL=253
    Reply from 10.1.2.240: bytes=32 time=35ms TTL=253
    Reply from 10.1.2.240: bytes=32 time=34ms TTL=253

    Ping statistics for 10.1.2.240:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 34ms, Maximum = 35ms, Average = 34ms




附注:微软的 **Route** 命令使用帮助 `相关链接 <http://www.
microsoft.com/technet/prodtechnol /windowsserver2003/zh-
chs/library/ServerHelp/dfc5383f-5ec0-4a0f-96da-acee2da3ac2f.mspx?mfr=true>`__

引用内容
=========================
  
**Route**
    在本地 IP 路由表中显示和修改条目。使用不带参数的 route 可以显示帮助。

语法
-----------------------------------

::

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

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

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

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

/?
    在命令提示符下显示帮助。

注释
=====================

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

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

*   如果是 print 或 delete 命令,可以忽略 Gateway 参数,并使用通配符来表示
    目标位置和网关。Destination 值可以是由星号 (*) 指定的通配符值。如果指定
    目标含有一个星号 (*) 或问号 (?),它被看作是通配符,只打印或删除匹配的目
    标路由。星号代表任意一字符序列,问号代表任一字符。例如, 10.*.1, 192.168.*、 
    127.* 和 *224* 都是星号通配符的有效使用。

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

*   只有 Windows NT 4.0、Windows 2000、Windows Millennium Edition、Windows XP 
    以及 Windows Server 2003 家族产品的 route 命令才支持 -p 参数。Windows 95 
    或 Windows 98 的 route 命令不支持该参数。

*   只有当“Internet 协议 (TCP/IP)”协议在“网络连接”中安装为网络适配器属性的组件
    时,该命令才可用。


示例
====================

要显示 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

有关于route print显示内容的解释
======================================

*   IP协议安装后,会为网络连接创建堆栈,为自己创建一个127.0.0.x的本地回路,
    自动获取或者等待用户手工设定一个IP地址,向网络公布自己并探索相邻的协议
    载体,侦听来自网络的数据包,按照IP属性设定的DHCP,DNS,GATEWAY等网络
    规则通讯。

*   INTERNET中不同网段无法直接互访,需要借助于路由器包转发功能解决,规则
    的根据是一个自动或者手工编制路由信息表。

其实在单机内部也是存在包转发过程的,ROUTE命令可以为我们展示一张路由信息表::


    C:\WINNT\system32>ROUTE PRINT
    ===========================================================================
    Interface List
    0x1 ........................... MS TCP Loopback interface
    0x4000003 ...00 XX XX a8 XX c7 ...... Intel(R) PRO Adapter
    ===========================================================================
    ===========================================================================
    Active Routes:
    Network Destination Netmask Gateway Interface Metric
    0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1
    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.111 192.168.0.111 1
    192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1
    192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1
    224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1
    255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1
    Default Gateway: 192.168.0.1
    ===========================================================================
    Persistent Routes:
    None

这张表告诉我们单机内部IP协议是怎么样维护着不同网络段数据包的转发,也许你
会认为电脑pc应该只存在于一个网络段,宏观的看是这样的,这里说的却是从协议
内部微观角度查看。

在内环境中,电脑工作相关的网段是:

::

    255.255.255.255 255.255.255.255 192.168.0.111 192.168.0.111 1

面向网络接口的广播,不论你是什么网络段,LAN还是INTERNET,都存在这个网络
段。他是这台电脑与身边IP环境通讯的基础。

::

    224.0.0.0 224.0.0.0 192.168.0.111 192.168.0.111 1

多播地址(multicast)同样是探知网络。多播地址利用不同的多播地址所代表的协议或者
设备 有针对性的对网络环境进行发现。

::

    192.168.0.255 255.255.255.255 192.168.0.111 192.168.0.111 1

本计算机所在网络的广播地址。他的存在是与同一网段的机器进行通讯的基础。

::

    192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1

本计算机自身IP访问自身IP的环路。这个路由定义了如果这台计算机访问自己的IP
不要经过别的网关,直接通过127.0.0.1本地回路IP访问自己。相当于自己是自己的网关。

::

    192.168.0.0 255.255.255.0 192.168.0.111 192.168.0.111 1

本计算机所在的网络地址,代表了一个网段。

::

    127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

IP协议规定的本地回路的固定地址。只要安装了IP协议,就可以用127.X.X.X访问自己。
为了数值的统一,都用127.0.0.1代表自己。

::

    0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.111 1


这个和一般路由器配置的默认路由是一个含义。代表了面向应用的,所有目标不是多播,
广播,本地回路,本地IP的数据包,全部通过指定的网关进行转发访问。

路由表在路由器中的配置有很大学问,很重要的就是表项目的顺序。

一个顺序合理的路由表代表了性能、安全、高效。

本地计算机中的静态路由表,如上面所述的表,也同样采用了选择顺序,从下到上。

本地计算机的环路路由是本地静态路由表的特色,

::

    127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
    192.168.0.111 255.255.255.255 127.0.0.1 127.0.0.1 1

这个条路由信息可以:

1.  **有帮助的。**
    可以帮助没有真实网络环境的人,测试本地网络应用程序。用得最多的是本机构
    造IIS、网络程序编制等。

2.  **安全的。**
    比如计算机在启动过程中运行的很多虚拟子程序,服务程序,防火墙,系统进程等
    ,都要访问甚至和连接本机其它程序端口。有了本地回路这种路由,就不用通过网
    关,很大程度避免了系统信息外漏。

3.  **高效的。**
    减少网络中的流量,并且直接采用本地环路,减少网络质量差的错误等待时间。

用户完全可以自己增加和修改路由表,比如一台电脑和其它电脑连接成为网络。

但是他们的网络ip不在同一个网络段中,可以通过修改静态路由表,达到网络相通。

RouteCommandUsage (last edited 2009-12-25 07:15:43 by localhost)