通常配置路由器,确保内部网络能访问外部互联网,且外部互联网能访问映射的服务器后,就以为配置好了。但常常忘记一个关键点:内部用户不能用公网IP访问内部服务器。所有厂家的路由器都有这个现象,或许是出于安全考虑,也可能是为了nat地址转换的速度和稳定性。这只是猜测而已。
下面将通过实验来分析出现这种问题的原因。
实验拓扑:
实验配置:
实验各接口配置如上图,重点来看(简R1)配置,如下
R1#sh run
/0
ip 1.1.1.1 255.255.255.0
ip nat
auto
speed auto
/1
ip 192.168.1.1 255.255.255.0
ip nat
auto
speed auto
/2
ip 10.10.10.1 255.255.255.0
ip nat
auto
speed auto
ip nat list /0
网络地址转换协议,针对tcp协议,源端地址为10.10.10.10,源端端口为80,目的地址为1.1.1.1,目的端口为8080
ip
设置默认路由目标地址为全零,子网掩码也为全零,下一跳地址是1.1.1.254
ip -list
ip 192.168.1.0 0.0.0.255 any
ip 10.10.10.0 0.0.0.255 any
R1#
1)检测拓扑的连接
pc0:
:
这两幅图像展示了内部网络已成功连接到外部公共互联网,接下来将针对服务器网页的映射进行测试。
外部电脑连接1.1.1.1的8080端口,可以浏览到服务器上的信息,这说明端口映射已经完成。
内部电脑pc0直接通过服务器地址10.10.10.10的80端口访问该服务器
表明访问成功。
内部电脑pc0通过服务器指定的公网地址1.1.1.1:8080来访问服务器,此时问题开始显现!!!
重置指令发出后,该连接即刻失效。若再用另一台计算机尝试连接1.1.1.1:8080,同样会碰到障碍(相关示意图省略)。为何外部设备一号总能顺利接入1.1.1.1:8080,内部设备却始终无法成功呢???
彻底调查内部设备无法访问映射的公网服务器的情况,找出具体缘由。
既然pc0无法访问服务器,先用Ping来测试链路
居然可以了,真怪,接着,在pc0上多次用浏览器去访问1.1.1.1:8080,不过回应还是那样——访问不上去。很多人对这状况感到非常困惑,接下来,就说说造成这种现象的缘由。
明白外部访问内部服务器在R1时会启动NAT转换过程。于是调出相关指令,并配合模拟器进行数据包捕获,在PC0设备上创建相应连接
得出结果:
R1#debug ip
is on
R1#debug ip nat
IP NAT is on
R1#
R1#
IP地址为0, 源地址是192.168.1.2, 网段为1, 目标地址是1.1.1.1, 网段为0, 经由RIB路由
源地址是192.168.1.2,子网掩码为1,目标地址是1.1.1.1,子网掩码为0,数据包长度为44字节,已收到3个数据包
IP地址设定为零,源地址为本地地址,即1.1.1.1,目标地址为192.168.1.2,标识为1,经由路由信息库转发
源地址是本地的一台设备,目标地址是192.168.1.2,子网掩码为1,数据包长度为20字节。
R1#

