PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

一个简单的办公网络问题求指教

[复制链接]
跳转到指定楼层
1#
kinno 发表于 2013-1-26 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:4473|回复数:14
本帖最后由 kinno 于 2013-1-26 13:39 编辑

大家好,我又来请教大家网络问题了
有如图所示网络环境:

除了R1与互联网的链接不是以太网网线,其他线路都是以太网网线。
所有ip地址都是手动指定。路由器所示的地址都是和PC相连的端口的ip,而且R2的ip是和PC的B网卡在同一网段,图上忘记写了。
以下情况相互独立,互不相关。


情况一:在搭建好之后,在PC1上查看路由表,如下:

接下来ping web服务器10.141.8.12,有如下结果:
C:\Windows\system32>ping 10.141.8.12
正在 Ping 10.141.8.12 具有 32 字节的数据:
来自 10.141.8.12 的回复: 字节=32 时间=34ms TTL=249
来自 10.141.8.12 的回复: 字节=32 时间=34ms TTL=249
来自 10.141.8.12 的回复: 字节=32 时间=33ms TTL=249
来自 10.141.8.12 的回复: 字节=32 时间=37ms TTL=249

10.141.8.12 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 33ms,最长 = 37ms,平均 = 34ms

接下来用trace命令观察到web服务器的路由情况,如下:
C:\Windows\system32>tracert -d 10.141.8.12

通过最多 30 个跃点跟踪到 10.141.8.12 的路由

  1    <1 毫秒   <1 毫秒   <1 毫秒 192.168.10.1
  2     *        *        *     请求超时。
  3     *        *        *     请求超时。
  4     *        *        *     请求超时。
  5     *        *        *     请求超时。
  6     *        *        *     请求超时。
  7    34 ms    31 ms    33 ms  10.141.8.12

跟踪完成。

可以看到,ping通了web服务器。但是我无法在浏览器打开web服务器,为什么呢?
我自己的分析是:这台PC要访问web服务器,在当前情况下经过A网卡通过R1进行访问R2(trace看出来的),ping通,但是不能通过web访问,是不是web服务器做了访问限制?


情况二:网络环境配置好之后,为了能访问web服务器,我手动添加一条路由
C:\Windows\system32>route add 10.0.0.0 mask 255.0.0.0 10.141.73.139
操作完成!

这样新路由表如下:
IPv4 路由表
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0     192.168.10.1   192.168.10.200    276
         10.0.0.0        255.0.0.0            在链路上     10.141.73.139     21
    10.141.73.128  255.255.255.128            在链路上     10.141.73.139    276
    10.141.73.139  255.255.255.255            在链路上     10.141.73.139    276
    10.141.73.255  255.255.255.255            在链路上     10.141.73.139    276
   10.255.255.255  255.255.255.255            在链路上     10.141.73.139    276
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    306
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    306
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
     192.168.10.0    255.255.255.0            在链路上    192.168.10.200    276
   192.168.10.200  255.255.255.255            在链路上    192.168.10.200    276
   192.168.10.255  255.255.255.255            在链路上    192.168.10.200    276
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    306
        224.0.0.0        240.0.0.0            在链路上    192.168.10.200    276
        224.0.0.0        240.0.0.0            在链路上     10.141.73.139    276
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
  255.255.255.255  255.255.255.255            在链路上    192.168.10.200    276
  255.255.255.255  255.255.255.255            在链路上     10.141.73.139    276
永久路由:
  网络地址          网络掩码  网关地址  跃点数
          0.0.0.0          0.0.0.0     192.168.10.1     默认

好,接下来我试图要成功访问web服务器,但是我反复做过测试有如下很让我费解的情况:
配置好网络环境,手动添加10.0.0.0 mask 255.0.0.0 10.141.73.139路由之后。A:如果先ping,那么第一个包一定丢失,接下来三个包会成功,如果继续ping,一直都是成功的。接下来用trace命令,会收到如此结果
C:\Windows\system32>tracert -d 10.141.8.12

通过最多 30 个跃点跟踪到 10.141.8.12 的路由

  1    <1 毫秒   <1 毫秒   <1 毫秒 192.168.10.1
  2     *        *        *     请求超时。
  3     *        *        *     请求超时。
  4     *        *        *     请求超时。
  5     *        *        *     请求超时。
  6     *        *        *     请求超时。
  7    34 ms    33 ms    33 ms  10.141.8.12

跟踪完成。

B:先trace后ping,trace会有如下结果:
C:\Windows\system32>tracert -d 10.141.8.12

