那英的默歌词含义:重读Route Print路由表的一些心得 - 许一君的原创技术博客 - 51CTO技术博...

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 16:06:06
重读Route Print路由表的一些心得 2009-03-18 17:35:30标签:路由表 route print 晒文章 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140006       (首发在bbs.winos.cn,若转载请说明出处,谢谢) 
     拜读了yansy老师的有关route print的一篇帖子,当时只是粗略的看了一下,也从中了解了不少东西,但自己没有细想,最近在做一些rras的测试时,添加静态路由那一部分我被卡住了,于是想把这部分再仔细琢磨一下,这些是我昨天和今天的学习成果和感悟,写出来和大家分享,同时,如果其间有错误请各位不吝指正,谢谢。

     我们先看一个单一宿主tcp/ip主机上路由表的例子,这里首先介绍一个概念,什么是宿主机,宿主机就是执行编译、链接、定址等任务的计算机(当然在别的领域可能有另外的含义,这里不再多述)。如果这台计算机上同时运行tcp/ip协议,就成为tcp/ip宿主主机,“单一”这里就很明确的表明单独的一台计算机,并未接入任何网络,包括局域网等。英文表述即为single-homed,这个词在微软的相关技术文章里出现过多次。相对的,还有多宿主主机,也就是mulit-homed。
OK,下面我们来逐步分析路由表里的各个条目,准确说应该是逐层分析。

环境:纯净xp sp3客户端
内网网段:192.168.0.X-192.168.7.X 网关:192.168.0.1 掩码:255.255.248.0
由ISA2006代理上网 测试步骤:
1、新装一台干净的XP SP3系统,注意,这里我们先不安装网卡驱动,如图:2、进入命令行程序,输入route print ,我们查看一下当前的路由表,如图:
从上图我们可以看出,127.0.0.1和物理的网卡没有任何关系,此时通过查看本机的路由表,会得到以下条目:
Network Destination        Netmask       Gateway    Interface   Metric
       127.0.0.0        255.0.0.0        127.0.0.1    127.0.0.1    1
关于各个值及含义,后面会讲到,这里先提一下
3、现在我们将XP的网卡驱动装上并停用,并再次运行route print 命令,如图

图中已经添加了一块网卡,如果网卡是停用的状态,此时的路由表和没有网卡结果一样。
4、启用这块网卡,大家请看图
很明显,多了下面一条记录:
Network Destination        Netmask             Gateway       Interface    Metric
       127.0.0.0                255.0.0.0        127.0.0.1        127.0.0.1       1
255.255.255.255    255.255.255.255 255.255.255.255    20003       1
此时,出现了一种较特殊的情况,尽管已经启用网卡,但没有配置IP地址,现在这块网卡处于孤立的状态,
瓷实运行ipconfig,则得到 “Media State . . . . . . . . . . . : Media disconnected”这样的回应。
255.255.255.255这个地址原本是一个有限广播,属于广播地址的一种,但在这种情况下为什么会给出全255的地址,我有点不明白。
    OK,现在我们就知道了,127.0.0.1这个特殊的地址,不仅仅是127.0.0.1,这个127.X.X.X 都是如此,它是预先一已定义在系统中,也就是内置的回环地址,这个和硬件网络设备的地址没有什么关系,它的存在是为了测试本机的tcp/ip协议工作是否正常,假设你想用抓包工具抓包,你会发现无法抓取到任何数据包,因为在对127.0.0.1进行测试的时候,产生的流量并为经过网卡,所以可以说明完全是系统内部的一个测试过程,但,通过route print还是可以看到127.0.0.1相关的几条路由,因为这些路由条目是必须存在的,以保证最基本的网络稳定性,同时也是很重要的网络调试信息。
    我们现在还原正常的测试环境,无论是手动设置IP或者是从dhcp服务器中获取IP地址,当地址输入正确,何谓“正确”,系统是从这几个方面来判定的:
