防火墙常见NAT问题处理

本文摘要NAT 是英文 Network Address Translation 的简写,即“网络地址转换”。它是一个 IETF 标准,允许一个整体单位机构以一个公用 IP 地址出现在互联网上。通俗讲就是把单位或组织的所有的网络设备放在一个公用 IP 地址下使用,不仅能解决公网 IP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。所有类型的 NAT 分为两类:静态 NA...

NAT 是英文 Network Address Translation 的简写,即“网络地址转换”。它是一个 IETF 标准,允许一个整体单位机构以一个公用 IP 地址出现在互联网上。通俗讲就是把单位或组织的所有的网络设备放在一个公用 IP 地址下使用,不仅能解决公网 IP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

所有类型的 NAT 分为两类:静态 NAT 和动态 NAT。静态 NAT 是手动创建和维护 NAT 映射的方法,通常与入站类型的 NAT 相关联。动态 NAT 是路由器根据需要自动创建和维护映射的地方,通常与出站类型的 NAT 相关联。

NAT 的共同特征:每个 TCP/IP 数据包都包含一个源 IP 地址、源端口、目的 IP 地址和目的端口。所有类型的 NAT 都使用这些值创建 NAT 映射。

NAT 的四种类型

1、全锥型 NAT(Full cone NAT),即一对一(one-to-one)NAT

  • 一旦内部地址(iAddr:iPort)映射到外部地址(eAddr:ePort),所有发自 iAddr:iPort 的数据包都经由 eAddr:ePort 向外发送。
  • 任意外部主机都能经由发送数据包给 eAddr:ePort 到达 iAddr:iPort。

全锥型NAT示意图

2、受限锥型 NAT((Address-)Restricted cone NAT)

  • 一旦内部地址(iAddr:iPort)映射到外部地址(eAddr:ePort),所有发自 iAddr:iPort 的数据包都经由 eAddr:ePort 向外发送。
  • 仅 iAddr:iPort 曾经发送数据包到外部主机(nAddr:any),外部主机才能经由发送数据包给 eAddr:ePort 到达 iAddr:iPort。(注:any 指外部主机源端口不受限制。)

受限锥型NAT示意图

3、端口受限锥型 NAT(Port-Restricted cone NAT)

类似受限锥形 NAT(Restricted cone NAT),但是还有端口限制。

  • 一旦内部地址(iAddr:iPort)映射到外部地址(eAddr:ePort),所有发自 iAddr:iPort 的数据包都经由 eAddr:ePort 向外发送。
  • 在受限锥型 NAT 基础上增加了外部主机源端口必须固定。

端口受限锥型NAT示意图

4、对称型 NAT(Symmetric NAT)

  • 每一个来自相同内部 IP 与端口,到一个特定目的地 IP 和端口的请求,都映射到一个独特的外部 IP 和端口。同一内部 IP 与端口发到不同的目的地和端口的信息包,都使用不同的映射。
  • 只有曾经收到过内部主机数据的外部主机,才能够把数据包发回。

对称型NAT示意图

对称型 NAT 应用限制的方式与端口受限锥形 NAT 完全相同,但处理 NAT 转换的方式不同。对称 NAT 更复杂。在对称 NAT 中,限制的应用与锥形 NAT 完全相同,但限制的转换处理方式不同。

pfSense 和 OPNsense 使用的是对称型 NAT(Symmetric NAT),由于对称型 NAT 的特殊性,在使用一些应用程序时可能存在问题。例如使用 Xbox 或 PS3,或者挂网心云之类软件时,会提示一些连接问题。一般的解决办法有以下几种:使用 1:1,完全放开对内部主机的访问;打开 UPnP;采用混合出站或手动出站,手动添加端口范围或使用静态端口映射规则;如果使用的端口不多,也可以手动添加端口转发规则。

在测试防火墙上,未使用 1:1 NAT 前,网心云显示的 NAT 类型为端口限制型,使用 1:1 后,显示的 NAT 类型为映射公网型。

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~