依据路由器反馈内容与PDU信息示意图,能够确认路由器接收到的数据包并未启动NAT转换功能,数据包直接依照路由表进行路径选择。因此,红圈区域里三个数据包已经完成往返路径,也说明若实施ping检测,通信能够实现,即ICMP请求与应答能够成功交互。
那个服务器已经把web端口成功转发到1.1.1.1:8080了,但内部pc0访问这个地址时,却不能通过nat转换来访问目标地址,这是怎么回事呢?对比了R1接口g0/0和g0/1的设置,发现它们之间nat相关的配置存在差异,那么是不是只有当路由器收到传入的数据流时,才会启动nat转换功能呢?我们姑且认定这个判断无误。接下来,借助两个对比来检验所得的结论是否准确。
删除R1的g0/1端口上的IP地址转换功能,R1(-if)#取消IP地址转换 。接着依照2.1步骤进行测试,测试结果显示与2.1(接口设置)部分相同,即无法实现地址转换从而访问目标 。此处的详细输出数据和截图不再呈现。
在R1的g0/1端口上设置地址转换功能,R1(-if)# ip nat 。接着依照2.1步骤进行验证,出乎意料地得到了成功反馈。
R1#
%SYS-5-: from by
网络地址转换规则设定源地址为192.168.1.2, 目标地址为1.1.1.1向10.10.10.10的数据流, 当接口g0/0处于关闭状态时, 会启动设备上的地址转换功能。
IP地址为0, 源地址是192.168.1.2, 子网掩码为1, 目标地址为10.10.10.10, 子网掩码为2, 经由RIB路由
IP地址为192.168.1.2,子网掩码为1,目标地址为10.10.10.10,子网掩码为2,网关地址为10.10.10.10,数据包长度为44字节。
IP地址设定为零, 源地址为十进制表达的一十点一十点一十点一十, 子网掩码为二, 目标地址为一九二点一六八点一点二, 子网掩码为一, 经由路由信息库转发
网络地址源为10.10.10.10,掩码长度为前24位,目标地址为192.168.1.2,掩码长度为前8位,网关地址同样是192.168.1.2,数据包长度为44字节。
NAT功能:源地址为10.10.10.10,目标地址为1.1.1.1,转发到192.168.1.2,端口设置为10
R1#
R1#sh ip nat tr
本地方面,具体细节,均由本地负责,确保本地事务,完全由本地处理。
网络连接从1.1.1.1的8080端口开始,延伸至10.10.10.10的80端口,中间经过两个中转站,分别处理数据,最终实现通信目标
网络连接目标为地址1.1.1.1上的8080端口,同时目标为地址10.10.10.10上的80端口,另外还有两个目标地址为192.168.1.2,分别对应22端口,这两个22端口的目标地址相同
R1#
路由器检测到g0/1端口的数据传输,启动了网络地址转换功能,接下来的画面展示了地址转换的具体步骤
服务器接收到的数据流。
路由器收到服务器发回的应答信息,因为处理的是数据传输,设备先依据路由清单,将数据传输导向对应出口端口暂存区域,接着发现该出口端口设置了特定规则,也就是说数据包属于网络地址转换情形,于是设备查阅地址转换记录,对目标地址实施必要调整,随后将数据导向pc0终端。至此pc0终端得以成功访问服务器网页,具体状态如图所示
经过对2.1、2.2、2.3实验的比较和测试分析,最终可以得出一个明确的结论,即路由器仅当接收到数据流时,才会启动nat映射机制。理解了这一点,再回顾一下g0/1端口数据传输的往返情形,当设备收到数据传输时,由于没有启动nat映射功能,便依照路由清单将传输导向对应端口(也就是g0/0)的暂存区域,不过设备随即察觉目的地址正是自身,因此无需将数据从该端口传出,也就不再打算实施nat源地址的变更,最终设备直接向pc0发出应答。
内部用户尝试通过公网IP访问服务器时,不同技术社区对此现象存在多种解释观点,主要观点如下:当数据包抵达网络出口时,会自动启用NAT转换功能,对目标IP地址进行修改,随后将更改后的数据包定向发送至内部服务器,此时服务器接收到的数据包源地址显示为内部IP,因此服务器在响应时会以该内部地址为发送目标直接回传给内部用户,但内部用户在收到响应时,由于源地址与预期不符,会直接将此数据包判定为无效并予以丢弃。然而这种说法是针对H3C路由器的,鉴于本人未曾对H3C进行验证,其描述是否属实,有待将来确认。或许各家厂商的设备在NAT机制上存在差异,因此当碰到类似状况时,借助debug指令或许能亲见真相。
已经知晓无法借助映射的公网来访问内部服务器的缘由,因此寻得了应对此类状况的途径,具体如下,这两种dns方案仅适用于拥有域名的情况,倘若缺少域名,即便通过1.1.1.1:8080直接访问,依旧无法解决根本问题,所以这两种并非彻底的应对策略
4.1)方法一:
设置域名解析服务,采用内部地址,具体配置如下,首先指定,使用该地址进行解析,然后配置,相关参数确保,服务正常运行
这个标识符的值是空字符串,它没有具体的数值内容。
该IP地址为8.8.8.8, 另一个IP地址是114.114.114.114, 一共记录了三个条目
将目标地址设定为 10.10.10.10, 这是一项特定的配置步骤, 序号为四
内部网络主机的DNS配置成192.168.1.1
(其实就是把思科路由器作为DNS服务器,作为转发器)
命令解释:
(1):启用路由器DNS服务功能
开启DNS的外部查询选项,通常情况下,该选项路由器默认开启
确定要转发的上级域名解析器地址,需依据具体环境选择,即本地解析失效时,将查询任务交给其他dns解析机构。
手动建立本地DNS记录,若需访问,该记录会指向10.10.10.10,由此内部主机可直接寻址10.10.10.10以访问服务器。
手动设置本地DNS记录,在步骤四里是针对域名的,而在此步骤里把具体地址当作域名来处理。
注意:如果路由器负担较重,请另外建立一个内部DNS服务器。
思科2911型号的设备自身不具备担任dns服务器的功能,因此需要另外设置一台dns服务器,可以采用第二种方案
3.2)方法二:
增加一台DNS服务器,其地址设定为10.10.10.123,拓扑结构无需绘制,对应的解析记录为10.10.10.10。
接下来把内部主机dns设置成10.10.10.123,然后去访问这个地址
扫一扫在手机端查看
-
Tags : 映射配置好之后 在内网使用公网访问不了
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1