shaohui973 发表于 2013-11-04 10:03

请教一个网关和路由的问题,谢谢。

事情是这样的:
我的pc机ip为10.0.1.156, mask 为 255.255.252.0
网关为10.0.0.1
dns为192.168.0.10

现今我的pc要把包通过网关往外发出去(ping www.qq.com),pc上没有设置默认网关,我是手动加路由的.

   route add -net 10.0.0.0 netmask 255.255.252.0 gw 10.0.0.1 dev eth0
   route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.1 dev eth0

但是这样设置后,包是出不了pc机的网口,估计是没找到路由(提示unkown host www.qq.com )。   --------------------- why?我不是添加了路由了?

如果我把第一条路由换成默认网关或者添加一条默认网关路由,就可以了。   ------why?
   route add default gw 10.0.0.1 dev eth0
   

这个默认网关说到底也是一条路由信息,为什么不设置默认网关,而改用设置普通路由网络就不行???求解,谢谢。


:roll:

ssffzz1 发表于 2013-11-04 11:47

路由是去往目的地的地址,www.qq.com的目的地址不是10和192段啊。

youfulanlan 发表于 2013-11-04 11:52

本帖最后由 youfulanlan 于 2013-11-04 12:00 编辑

这个问题我感觉你给的信息不够,有可能是dns问题 你 dig +tracewww.qq.com 一下看看是否返回dns信息
然后你ping一下119.188.89.202(www.qq.com的PTR)看是否通/
另外你为什么不把ifconfig贴出来?

shaohui973 发表于 2013-11-04 17:31

回复 2# ssffzz1


这个我知道,我抓包工具开着呢,ping的时候我的pc机连dns都没有发呢,所以不是你说的这个问题。

shaohui973 发表于 2013-11-04 17:43

回复 3# youfulanlan


    抓包我一直开着的,在没有添加默认网关时,dns包没有抓到的。
   
ifconfig 没啥信息,就是ip和mask,link state.

shaohui@freescale-sdk:~$ ifconfig -a
eth0   Link encap:EthernetHWaddr 08:00:27:5f:e7:f1
          inet addr:10.0.1.197Bcast:10.0.3.255Mask:255.255.252.0
          inet6 addr: fe80::a00:27ff:fe5f:e7f1/64 Scope:Link
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:786228 errors:66 dropped:0 overruns:0 frame:0
          TX packets:10465 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:69946817 (69.9 MB)TX bytes:1379159 (1.3 MB)
          Interrupt:10 Base address:0xd020

lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNINGMTU:16436Metric:1
          RX packets:210 errors:0 dropped:0 overruns:0 frame:0
          TX packets:210 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:20219 (20.2 KB)TX bytes:20219 (20.2 KB)


--------------------------------------------------------------------------------------------------------------------------------------
shaohui@freescale-sdk:~$ route
Kernel IP routing table
Destination   Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0   www.zj.10086.cn 255.255.255.0   UG    0      0      0 eth0
10.0.0.0      *               255.255.252.0   U   0      0      0 eth0
default         www.zj.10086.cn 0.0.0.0         UG    0      0      0 eth0---默认路由

小飞侠xl 发表于 2013-11-04 18:19

1楼已经说的很清楚了,你的路由只有到10段和192.168段的,很明显这都是私网网段啊,既然是访问腾讯,你至少要知道腾讯的ip段是那些。

shaohui973 发表于 2013-11-04 18:28

回复 6# 小飞侠xl


    你说的是一个问题。
   但是,我现在是没有配置默认网关,连DNS的包都没抓到啊,这不应该啊。我路由表中有到DNS的entry,照理,这个DNS请求的包应该能抓到啊。

silty 发表于 2013-11-04 23:02

理论上没有问题,把配置网关后ping www.qq.com的数据包贴上来。

ssffzz1 发表于 2013-11-05 09:10

你清楚掉DNS缓存再去抓。

youfulanlan 发表于 2013-11-05 09:46

本帖最后由 youfulanlan 于 2013-11-05 09:51 编辑

回复 5# shaohui973


    昨天没仔细看,是你的路由问题应该是
# route
Kernel IP routing table
Destination   Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0   *               255.255.255.0   U   0      0      0 eth0
169.254.0.0   *               255.255.0.0   U   0      0      0 eth0
default         192.168.0.254   0.0.0.0         UG    0      0      0 eth0
最下面这行决定如果你所请求的ip包地址,不在上面两行之中(192.168.0.0 和169.254.0.0)会往哪个设备发送,我的是eth0 .
www.qq.com的地址肯定不是私有ip,如果我的机器浏览这个网址的话数据包会发向 eth0.你的呢?
但是你又说你的dns解释失败,其实dns的请求包tcp,udp都有,但是这两个数据包都是有ip头的,这个ip头的目的地址就是192.168.0.10,这个地址在你的路由信息里有呀,地址应该能够正确解析呀?坐等高人回答

另外在没有默认路由的情况下,我想看看你的ping 192.168.0.10的结果
页: [1] 2
查看完整版本: 请教一个网关和路由的问题,谢谢。