防火墙和路由器一样,可以部署 NAT 功能来进行地址转换,但相比路由器,防火墙的NAT功能提供了更丰富的选择,让管理员可以更灵活地使用NAT功能。
在本文中,我们将讨论源 NAT 功能中的防火墙。
防火墙的源NAT可以分为两种:只进行地址转换和同时进行地址和端口转换。仅地址转换模式包括 NAT No-PAT,而地址和端口转换模式包括 NAPT、Smart NAT、Easy IP 和三重 NAT。
NAT No-PAT
NAT No-PAT 只执行简单的源地址转换。
管理员在配置NAT No-PAT时,需要指定NAT地址池,设备在对用户消息进行源地址转换时,会从地址池中选择一个IP地址,替换消息中的源IP地址,创建server-map表项和会话表项,然后发送消息。
由于每个用户都需要一个公网地址来进行源地址替换,所以如果有100个内网用户,则需要100个公网地址来满足同时进行的源地址转换请求,因此,NAT No-PAT 不会节省公网地址资源。
NAT No-PAT 将每个源 IP 转换为唯一的公共 IP 地址:
NAPT
与 NAT No-PAT 相比,NAPT 不仅会转换源 IP 地址,还会转换源端口。
由于这种机制,NAPT允许一个公网IP地址对应多个私网用户,防火墙根据端口号区分不同的用户,此外,NAPT 不会像 NAT No-PAT 那样同时为每次转换生成服务器映射表和会话条目。相反,它只为每次转换生成一个会话条目。
NAPT 转换 IP 和端口:
Smart NAT
Smart NAT的出现就是为了解决NAT No-PAT只能为内网用户提供少量地址转换需求的矛盾。
Smart NAT结合了NAT No-PAT和NAPT两种模式,将地址池中的一个IP地址指定为保留IP,当地址池中剩余的地址被NAT No-PAT用尽时,如果还有额外的用户需要地址转换服务,防火墙会针对这些用户的地址转换需求进行NAPT转换。
Easy IP
Easy IP 模式与 NAPT 模式非常相似,都是同时转换源 IP 地址和源端口,但是NAPT会遇到用户公网IP不是固定IP的场景,比如PPPoE拨号用户。
此时设备上没有办法指定NAT地址池,可以使用easy IP方式。
Easy IP模式将报文的源IP地址替换为出口接口的IP地址,省去了指定NAT地址池的过程,这使得 PPPoE 场景中的地址转换成为可能。
三重 NAT
三重 NAT 也是一种同时转换地址和端口的模式。
但与其他源NAT方式最大的不同在于,三重NAT允许公网用户访问私网用户。这是因为其他的源NAT模式都是在5元组NAT模式下进行的,可能会有不同的私网用户共享同一个公网IP的同一个端口号,比如:
假设 NAT 地址为 1.1.1.1,
当源地址 10.1.1.1 访问 2.2.2.2 的 TCP 80 端口时,使用 1.1.1.1 的 1000 端口来标记会话,此时10.1.1.2访问2.2.2.2的TCP 200端口时,仍然可以使用1.1.1.1的1000端口来标记新的会话。但是,当10.1.1.2也访问2.2.2.2的TCP 80端口时,需要与1.1.1.1的其他端口标记会话。
5 元组 NAT 中的端口重用:
也就是说,当防火墙用五元组(源端口、目的端口、源地址、目的地址、协议号)标记会话时,即使替换后的源地址和源端口重复,只要目的端口或目的IP地址不一样,防火墙可以区分这两个会话。
与五元组 NAT 不同,三元组 NAT 模式不重复使用端口号,因此可以唯一标识一个用户,使从公网访问私网用户成为可能。
与 NAT No-PAT 一样,三重 NAT 也同时生成 server-map entry 和 session entry 。
总结
下表详细显示了这五种源 NAT 模式的异同:
|