在 Oracle® Solaris 11.2 中确保网络安全

退出打印视图

更新时间: 2014 年 9 月
 
 

使用 IP 过滤器的 NAT 功能

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

可以在命令行上使用 ipnat 命令或在 NAT 配置文件中创建 NAT 规则。必须创建 NAT 配置文件并将其路径名设置为该服务的 config/ipnat_config_file 属性的值。缺省值为 /etc/ipf/ipnat.conf。有关更多信息,请参见 ipnat(1M) 命令。

NAT 规则可以应用到 IPv4 和 IPv6 地址。然而,必须为每种地址类型创建单独的规则。在包含 IPv6 地址的 NAT 规则中,不能同时使用 mapproxyrdrproxy NAT 命令。

配置 NAT 规则

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

command interface-name parameters
  1. 每个规则都以以下命令之一开头:

    map

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

    rdr

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

    bimap

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

    map-block

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

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

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

    ipmask

    指定网络掩码。

    dstipmask

    指定 ipmask 要转换成的地址。

    mapport

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

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

map net2 192.168.1.0/24 -> 10.1.0.0/16

以下规则适用于 IPv6 地址:

map net3 fec0:1::/64 -> 2000:1:2::/72 portmap tcp/udp 1025:65000
map-block net3 fe80:0:0:209::/64 -> 209:1:2::/72 ports auto
rdr net0 209::ffff:fe13:e43e port 80 -> fec0:1::e,fec0:1::f port 80 tcp round-robin

有关完整的语法和句法,请参见 ipnat(4) 手册页。