1、IP地址的首个字段十进制数字必须在1-223之间(不含127),为什么?因为0开头的地址,无法当作一个IP地址来使用,其次,大于223后的地址均作为保留或测试只用,不能用在实际的网络环境中。
2、IP地址只能输入有效范围的整数,首位1-223之间,其余位0-255,当然广播地址也不行。
3、还有一些限定,在我们输入完IP后,系统内部会做一些基本的判断,以此保证IP地址合理。
当然,你在设定IP的时候也要依据当前网络地址规划而定,否则任意输入的地址,尽管逻辑上有效,如果无用,那也是没有任何实际意义的。
设置好IP,系统会根据设置的IP地址很快计算出一张路由表,也就是route print命令显示出的部分。这些是系统的内部机制,我们不用理会。这里不仅有内部127段的路由条目,还有我们新加入地址的相应路由条目。
我们打开cmd,运行route print ,来查看一下当前的路由表,如下:
Active Routes:
Network Destination    Netmask       Gateway             Interface       Metric
0.0.0.0                      0.0.0.0             192.168.0.1    192.168.5.20    20
127.0.0.0                   255.0.0.0          127.0.0.1           127.0.0.1              1
192.168.0.0                 255.255.248.0     192.168.5.20    192.168.5.20    20
192.168.5.20             255.255.255.255   127.0.0.1           127.0.0.1          20
192.168.5.255              255.255.255.255 192.168.5.20    192.168.5.20    20
224.0.0.0                   240.0.0.0          192.168.5.20    192.168.5.20    20
255.255.255.255       255.255.255.255   192.168.5.20     192.168.5.20       1
Default Gateway:    192.168.0.1
=======================================================
Persistent Routes:
   None
大家也可以打开自己当前网络的路由表对照起来看,会更清晰些。
初看这个路由表,让人感觉有点怪,怎么一开始就目的地了呢?   源在那????? 为了更容易理解,我把这个路由表的格式稍微改了一下:
------
Interface       Network Dest.    Netmask                      Gateway                 Metric
127.0.0.1             127.0.0.0           255.0.0.0             127.0.0.1                    1
127.0.0.1              192.168.5.20        255.255.255.255 127.0.0.1                20
-------
192.168.5.20       192.168.5.255    255.255.255.255 192.168.5.20          20
192.168.5.20       192.168.0.0       255.255.248.0    192.168.5.20          20
192.168.5.20       0.0.0.0              0.0.0.0                192.168.0.1             20
192.168.5.20       224.0.0.0          240.0.0.0          192.168.5.20          20
192.168.5.20       255.255.255.255 255.255.255.255   192.168.5.20              1
Default Gateway:     192.168.0.1
-------------------------
请大家注意,我把interface调到了第一列,并根据interface一列,将表分为2部分,一部分是127的路由条目,一部分是和物理网卡ip 192.168.5.20相关的路由条目。

下面我们来分析这些路由条目:
第一部分
127.0.0.1很特殊,但毕竟也是一个IP地址,它也有自己的网络地址和广播地址,尽管我们几乎用不到。所以,就存在1条经接口127.0.0.1到127.0.0.0 这个网络的路由,掩码自然是255.0.0.0,网关呢? 网关简单说就是路由的下一跳的出口地址,你想访问127.0.0.0/8的任意一个地址,显然这个地址和自己在一个网段上,没有必要跨网段,就像你想从自己家的厨房到客厅一样,不用出门就可以直接到达,因此最终的出口(下一跳)就是自己了,metric 表示跳跃数,用于确定最佳路由,在某些情况下越小越好,但也不是绝对的。


第二条可以这样理解,如果想让tcp/ip和网卡良好的通讯,就需要有一条路由可以让系统内部路由到物理网卡上,如此,才可以保证在本机上设置的任意IP均可以顺利与环回地址通讯,同时这也是系统自身网络机制必须实现的一部分。

剩下的都和网卡设置的地址有关了。
第二部分
第三条,接口为本机IP,目标为192.168.5.255,这是一个直接广播地址,也就是广播地址的另一种类型,指代一个特定网络中的所有主机。显然这里是指192.168.5.X的某一个目标地址。ping命令其实就是用的这条路由。

