一般人的头脑中或多或少对NAT都有所了解,但是往往只了解一些表面化的地址转换思路,但是具体到一些NAT转换的细节和具体场景,例如NAT Control、NAT 豁免、等价NAT,内部、外部转换场景,以及各种NAT的区别、特点等等,可能就会发现思路并不那么顺畅,所以,adreaman特意整理了这篇NAT关键概念的解析文档,以思科ASA防火墙的NAT配置为实例,梳理一下相关概念和应用场景。

Failover是思科PIX防火墙的一种双机热备机制,用于在PIX发生软、硬件故障之后快速倒换到备用机,并且由于备用机实时备份了系统的当前配置、TCP连接表等状态信息,所以倒换动作不会对用户造成任何影响,用户不会感知到此次故障。

ASA8.2版本组播支持stub组播(即PIX上原有的类似igmp代理的组播)以及PIM组播(真正的组播选路),但是二者不能同时配置,即一台 ASA要么处于stub网络的igmp组播代理模式,要么处于pim功能模式(作为一个组播网络的节点)。本文仅介绍思科ASA8.2的stub multicast功能,不介绍pim功能。

PIX防火墙的组播功能要求比较简单,仅仅是一个类似igmp代理的功能,主要完成两个任务:一是在组播下游接口接收igmp报文,二是向这些接口转发组播报文,至于pim的组播寻路相关功能是没有的。本文仅针对PIX6.3版本。

对于动态NAT来说,nat命令中指定的接口的安全级别比global命令中指定的接口的安全级别高,即为内部NAT转换。global命令中指定的接口的安全级别比nat命令中指定的接口的安全级别高,即为外部NAT转换。对于静态NAT来说,static命令关键字后面的小括号中,前面的接口安全级别比后面接口的安全级别高时,为一个静态内部NAT转换,当后面的接口安全级别比前面的接口的安全级别高时,为一个静态外部NAT转换。

我们的实验是:令外网那台linux pc的web浏览器发出http浏览请求,ASA在为其建立HTTP连接时,先向内网的LDAP服务器的认证,通过认证后linux pc即可浏览dmz网络的http服务器上的网页内容。

DHCP可以动态的为其管辖下的主机分配地址。DHCP协议报文是UDP报文,DHCP使用67(客户端)和68(服务器)端口。首先,客户端(例如我们PC的网卡)在其所在广播域广播发送discover报文;当此广播域的DHCP服务器收到discover报文后,则从自己的地址池中为该请求分配一个地址,并发送(单播或广播方式,由客户端的discover中的某字段指定)offer报文将分配的地址通知给客户端;客户端收到offer报文(因为可能存在多个DHCP服务器,所以可能收到多份offer,根据先来后到等机制选中一个合适的offer)后,将向那个选中的offer的DHCP服务器发送request报文(广播发送,各个DHCP服务器都会收到),相当于明确响应它选择了哪个服务器分配的哪个地址;服务器收到这个request报文后,如果它就是客户端选中的,那么就正式发送ACK报文分配地址,如果发现客户端选择的不是它,则处理善后事宜(回收地址等);客户端收到ACK报文后,就正式使用这个IP地址。