通过最多 30 个跃点跟踪到 10.141.8.12 的路由

  1  10.141.73.139  报告: 无法访问目标主机。

跟踪完成。

再ping,如下:
C:\Windows\system32>ping 10.141.8.12

正在 Ping 10.141.8.12 具有 32 字节的数据:
来自 10.141.73.139 的回复: 无法访问目标主机。
来自 10.141.8.12 的回复: 字节=32 时间=34ms TTL=249
来自 10.141.8.12 的回复: 字节=32 时间=35ms TTL=249
来自 10.141.8.12 的回复: 字节=32 时间=34ms TTL=249

10.141.8.12 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 34ms,最长 = 35ms,平均 = 34ms

发现了没,第一个包又丢失了。
我的分析如下:我手动添加了路由,在情况A时,ping的第一个包查找路由表,根据我写的路由进行操作,但是显然失败了,这条路由失效。于是下一个包再查找路由表时,直接找到了网关,于是接下来的ping都通了,trace也OK。在情况B时,执行trace命令时查路由表,依据手写路由操作,失败,收到10.141.73.139的失败反馈。再ping,情况和A就一样了。
对于情况二,我想问两个问题:
1,我上面的分析对不对(也就是说路由表某一条路由失效之后,接下来系统会不会自动的放弃失效路由去选择其他有效路由)。
2,我写的路由为什么不对?


情况三:网络环境配置好之后,为了能访问web服务器,我手动添加一条路由
C:\Windows\system32>route add 10.0.0.0 mask 255.0.0.0 10.141.73.129
操作完成!

新路由表如下:
IPv4 路由表
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0     192.168.10.1   192.168.10.200    276
         10.0.0.0        255.0.0.0    10.141.73.129    10.141.73.139     21
    10.141.73.128  255.255.255.128            在链路上     10.141.73.139    276
    10.141.73.139  255.255.255.255            在链路上     10.141.73.139    276
    10.141.73.255  255.255.255.255            在链路上     10.141.73.139    276
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    306
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    306
  127.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
     192.168.10.0    255.255.255.0            在链路上    192.168.10.200    276
   192.168.10.200  255.255.255.255            在链路上    192.168.10.200    276
   192.168.10.255  255.255.255.255            在链路上    192.168.10.200    276
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    306
        224.0.0.0        240.0.0.0            在链路上    192.168.10.200    276
        224.0.0.0        240.0.0.0            在链路上     10.141.73.139    276
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    306
  255.255.255.255  255.255.255.255            在链路上    192.168.10.200    276
  255.255.255.255  255.255.255.255            在链路上     10.141.73.139    276
永久路由:
  网络地址          网络掩码  网关地址  跃点数
          0.0.0.0          0.0.0.0     192.168.10.1     默认

这样子一切就正常了,第一个ping包不再丢失,trace和ping的先后都没有影响了,而且ping的延迟大幅降低,可见新路由确实起作用了:
C:\Windows\system32>ping 10.141.8.12

正在 Ping 10.141.8.12 具有 32 字节的数据:
来自 10.141.8.12 的回复: 字节=32 时间=8ms TTL=126
来自 10.141.8.12 的回复: 字节=32 时间=4ms TTL=126
来自 10.141.8.12 的回复: 字节=32 时间=4ms TTL=126
来自 10.141.8.12 的回复: 字节=32 时间=1ms TTL=126

10.141.8.12 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 1ms,最长 = 8ms,平均 = 4ms

trace命令也很快收到反馈:
C:\Windows\system32>tracert -d 10.141.8.12

通过最多 30 个跃点跟踪到 10.141.8.12 的路由

  1     5 ms     4 ms     4 ms  10.141.73.129
  2     4 ms     4 ms     4 ms  10.168.1.4
  3     4 ms     4 ms     4 ms  10.141.8.12

跟踪完成。

我想问的事,手动添加路由为什么要按照情况三那样写,情况二为什么不可以呢。让我震惊的是ping能通啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
wsy2220 发表于 2013-1-26 14:13 发自PCEVA移动客户端 | 只看该作者

评分

参与人数 1活跃度 +5 收起 理由
kinno + 5 谢谢召唤

查看全部评分

3#
gmx168 发表于 2013-1-26 14:42 | 只看该作者
情况一:你ping 10.141.8.12,通,但不能打开Web,是因为,你ping通的设备地址虽然也是10.141.8.12,但不是你要访问的那台服务器,而是网络供应商内网的某台设备。

分析一下,你ping 10.141.8.12时,PC1查路由表,没有发现有关10.141.8.12的路由表项,所以走默认路由,数据包发往R1,去往互联网。

