博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2027|回复: 3

NAT后内网用户不能用公网地址访问内网映射服务器的问题

[复制链接]
发表于 2007-12-31 22:09:02 | 显示全部楼层 |阅读模式
NAT后内网用户不能用公网地址访问内网映射服务器的问题

转贴NAT后内网用户不能用公网地址访问内网映射服务器的问题
网络拓扑如下图所示,本地RouterISP Router之间做了静态路由。内网中的网页服务器地址为1.1.1.1,被本地Router Static NAT 5.5.5.4。本地RouterISP Router相连的接口为5.5.5.1ISP的接口为5.5.5.2。本地RouterNAT地址池范围是5.5.5.6~5.5.5.8。所有这些地址都属于5.5.5.0/24网段。
现在内网的机器想通过5.5.5.4这个地址来访问网页服务器。


以下是我的分析:

1.假设用服务器本身来尝试访问:
整个流程如下:
1.1.1.1发出访问5.5.5.4:80的请求,报文到达本地Router后,
进行第一次Inside To Outside

1.1.1.1服务器发出请求报文结构如下:
(以下将IP报文的字段和TCP一些字段简化为如下结构)
TCP/IP报文
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

1.1.1.1:2000

TCP


当该报文到达本地Router后,路由器先路由,发现是目的IP是外网地址,所以发往5.5.5.1端口,并进行NAT转换,由于1.1.1.1的地址已经做了Static NAT,所以在NAT table中就增加了如下条目。
Title1:
IL

IG

OL

OG

Protocol

 楼主| 发表于 2007-12-31 22:09:23 | 显示全部楼层
1.1.1.1:2000

5.5.5.4:2000

5.5.5.4:80

5.5.5.4:80

TCP

注:
ILInside Local
IGInside Global
OLOutside Local
OGOutside Global

经过NAT转换后,报文变成如下结构
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

5.5.5.4:2000

TCP








当该报文被静态路由给ISP Router后,ISP Router发现这个报文应该静态路由回来给本地Router(此时的报文结构如下所示),这时就开始进行第一次Outside To Inside

TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

5.5.5.4:2000

TCP


当这个报文到达本地Router之后,路由器先进行NAT,发现该报文的目的IP地址与NAT table中的Static Title(静态NAT转换)相匹配:

Static Title
IL

IG

OL

OG

Protocol

1.1.1.1:80

5.5.5.4:80

-------

-------

-------


所以就进行转换,转后的IP报文为
TCP/IP报文
DesIP+DesPort

SrcIP+SrcPort

Protocol

1.1.1.1:80

5.5.5.4:2000

TCP



 楼主| 发表于 2007-12-31 22:10:02 | 显示全部楼层
通过转后后的地址将此报文转发给1.1.1.1网页服务器,服务器回应报文(结构如下所示),并把回应的报文发给本地路由器,此时进行第二次Inside To Outside
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:2000

1.1.1.1:8088

TCP


同理此时本地Router先进行路由后进行NAT,还是Static NAT起作用,所以在NAT table中增加Title2
IL

IG

OL

OG

Protocol

1.1.1.1:8088

5.5.5.4:8088

5.5.5.4:2000

5.5.5.4:2000

TCP



经过NAT转换后的IP报文如下
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:2000

5.5.5.4:8088

TCP






该报文再次被ISP转发会本地Router(此时的报文结构如下所示),此时进行第二次Outside To Inside
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:2000

5.5.5.4:8088

TCP


本地Router对该回应报文先进行NAT转换,该报文与NAT table中的 Title1相匹配。
Title1
IL

IG

OL

OG

Protocol

1.1.1.1:2000

5.5.5.4:2000

5.5.5.4:80

5.5.5.4:80

TCP


所以IP报文被转换为如下结构:
TCP/IP报文改变为:
DesIP+DesPort

SrcIP+SrcPort

Protocol

1.1.1.1:2000

5.5.5.4:8088

TCP


所以该回应报文是能回应给1.1.1.1:2000这个进程的,即通过服务器本身来访问是可以的。



2.假设内网中其它机器尝试访问:
假设采用1.1.1.2这台pc来访问:
整个流程如下:
1.1.1.2发出访问5.5.5.4:80的请求,报文到达本地Router后,
进行第一次Inside To Outside


1.1.1.2 机器发出如下结构的报文:
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

1.1.1.2:3000

TCP


当该报文到达本地Router后,路由器先路由,发现是目的IP地址外网地址,所以发往5.5.5.1端口,并进行NAT转换,此时就是进行Static NAT了,而是采用Dynamic NAT(动态NAT)所以在NAT table中就增加了如下条目。
Title3:
IL

IG

OL

OG

Protocol

1.1.1.2:3000

5.5.5.6:3000

5.5.5.4:80

5.5.5.4:80

TCP


经过NAT转换后,报文变成如下结构

 楼主| 发表于 2007-12-31 22:10:40 | 显示全部楼层
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

5.5.5.6:3000

TCP






当该报文被静态路由给ISP Router后,ISP Router发现这个报文应该静态路由回来给本地Router(此时的报文结构如下所示),这时就开始进行第一次Outside To Inside

TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.4:80

5.5.5.6:3000

TCP


当这个报文到达本地Router之后,路由器先进行NAT,发现该报文的目的IP地址与NAT table中的Static Title相匹配:

Static Title
IL

IG

OL

OG

Protocol

1.1.1.1:80

5.5.5.4:80

-------

-------

-------


所以就进行转换,转后的IP报文为
TCP/IP报文
DesIP+DesPort

SrcIP+SrcPort

Protocol

1.1.1.1:80

5.5.5.6:3000

TCP

通过转后后的地址将此报文转发给1.1.1.1网页服务器,服务器回应报文(结构如下所示),并把回应报文发给本地路由器,此时进行第二次Inside To Outside
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.6:3000

1.1.1.1:8088

TCP


同理此时本地Router先进行路由后进行NAT,还是Static NAT起作用,所以在NAT table中增加Title4
IL

IG

OL

OG

Protocol

1.1.1.1:8088

5.5.5.4:8088

5.5.5.6:3000

5.5.5.6:3000

TCP


经过NAT转换后的IP报文如下
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.6:3000

5.5.5.4:8088

TCP







该报文再次被ISP转发会本地Router(此时的报文结构如下所示),此时进行第二次Outside To Inside
TCP/IP报文:
DesIP+DesPort

SrcIP+SrcPort

Protocol

5.5.5.6:3000

5.5.5.4:8088

TCP


本地Router对该回应报文先进行NAT转换,该报文与NAT table中的Title3相匹配。

Title3
IL

IG

OL

OG

Protocol

1.1.1.2:3000

5.5.5.6:3000

5.5.5.4:80

5.5.5.4:80

TCP



所以IP报文被转换为如下结构:
TCP/IP报文改变为:
DesIP+DesPort

SrcIP+SrcPort

Protocol

1.1.1.2:3000

5.5.5.4:8088

TCP


所以该回应报文是能回应给1.1.1.2:3000这个进程的,即通过服务器本身来访问是可以的。


综上,我认为内网机器通过串口还是可以通过公网地址5.5.5.4来访问内网服务器的。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-24 07:36 , Processed in 0.112496 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表