[code][allblue@MyLady scrot]$ traceroute -n -I www.baidu.com traceroute: Warning: www.baidu.com has multiple addresses; using 119.75.217.56
traceroute to www.a.shifen.com (119.75.217.56), 30 hops max, 40 byte packets
1 112.4.49.1 3.891 ms 4.918 ms 4.303 ms
2 112.4.49.1 4.390 ms 4.515 ms 4.384 ms
3 221.181.243.21 4.928 ms 4.353 ms 4.514 ms
4 221.181.243.226 6.984 ms 6.419 ms 5.921 ms
5 221.181.217.246 6.122 ms 5.720 ms 9.095 ms
6 * * *
^C
[allblue@MyLady scrot]$ ping -t 1 -c 3 www.baidu.com PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 112.4.49.1 icmp_seq=1 Time to live exceeded
From 112.4.49.1 icmp_seq=2 Time to live exceeded
From 112.4.49.1 icmp_seq=3 Time to live exceeded
[allblue@MyLady scrot]$ ping -t 2 -c 3 www.baidu.com PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 112.4.49.1 icmp_seq=1 Time to live exceeded
From 112.4.49.1 icmp_seq=2 Time to live exceeded
From 112.4.49.1 icmp_seq=3 Time to live exceeded
[allblue@MyLady scrot]$ ping -t 3 -c 3 www.baidu.com PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.243.21 icmp_seq=1 Time to live exceeded
From 221.181.243.21 icmp_seq=2 Time to live exceeded
From 221.181.243.21 icmp_seq=3 Time to live exceeded
[allblue@MyLady scrot]$ ping -t 4 -c 3 www.baidu.com PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.243.226 icmp_seq=1 Time to live exceeded
From 221.181.243.226 icmp_seq=2 Time to live exceeded
From 221.181.243.226 icmp_seq=3 Time to live exceeded
[allblue@MyLady scrot]$ ping -t 5 -c 3 www.baidu.com PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.217.246 icmp_seq=1 Time to live exceeded
From 221.181.217.246 icmp_seq=2 Time to live exceeded
From 221.181.217.246 icmp_seq=3 Time to live exceeded
daen 于 2011-06-27 14:01:02发表:
围观....
fsxlp101 于 2011-06-27 13:46:03发表:
我有点郁闷 , 直连怎么 会不通 呢。 你PC2ping不通10.10.2.1 那就很奇怪,要么是你网卡的问题, 或者是linux上的防火墙规则,一般linux的网卡和windows的网卡, 容易乱,你最后一个个的试试
eku123 于 2011-06-27 09:40:34发表:
1# liushihan
根据图示,pc1和pc2应该是在宿主linux上通过vmware建立的虚拟机,且pc1与pc2的网络模式为桥接模式
这样的话启动eth1与eth2两个网络接口是没有意义的
正确的方法是将pc1与pc2的网络模式设为桥接模式
然后都绑定在eth0上
并且设置为192.168.0.X的网络地址(图中未表示掩码)
网关设置为192.168.0.1(dlink)
这样三台机器互相都可以通信,并且都可访问外网。
hstking 于 2011-06-26 22:49:42发表:
嗯。老实说,我只知道不同网段是不能ping通,但具体为什么。还真没弄得太懂。
呵呵……
谢谢了,不然要一直迷糊下去。
有问题再请教。
age 于 2011-06-26 22:46:43发表:
另外再说点
在数据包传递过程中, 除非到达终点, 否则不从帧上解封装的
所以对于上面的例子
A-B-C-D-E
当ping E时, icmp包先被ip头封装, 再被帧封装, 然后在经过每个结点时, 帧头都会被改写, 因为帧使用的源地址和目标地址都只是mac值, 它们只有在本地才有效. 但是帖里所封装的数据包是不会受到任何改变的.因为目标ip地址标识了最终的目的地, 直到它到达E, 才会从帧上解封装, 这时发现它是一个icmp requrest, 因而E机返回一个icmp echo, 同样是先用ip头封装, 再用帧封装, 沿原路返回. A机从而可以显示ping结果
在整个过程中, icmp包只在A和E二台机上被处理, 所以只能说ping只发生在A和E机中, 而不包括B C D.
age 于 2011-06-26 22:33:28发表:
[i=s] 本帖最后由 age 于 2011-6-26 22:34 编辑 [/i]
上面的所有讨论都是关于"不同网段是否能ping通"啊
你如果想深入了解这个东西, 最好还是学学七层模型
至于错误, 我前面已经指出不少了吧
想讨论的话可以上irc, 我一般常驻的(so):)
hstking 于 2011-06-26 22:24:58发表:
我们讨论了半天的焦点不就是不同网段是否能ping通吗?
OSI的七层模型我只是知道有这回事,但并不精通。
有什么错误请提出,我学习。
另外,我是菜鸟,有问题可以发邮件或者MSN请教吗?
age 于 2011-06-26 22:22:43发表:
[i=s] 本帖最后由 age 于 2011-6-26 22:24 编辑 [/i]
1. icmp不是tcp包, 而是icmp包, 如前所述, tcp/udp是第4层协议, 而icmp是第三层. 所以它不可能使用tcp封装. 它是以ip包封装的.
2. ping默认使用的udp包
3. 传输层就二个协议, tcp, udp. 但却绝不是最重要的. 这里面至少要加上ip. 它是所有上层协议的传送基础. 以路由器为例, 它们转发数据包都是以ip为基准, 而不是tcp/udp. 只有到达目标主机后, 才会从数据包中解压出数据段交给上层协议
hstking 于 2011-06-26 22:13:38发表:
ping 命令发送的是一个icmp包。
而icmp数据包是一个tcp的数据包。所以icmp的传送和数据包传送是一样的。
而且我的意思也不是说traceroute原理应该是A ping B, B ping C,....D ping E
你说的TTL我明白,对此我并无异议。
在我看来,目前流行的传输方式只有tcp和udp。所以……
age 于 2011-06-26 22:00:56发表:
[i=s] 本帖最后由 age 于 2011-6-26 22:09 编辑 [/i]
你应该再去好好看看OSI七层模型, 然后是服务, 接口, 协议三者之间的区别
一个数据的在不同层的封装方式依次为
应用层----数据
传输层----数据段
网络层----数据包
数据链路层---帧
物理层---比特
ping使用的icmp属于第三层协议, 它的对像是数据包. 它不需要关心下层帧如何转发的. 它期望接收的也是数据包而不是帧
另外最近一个路由和主机属于同网段这和ping无关, 而是网络基本原理. 如果它们ip不设为同网段, 那根本不通的. 建议你找本网络基本原理的书看看.
最后要强调的一点是, ping只是icmp协议, 它只是很小的一个协议. ip地址属于ip协议, 它和icmp协议是分开的. 如果二台直连的机子,ip不是同段, 那么必然不通, 这个不通是基于IP地址的, 而不是基于icmp协议
age 于 2011-06-26 21:53:36发表:
[i=s] 本帖最后由 age 于 2011-6-26 21:54 编辑 [/i]
[code][allblue@MyLady scrot]$ traceroute -n -I www.baidu.com
traceroute: Warning: www.baidu.com has multiple addresses; using 119.75.217.56
traceroute to www.a.shifen.com (119.75.217.56), 30 hops max, 40 byte packets
1 112.4.49.1 3.891 ms 4.918 ms 4.303 ms
2 112.4.49.1 4.390 ms 4.515 ms 4.384 ms
3 221.181.243.21 4.928 ms 4.353 ms 4.514 ms
4 221.181.243.226 6.984 ms 6.419 ms 5.921 ms
5 221.181.217.246 6.122 ms 5.720 ms 9.095 ms
6 * * *
^C
[allblue@MyLady scrot]$ ping -t 1 -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 112.4.49.1 icmp_seq=1 Time to live exceeded
From 112.4.49.1 icmp_seq=2 Time to live exceeded
From 112.4.49.1 icmp_seq=3 Time to live exceeded
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms
[allblue@MyLady scrot]$ ping -t 2 -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 112.4.49.1 icmp_seq=1 Time to live exceeded
From 112.4.49.1 icmp_seq=2 Time to live exceeded
From 112.4.49.1 icmp_seq=3 Time to live exceeded
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2001ms
[allblue@MyLady scrot]$ ping -t 3 -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.243.21 icmp_seq=1 Time to live exceeded
From 221.181.243.21 icmp_seq=2 Time to live exceeded
From 221.181.243.21 icmp_seq=3 Time to live exceeded
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms
[allblue@MyLady scrot]$ ping -t 4 -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.243.226 icmp_seq=1 Time to live exceeded
From 221.181.243.226 icmp_seq=2 Time to live exceeded
From 221.181.243.226 icmp_seq=3 Time to live exceeded
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms
[allblue@MyLady scrot]$ ping -t 5 -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.56) 56(84) bytes of data.
From 221.181.217.246 icmp_seq=1 Time to live exceeded
From 221.181.217.246 icmp_seq=2 Time to live exceeded
From 221.181.217.246 icmp_seq=3 Time to live exceeded
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms[/code]
hstking 于 2011-06-26 21:51:13发表:
对,不光是ping,而且网络传输数据包的时候也只能在同网段传输。
如果按照你的理论,无须同一网段就可以ping 。那同样可以反推一个结论,那就是离目标主机最近的那个route是可以于目标ip不同网段的。
但在实际情况,所有的离目标ip最近的那个route必然是同一网段的。
age 于 2011-06-26 21:46:46发表:
[i=s] 本帖最后由 age 于 2011-6-26 21:49 编辑 [/i]
ping和traceroute原理是完全不一样的
假设A机和E机的网络结构为 A-B-C-D-E, 其中BCD为路由
那么traceroute E, 它的流程应该是这样
先ping B, 并把TTL设为1, 这样到达B时, TTL降为0, B将丢失这个报文, 并通告A. 从而可以获得B的IP地址
再把TTL设为2, 重新发出, 经过B时TTL降为1, 到达C, 这时TTL再降为0, 与上面类似, 又可以获得C的ip
以此类推, 通过逐渐增加TTL, 就可以把沿途的结点全部标识出来
至于最后一个显示的IP和目标主机属于同网络这个必然的, 因为E机是直连在路由器上D上的, 它们必然属于同网络.
按我的理解, 你的意思traceroute原理应该是A ping B, B ping C,....D ping E?
你可以用ping -t
hstking 于 2011-06-26 21:37:53发表:
好吧,这样吧。
你执行traceroute www.sina.com.cn,然后再看结果。
到目标主机的最后一个route 是不是于目标ip是同一网段。
age 于 2011-06-26 21:33:20发表:
[i=s] 本帖最后由 age 于 2011-6-26 21:38 编辑 [/i]
如果你仔细看上面那二个ip地址就可以回答你的问题了
可以通过反证法证明下:
按你逻辑, 如果我能ping通某个ip, 那么大家应该就是同网段, 从而可以得到221.130.29.16处于同网段的结论, 同理也可以得到119.75.217.56属于同网段. 因而221.130.29.16, 119.75.217.56也是同网段, 但你觉得这二个能是同网段吗? 另外这三个都是公网ip, 也不存在nat.
最近附上我的公网ip, 112.4.49.x(为安全起见, 最后8位隐去), 这个ip又和上面那二个同网段吗?
hstking 于 2011-06-26 21:00:50发表:
ifconfig显示的是wlan0的ip。
如果图片显示的是ifconfig所有的结果,可以判断使用的是路由自动拨号。
这于我所说的ping同一网段并不矛盾。
age你使用的上网方式可以说是标准的nat方式上网。
wlan0通过路由nat上网。路由拨号。你能ping通互联网的网址,并不是由你本机ping的,而是通过路由也就是192.168.1.1这个ip来ping的。
并且,192.168.1.1拨号成功后必然被分配了一个网络ip。所以……
age 于 2011-06-26 20:40:21发表:
不知道你从哪里看来的这个方法, 这显然是完全错误的
按照你的说法, 我只能ping通局域网内, 根本没法应用到internel
以下面几个操作为例
先显示下我的ip, 192.168.1.101/24, 标准的私有地址[code][allblue@MyLady scrot]$ ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:494 errors:0 dropped:0 overruns:0 frame:0
TX packets:494 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:39457 (38.5 Kb) TX bytes:39457 (38.5 Kb)
wlan0 Link encap:Ethernet HWaddr 00:24:2C:E4:BF:CC
inet addr:192.168.1.101 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::224:2cff:fee4:bfcc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:291271 errors:0 dropped:0 overruns:0 frame:0
TX packets:239411 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:359015792 (342.3 Mb) TX bytes:27402290 (26.1 Mb)[/code]然后随便从网上找几个ip试试[code]
#这个是www.sina.com.cn的ip
[allblue@MyLady scrot]$ ping -c 3 221.130.29.16
PING 221.130.29.16 (221.130.29.16) 56(84) bytes of data.
64 bytes from 221.130.29.16: icmp_req=1 ttl=57 time=5.99 ms
64 bytes from 221.130.29.16: icmp_req=2 ttl=57 time=5.34 ms
64 bytes from 221.130.29.16: icmp_req=3 ttl=57 time=5.63 ms
--- 221.130.29.16 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 5.343/5.657/5.993/0.265 ms
#再来一个baidu的
[allblue@MyLady scrot]$ ping -c 3 119.75.217.56
PING 119.75.217.56 (119.75.217.56) 56(84) bytes of data.
64 bytes from 119.75.217.56: icmp_req=1 ttl=46 time=36.6 ms
64 bytes from 119.75.217.56: icmp_req=2 ttl=46 time=38.7 ms
64 bytes from 119.75.217.56: icmp_req=3 ttl=46 time=37.1 ms
--- 119.75.217.56 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 36.686/37.512/38.736/0.896 ms
[/code]
hstking 于 2011-06-26 19:47:35发表:
局域网内ping 只能ping通本网段ip。
能ping通其他网段,那是因为子网掩码的原因。
比如。192.168.1.33/255.255.0.0是可以ping通f192.168.2.44/255.255.0.0。
但这也是因为这两个ip处于同一网段。
楼上的解决方案是根据nat服务提出的。
但楼主的问题不在于这里。他是可以ping通部分ip的。SO......
age 于 2011-06-26 19:16:46发表:
这点就说错了, ping后面的ip是任意的, 甚至广播也行
从现像来看, 可能的几个问题
1. 路由器没开通ip转发, 你可以ping通的三个ip都是在路由器上, 而路由器外的ip全ping不通, 这也是最可能原因.[code] echo "1" > /proc/sys/net/ipv4/ip_forward [/code]2. 对于主机pc1, pc2而言, 防火墙是否正常. 对于如图应用, 最起码的要求是[code] #OUTPUT链默认开放, 亦即本机发出的流量全部允许
iptables -P OUTPUT ACCEPT
#INPUT链至少开放icmp协议类型0和8, 这是ping使用的协议
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT[/code]
hstking 于 2011-06-26 17:39:19发表:
这才是对的啊。要是能ping通,那才有点不可思议了。
ping命令最基本的原则就是,只能ping通同一网段的ip。
你能ping通llinux route的3个ip。估计是因为你三个网络接口都再同一个网卡上。
佳佳佳佳 于 2011-06-26 14:04:09发表:
最怕这个东东.