legend

思考助我前行

windows路由表详解

C:/Documents and Settings/Administrator>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 16 ec 6a 6d 7e ...... Realtek RTL8139 Family PCI Fast Ethernet NIC -
数据包计划程序微型端口
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0   192.168.21.253   192.168.21.75       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
     192.168.21.0    255.255.255.0    192.168.21.75   192.168.21.75       20
    192.168.21.75  255.255.255.255        127.0.0.1       127.0.0.1       20
   192.168.21.255  255.255.255.255    192.168.21.75   192.168.21.75       20
        224.0.0.0        240.0.0.0    192.168.21.75   192.168.21.75       20
  255.255.255.255  255.255.255.255    192.168.21.75   192.168.21.75       1
Default Gateway:    192.168.21.253
===========================================================================
Persistent Routes:
  None

上半部为网络接口列表(Interface List),中间为当前激活的路由(Active Routes),下半部是静态

固化的路由(Persistent Routes),目前是没有内容。

路由表有这几栏:
  Network Destination:目标网段、地址或特殊地址(如果子网掩码为255.255.255.255,则是目标为地

址或特殊地址)
  Netmask:子网掩码,一个IP地址与子网掩码按位AND后,可以得出该IP的网段。若IP地址与子网掩码取

反后接位AND,可以得出该IP地址的主机地址。
  Interface:去目的IP时,使用的网络接口
  Gateway:网关IP,通常情况下,interface和gateway是同一网段的(异常情况有哪些?)
  Metric:跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会

采用metric值小的那条路由

再准备一点知识:网卡在正常模式下,能发出任何地址的IP包。能接收的IP包则有限:A 本IP的包;B 本

网段的广播包;C 组播包。其它的包就收不到了。除非设置网卡为侦听模式,才能收到别的IP包。(IP又

如何与MAC对应呢?)
路由应该都是指发出的包如何处理。发包的时候,必须知道相应的MAC地址。

以上列出的路由逐条解释:
第一条:
0.0.0.0为缺省路由,意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该

把那个数据包发送到哪里。因为一个具体目标地址是否符合路由的目标地址的计算方法是,把具体目标地

址与子网掩码AND一下,如果结果与目标地址相同,即这个地址对这一条匹配,如果我们再定义掩码的1的

位数为匹配度。任何地址与掩码0.0.0.0 AND后都等于0.0.0.0,并且匹配度为0(不是没匹配,是匹配度

低而已)。这样任何地址都会从192.168.21.75这个网络接口发出去,发给网关192.168.21.253,让网关

决定要如何处理。这时包的结构就是,MAC为网关的MAC,而里面的地址为目标地址。

第二条:
本地环路,127开头的所有地址,能符合这一条与上一条,但这一条的匹配度为8,因此优先以这一条来处

理。这样发给127开头的地址,都从127.0.0.1这个接口发出去,网关与接口一样,即相当于没有网关。而

127.0.0.1这个地址是虚拟网卡测试回路,不会传到真正的网卡那边去。用Sniffer都抓不到PING

127.0.0.1的包。

第三条:
直联网段的路由,所有以192.168.21开头的地址,能符合这一条与第一条,但这一条的匹配度为24,因此

优先以这一条来处理。即发给192.168.21开头的地址,都从192.168.21.75这个网络接口发出去,网关与

接口一样,即没有网关。这时就要自己知道目标IP的MAC地址。

第四条:
本机路由,要发给自己的IP(192.168.21.75)的包,能符合这一条,第一条及第三条,但这一条的匹配度

为32,因此优先这一条来处理。即发给192.168.21.75的包,直接发到虚拟网卡测试回路中,用Sniffer也

抓不到该包。

第五条:
网段的广播包,以192.168.21.255的包,能符合这一条,第一条及第三条,但这一条的匹配度为32,因此

优先这一条来处理,只是它的处理原则与第三条一样,没话可说了。不过,如果我们处理一下,就能让本

机无法发出广播包(Ping 192.168.21.255 就有广播包抓到了)

第六条:
组播包,它的地址范围就要用到IP与子网掩码来计算出来了(前几个目标掩码都是0或255,根本不用像下

面这样计算)
起始地址:224.0.0.0 AND 240.0.0.0=224.0.0.0
结束地址:224.0.0.0 OR NOT 240.0.0.0=224.0.0.0 OR 15.255.255.255=239.255.255.255
就是这些IP,用192.168.21.75接口直接发送出去,至于MAC则是用如下原则来设置:
为了支持IP多播,Internet权威机构把01-00-5E-00-00-00到01-00-5E-7F-FF-FF范围的多播地址保留用于

