为什么我的IP地址是公开的但不是私有的?

时间:2014-01-13 20:06:09

标签: networking ip ip-address ping ethernet

在我的工作中,我有一个与internet ethernet连接的桌面。 它没有private IP address,而是公开的172.16.30.208。 我无线连接的笔记本电脑IP address又不是私密的:128.208.138.125.

当我从桌面ping我的笔记本电脑(收到数据包)时

ping 128.208.138.125, 
PING 128.208.138.125 (128.208.138.125): 56 data bytes
64 bytes from 128.208.138.125: icmp_seq=0 ttl=59 time=83.788 ms
64 bytes from 128.208.138.125: icmp_seq=1 ttl=59 time=24.384 ms
64 bytes from 128.208.138.125: icmp_seq=2 ttl=59 time=120.292 ms

但当我从笔记本电脑ping我的桌面时(没有回复)

ping 172.16.30.208
PING 172.16.30.208 (172.16.30.208): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2

问题是: 为什么两台计算机上的IP address都不是私有的? (以192.X.X.X10.X.X.X开头的任何内容都是私有的,我想)

为什么我能够ping从桌面到笔记本电脑而不是其他方式?

我知道台式机和笔记本电脑都在不同的网络中。

1 个答案:

答案 0 :(得分:1)

172.16.0.0到172.31.255.255范围内的地址也是保留的,如192.168.x.x和10.x.x.x,并且不在外部路由。 http://en.wikipedia.org/wiki/Reserved_IP_addresses。因此,以太网路由器上的DHCP设置与更常见的192.168.x.x或10.x.x.x默认值不匹配,但路由器未分发公共地址。

编辑 - 因为评论越来越长:

由于NAT(http://en.wikipedia.org/wiki/Network_address_translation),桌面可以成功ping通笔记本电脑。这就是具有内部IP的任何机器能够从本地网络外部获取数据的方式。继续这个问题的例子:桌面组装了一个ping请求数据包,笔记本电脑的公共IP作为目的地。当本地路由器发现目的地是外部的但源是内部的时,它会在发送之前交换路由器自己的公共地址的源地址。这意味着笔记本电脑只是直接回复路由器。但是,当路由器获得响应时,它会记住实际请求ping的本地设备,并将响应中的目标地址从路由器公共地址交换到正确的内部地址,然后再传递到内部网络。

编辑 - 在笔记本电脑方面阐述

快速免责声明:笔记本电脑IP的公共/私人问题非常特定于UW网络设置,我实际上没有使用过,所以下面的大部分内容都是根据评论中的链接推测的。

答案简短: 128.208.135.125是由UW拥有的公共IP地址。它一次只能分配给一台设备(即你的笔记本电脑)。

答案很长: UW网络运行不同类型的NAT,称为“伪装”。每个NAT设置都有自己的优缺点列表;我只会强调一些注意事项。这里的关键区别在于我之前的NAT概述中的这一步,“[路由器]记住实际请求的本地设备[...]”。通常,路由器通过保留本地地址表和相关设备的最近请求来“记住”,因此它知道哪些回复发送给谁。通过此设置,必须始终进行地址转换以在内部和外部设备之间路由数据。在伪装版本中,每个设备都有公共和私有地址,表不再需要跟踪请求;它只是在公共和私人地址之间进行映射。这意味着地址转换可以是可选的,具体取决于上下文,以这种方式连接到UW网络的主机可以使用私有或公共地址在它们之间进行通信,具体取决于主机如何通过路由器处理数据包(s) )和防火墙。但是,网络伪装部分之外的任何设备都需要使用公共地址。这也允许UW利用的优化,其中表可以按照惯例隐含。在这种情况下,地址转换将始终将地址中的前导“128”更改为“10”,反之亦然,因此表不需要存储在任何地方。您笔记本电脑的私人地址为10.208.135.125。