系统管理指南:IP 服务

使用 Oracle Solaris : IP 过滤器的 NAT 功能

NAT 可设置映射规则,用于将源 IP 地址和目标 IP 地址转换为其他 Internet 或内联网地址。这些规则可修改传入或传出 IP 包的源地址和目标地址并继续发送包。另外,还可以使用 NAT 将流量从一个端口重定向到另一个端口。在对包进行任何修改或重定向的过程中,NAT 将维护包的完整性。

使用 ipnat 命令可对 NAT 规则列表进行处理。有关 ipnat 命令的更多信息,请参见 ipnat(1M) 命令。

可以在命令行上使用 ipnat 命令或在 NAT 配置文件中创建 NAT 规则。NAT 配置规则驻留在 ipnat.conf 文件中。如果希望在引导时装入 NAT 规则,请创建一个名为 /etc/ipf/ipnat.conf 的文件,在其中放置 NAT 规则。如果不希望在引导时装入 NAT 规则,请将 ipnat.conf 文件放置在所选的位置中,然后使用 ipnat 命令手动激活包过滤。

配置 NAT 规则

使用以下语法创建 NAT 规则:

command interface-name parameters

  1. 每个规则都以以下命令之一开头:

    map

    在无法控制的循环过程中将一个 IP 地址或网络映射到另一个 IP 地址或网络。

    rdr

    将包从一个 IP 地址和端口对重定向到另一个 IP 地址和端口对。

    bimap

    在外部 IP 地址和内部 IP 地址之间建立双向 NAT。

    map-block

    建立基于静态 IP 地址的转换。此命令基于将地址强制转换为目标范围的算法。

  2. 此命令后面的下一个单词是接口名称,如 hme0

  3. 接下来,可以从确定 NAT 配置的各种参数中进行选择。其中一些参数包括:

    ipmask

    指定网络掩码。

    dstipmask

    指定 ipmask 要转换成的地址。

    mapport

    指定 tcpudptcp/udp 协议以及端口号的范围。

以下示例说明如何组织 NAT 规则语法以创建 NAT 规则。要重新编写从源地址为 192.168.1.0/24de0 设备上传出的包并在外部将该设备的源地址显示为 10.1.0.0/16,需要在 NAT 规则集中包括以下规则:


map de0 192.168.1.0/24 -> 10.1.0.0/16

有关用于编写 NAT 规则的完整语法和句法,请参见 ipnat(4) 手册页。