NAT技术背景

·缓解当前可用IPv4地址的紧缺

·私有IP地址在公网不可路由,无法访问公网地址

·iptables利用NAT表,将内网地址与外网地址进行转换,从而进行内网与外网之间的通信


SNAT和DNAT的区别

IP tables nat iptablesnat规则_NAT

SNAT:改变数据包的源地址。当内网数据包到达防火墙后,防火墙会使用外部地址替换掉数据包的源IP地址(目的IP地址不变),使网络内部主机能够与网络外部主机通信。

DNAT: 改变数据包的目的地址。当防火墙收到来自外网的数据包后,会将该数据包的目的IP地址进行替换(源IP地址不变),重新转发到内网的主机。


SNAT和DNAT规则的应用


实验环境搭建

在vmware环境下进行测试,2台linux虚拟机,一台window7虚拟机.使用custom自定义桥接方式到同一虚拟网络,本机测试使用VMnet3, 然后在虚拟机编辑中将VMnet3桥接到本地物理机无线网卡上,完成三台虚拟机互联。

NAT规则链介绍

·PREROUTING:修改到达防火墙数据包的目的IP地址

·POSTROUTING:修改要离开防火墙数据包的源IP地址

·OUTPUT:修改本地产生的数据包的目的IP地址


SNAT实验拓扑

IP tables nat iptablesnat规则_NAT_02

·完成网卡基本IP地址/掩码/网关等配置

-注意Win7-pc2不指网关


·测试连通性

IP tables nat iptablesnat规则_IP_03


·添加SNAT规则

IP tables nat iptablesnat规则_IP tables nat_04

-t: 指定规则表

-A: 添加一条规则到某一条规则链中

-s: 指定数据包的源IP地址或网段

-o: 指定数据包从哪一块网卡发出去

-j: 指定一个默认策略(动作)来处理数据包

--to-source: 指定执行SNAT策略后数据包的源IP


·查看SNAT规则

IP tables nat iptablesnat规则_IP tables nat_05

·测试连通性

IP tables nat iptablesnat规则_IP tables nat_06

DNAT实验拓扑

IP tables nat iptablesnat规则_NAT_07

在做实验之前,需要将原来的那台Linux-pc1设置为一台Web服务器,并做一个简单的html网页,然后通过外网访问


·在Linux中设置Apache服务器

IP tables nat iptablesnat规则_内网_08

·添加并查看DNAT规则

IP tables nat iptablesnat规则_NAT_09

-P: 指定匹配数据包的通信协议(目前DNAT只支持TCP/UDP/ICMP)

--dport: 指定协议端口

--to--destination: 指定执行DNAT策略后数据包的目的IP

·在window7-pc2虚拟机上进行测试

IP tables nat iptablesnat规则_IP tables nat_10