网络结构是
ADSL+NAT(2000)+HUB——PC1(10.41.221.6/24)
|--------pc2(10.41.221.254/24)
其中NAT外部IP:219.154.214.150,映射23到PC2的23端口
NAT内部IP为10.41.221.2/24
PC1的网关10.41.221.2,安装花生壳
PC2提供TELNET服务23端口,没有在其上安装花生壳
实验过程,在PC1上用超级终端连接PC2
1 直接使用IP......................... 可以访问
2 使用花生壳域名................... 不能访问
抓到的报文分析:使用域名访问时,经过NAT后成功的返回了域名对应的IP219.154.214.150,接着PC1发出目标是219.154.214.150/端口23的数据报文,此时内部NAT网卡发出ICMP重定向报文,重定向指向PC2,PC2发出目标是PC1的呼应报文,而PC1没有接收该报文,因为自己并没有发送目标为PC2的报文,所以丢弃该报文,PC2也就得不到回答。通讯失败。以后PC1还有几次试图连接域名,但是PC2居然拒绝回任何报文,还不如第一次,好歹有个回应,PC2太痴情了。
这个过程验证了“如果服务器对A的响应包能够又返回防火墙的话,那么防火墙就能够通过状态表得知这是个响应而将响应包的源地址改成210.140.39.225,那么这个响应包再发回A的时候就是源地址210.140.39.225,目的地址192.168.0.2的响应包了。那么A就完成了和服务器的连接。”
假设:动动网络结构:所有设备都接HUB。把PC2的网关设置为10.41.221.2,而PC1的IP改为10.41.222.6,也许能实现唐无敌的设想,PC1发出到PC2的请求,可以获得IP,经过重定向后达到PC2,而PC2并不直接回复PC1,因为不在一个网段,于是发到网关,NAT转发,而PC1由于同“上级”网关(外网网关)同MAC,于是可以得到报文,于是就建立连接了。