那为什么又能通呢?因为10.x.x.x的地址属于私有地址,企业内部拿来构建内部网络的,巧合的是你ISP内部网络正好使用了这个IP地址,而且还不禁止ICMP,所以你才能够ping通。

从你几种情况的PING测试结果也能看出来,不同的延迟也说明你几次ping的不是同一台设备。

--------------------------------------------------------------------------------------------------------------------------



情况二:route add 10.0.0.0 mask 255.0.0.0 10.141.73.139
这是添加静态路由,跟据语法,最后那个地址应该是网关地址,也就是,下一跳地址。

10.141.73.139是网卡B的接口地址,而不是路由10.0.0.0/8的下一跳地址,下一跳地址应该是10.141.73.129,也即R2的接口地址。

因此你情况三,才是正确的路由配置:route add 10.0.0.0 mask 255.0.0.0 10.141.73.129


--------------------------------------------------------------------------------------------------------------------------


如果你希望手工添加的路由在电脑重启后仍然有效,请加上-p参数,命令为:

route add 10.0.0.0 mask 255.0.0.0 10.141.73.129 -p

4#
kinno  楼主| 发表于 2013-1-26 17:02 | 只看该作者
gmx168 发表于 2013-1-26 14:42
情况一:你ping 10.141.8.12,通,但不能打开Web,是因为,你ping通的设备地址虽然也是10.141.8.12,但不是 ...

谢谢答复。
对情况1,可否认为两台路由器之间是相连的?我认为是的。那么两台相连的路由器应该能学到相连端口的路由啊。所以我想问,对于pc发出的ping包,R1为什么不转发给R2呢?或者说,R1和R2之间,在当前配置下,根本就是不相通的(因为R1R2相连端口的ip不在同一网段)?还有,那么巧合垃圾联通的网络存在10开头的ip么 ,那我在家ping某个10开头的地址,也许也会收到答复?


情况二的第一个问题还没答复,麻烦给分析下。添加路由命令的语法就是描述下一跳的ip,而非本地接口的地址。根据这个精确的定义那我就明白了,不能自己想当然乱写。我天真的以为凡是发往10.0.0.0的数据全部交给网卡B发出去(其实是网卡B收到包之后根本就不知道往哪里发了),自然R2就就收到进行处理即可,于是路由表就这么写错了。根据我所知,如果把网卡B和R2之间的连接线换成串行线路,那么我在情况二里写的路由是否就对了?印象中以太网连接路由必须指出下一跳地址,而串行线路即可以指出下一跳地址也可以指出本地端口名称(或本地端口ip)。


情况三,-p我忘记加入了,谢谢提醒。
5#
gmx168 发表于 2013-1-26 20:12 | 只看该作者
对情况1,可否认为两台路由器之间是相连的?我认为是的。那么两台相连的路由器应该能学到相连端口的路由啊。

你图上的那个S1是指交换机吧?而且还是2层的。那么,是的,2个路由器物理上是连接的,但是逻辑上是不通的,因为不在同一网段的设备没有3层设备的帮助是无法通讯的,因此R1不能知道R2的地址或路由,反之也是~~~互相都不认识,还学个屁啊。

所以我想问,对于pc发出的ping包,R1为什么不转发给R2呢?

R1根本不知道R2的存在,如果转发包?就只知道的话,你也得在R1上配置转发才行。

或者说,R1和R2之间,在当前配置下,根本就是不相通的(因为R1R2相连端口的ip不在同一网段)?

对。

还有,那么巧合垃圾联通的网络存在10开头的ip么 ,那我在家ping某个10开头的地址,也许也会收到答复?

10开头的IP地址,在企业内部网络被广泛使用,联通电信也不例外,属于内部管理使用。你在家完全有可能ping通10打头、172.16或者192.168打头的地址。

--------------------------------------------------------------------------------

情况二的第一个问题还没答复,麻烦给分析下。

对于在错误语法下产生的不可预期,我如何能回答?

添加路由命令的语法就是描述下一跳的ip,而非本地接口的地址。根据这个精确的定义那我就明白了,不能自己想当然乱写。我天真的以为凡是发往10.0.0.0的数据全部交给网卡B发出去(其实是网卡B收到包之后根本就不知道往哪里发了),自然R2就就收到进行处理即可,于是路由表就这么写错了。根据我所知,如果把网卡B和R2之间的连接线换成串行线路,那么我在情况二里写的路由是否就对了?印象中以太网连接路由必须指出下一跳地址,而串行线路即可以指出下一跳地址也可以指出本地端口名称(或本地端口ip)。