第四条呢,可以理解为如果某个地址和掩码255.255.248.0进行与运算后结果都是192.168.0.0,则本机地址可以与之通讯,这条路由的作用其实是代替了这个计算过程,和上一条相比,不仅仅局限与192.168.5.x网段的地址,而是符合上面条件的所有地址。比如我可以ping通192.168.0.x-192.166.7.x 的任意一个IP,就是因为这条路由在起作用。

第五条,如果访问地址并非本地,则系统会将目标地址当作0.0.0.0 掩码是0.0.0.0,也就是除本地、127地址之外的所有地址均通过192.168.0.1这个网关出去,这条路由通常被称为默认路由,说白了,你上外网就是依靠此条路由策略。就是因为有了这条路由,才可以将访问外网的请求都发给网关192.168.0.1,之后就由0.1主机上的isa2006代理去处理这些请求了。

第六条,224开头的是多播地址,这个是在某些情况下给多地址发广播时用的,因此这里会单独作为一条路由策略列出。我们平时不会直接用到这条策略,但也不可或缺。

最后一条,255.255.255.255的地址已提到过,它是广播地址的另一种被称为有限广播,同时也叫本地广播。我想经常用抓包工具的朋友对这个地址应该不会陌生,MAC地址是全F的就是目标广播地址了,arp协议会用到此地址对全部主机发送广播以实现查询特定主机的请求,由于不知道对方mac地址,所以就用全F,也就是FF-FF-FF-FF-FF-FF 来表示。

    从上面我们可以看出,下一条的指定很重要,因为它会指引系统或程序等访问请求下一个要去的地方在哪里,这点至关重要。
大致说完了,有的地方说的有点乱,请见谅。
如果有错误的地方,请大家指正,谢谢。

本文出自 “许一君的原创技术博客” 博客,请务必保留此出处http://jeffyyko.blog.51cto.com/28563/140006

重读Route Print路由表的一些心得 - 许一君的原创技术博客 - 51CTO技术博... 精解局域网访问及共享(一) - 许一君的原创技术博客 - 51CTO技术博客 cisc 路由配置命令汇总 - 技术学习 - 51CTO技术博客 交换机级联与堆叠的区别 - ckf网安技术小组 - 51CTO技术博客 集线器和交换机的区别 - ckf网安技术小组 - 51CTO技术博客 一个价值千万美金的忠告 - 北京看看 - 51CTO技术博客-领先的IT技术博客 手把手教你安装VMware虚拟机 - 虚客帝国 - 51CTO技术博客-领先的IT技术博客 在DOS下修改本机IP地址 - 大唐网络 - 51CTO技术博客-领先的IT技术博客 DHCP、网关和DNS地址的捆绑技巧 - 思念狗的骨头 - 51CTO技术博客 DHCP、网关和DNS地址的捆绑技巧 - 思念狗的骨头 - 51CTO技术博客 锐捷网络交换机的配置命令集 - ckf网安技术小组 - 51CTO技术博客 Windows组策略屏蔽U盘有妙法 - 周海鹏微软技术社区 - 51CTO技术博客-领先的... 视频会议系统的设计和实现 - 紅③白②藍① - 51CTO技术博客 基于SIP的视频会议系统研究 - 紅③白②藍① - 51CTO技术博客 SIP术语的名词解析 - 紅③白②藍① - 51CTO技术博客 多域之间的共享访问AGDLP策略 - net学无止境 - 51CTO技术博客 内存不能为READ的原因 - 殇逝 - 51CTO技术博客 开始→运行→输入的命令集锦 - 紫砂狐 - 51CTO技术博客 破解linux的root密码 - 午夜星辰 - 51CTO技术博客 管理故事:飞不出瓶口的蜜蜂 - 熊窝 - 51CTO技术博客 Excel隔行插入空白行小技巧 - Kirin的茶水间 - 51CTO技术博客 Android软键盘的隐藏显示研究 - winux - 51CTO技术博客 ITPUB的若干牛人 - 容灾-备份--Oracle数据库同步复制-DSG顾利斌的博客 - 51CTO技术博客 一个价值千万美金的忠告 - 北京看看 - 51CTO技术博客-领先的IT技术博客(转载) 08.09.05 from 大旺旺