扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
前文介绍了NAT原理以及NAT在Solaris应用环境下的实现,下面笔者将结合具体应用情况构建Solaris下的NAT服务器。
一、Solaris下NAT用途
1. 连接到Internet,但却没有足够的公用Internet地址分配给内部主机。中小企业内部机器数量较少,可以通过NAT方式接入INTERNET,这时,仅仅需要一个合法的IP地址。
2. 接到一个需要重新分配地址的ISP。企业合并,两个使用同一IP地址网段的企业合并,可以使用NAT而不用重新规划IP地址,保留了以前的投资。但不可避免的是,采用NAT可能使NAT路由器出现IP报文转发效率的损失。
3. 支持多重服务器和负载均衡。通过给一个服务器集群一个逻辑IP地址(10.10.10.100),在路由器上配置NAT可以做到负载分担。常见的例子是TCP load balancing,将外部网络对10.10.10.100的访问顺序定位到不同的服务器。
二、Solaris NAT服务器应用举例
1. 在局域网对外发布Web网络服务,网络拓扑如图1。
(1)互联网客户通过NAT路由器访问局域网内服务器
假设局域网中WWW 服务器的elx0接口的IP地址为192.168.10.1,NAT路由器的局域网接口elxl的IP地址为192.168.10.2,与互联网连接的接口的IP地址是219.243.69.10,互联网上客户机的IP地址为随意。
(2)在局域网对外发布服务的配置
假设使用ADSL连接获得的IP是首先219.243.69.10。
当外界的互联网 使用者浏览Web服务器(219.243.69.10) 的网页时,NAT会自动转向计算机A(192.168.10.3)。其中Web服务器使用80端口。
文件 /etc/ipf/ipnat.conf 內容:
map ppp0 192.168.10.0/24 -> 219.243.69.10/32 proxy port ftp ftp/tcp
map ppp0 192.168.10.0/24 -> 219.243.69.10/32 portmap tcp/udp 40000:60000
map ppp0 192.168.10.0/24 -> 219.243.69.10/32
rdr elx0 0.0.0.0/0 port 80 -> 192.168.0.3 port 80
文件/etc/ipf/ipf.conf内容如下:
pass in on elx0 from 192.168.10.0/22 to any
pass out on elx0 from any to192.168.10.0 /22
如果你每次連接到 ISP時,所獲得的 IP 地址都不同的話/etc/ipf/ipnat.conf 內容如下:
map ppp0 192.168.10.0/24 -> 0/32 proxy port ftp ftp/tcp
map ppp0 192.168.10.0/24 -> 0/32 portmap tcp/udp 40000:60000
map ppp0 192.168.10.0/24 -> 0/32
2. 在局域网建立FTP服务器,允许互联网用户使用FTP服务器网络拓扑如图2。
假设局域网中FTP 服务器的elx0接口的IP地址为192.168.10.1,NAT路由器的局域网接口elxl的IP地址为192.168.10.2,与互联网连接的接口的IP地址是219.243.69.10,互联网上客户机的IP地址为随意。ftp服务器使用的端口是20、21 。
文件/etc/ipf/ipnat.conf 內容:
rdr elx0 0.0.0.0/0 port 20 -> 192.168.0.2 port 20
rdr elx0 0.0.0.0/0 port 21 -> 192.168.0.2 port 21
文件/etc/ipf/ipf.conf内容如下:
pass in on elx0 from 192.168.10.0/22 to any
pass out on elx0 from any to192.168.10.0 /22
3. 启动局域网中的Windows 计算机的远程桌面方便外网用户连接,网络拓扑如图3。
Windows 客户机A IP地址是:192.168.0.1 ;
Windows 客户机B IP地址是:192.168.0.2 ;
我们知道Windows 计算机的远程桌面使用的端口是3389 。
希望远程Windows 客户机連接到网络中IP为的 192.168.0.1的Windows 客户机A进行连接。
文件 /etc/ipf/ipnat.conf 內容:
rdr elx0 0.0.0.0/0 port 3389 -> 192.168.0.1 port 3389
远程Windows 客户机連接到网络中IP为的 192.168.0.1的Windows 客户机A和IP为的 192.168.0.2的Windows 客户机B进行连接。
文件 /etc/ipf/ipnat.conf 內容:
rdr elx0 0.0.0.0/0 port 10000 -> 192.168.0.1 port 3389
rdr elx0 0.0.0.0/0 port 10001 -> 192.168.0.2 port 3389
文件/etc/ipf/ipf.conf内容如下
pass in on elx0 from 192.168.10.0/22 to any
pass out on elx0 from any to192.168.10.0 /22
4. 启动局域网中的Linux计算机的VNC远程桌面方便外网用户连接,网络拓扑如图4。
Linux 客户机B IP地址是:192.168.0.3 ;
VNC就是一个通过软件方式实现ATM网络计算机模式的软件系统。VNC可以轻松实现远程对Linux主机图形化操作。我们知道VNC计算机的远程桌面使用的端口是5801-5900 。
希望远程Linux 客户机連接到网络中IP为的 192.168.0.4的Linux 客户机A進行VNC连接。
文件 /etc/ipf/ipnat.conf 內容:
rdr elx0 0.0.0.0/0 port5801 -> 192.168.0.4 port 5801
文件/etc/ipf/ipf.conf内容如下:
pass in on elx0 from 192.168.10.0/22 to any
pass out on elx0 from any to192.168.10.0 /22
三、深入了解NAT配置规则
使用 ipnat 命令可对 NAT 规则列表进行处理。可以在命令行上使用 ipnat 命令或在 NAT 配置文件中创建 NAT 规则。NAT 配置规则驻留在 ipnat.conf 文件中。如果希望在引导时装入 NAT 规则,请创建一个名为 /etc/ipf/ipnat.conf 的文件,在其中放置 NAT 规则。如果不希望在引导时装入 NAT 规则,请将 ipnat.conf 文件放置在所选的位置中,然后使用 ipnat 命令手动激活包过滤。使用以下语法创建 NAT 规则:
commandinterface-name parameters
每个规则都以以下命令之一开头:
map,在无法控制的循环过程中将一个 IP 地址或网络映射到另一个 IP 地址或网络。
rdr,将包从一个 IP 地址和端口对重定向到另一个 IP 地址和端口对。
bimap,在外部 IP 地址和内部 IP 地址之间建立双向 NAT。
map-block,建立基于静态 IP 地址的转换。此命令基于将地址强制转换为目标范围的算法。
此命令后面的下一个单词是接口名称,如 hme0。
接下来,可以从确定 NAT 配置的各种参数中进行选择。其中一些参数包括:
ipmask,指定网络掩码。
dstipmask,指定 ipmask 要转换成的地址。
mapport,指定 tcp、udp 或 tcp/udp 协议以及端口号的范围。
以下示例说明如何组织 NAT 规则语法以创建 NAT 规则。要重新编写从源地址为 192.168.1.0/24 的 de0 设备上传出的包并在外部将该设备的源地址显示为 10.1.0.0/16,需要在 NAT 规则集中包括以下规则:
map de0 192.168.1.0/24 -> 10.1.0.0/16
四、NAT服务器的监控
1、查看Solaris IP过滤器的pfil统计信息,使用命令:
#ndd -get /dev/pfil qif_status
2、查看NAT 统计,使用命令:
# ipnat –s
3、查看NAT服务器的日志文件,使用命令:
# ipmon -o N
4 清除NAT日志,使用命令:
# ipmon -F
5 如何取消激活NAT,使用命令:
# ipnat -FC
-C 选项删除当前 NAT 规则列表中的所有项。-F 选项删除当前 NAT 转换表(它显示当前活动的 NAT 映射)中的所有活动项。
总结:使用NAT网络地址转换技术可以通过“私有地址”来扩充IP地址空间,解决目前IPV4地址资源不足的问题。文中介绍了Solaris 下NAT的工作原理与实现SNAT和DNAT两种方式。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者