是的,有些设备的路由是可以写自己接口地址的,但PC不行,具体情况具体分析,都得先看文档。
--------------------------------------------------------------------------------

6#
kinno  楼主| 发表于 2013-1-27 00:18 | 只看该作者
gmx168 发表于 2013-1-26 20:12
对情况1,可否认为两台路由器之间是相连的?我认为是的。那么两台相连的路由器应该能学到相连端口的路由啊 ...

感谢。
情况二的第一个问题,应该不是语法错吧?我觉得可以认为是路由表内某一条路由失效,系统有一个备用方案(这里就是发往网关)。好吧,我自己YY的。


对于情况一,你描述的ping包被转发给互联网的问题,我有点不解。不是说路由器遇到10,172.16,192.168开头的目的地址不会转发向公网的么,我如何会收到的呢?
7#
gmx168 发表于 2013-1-27 00:38 | 只看该作者
情况二的第一个问题,应该不是语法错吧?我觉得可以认为是路由表内某一条路由失效,系统有一个备用方案(这里就是发往网关)。好吧,我自己YY的。

路由失效,这条路由就会从路由表中删除,也就是说路由表中就查不到这条路由了。

--------------------------------------------------------------------------------

对于情况一,你描述的ping包被转发给互联网的问题,我有点不解。不是说路由器遇到10,172.16,192.168开头的目的地址不会转发向公网的么,我如何会收到的呢?

不会转发公网指的是跨ISP的网络边界,但ISP内部还是会使用这些私有地址的。
举个例子:你用的是电信的网络的话,电信ISP本地内部可能会使用10带头这样的私有地址,因为这些路由都在它自己的掌控之内,但是其他的ISP,例如联通,就不会往电信的这些10打头的私有地址发包了。
8#
kinno  楼主| 发表于 2013-1-27 11:55 | 只看该作者
gmx168 发表于 2013-1-27 00:38
情况二的第一个问题,应该不是语法错吧?我觉得可以认为是路由表内某一条路由失效,系统有一个备用方案(这 ...

好的,非常感谢,明白咯
9#
XXHJACK 发表于 2013-1-28 11:09 | 只看该作者
gmx168 发表于 2013-1-26 14:42
情况一:你ping 10.141.8.12,通,但不能打开Web,是因为,你ping通的设备地址虽然也是10.141.8.12,但不是 ...

个人认为他这种情况下!1的问题应该是2台路由未通。后面2-3你分析没问题。
10#
gmx168 发表于 2013-1-28 11:16 | 只看该作者
XXHJACK 发表于 2013-1-28 11:09
个人认为他这种情况下!1的问题应该是2台路由未通。后面2-3你分析没问题。 ...

对于问题一,你可以说详细一点。
11#
XXHJACK 发表于 2013-1-28 11:26 | 只看该作者
对于问题一,个人认为2台路由同时连接一台2层交换机,服务数据向上转发,如果不设置路由表或者直接连接的话应该是隔断的,当然是lan-lan口。
12#
gmx168 发表于 2013-1-28 14:20 | 只看该作者
XXHJACK 发表于 2013-1-28 11:26
对于问题一,个人认为2台路由同时连接一台2层交换机,服务数据向上转发,如果不设置路由表或者直接连接的话 ...

不知你注意到没有,2个路由器的内网接口地址不在同一个网段,也就是说,这2个路由器之间是无法通讯的。
13#
kinno  楼主| 发表于 2013-1-28 14:21 | 只看该作者
XXHJACK 发表于 2013-1-28 11:26
对于问题一,个人认为2台路由同时连接一台2层交换机,服务数据向上转发,如果不设置路由表或者直接连接的话 ...

我认为情况一的问题,两台路由器是没联通的
14#
XXHJACK 发表于 2013-1-28 14:30 | 只看该作者
gmx168 发表于 2013-1-28 14:20
不知你注意到没有,2个路由器的内网接口地址不在同一个网段,也就是说,这2个路由器之间是无法通讯的。 ...

我就是这个意思!
15#
gmx168 发表于 2013-1-28 15:45 | 只看该作者
XXHJACK 发表于 2013-1-28 14:30
我就是这个意思!

嗯,那就ok。

由于PC有2块网卡,配置了对应于2台路由器相同网段的IP地址,所以这台PC和2台路由器是能够通讯的。

在情况一,PC发起对Web服务器的ping包,PC查本机路由表,未发现前往Web服务器的路由表项,因此通过默认路由转发PING包至网关,也即路由器R1内网接口,R1做NAT将ping包地址转换后发往公网。这前后都不关路由器R2的事情。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部