Board logo

标题: 网络服务器做了nat 转换(5) [打印本页]

作者: yuyang911220    时间: 2016-8-18 09:55     标题: 网络服务器做了nat 转换(5)

示例五:利用地址转换实现负载均衡
随着访问量的上升,当一台服务器难以胜任时,就必须采用负载均衡技术,将大量的访问合理地分配至多台服务器上。当然,实现负载均衡的手段有许多种,比如可以采用服务器群集负载均衡、交换机负载均衡、DNS解析负载均衡等等。
其实除此以外,也可以通过地址转换方式实现服务器的负载均衡。事实上,这些负载均衡的实现大多是采用轮询方式实现的,使每台服务器都拥有平等的被访问机会。
网络环境:
局域网以2Mb/s DDN专线拉入Internet,路由器选用安装了广域网模块的Cisco2611。内部网络使用的IP地址段为10.1.1.1~10.1.3.254,局域网端口Ethernet0的IP地址为10.1.1.1,子网掩码为255.255.252.0。网络分配的合法IP地址范围为202.110.198.80~202.110.198.87,连接ISP的端口Ethernet1的IP地址为202.110.198.81,子网掩码为255.255.255.248。要求网络内部的所有计算机均可访问Internet,并且在3台Web服务器和2台FTP服务器实现负载均衡。
案例分析:
既然要求网络内所有计算机都可以接入Internet,而合法IP地址又只有5个可用,当然可采用端口复用地址转换方式。本来对服务器通过采用静态地址转换,赋予其合法IP地址即可。但是,由于服务器的访问量太大(或者是服务器的性能太差),不得不使用多台服务器作负载均衡,因此,必须将一个合法IP地址转换成多相内部IP地址,以轮询方式减轻每台服务器的访问压力。
配置文件:
interface fastethernet0/1
ip adderss 10.1.1.1 255.255.252.0 //定义局域网端口IP地址
duplex auto
speed auto
ip nat inside //定义为局域端口
!
interface serial 0/0
ip address 202.110.198.81 255.255.255.248 //定义广域网端口IP地址
duplex auto
speed auto
ip nat outside //定义为广域端口
!
access-list 1 permit 202.110.198.82 //定义轮询地址列表1
access-list 2 permit 202.110.198.83 //定义轮询地址列表2
access-list 3 permit 10.1.1.0 0.0.3.255 //定义本地访问列表3
!
ip nat pool websev 10.1.1.2 10.1.1.4 255.255.255.248 type rotary//定义Web服务器的IP地址池,Rotary关键字表示准备使用轮询策略从NAT池中取出相应的IP地址用于转换进来的IP报文,访问202.110.198.82的请求将依次发送给web服务器:10.1.1.2、10.1.1.3和10.1.1.4
ip nat pool ftpsev 10.1.1.8 10.1.1.9 255.255.255.248 type rotary//定义ftp服务器的IP地址池。
ip nat pool normal 202.110.198.84 202.110.198.84 netmask255.255.255.248 //定义合法IP地址池,名称为normal
ip nat inside destination list 1 pool websev //insidedestination list 语句定义与列表1相匹配的IP地址的报文将使用轮询策略
ip nat inside destination list 2 pool ftpsev
NAT的端口转换方法:FullconeNAT即著名的一对一(one-to-one)NAT一但一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机都能通过给eAddr:port2发包到达iAddr:port1​
Address-RestrictedconeNAT限制地址,即只接收曾经发送到对端的IP地址来的数据包一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机(hostAddr:any)都能通过给eAddr:port2发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:any."any"也就是说端口不受限制
ort-RestrictedconeNAT类似受限制锥形NAT(Restrictedcone NAT),但是还有端口限制。
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。一个外部主机(hostAddr:port3)能够发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:port3.
SymmetricNAT(对称NAT)每一个来自相同内部IP与port的请求到一个特定目的地的IP地址和端口,映射到一个独特的外部来源的IP地址和端口。
同一个内部主机发出一个信息包到不同的目的端,不同的映射使用
外部主机收到了一封包从一个内部主机可以送一封包回来
受NAT影响的应用程序一些高层协议(比如FTP,Quake,SIP,VPN)是在IP包的有效数据内发送网络层(第三层)信息的。比如,主动模式的FTP使用单独的端口分别来控制命令传输和数据传输。当请求一个文件传输时,主机在发送请求的同时也通知对方自己想要在哪个端口接受数据。但是,如果主机是在一个简单的NAT防火墙后发送的请求,那么由于端口的映射将会使对方接收到的信息无效。
一个应用层网关(Application LayerGateway或ALG)可以修正这个问题。运行在NAT防火墙设备上的ALG软件模块可以更新任何由地址转换而导致无效的信息。显然,ALG需要明白它所要修正的上层协议,所以每个有这种问题的协议都需要有一个单独的ALG。
但是,除FTP外的大多数传统的客户机-服务器协议不需要发送网络层(第三层)信息,也就不需要ALG。
这个问题的另一个可能的解决方法是使用象STUN这样的技术,但是这只针对建立在UDP上的高层协议,并且需要它内建这种技术。这种技术对对称NAT也是无效的。还有一种可能的方案是UPnP,但它需要和NAT设备配合起来使用
NAT穿透的方法:目前常用的针对UDP的NAT 穿透(NAT Traversal)方法主要有:
STUN。
TURN。
ICE。
uPnP等。
其中ICE方式由于其结合合了STUN和TURN的特点,所以使用最为广泛。
针对TCP的NAT 穿透技术目前仍为难点。实用的技术仍然不多。
NAT ( natthew)
NAT常见问题:1.NAT的作用是什么?NAT的作用是把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0