在企业中管理员可以使内部的IP隐藏,是互联网上的主机无法判断内部网络的情况。可以使内网对外不可见,互联网就不能访问内网,但内网主机之间是可以相互访问的。而UTM网关可以部分解决这个问题。但通过网关的形式会给网管带来很大开销,所以我们就可以用到网络地址转换技术。
网络地址转换可以提供一种透明的完善的解决方案,网络管理员可以决定哪些内部的IP地址需要隐藏,哪些地址需要映射成为一个对互联网可见的IP地址。网络地址转换可以实现一种“单向路由”,这样就不存在从互联网到内部网或主机的路由。
网络地址转换的工作机制是当网络数据包流入UTM时,系统会检查该数据包是否符合用户设定的网络地址转换规则,如果找到符合的规则,系统会按照规则对数据包进行转换,同时建立一个网络地址转换进程。当有数据包返回时,将检查进程表,进行相应的处理。这里可以看到,网络地址转换需要对每一个TCP/IP连接建立一个对应的网络地址转换进程表项。假如不对查询算法进行优化,则在访问量大的情况下,查询网络地址转换进程表项将会占用大量的CPU时间。
在网络地址转换图(如图1所示)中的10.0.0.1主机处于内部网,网关为UTM内部接口10.0.0.2,UTM外网接口IP地址是202.112.108.1,互联网上有一台服务器的IP地址是202.100.10.50.用户机10.0.0.1通过UTM的网络地址转换才能访问服务器202.100.10.50,下面介绍网络地址转换的过程。
图1
在不同网段IP地址的转换情况如表3-1所示,内部地址是10.0.0.0子网,UTM网关对外部的地址是202.112.108.1,可以将内部网的地址都转换成202.112.108.1出去。但这会遇到一个问题,所有返回数据包的目的IP都是202.112.108.1,那么UTM如何识别它们并送回内部网的真实主机呢?可以让UTM记住所有出去的包,因为每个包都有一个目的端口,每台主机的端口可能都不一样。还可以让UTM记住所有出去的包的TCP序列号,不同主机发送的包的序列号不一样,UTM会根据记录把返回的数据包送达正确的发送主机。
表3-1 不同网段IP地址的转换
NAT可以有多种模式,主要有如下几种。
(1)静态地址转换
这种模式中,一个指定的内部主机有一个从不改变的固定的转换表,一般静态地址转换将内部地址转换成UTM的外网接口地址,如图2所示。静态地址转换是一种一对一的双向地址映射,主要用于内部服务器向外提供服务的情况。
图2
(2)源地址转换
源地址转换是基于源地址的网络地址转换,主要用于内网访问外网,减少公有地址的数目,隐藏内部地址,如图3所示。
图3
(3)目的地址转换
目的地址转换可分为目标地址映射、目标端口映射、服务器负载均衡等。目的地址转换也称为反向地址转换或地址映射。目的地址转换是一种单向的针对目标地址的映射,主要用于内部服务器向外部提供服务的情况,它与静态地址转换的区别在于它是单向的。外部可以主动访问内部,内部却不可以主动访问外部。另外,可使用目的地址转换实现负载均衡的功能,即可以将一个目标网络地址转换为多个内部服务器地址。也可以通过端口的映射将不同的端口映射到不同的机器上。目的地址转换如图4所示。
图4
不管是以上哪种模式,都可以基于IP地址和端口方式,采用端口地址转换,管理员只需要设定一个或多个可以用作端口地址转换的公有互联网地址,用户的访问将会映射到IP池中IP的一个端口上去,这使得每个合法互联网 IP可以映射六万多台内部网主机。
例如有一个小型网络,它的IP地址段是192.168.0.1-192.168.0.255,通过一台UTM上网,UTM有两个IP地址,一个是网络内部地址,如192.168.0.1,一个是合法的IP地址,如202.106.0.22,如图5所示。
图5
如果局域网内部的一台电脑H4,IP地址是192.168.0.3:4000,4000是它的端口号,想访问搜狐的主页www.sohu.com,192.168.0.3:4000的请求先传到UTM 192.168.0.1上,UTM把这个IP地址转换为202.106.0.22:9000,然后以端口号为9000的这个IP地址向sohu发出请求,当sohu受到请求后,会回答,它先把回答的数据流传给202.106.0.22:9000,也就是局域网边界的UTM,UTM接收到数据后,会查找与9000这个端口号相关联的内部IP地址,当它发现是192.168.0.3:4000后,就把数据传给192.168.0.3:4000,这样,IP地址的转换就完成了。
UTM通过灵活的应用网络地址转换功能,在对通过UTM的数据进行全面细致检测的同时,还保证了网络的连通性,极大地提高了企业网络资源的应用。
【编辑推荐】