登录站点

用户名

密码

赌一块五毛钱:你对路由真的很精通吗?(二)

热33已有 586 次阅读  2010-09-10 13:40   标签:  路由 
每天下班,我都要在地铁出口的冰室里买一根绿豆沙,价格一元五角。等我吃完这根冰凉可口的冰棍,刚好走回家。这是一天中最令人惬意的时光。谁敢跟我打个价值一根绿豆沙的赌,这样我可以一次买两根,然后把回家的步子速度放慢一半?
 
题目再简单不过,下面是一台路由器的相关信息:
 
R1#sh ip int b
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.1.12    YES manual up                    up
 
R1#sh ip route connected
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.1.0/24 is directly connected, FastEthernet0/0

 
路由器没有任何ACL的配置。我在路由器上打如下命令:ping 192.168.1.12,赌它不一定通。敢跟我对赌的请下注。
 
(请用鼠标按左键刷一下下面)
开盅。很不幸,你输了。
R1#ping 192.168.1.12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.12, timeout is 2 seconds:
.....
这是真的吗?的确是有可能的。因为路由器被设置了如下命令:
ip route 192.168.1.0 255.255.255.128 null 0
 
再看一下完整的路由表:
 
R1#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route
Gateway of last resort is not set
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
S       192.168.1.0/25 is directly connected, Null0
C       192.168.1.0/24 is directly connected, FastEthernet0/0
 
发现问题了吧。路由器进行路由查找的顺序是:最长匹配、管理距离、度量值。我们知道静态路由的管理距离是1,直连路的管理距离值是0,上面两条路由的管理距离是几呢?都是0,因为它们都是直连路由(有人要问“S”不是静态路由吗?是的。但我不知道,我认为它连在自已的接口上,就是直连路由)。可是,路由器根本不会考虑管理距离,它在匹配路由的时候已经根据掩码长度做出了选择。由于192.168.1.0/25比192.168.1.0/24的掩码长,它选择了192.168.1.0/25这条路由,下一跳是接口null0。于是不通。
 
不要想当然:只要是直连接口,就一定通啊。
 
我爱绿豆沙。呵呵。
 
 
分享 举报

