新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> 网络协议 >> NAT详解、实例(下)

NAT详解、实例(下)

查看次数11387 发表时间2011-11-01 20:22:32

4、谈路由器NAT功能的配置
设置NAT功能的路由器至少要有一个内部端口(Inside),一个外部端口(Outside)。

内部端口连接的网络用户使用的是内部IP地址(非法IP);外部端口连接的是外部的网络,使用电信部门分配给我们的IP地址。一般来说,内部端口应使用ETHERNET 端口,外部端口使用SERIAL 端口。另外,想要使用NAT功能,路由器的IOS必须支持NAT功能。

NAT设置可以分为静态地址转换、动态地址转换、复用动态地址转换。以下设置以Cisco路由器为例。

1.静态地址转换

静态地址转换将内部本地地址与内部合法地址进行一对一地转换,且需要指定和哪个合法地址进行转换。如果内部网络有WWW服务器或FTP服务器等可以为外部用户提供服务,则这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。

2.动态地址转换

动态地址转换也是将内部本地地址与内部合法地址一对一地转换,但是动态地址转换是从内部合法地址池中动态地选择一个未使用的地址来对内部本地地址进行转换的。

3.复用动态地址转换

复用动态地址转换首先是一种动态地址转换,但是它可以允许多个内部本地地址共用一个内部合法地址。对只申请到少量IP地址但却经常同时有多个用户上外部网络的情况,这种转换极为有用。

PAT(Port Address Translation)也称为NAPT,就是将多个内部地址映射为一个公网地址,但以不同的协议端口号与不同的内部地址相对应。这种方式常用于拨号上Internet网。

但PAT 技术不太适合指定TCP/UDP端口的应用,如电视会议等。因此,如果使用PAT技术,也应当使用NAT+PAT,这样才不至于功能受限。

看到这里应该可以理解第一个例子了吧?

5、IPsec与NAT的共存

  网络安全IPsec(IP Security)和网络地址转换NAT(Net Address Translation)应用已经十分广泛了,但是要使它们运行在一起,却不是一件容易的事。从IP的角度来看,NAT对IP的低层进行了修改,对IP是一种背叛;而从应用的角度来看,网络管理人员必须要处理网络地址的问题,NAT使用户可以采取多种方式把自己的网络和主机对外部公共网络隐藏起来,是一种好的工具,现在,无论是大企业还是中小企业都在使用它。与NAT类似,IPsec也是一种好工具,它使用户可以安全地通过Internet联接到远程终端。然而,由于IPsec协议架构本身以及缺乏支持IPsec的NAT设备,当IPsec和NAT在一起运行时就会出现很多问题。解决这些问题最简单的办法,就是再增加一个路由器来运行NAT和虚拟专用网VPN。可是,对于多数情况来说并没有多余的路由器来执行这一功能,因此,要解决两者共存的问题,就必须对IPsec和NAT有一定的了解。

关于NAT就不再赘述

IPsec的工作模式

  IPsec是一个能在Internet上保证通道安全的开放标准。在不同的国度中,跨国企业面临不同的密码长度进出口限制。IPSec能使网络用户和开发商采用各自不同的加密算法和关键字长,从而解决令跨国机构头痛的安全问题。

  IPsec生成一个标准平台,来开发安全网络和两台机器之间的电子隧道。通过IPsec的安全隧道,在数据包可以传送的网络中生成像电路那样的连接。IPsec在远地用户之间和在本地网中生成这样的隧道,它也把每个数据包包封在一个新的包中,该新包包含了建立、维持和不再需要时拆掉隧道所必需的信息。

  经常利用IPsec来确保数据网络的安全。通过使用数字证明和自动认证设备,来验证两个来回发送信息的用户身份。对需要在很多设备之间安全连接的大型网络中确保数据安全,IPsec是一个理想的方法。

  部署了IPsec的用户能确保其网络基础设施的安全,而不会影响各台计算机上的应用程序。此套协议是用作对网络基础设施的纯软件升级。这既允许实现安全性,又没有花什么钱对每台计算机进行改造。最重要的是,IPsec允许不同的网络设备、PC机和其他计算系统之间实现互通。

  IPsec有两种模式—─传输模式和隧道模式。传输模式只对IP分组应用IPsec协议,对IP报头不进行任何修改,它只能应用于主机对主机的IPsec虚拟专用网VPN中。隧道模式中IPsec将原有的IP分组封装成带有新的IP报头的IPsec分组,这样原有的IP分组就被有效地隐藏起来了。隧道主要应用于主机到网关的远程接入的情况。

  IPsec协议中有两点是我们所关心的:鉴定报头AH(Authentication Header)和封装安全载荷ESP(Encapsulation Security Payload)。

  鉴定报头AH可与很多各不相同的算法一起工作。AH应用得很少,它要校验源地址和目的地址这些标明发送设备的字段是否在路由过程中被改变过,如果校验没通过,分组就会被抛弃。通过这种方式AH就为数据的完整性和原始性提供了鉴定。

  封装安全载荷(ESP)信头提供集成功能和IP数据的可靠性。集成保证了数据没有被恶意网客破坏,可靠性保证使用密码技术的安全。对IPv4和IPv6,ESP信头都列在其它IP信头后面。注意两种可选择的IP信头,段到段信头在每个段被路由器等立即系统处理,而终端信头只被接收端处理。ESP编码只有在不被任何IP信头扰乱的情况下才能正确发送包。ESP协议非常灵活,可以在两种加密算法下工作。建立IPSec的两个或者更多系统之间可以使用其他转换方式。现在,可选择算法包括Triple-DES、RC5、IDEA、CAST、BLOWFISH和RC4。