以太网和光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)媒体访问控制(MAC)地址

。为了将一个IP多播地址映射到一个MAC层多播地址,IP多播地址的23个低序位被直接映射到MAC层多播地

址23个低序位。根据D类地址约定,IP多播地址的前4位是固定的,IP多播地址中有5位没有映射到MAC层多

播地址。 因此,某个主机可以接收不是它所属的组的MAC层多播数据包。 然而,一旦确定了目标IP地址

,这些数据包就会被IP丢弃。
例如,多播地址224.192.16.1将变成01-00-5E-40-10-01。为了使用那23个低序位,第一个八位组将不会

被使用,第二个八位组中仅有最后7位被使用。第三个和第四个八位组将直接转换为十六进制数字。对于

第二个八位组,192的二进制表示11000000。如果丢弃高序位,它将变成1000000或64(十进制)或0x40(

十六进制)。对于下一个八位组,16的十六进制表示0x10。对于最后一个八位组,1的十六进制表示0x01

。因此,对应于224.192.16.1的MAC地址将变成01-00-5E-40-10-01。

为什么要把组播单独列出来?因为,当我们想发组播包时,假设IP为224.192.16.1,如果没有这一条,则

包符合第一条,系统就把它用网关的MAC包裹,发出去,这就违反了刚才我们上面所说的MAC标准。有了这

一条,则组播就用以上原则建立MAC,然后从标准端口发出,让需要接收的计算机收到。

第七条:
广播地址,仅一个IP 255.255.255.255,由192.168.21.75直接发出去。

以上是一台规规矩矩的计算机的路由情况。标准的七种包:缺省路由、本地环路、直联网段、本机地址、

网段广播、组播、广播。

下面开始对这个路由表进行改动,测试一些想法
1:把本机地址的路由改掉,由127.0.0.1改为192.168.21.75
我先是执行以下命令:
route change 192.168.21.75 mask 255.255.255.255 192.168.21.75 metric 20
但结果却是:The route specified was not found.
查网络上说法比较接受的是:这些是特殊路由,不能这样删除。
这样,我就转到增加一个路由,而跳数比系统默认的小。
route add 192.168.21.75 mask 255.255.255.255 192.168.21.75 metric 1
这就成功了。然后再PING 本机IP,结果是我的防火墙禁PING,打开它,还是PING不通,用tracert也没有什么可用信息。
再后来,用ARP -a 看到地址列表中192.168.21.75的MAC全为0,因此加入一条ARP记录
arp -s 192.168.21.75 00-16-ec-6a-6d-7e
现在再PING,就正常了,用Sniffer也抓到包了。
用大包检测一下连接速度
ping 192.168.21.75 -l 65000
返回
Reply from 192.168.21.75: bytes=65000 time=1ms TTL=64

与一般电脑的连接速度
ping 192.168.21.60 -l 65000
返回
Reply from 192.168.21.60: bytes=65000 time=12ms TTL=128

与本机环路的连接速度
ping 127.0.0.1 -l 65000
返回
Reply from 127.0.0.1: bytes=65000 time<1ms TTL=64

2.本网段设为网关会如何?
route add 192.168.21.0 mask 255.255.255.0 192.168.21.253 metric 10
PING 192.168.21.60
结果真的被192.168.21.253的路由器给打包,中转一下。
用tracert 192.168.21.60 -d也可以看出这一点
增加之前:
Tracing route to ntserver [192.168.21.60]
over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  192.168.21.60
Trace complete.
增加之后:
Tracing route to ntserver [192.168.21.60]
over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  192.168.21.253
  2     2 ms     2 ms     2 ms  192.168.21.60
Trace complete.

3.设置一个不存在的IP会如何?
执行如下命令,只是网关改为不存在的IP——192.168.21.250。
route add 192.168.21.0 mask 255.255.255.0 192.168.21.250 metric 10
然后运行PING 192.168.21.60
通过Sniffer抓包,看到我的电脑先是ARP一个广播包,要得到192.168.21.250的MAC,但迟迟没人回应,最后PING显示出Time Out。

阅读更多
个人分类: accumulation
想对作者说点什么? 我来说一句

静态路由表配置, 很详细啊

2010年05月12日 42KB 下载

windows路由表管理配置工具

2014年01月10日 63KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