问题描述:今天去给客户调试程序,用一台机器启动Tomcat做服务器,再用另外一台机器访问,却怎么也访问不到。
问题测试:首先在服务器本机上测试访问是没有问题的,证明路径正确。用ipconfig察看做服务器机器IP,也与客户端输入的一致。从客户端ping服务器IP可以ping通。从服务器端ping客户端IP则无法ping通。
问题解决:后来通过和技术人员交流,原来做服务器的机器在公网上,而做客户端的机器在局域网中,服务器机器用ipconfig查询出来不正确,当采用正确的IP之后,问题得到解决。
问题分析总结:意识到这是一个IP地址以及路由的问题。IP网络是由通过路由设备互连起来的IP子网构成的,这些路由设备负责在IP子网间寻找路由,并将IP分组转发到下一个IP子网。
1. IP地址问题:
1) IP地址=网络地址+主机地址。网络地址是由Internet权力机构(InterNIC)统一分配的,目的是为了保证网络地址的全球唯一性。主机地址是由各个网络的系统管理员分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。
2) 根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。所测试的服务器处与公网即internet网络使用的是公用地址,而所测试的客户端使用的是私有地址。公用地址可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。
3) 一个机构或网络要连入Internet,必须申请公用IP地址。但是考虑到网络安全和内部实验等特殊情况,在IP地址中专门保留了三个区域作为私有地址,其地址范围如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
4) 使用保留地址的网络只能在内部进行通信,而不能与其他网络互连。因为本网络中的保留地址同样也可能被其他网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。
至于客户机ping通了服务器ipconfig察看的ip应该纯属巧合。
2. 路由器:
1) 路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。
2) 路由器与交换机:从过滤网络流量的角度来看,路由器的作用与交换机和网桥非常相似。但是与工作在网络物理层,从物理上划分网段的交换机不同,路由器使用专门的软件协议从逻辑上对整个网络进行划分。例如,一台支持IP协议的路由器可以把网络划分成多个子网段,只有指向特殊IP地址的网络流量才可以通过路由器。对于每一个接收到的数据包,路由器都会重新计算其校验值,并写入新的物理地址。因此,使用路由器转发和过滤数据的速度往往要比只查看数据包物理地址的交换机慢。但是,对于那些结构复杂的网络,使用路由器可以提高网络的整体效率。一般说来,异种网络互联与多个子网互联都应采用路由器来完成。
3) 路由器作用:路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路径表(Routing Table),供路由选择时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。
3. ipconfig查询的IP地址不正确
Ipconfig.exe 工具来验证分配给基于 Windows XP 的计算机的主 DNS(Domain Name System)服务器时无法识别通过使用组策略(打开xp组策略命令:gpedit.msc,参见参考五)应用DNS配置。Ipconfig.exe 会返回存储在以下注册表项中的主 DNS IP 地址:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/YourNetworkInterface
备注:YourNetworkInterface 是配置为使用 TCP/IP 的网络。使用组策略分配的主 DNS 服务器 IP 地址存储在以下注册表项中:
HKEY_LOCAL_MACHINE/Software/Policies/Microsoft/Windows NT/DNSClient
Ipconfig.exe 不会使用或查看此注册表项。
可以使用Netsh.exe,命令:netsh interface ip show config(使用Netsh.exe参见参考第四条。)
自己又用这两个命令分别测试了一下,目前自己的网络是小区的歌华宽带,果然IP地址不一样!至于为什么测试的客户端最开始可以ping到那个假地址,估计是Internet上其他地方的地址吧,而且恰巧是通的。
问题:
网络是如何布的,路由器等设备的使用和IP地址的分配。什么叫YourNetworkInteface是配置为使用TCP/IP的网络,这个翻译估计有问题,到底是什么意思。
参考文献:
http://support.microsoft.com/kb/810566/zh-cn
http://www.knowsky.com/4006.html
http://www.51cto.com/html/2006/0410/25099.htm
http://searchwin2000.techtarget.com.cn/tips/265/1907265.shtml
http://www.pc-nt.net/club062/265804.shtml