NAT和IPsec之间的“矛盾”

  NAT和AH IPsec无法一起运行,因为根据定义,NAT会改变IP分组的IP地址,而IP分组的任何改变都会被AH标识所破坏。当两个IPsec边界点之间采用了NAPT功能但没有设置IPsec流量处理的时候,IPsec和NAT同样无法协同工作;另外,在传输模式下,ESP IPsec不能和NAPT一起工作,因为在这种传输模式下,端口号受到ESP的保护,端口号的任何改变都会被认为是破坏。在隧道模式的ESP情况下,TCP/UDP报头是不可见的,因此不能被用于进行内外地址的转换,而此时静态NAT和ESP IPsec可以一起工作,因为只有IP地址要进行转换,对高层协议没有影响。

解决争端,和平共处

  为了解决ESP IPsec和NAPT共用的问题,设备生产商提出了多种解决方法。简单的办法是专门用一个工作站来运行IKE,以处理所有的IPsec分组,但这样只允许一个IPsec VPN通过NAPT。客户端可以一开始通过端口号500传送数据进行协商,将所有进入到NAPT设备的IPsec分组传送到指定的主机,同时使NAPT设备将所需的IPsec数据送回到客户端。为了使NAPT正常工作,必须保证内部网络和外部网络之间转换的源端口号是惟一的。因此,我们可以使用IKE来进行协商,IKE采用UDP的500端口,所以不需要任何的特殊处理。为了在两个主机之间传送IPsec流量,我们需要使用SPI。每个SA都有SPI,在VPN安装过程中进行IKE协商时,它们互相交换SPI。NAPT设备将这一对SPI数字映射到NAT内的相关的VPN终端。IPsec 客户端选择的SPI要映射到一个内部IP地址,因为NAPT设备要通过它来确定将流入的流量传送到哪里。

  几点值得注意:1.这种解决争端的方法只适用于位于NAPT设备之外的IPsec 客户端来初始化IPsec VPN;2.必须要设置IPsec网关,用NAPT网关给出的某个IP地址进行IKE协商。ESP用SPI、目的地址和协议号来查找IPsec分组所属的SA,因为IPsec网关只是通过NAPT地址来确定IPsec客户端,它必须使用这个地址进行协商;3.许多IKE鉴定是通过IP地址相关的预先设定或者与密码来进行处理的,因此必须设置IPsec网关与NAPT IP地址之间的协商。

6、NAT的高级应用

记得以前做TB时候出的一个问题:
CheckPoint防火墙出了问题:在事件查看器中可以查到“No License for Routers”的错误,经常死机。这个错误在CheckPoing文档中没有记录, 据说是有一个“路由器管理模块”没有购买。最后发现,其实只要在安装正式License时不要将试用License去掉就没有这个问题。

在等待有关方面支持的同时,我们将该防火墙撤下来,暂时用路由器实现原来由防火墙完成的地址转换、访问控制等部分功能,新旧拓朴图如下:
  无标题.bmp ( 121.23kb )
设置方法比较简单:

如果临时使用的交换机SW不支持VLAN,则可以在路由器内网端口上使用secondary address,注意这样做会把DMZ跟内网出口混在一起,要在内网多层交换机上设置好访问控制列表,阻止通过DMZ入侵内网。配置形如:

interface FastEthernet0/0

ip address 202.1.1.1 255.255.255.252

ip access-group 101 in

ip nat outside

!

interface FastEthernet1/0

ip address 192.168.1.254 255.255.255.0 secondary

ip address 10.0.0.1 255.255.255.0

ip nat inside

!

ip nat pool inet 202.2.2.1 202.2.2.9 netmask 255.255.255.0