发表评论 评论 (26 个评论)

  • Bati-gol 2010-09-10 16:05
    这个太邪恶了,还有一条到null0接口的路由被博主隐藏了,没看到,哈哈!
    动态路由中汇总路由会自动产生null0的路由,静态路由需要自己添加null0的路由。
    楼主的是写了条精细路由最长匹配之后被丢进null0,被丢进空接口不可达了。好玩!
  • chenyidong 2010-09-10 16:33
    哈哈,楼主的这个文章形式有创意,内容也好。赞一个!
  • samxyh66 2010-09-10 23:08
    显示路由的命令是sh ip route connected!细节决定成败呀!
  • tfshcsc 2010-09-11 00:10
    楼主太逗了,看来运作做事之前,要尽可能想得全面些!
  • zdh1207 2010-09-11 00:11
    samxyh66: 显示路由的命令是sh ip route connected!细节决定成败呀!
    你观察得很仔细。很好。这道题就是考你对路由表的理解和运用。我要一开始就显示全部的路由表项,一切就暴露无余。所以,很多时候我们要好好研究路由表,不要被看似简单的理论困惑。你今天最多请我吃个冰棒,明天你的客户说不定请你吃条龙虾。相信我。
  • zdh1207 2010-09-11 00:12
    chenyidong: 哈哈,楼主的这个文章形式有创意,内容也好。赞一个!
    多谢支持
  • zdh1207 2010-09-11 00:13
    Bati-gol: 这个太邪恶了,还有一条到null0接口的路由被博主隐藏了,没看到,哈哈!
    动态路由中汇总路由会自动产生null0的路由,静态路由需要自己添加null0的路由。
    楼主的
  • yuewen1122 2010-09-11 12:10
    这个 有点意思。细节啊 !
  • guohome 2010-09-13 12:41
    太坏了
  • bridge911 2010-09-13 22:36
    2 subnets 。。。。。
  • pengcent 2010-09-14 12:37
    非常不错,支持,支持
  • zdh1207 2010-09-14 15:56
    pengcent: 非常不错,支持,支持
    多谢支持!
  • xulang726 2010-09-14 16:11
    所以要用show ip route
  • zdh1207 2010-09-14 18:01
    xulang726: 所以要用show ip route
    是的。如果不提醒,相信大部分人都只会看一下show ip interface brief,看到接口  up了就完事了。
  • wxpryj 2010-09-14 20:59
  • alphakk 2010-09-15 00:41
    实验比较有意思,但要提醒一下别把数据转发决策与路由表的构建混淆了:数据转发决策的依据是掩码长度;管理距离是在不同路由进程(RIP/OSPF/EIGRP)都有通往同一目的地网络的路由的情况下,决定谁的条目可以出现在路由表里;而度量值则是路由进程内部用来决定通往同一目的地网络的哪条路由可以参与“管理距离”之争。
  • zdh1207 2010-09-15 09:22
    alphakk: 实验比较有意思,但要提醒一下别把数据转发决策与路由表的构建混淆了:数据转发决策的依据是掩码长度;管理距离是在不同路由进程(RIP/OSPF/EIGRP)都有通往同一
    不错,多谢指教.
  • winxp1980 2010-09-15 15:19
    如果修改下接口的MTU值  是不是也许也可能不通呢
  • bati21cn 2010-09-15 17:49
    alphakk: 实验比较有意思,但要提醒一下别把数据转发决策与路由表的构建混淆了:数据转发决策的依据是掩码长度;管理距离是在不同路由进程(RIP/OSPF/EIGRP)都有通往同一
    讲得不错~~
  • zdh1207 2010-09-15 18:08
    winxp1980: 如果修改下接口的MTU值  是不是也许也可能不通呢
    IPv4包的封装,最大包为65536字节,可以分片.如果接口mtu值小于包大小,包就会分片,如果设置了不许分片的flag位,并且包又大于接口的mtu值,就不通了.这跟路由没有关系.跟本题也没有关系.good question.
  • xulang726 2010-09-16 09:47
    brief多敲了一个单词,还少看不少内容,不好哦
  • winxp1980 2010-09-16 17:56
    zdh1207: IPv4包的封装,最大包为65536字节,可以分片.如果接口mtu值小于包大小,包就会分片,如果设置了不许分片的flag位,并且包又大于接口的mtu值,就不通了.这跟路由没有关
    呵呵   我的意思是修改MTU值在这个题目中也是可以实现的   而且如果我修改MTU值的话  在R1#sh ip int b和show ip route 中看都是正常的  而且MTU值修改在有些版本的IOS中是不体现的  必须查看show inter f0/0才可以看到的
  • zdh1207 2010-09-16 21:46
    winxp1980: 呵呵   我的意思是修改MTU值在这个题目中也是可以实现的   而且如果我修改MTU值的话  在R1#sh ip int b和show ip route 中看都是正常的  而且MTU值修改在有些版
    正常MTU是1500字节,如果一个ping包大小为1600字节,它会丢包吗?不会;如果你把MTU改小,比方说630字节,这个ping会丢包吗?好像也不会。你要改成多少才会丢包呢?而且,以太网接口的mtu好像并不允许你改的。
  • winxp1980 2010-09-17 09:36
    zdh1207: 正常MTU是1500字节,如果一个ping包大小为1600字节,它会丢包吗?不会;如果你把MTU改小,比方说630字节,这个ping会丢包吗?好像也不会。你要改成多少才会丢包
    这个貌似是要看是路由还是交换了   如果是交换的话   修改全局MTU值  会出现不通的情况
  • zdh1207 2010-09-17 15:56
    winxp1980: 这个貌似是要看是路由还是交换了   如果是交换的话   修改全局MTU值  会出现不通的情况
    是吧.能否从原理上解释一下?比如从IPV4包的封装上讲讲.
  • majuner 2010-10-20 11:59
    winxp1980: 这个貌似是要看是路由还是交换了   如果是交换的话   修改全局MTU值  会出现不通的情况
    改小mtu。这个是指互联两台设备的mtu值不对称的情况么? 如果是这样的话,会丢包。但和本题目有些偏离!
涂鸦板