端口回流与dns-map与域内NAT
标签:
股票 |
回流的概念:
http://s7/mw690/001b61EYzy6K8cp9Fv8f6&690
端口回流&DNS-map&域内NAT
组网分析:
某企业内部一台主机建了个WEB服务站点端口80,然后在网关Router上映射80端口到Web Server的80端口,这样外网上上就能以公网地址202.38.1.1:80的地址访问到Web Server的站点了。
但是Host A通过公网地址却无法访问服务器,如果Router支持端口回流的话那么Host A就可以通过公网地址访问内部服务器。
原因分析:
http://s5/mw690/001b61EYzy6K8cpsqVK94&690
如上图可以很明显的看出报文①发送到Router,Router根据NAT映射将目标地址改为10.110.10.110.110.10.1发送报文②。但是源地址不变仍为10.110.10.3
10.110.10.3。而后Web Server接收报文②后,发回③报文给Host
A。注意此报文发送没有经过Router而是直接走二层。所以就导致了一个问题,Host
A的请求目标为202.38.1.1,但是回应的源地址为10.110.10.1
10.110.10.1。所以导致会话不能建立。(但是ICMP是可以的,因为ICMP是基于进程号—sequence number)
解决方法:
1)
2)
当路由器收到Host A发送的向202.38.1.1发送的TCP请求报文时,路由器将目标地址改为NAT的映射后的私网地址(10.110.10.110.110.10.1),端口为80。同时也把请求报文的源地址改为内部网关的地址即10.110.10.10
10.110.10.10,端口1025。之后Web服务器收到此请求报文。并对其回应。因为报文的源地址为网关地址。所以此报文会再经过网关。从而再次转换。达到Host
A可以正常访问服务器的目的。其实这一步也可以理解为基于源地址转换的NAT。即本文后面要说到的域内NAT。
为什么说是端口回流,因为在大多数soho级的路由器中-如D-Link的路由有一个专门的选项为“端口回流”(此特性要看具体型号)如下:
通过NAT完成“端口回流“
但是在中高端企业级路由器上则没有这么一说。因为此功能完全可以由路由器NAT来完成。假设Router为H3C的路由器。配置如下:
acl number 2000
#
acl number 3000
10.110.10.1
0
#
interface GigabitEthernet1/1
description inside
10.110.10.1
10.110.10.1
telnet
202.38.1.1
3389 inside 10.110.10.1 3389
#
interface GigabitEthernet1/2
description outside
nat outbound 2000
10.110.10.1
10.110.10.1
telnet
202.38.1.1
3389 inside 10.110.10.1 3389
如上所示,外网口和内网口的配置全部相同。这样内网数据在访问web的服务器地址时202.38.1.1,在内网接口G1/1根据NAT
Server将目标地址转换为内网地址10.110.10.110.110.10.1,源地址根据nat outbound 2000把源地址改为G1/1接口的地址。即和上面端口回流原理一样。如此即可建立连接。
或者很简单的将内网的PC和Web Server分到不同的网段。PC改为10.111.10.310.111.10.3网关为10.111.10.1
10.111.10.1,配置如下:
interface interface GigabitEthernet1/1
10.110.10.1
10.110.10.1
telnet
202.38.1.1
3389 inside 10.110.10.1 3389
ip address 10.111.10.1 255.255.0.0 sub
而此种方式不需要内网接口配置nat outbound,比较简单。
ping的效果:
C:\Users\MELODY>ping 10.110.10.110.110.10.1
正在 10.111.10.1
来自
来自
来自
来自
C:\Users\MELODY>ping 202.38.1.1
正在
来自
来自
来自
来自
上下比较对于ICMP来说即使ping的目标和回应的地址不同,凭借ICMP的sequence number-ICMP也是可达的。由此我们更应想到,对NAT Server的原理:当数据包进入接口时对数据包的目标地址进行NAT Server的转换,在出接口时对数据包的源地址进行转换---如果地址都匹配NAT Server配置的地址。
关于域内NAT
我相信,凡事配置过防火墙的工程师都应配置过域内NAT,域内NAT的原理和如上H3C路由器的内网接口配置nat
outbound的原理如出一辙。只是防火墙配置的位置为域内,而路由器为接口。具体配置可参考我之前的“华赛USG
关于dns-map
Dns-map是H3C的一个技术。nat dns-map命令用来配置一条域名到外部IP地址、端口号、协议类型的映射。此命令用于配置内部服务器的“域名-外部IP地址、端口、协议类型”的映射,使内部主机在内部网络无DNS服务器的情况下,可以使用不同的域名区别并访问对应的内部服务器。最多允许配置16条映射。
该功能的实现是对原有DNS ALG的补充和修改。DNS ALG模块的处理流程:内网DNS服务器发向其上级DNS服务器的DNS回应报文中的地址,使用nat server命令中设置的DNS映射地址替换原有DNS回应报文中的地址。
配置dns-map后的处理流程:对外网DNS server发向内网PC的DNS回应报文中,如果该报文中包含的域名是使用dns-map命令中定义的,那么替换该报文中的公网地址为使用nat server命令映射的私网地址。
配置实例:
客户需求:
1)
2)
3)
参考配置:
nat dns-map www123.com 202.38.1.1
80202.38.1.1
80 tcp
nat dns-map ftp.123.com 202.38.1.1
21202.38.1.1
21 tcp
nat dns-map smtp.123.com 202.38.1.1
25202.38.1.1
25 tcp
nat dns-map pop.123.com 202.38.1.1
110202.38.1.1
110 tcp
#
acl number 2000
#
interface GigabitEthernet1/1
ip address 10.110.10.10 255.255.0.0
#
interface GigabitEthernet1/2
nat outbound 2000
10.110.10.1
www
10.110.10.1
smtp
10.110.10.1
pop3
202.38.1.1
4899 inside 10.110.10.1 4899
202.38.1.1
8080 inside 10.110.10.1 8080
nat server protocol udp global 202.38.1.1 dns inside
10.110.10.110.110.10.1
dns
ip address 202.38.1.1 255.255.255.0
要替换的报文如下:
http://s3/mw690/001b61EYzy6K8cpGoDMc2&690
由上可以看出,dns-map将匹配的域名和公网地址的DNS回应报文的解析地址改为了内网地址,如此内网的PC就可以通过内网地址访问服务器了。只是将DNS解析请求发到了公网而已。之后的数据走的都是二层了。但是有个弊端就是PC与服务器的数据流没有经过三层,降低了安全性。
转自:http://melodyyayun.blog.51cto.com/2111476/956326
喜欢
0
赠金笔

加载中…