ip nat inside source list 1 pool inet overload

ip nat inside source static 192.168.1.230 202.2.2.230

ip nat inside source static 192.168.1.231 202.2.2.231

ip classless

ip route 0.0.0.0 0.0.0.0 202.1.1.2

ip route 10.0.0.0 255.0.0.0 10.0.0.254

!

access-list 1 permit 10.0.0.0 0.0.0.255

access-list 101 permit tcp any any established

access-list 101 permit tcp any host 202.2.2.230 eq domain

access-list 101 permit tcp any host 202.2.2.231 eq www

如果SW支持VLAN,则可以路由器端口做Trunk, 或用不同的路由器端口分别连接不同VLAN,使DMZ与Inside分开。

需要注意的是,内网的多层交换机上一般用默认路由指向出口的路由器/防火墙,现在路由器用静态路由指向内网,这里有形成环路的危险。因为在内网,10.0.0.0/8被子网化,如果一台机器访问10.0.0.0/8中一个不存在的子网时,多层交换机只有默认路由匹配而将包转发到出口路由器,而出口路由器路由表中最匹配的是指向多层交换机的10.0.0.0/8, 所以将包返回给多层交换机。这其实是一种路由汇总问题, 解决的方法是是多层交换机上设定: ip route 10.0.0.0 255.0.0.0 null 0。

上面的拓朴图是只有一个出口的情况,如果该客户除了Internet出口,还有到上级单位HQ的出口,拓朴图如:
  无标题.bmp ( 107.15kb )
这时候配置就有点难度了,要做两个NAT:

interface Ethernet0

ip address 192.168.1.254 255.255.255.0

ip nat inside

ip policy route-map out

!

interface Serial0

description connect to Internet

ip address 202.1.1.1 255.255.255.0

ip nat outside

!

interface Serial1

description connect to HQ

ip address 10.221.1.1 255.255.255.0

ip nat outside

!

ip nat inside source route-map o202 interface Serial0 overload

ip nat inside source route-map o10 interface Serial1 overload

ip classless

ip route 10.0.0.0 255.0.0.0 10.221.1.254

ip route 0.0.0.0 0.0.0.0 202.1.1.2

!

access-list 101 deny ip any 10.0.0.0 0.255.255.255

access-list 101 permit ip any any

access-list 102 permit ip any 10.0.0.0 0.255.255.255

route-map o202 permit 10

match ip address 101

set interface Serial0

!

route-map o10 permit 10

match ip address 102

set interface Serial1

!

route-map out permit 10

match ip address 102

set interface Serial1

!

route-map out permit 20

match ip address 101

set interface Serial0

!

问题解决后的感觉:Checkpoint的总体拥有成本比较高,比如技术支持的费用,软件升级费用等,不是一般的用户能吃得消的。相比之下Cisco的产品技术被较多的人掌握,技术支持和软件升级等成本比较低,总体拥有成本相对就会低得多。Cisco价格透明虽然将价格竞争白热化,使集成商无利可图,但对用户来说却不是坏事。对集成商来说,也许是时候把增值服务和产品分开销售了。

总结:NAT随然比较好用,但是NAT提供的“透明”服务特点鲜明,它为网络管理者和决策者提供了一种更为灵活方便的选择。在企业申请的IP地址有限的情况下,能够使局域网内多台计算机同时访问Internet资源。它为网站设计提供了无限空间,为网络管理提供了可操作性和便于管理的途径。 同时前面也提到,NAT的不足一方面体现在其安全性上,安装了NAT的计算机并不能真正起到防火墙的作用。一般说来,在默认状态下,NAT屏蔽内部网络,不允许任何非正常外部请求进入内部网络。但是这并不意味着系统的绝对安全,由于NAT只改变数据包最外层的IP地址,这为外部攻击留下了隐患。NAT所提供的安全选项相对较少,如要真正地为网络提供高效的安全保障还是要采用包过滤防火墙和应用防火墙。另外,内部网用户可以通过NAT直接连入Internet,也可能会带来网络管理的困难和安全隐患,同样需要采用其他技术来提高其安全性。 但对于小型企业来说,NAT对于网络的一般安全问题解决能力良好,可以基本满足他们的需求。对于这类用户来说,安装NAT和一款较好的防火墙软件就可以杜绝大部分来自Internet的攻击。另外,现在很多软件厂商都在其代理服务软件中对多种技术进行了集成,用户可以配合使用其他功能,保障系统的安全性。 NAT还有一个致命伤就是没有缓存

(转发请注明转自:学PHP)    


  相关推荐



1楼 Maryellen说: 2012-01-21 03:07:06
Kewl you sulhod come up with that. Excellent!

  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: