内网不能通过外部访问内网服务器
内网用户通过域名或公网IP访问内部服务器的解决办法

内网用户通过域名或公网IP访问内部服务器的解决办法统而言之,通常出现在定义内部用户NAT访问互联网与定义服务器为同一网段、同一区域、同一网络设备的网络环境,因为这样会使报文来回的路径会不一致或其它原因,导致访问中断。
一、思科设备示例1.1 Router示例Router(config)# interfacee0/0Router(config-if)#ip add 192.168.1.1 255.255.255.0Router(config-if)#ipnat insideRouter(config)# interfacee0/1Router(config-if)#ip add 202.101.1.46 255.255.255.248Router(config-if)#ipnat outsideRouter(config)# ipnat inside source static tcp 192.168.1.100 80202.101.1.45 80Router(config)# access-list1 permit 192.168.1.0 0.0.0.255Router(config)# ipnat inside source list 1 interface e0/1 overloadRouter(config)# iproute 0.0.0.0 0.0.0.0 202.101.1.41Router(config)#ipdns serverRouter(config)#ip domain-lookupRouter(config)#ip name-server 202.101.172.46Router(config)#ip host 192.168.1.100内部网络主机的DNS配置成192.168.1.11.2 Firewall示例A方法:static(inside,outside ) 202.101.1.45 192.168.1.100 netmask255.255.255.255access-list 100extended permit tcp any host 202.101.1.45 eq 80access-group 100 in interface ousidealias (inside)192.168.1.100 202.101.1.45 255.255.255.255注意事项:某些FirewallIOS版本下,命令或不可成功,在policy-map添加一条命令即可:policy-mapglobal_policyclassinspection_defaultinspectdns maximum-length 512B方法:static(inside,outside ) 202.101.1.45 192.168.1.100 netmask255.255.255.255dnsaccess-list 100extended permit tcp any host 202.101.1.45 eq 80access-group 100 in interface ouside二、华为与华三设备示例[h3c] interface ethernet0/0/0[h3c-ethernet0/0/0]ip address 202.101.1.45 255.255.255.248[h3c-ethernet0/0/0]nat outbound 2000[h3c-ethernet0/0/0]nat server protocol tcp global 202.101.1.45 www inside192.168.1.100 www[h3c-ethernet0/0/0]nat server protocol tcp global 202.101.1.45 ftp inside192.168.1.100 ftp[h3c-ethernet0/0/0]quit[h3c] acl number 2000[h3c-acl-basic-2000]rule 0 permit source 192.168.1.0 0.0.0.255[h3c-acl-basic-2000]rule 1 deny[h3c] interface ethernet1/0/0[h3c-ethernet1/0/0] ip address 192.168.1.1 255.255.255.0[h3c]natdns-map www. 202.101.1.45 80 tcp[h3c]natdns-map ftp. 202.101.1.45 21 tcp注意事项:较早的系统版本可能没有natdns-map命令,可参照如下配置:[h3c] acl number 3000[h3c-acl-basic-3000] rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.1.100 0.0.0.0[h3c] interface ethernet1/0/0[h3c-ethernet1/0/0] nat outbound 3000[h3c-ethernet1/0/0]nat server protocol tcp global 202.101.1.45 www inside 192.168.1.100 www三、天融信设备示例企业WEB服务器(IP:172.16.1.2)通过防火墙MAP为202.99.27.201对内网用户提供WEB服务,网络示意图如下如上图所示,管理主机和WEB服务器同样处于网段172.16.1.0/24。
内网通过公网地址访问内部服务器

undo insulate
#
undo connection-limit enable
connection-limit default deny
connection-limit default amount upper-limit 50 lower-limit 20
#
firewall statistic system enable
#
domain system
#
local-user admin
password cipher .]@USE=B,53Q=^Q`MAF4<1!!
service-type telnet terminal
level 3
service-type ftp
#
acl number 2000
rule 0 permit source 192.168.1.00.0.0.255
#
user-interface con 0
user-interface aux 0
user-interface vty 0 4
authentication-mode scheme
#
return
[H3C]
#
interface Ethernet1/4
#
interface Ethernet1/5
#
interface Ethernet1/6
#
interface Ethernet1/7
#
interface Ethernet1/8
#
interface Ethernet2/0
ip address 200.0.0.2 255.255.255.0
#
firewall interzone local trust
内网不能访问dmz服务器,可能有哪些问题)

内网不能访问dmz服务器,可能有哪些问题内网访问DMZ时不做NA T,外网进入内网和DMZ时不需要做NAT,这样,DMZ内服务器收到的公网的访问时,源地址就是公网的地址,不再是防火墙上的地址,而且内部的地址还是内部的地址,这就可以把地址分开;也就是说,由防火墙到DMZ主机的端口不能使用NAT功能,由内部、DMZ到外部时才使用NAT,这个问题就可以解决了。
我不知道你使用的是哪个厂家的防火墙,一般都可以做到这么定义。
关于从内网通过外网地址访问DMZ区的服务器问题?问题描述:从外网可以访问DMZ的服务器;从ASA5510 的内网也可以通过DMZ的IP地址访问服务器,但无法通过映射后的外网地址访问但客户这边也经常用在内网中使用外网IP访问服务器,请大家帮忙分析一下该怎么处理。
谢谢!不能通过IP 访问的,必须通过域名访问,同时配合使用DNS Dotoring 实现,命令体现在Static 后面加DNS 参数,例如:static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns 我前几天也遇到这个问题,最后发现是我的alias做错了。
通过公网dns访问自己内部的web服务器的这种模式有两种模式,一种是WEB服务器放在自己的内网,一种是web 服务器防在自己的DMZ区,两种alias用法稍微有不一样。
如果是在内网的话,用法如下alias (inside) 服务器内网地址服务器公网地址如果是在dmz区,用法如下alias (inside) 服务器外网地址服务器DMZ地址配置PIX515E DMZ的基本方法与故障排除一、基本环境当前公司有PIX 515E防火墙一台(三个接口),服务器若干。
要求将服务器迁移至DMZ区域并确保服务器正常工作,简略拓扑结构图如下所示:二、配置DMZ基本命令1. 分别定义outside、inside、dmz的安全级别nameif ethernet0 outside security0 #定义E0口为非信任端口,security0代表此端口安全级别最低nameif ethernet1 inside security100 #定义E1口为信任端口,security100代表此端口安全级别最高nameif ethernet2 dmz security50 #定义E2口为DMZ端口,security50代表此端口安全级别介于信任与非信任端口之间这里的数字0、50、100可自行调整,但需要注意数字之间的大小关系不能混淆。
外网访问内网服务解决方案

外网访问内网服务解决方案外网访问内网服务是指通过公共网络(如互联网)访问局域网或私有网络中的服务。
通常情况下,内网服务是不直接暴露在外网的,这是为了保护内网服务的安全性。
然而,有时候我们需要从外部访问内部的服务,这会带来一些挑战。
下面是一些常见的外网访问内网服务的解决方案。
1. VPN(Virtual Private Network,虚拟专用网络): VPN可以为用户提供一个通过公共网络访问受限网络的安全通道。
用户可以在外部计算机上建立VPN连接,然后通过该连接访问内网服务。
VPN采用加密技术来保护数据的安全性,在访问内网服务时提供了一定的安全保障。
2. 端口映射(Port Forwarding):端口映射是一种在公共网络和私有网络之间建立通信的方式。
通过将公共网络中的特定端口与内网中的服务端口进行映射,用户可以通过公共网络访问内网服务。
这需要在网络设备上进行配置,将公共网络的请求转发到对应的内网服务。
端口映射可以通过路由器、防火墙或者专用的映射软件来实现。
3. 反向代理(Reverse Proxy):反向代理是一种通过在公共网络和内网之间建立代理服务器的方式来访问内网服务。
当用户通过公共网络请求访问特定的地址时,反向代理服务器接收到请求后会将请求转发到内网服务,并将内网服务的响应返回给用户。
反向代理可以配置访问控制和安全策略,提供更加安全的外网访问内网服务的方式。
4. SSH(Secure Shell)隧道: SSH隧道是通过SSH协议在公共网络和内网之间建立安全通道的一种方式。
用户可以在外部计算机上通过SSH协议建立连接,并通过隧道将公共网络的请求转发到内网服务。
SSH隧道可以通过端口映射或者动态端口转发进行配置,提供了一种安全且可靠的外网访问内网服务的方式。
5.使用云服务提供商的解决方案:云服务提供商通常提供一些工具和服务,可以帮助用户将内网服务暴露在公共网络上。
例如,一些云服务提供商提供了VPN网关,用户可以通过该网关将公共网络请求转发到内网服务;还有一些提供了负载均衡和反向代理的服务,用户可以将内网服务注册在云服务提供商的负载均衡器或者反向代理服务器上,实现外网访问内网服务。
内网用户通过域名或公网IP访问内部服务器的解决办法

内网用户通过域名或公网IP访问内部服务器的解决办法一.内网用户和内网服务器不在同一个网段1.组网图组网说明:该组网需要一台F100-A、二层交换机、服务器、内网PC。
内部服务器(WEB 服务器)和内网用户不在同一个网段,同时在E0/2端口通过nat server 向外发布,外部用户可以通过公网地址和域名访问该服务器。
现需要增加配置使内网用户也可以通过公网地址和域名访问该服务器。
2.配置信息A.实现内网用户通过公网地址访问服务器的配置,即在E0/0口做和E0/2口一样的nat server的配置。
Interface ethernet 0/0nat server protocol tcp global 202.103.1.1 www inside 192.168.2.2 wwwB.实现内部用户通过域名访问服务器的配置nat dns-map 202.103.1.1 tcp3.注意事项如果用户并不想使用公网地址访问公网地址访问服务器,可以不用做nat server的配置,直接配“nat dns-map 192.168.2.2 tcp”即可。
二.内网用户和内部服务器在同一个网段1.组网图组网说明:该组网需要一台F100-A、二层交换机、服务器、内网PC。
内部服务器(WEB 服务器)和内网用户在同一个网段,同时在E0/2端口通过nat server 向外发布,外部用户可以通过公网地址和域名访问该服务器。
现需要增加配置使内网用户也可以通过公网地址和域名访问该服务器。
2.配置信息A.实现同网段的内网用户通过公网地址访问WEB服务器#定义一个ACLacl number 3001rule 0 permit ip source 192.168.1.1 0.0.0.255#在E0/0端口配置nat servernat server protocol tcp golobal 202.103.1.1 www inside 192.168.1.254 www#在E0/0端口配置nat outbound//注意,这里的nat outbound必须做Interface Ethernet 0/0ip address 192.168.1.1 255.255.255.0nat outbound 3001B.实现同网段的内网用户通过域名访问WEB服务器在A的配置的基础上添加如下的命令nat dns-map 202.103.1.1 tcp3.注意事项这里必须配置nat outbound 3001,如果没有这条命令,就不能用公网地址访问。
DMZ网络访问控制策略

DMZ网络访问控制策略当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略。
1.内网可以访问外网内网的用户显然需要自由地访问外网。
在这一策略中,防火墙需要进行源地址转换。
2.内网可以访问DMZ此策略是为了方便内网用户使用和管理DMZ中的服务器。
3.外网不能访问内网很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。
4.外网可以访问DMZDMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。
同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。
5.DMZ不能访问内网很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。
6.DMZ不能访问外网此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网,否则将不能正常工作。
在网络中,非军事区(DMZ)是指为不信任系统提供服务的孤立网段,其目的是把敏感的内部网络和其他提供访问服务的网络分开,阻止内网和外网直接通信,以保证内网安全。
DMZ服务配置DMZ提供的服务是经过了地址转换(NAT)和受安全规则限制的,以达到隐蔽真实地址、控制访问的功能。
首先要根据将要提供的服务和安全策略建立一个清晰的网络拓扑,确定DMZ区应用服务器的IP和端口号以及数据流向。
通常网络通信流向为禁止外网区与内网区直接通信,DMZ区既可与外网区进行通信,也可以与内网区进行通信,受安全规则限制。
1 地址转换DMZ区服务器与内网区、外网区的通信是经过网络地址转换(NAT)实现的。
网络地址转换用于将一个地址域(如专用Intranet)映射到另一个地址域(如Internet),以达到隐藏专用网络的目的。
DMZ区服务器对内服务时映射成内网地址,对外服务时映射成外网地址。
采用静态映射配置网络地址转换时,服务用IP和真实IP要一一映射,源地址转换和目的地址转换都必须要有。
2 DMZ安全规则制定安全规则集是安全策略的技术实现,一个可靠、高效的安全规则集是实现一个成功、安全的防火墙的非常关键的一步。
无法访问内网服务器的解决方案

无法访问内网服务器的解决方案在现代信息化时代,无法访问内网服务器是一个常见的问题。
无论是企业还是个人用户,在使用内网服务器进行数据传输和共享时,都可能遇到这个困扰。
本文将为大家介绍几种解决方案,帮助你解决无法访问内网服务器的问题。
一、检查网络连接首先,我们需要确保网络连接正常。
在无法访问内网服务器时,经常是由于网络连接问题导致的。
可以通过以下几种方式来检查网络连接的情况:1. 检查网线连接:确保网线连接到计算机或网络设备并且连接良好。
尽量避免网线因为过长或者弯曲而导致信号传输受阻。
2. 检查无线网络连接:如果是使用无线网络连接,确保无线路由器正常工作并且信号强度足够。
可以尝试重新连接无线网络或者重启无线路由器来解决问题。
3. 检查网络设置:确保计算机的IP地址、子网掩码和默认网关设置正确。
可以通过检查网络适配器的设置或者使用命令行工具(如ipconfig)来查看和修改网络设置。
二、检查防火墙设置防火墙是保护计算机和网络安全的重要组件,但有时候防火墙设置会阻止对内网服务器的访问。
在无法访问内网服务器时,可以按照以下步骤检查和调整防火墙设置:1. 检查本地防火墙:如果你使用的是Windows操作系统,可以打开“控制面板”,找到“Windows防火墙”并点击“允许应用或功能通过Windows防火墙”。
确保内网服务器相关的应用程序被允许通过防火墙。
2. 检查路由器防火墙:如果你使用的是路由器进行网络连接,需要检查路由器的防火墙设置。
登录路由器管理界面,找到防火墙设置,并确保内网服务器相关的端口或应用程序被允许通过防火墙。
3. 使用其他防火墙方案:如果以上步骤无法解决问题,可以尝试禁用防火墙或者使用其他的防火墙方案。
需要注意的是,在禁用防火墙或者使用其他防火墙方案时,要确保安全性不会受到太大威胁。
三、检查网络配置网络配置错误也是导致无法访问内网服务器的常见原因之一。
下面介绍两种可能的网络配置问题及其解决方案:1. IP地址冲突:当多台计算机在同一网络中使用相同的IP地址时,会导致网络访问问题。
DMZ(隔离区、非军事化区)

DMZ编辑本段在实际的运用中,某些主机需要对外提供服务,为了更好地提供服务,同时又要有效地保护内部网络的安全,将这些需要对外开放的主机与内部的众多网络设备分隔开来,根据不同的需要,有针对性地采取相应的隔离措施,这样便能在对外提供友好的服务的同时最大限度地保护了内部网络。
针对不同资源提供不同安全级别的保护,可以构建一个DMZ区域,DMZ可以为主机环境提供网络级的保护,能减少为不信任客户提供服务而引发的危险,是放置公共信息的最佳位置。
在一个非DMZ系统中,内部网络和主机的安全通常并不如人们想象的那样坚固,提供给Internet的服务产生了许多漏洞,使其他主机极易受到攻击。
但是,通过配置DMZ,我们可以将需要保护的Web应用程序服务器和数据库系统放在内网中,把没有包含敏感数据、担当代理数据访问职责的主机放置于DMZ中,这样就为应用系统安全提供了保障。
DMZ使包含重要数据的内部系统免于直接暴露给外部网络而受到攻击,攻击者即使初步入侵成功,还要面临DMZ设置的新的障碍。
编辑本段三:DMZ网络访问控制策略当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略。
1.内网可以访问外网内网的用户显然需要自由地访问外网。
在这一策略中,防火墙需要进行源地址转换。
2.内网可以访问DMZ此策略是为了方便内网用户使用和管理DMZ中的服务器。
3.外网不能访问内网很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。
4.外网可以访问DMZDMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。
同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。
5.DMZ不能访问内网很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。
6.DMZ不能访问外网此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网,否则将不能正常工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如图,这个图是本贴的初始图,大圈是本地路由器,和他相连的是isp路由器,和isp相连的是internet上随便一个路由器。
本地出口地址是5。
5。
5。
1,isp对端是5。
5。
5。
2(掩码没写,稍后会分别讨论)。
1。
1。
1。
1和1。
1。
1。
2是内网两台服务器的内网地址,被静态映射到公网上的5。
5。
5。
4和5。
5。
5。
5。
内网的pc全部被pat到出口上。
本地路由器一条缺省路由到isp对端。
我想这个拓扑应该是非常普遍的了,我认为就是因为这个非常普遍的拓扑,造成了很多人所反应的“内网不能通过公网地址访问内网服务器”这个问题。
我认为这个问题的关键原因就在于掩码,就是在3层上做文章。
第一节先来看看一般情况下,这个环境的掩码的规划。
假设isp分配一段8地址子网给本地,这样isp路由器接口和本地路由器接口共占用2个,网络地址、广播地址共占用2个,可用的一共4个,掩码是248。
对于图示的拓扑,假设本地路由器出口掩码是248(内网pc的pat地址相应的也就是掩码为248),被映射的两个地址掩码也是248,这个最普遍的掩码规划,结果是:服务器、内网pc的pat 地址、本地出口地址全部处于同一个网段。
我们分析一个包的来龙去脉,来看看到底内网pc通过公网地址可否访问到内网服务器。
假设内网一台pc1。
1。
1。
111发出ping 5。
5。
5。
4(服务器的公网地址)请求,包源地址1。
1。
1。
111,目的地址5。
5。
5。
4,路由器收到这个包后,检查路由表,发现5。
5。
5。
4就位于自己的出口网段(假设出口为以太口),所以直接通过arp广播请求5。
5。
5。
4的mac地址,问题出现了,谁会应答这个请求呢?没有人,所以,这种情况下(所有公网地址在同网段)当然不会通。
不但内网访问服务器不行,服务器之间通过公网地址访问也不会通。
结论一:只要出口地址和服务器映射的公网地址在同网段,就有问题。
第二节基于上面的讨论,我们知道了只要出口地址和服务器映射的公网地址在同网段,就会发生“无人应答”的必然结果,所以我们这次改变掩码规划,将出口掩码变长,变为252(isp掩码也要相应改变)。
在这里首先声明一个要点,就是nat池的地址可以和出口不在同网段,以前有帖子也讨论过,我自己一开始也迷惑,后来想明白了,只要isp路由器上有这些地址的路由就可以,下一条是本地路由器,这样本地路由器便可以接受到这些包。
我们再次分析一个包的流程。
内网pc1。
1。
1。
111发出ping 5。
5。
5。
4请求,包源地址1。
1。
1。
111,目的地址5。
5。
5。
4,路由器收到这个包后,检查路由表,这一次,发现5。
5。
5。
4不在本地的任何接口,所以走了缺省路由,将包发给了isp对端口,并在本地nat表中生成一条项目,记录内网地址1。
1。
1。
111被转换成公网地址5。
5。
5。
1加上端口号(假设端口号是8888),isp接受到的包,目的地址是5。
5。
5。
4,源地址变成了5。
5。
5。
1,它检查它的路由表,发现5。
5。
5。
4路由下一条是5。
5。
5。
1,也就是本地路由器,所以又将此包发给本地路由器,经过了一次往返后,本地收到这个包,首先接受nat 引擎的过虑,发现5。
5。
5。
4正在被静态映射到内网的1。
1。
1。
1的主机,所以改变目的地址为1。
1。
1。
1,源地址还是5。
5。
5。
1,这样就交给了路由引擎,查看路由表,1。
1。
1。
1的路由当然有了,通过2层直接发给1。
1。
1。
1,至此,去程的包分析完毕。
我们再分析回程的包。
服务器1。
1。
1。
1收到包后,准备回应给5。
5。
5。
1(加端口号),发出reply包,源地址1。
1。
1。
1,目的地址5。
5。
5。
1:8888,本地路由器收到后,先给路由引擎,发现5。
5。
5。
1就是出口地址,问题又来了,包的目的就是出口,而不是经过出口,这时候路由器该怎么办呢?假如是从外向内来的包访问5。
5。
5。
1:8888,这时候会先提交个nat引擎,做nat转换。
但是这是从内向外发出的包,要先提交给路由引擎,我认为此时,由于收到的包是从内向外的,目的直接就是针对出口来的,而出口并没有开启什么端口,除非为了web管理,或者telnet管理开启80或23端口,所以路由器会丢弃,因为没有得到应答。
结论二:只要出口地址和内网pc的pat地址同网段,同样会有问题第三节我们再变更掩码方案,使得内网pc的pat地址和服务器映射地址同网段,但和出口不同网段。
假设内网pc的pat地址为5。
5。
5。
6(和服务器地址同网段)我们再次分析一个包,内网pc1。
1。
1。
111发出ping 5。
5。
5。
4请求,包源地址1。
1。
1。
111,目的地址5。
5。
5。
4,路由器收到这个包后,检查路由表,发现5。
5。
5。
4不在本地的任何接口,所以走了缺省路由,将包发给了isp对端口,并在本地nat表中生成一条项目,记录内网地址1。
1。
1。
111被转换成公网地址5。
5。
5。
6加上端口号,isp接受到的包,目的地址是5。
5。
5。
4,源地址变成了5。
5。
5。
6,它检查它的路由表,发现5。
5。
5。
4路由下一条是5。
5。
5。
1,也就是本地路由器,所以又将此包发给本地路由器,经过了一次往返后,本地收到这个包,首先接受nat引擎的过虑,发现5。
5。
5。
4正在被静态映射到内网的1。
1。
1。
1的主机,所以改变目的地址为1。
1。
1。
1,源地址还是5。
5。
5。
6,这样就交给了路由引擎,查看路由表,1。
1。
1。
1的路由当然有了,通过2层直接发给1。
1。
1。
1,至此,去程的包分析完毕。
我们再分析回程的包。
服务器1。
1。
1。
1收到包后,准备回应给5。
5。
5。
6(加端口号),发出reply包,源地址1。
1。
1。
1,目的地址5。
5。
5。
6,本地路由器收到后,先给路由引擎,发现5。
5。
5。
6不在本地任何端口下,所以走了缺省路由,发给isp,并在nat表中生成一条记录,将1。
1。
1。
1转换为5。
5。
5。
4,isp接受到包源地址变为5。
5。
5。
4,目的地址是5。
5。
5。
6,通过检查路由表,发现5。
5。
5。
6这个地址的路由下一条应该是5。
5。
5。
1,也就是本地路由器,所以包又被发回来了,经过一次往返,本地收到了这个包,首先提交给nat引擎,发现目的地址5。
5。
5。
6在nat表中对应着内网pc1。
1。
1。
111,所以将5。
5。
5。
6替换成1。
1。
1。
111,源地址不变,还是5。
5。
5。
4,然后提交给路由引擎,路由器在2层将包发给1。
1。
1。
111,这时,1。
1。
1。
111这台主机收到了从5。
5。
5。
4返回的包,而他一开始ping请求包,就是发给5。
5。
5。
4这个公网地址的,所以ping通了!!!!结论三:内网pc的pat地址和服务器公网地址同网段,同时和出口地址不同网段,这样没有问题。
第四节本贴的高潮部分已经达到,至此,只剩下一种情况,就是内网pat地址、服务器公网地址、出口地址全部不在同网段。
假设出口掩码252,服务器公网地址段掩码248,内网pc的pat地址改为5。
5。
5。
254,这样三种地址都不在同网段。
而且isp也必须有服务器公网地址和内网pc的pat地址的路由,下一条是5。
5。
5。
1我们再次分析一个包,内网pc1。
1。
1。
111发出ping 5。
5。
5。
4请求,包源地址1。
1。
1。
111,目的地址5。
5。
5。
4,路由器收到这个包后,检查路由表,发现5。
5。
5。
4不在本地的任何接口,所以走了缺省路由,将包发给了isp对端口,并在本地nat表中生成一条项目,记录内网地址1。
1。
1。
111被转换成公网地址5。
5。
5。
254加上端口号,isp接受到的包,目的地址是5。
5。
5。
4,源地址变成了5。
5。
5。
254,它检查它的路由表,发现5。
5。
5。
4路由下一条是5。
5。
5。
1,也就是本地路由器,所以又将此包发给本地路由器,经过了一次往返后,本地收到这个包,首先接受nat引擎的过虑,发现5。
5。
5。
4正在被静态映射到内网的1。
1。
1。
1的主机,所以改变目的地址为1。
1。
1。
1,源地址还是5。
5。
5。
254,这样就交给了路由引擎,查看路由表,1。
1。
1。
1的路由当然有了,通过2层直接发给1。
1。
1。
1,至此,去程的包分析完毕。
我们再分析回程的包。
服务器1。
1。
1。
1收到包后,准备回应给5。
5。
5。
254(加端口号),发出reply包,源地址1。
1。
1。
1,目的地址5。
5。
5。
254,本地路由器收到后,先给路由引擎,发现5。
5。
5。
254不在本地任何端口下,所以走了缺省路由,发给isp,并在nat表中生成一条记录,将1。
1。
1。
1转换为5。
5。
5。
4,isp接受到包源地址变为5。
5。
5。
4,目的地址是5。
5。
5。
254,通过检查路由表,发现5。
5。
5。
254这个地址的路由下一条应该是5。
5。
5。
1,也就是本地路由器,所以包又被发回来了,经过一次往返,本地收到了这个包,首先提交给nat引擎,发现目的地址5。
5。
5。
254:某个端口,在nat表中对应着内网pc1。
1。
1。
111,所以将5。
5。
5。
254替换成1。
1。
1。
111,源地址不变,还是5。
5。
5。
4,然后提交给路由引擎,路由器在2层将包发给1。
1。
1。
111,这时,1。
1。
1。
111这台主机收到了从5。
5。
5。
4返回的包,而他一开始ping请求包,就是发给5。
5。
5。
4这个公网地址的,所以ping通了!!!!结论四:三种地址全部不在同网段,没有问题。
综上所述,得到了4个结论:结论一:只要出口地址和服务器映射的公网地址在同网段,就有问题。
结论二:只要出口地址和内网pc的pat地址同网段,同样会有问题。
结论三:内网pc的pat地址和服务器公网地址同网段,同时和出口地址不同网段,这样没有问题。
结论四:三种地址全部不在同网段,没有问题。
可以简单的发现,前两个是充分条件,只要满足了其中一个,就会出现问题,而现在大多数的接入都符合前两个情况,而几乎没有人“多此一举”的去改变掩码规划,所以造成如此多的普遍现象:内网不能用公网地址访问内网服务器!!!!!出口地址只要不和其他两种地址同网段,就可以保证不出问题。
至此,已经探讨了问题的原因。
此过程中我还得到了一个推论和一个待验证的问题。
推论:如果nat池中的公网地址和出口地址不同网段,不管在内网还是公网ping nat池中未参与转换的公网地址,会出现环路,包在本地和isp之间来回往返。
待验证的问题:对于第三节和第四节,如果只在本地出口变长掩码,isp端不作任何改变,会怎么样?以第三节的环境来说:我们再次分析一个包,内网pc1。
1。
1。
111发出ping 5。
5。
5。
4请求,包源地址1。
1。
1。
111,目的地址5。
5。
5。
4,路由器收到这个包后,检查路由表,发现5。
5。
5。
4不在本地的任何接口,所以走了缺省路由,将包发给了isp对端口,并在本地nat表中生成一条项目,记录内网地址1。