转自:http://blog.51cto.com/tong707/2050149
什么是NAT?
NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址,而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址转换成全局地址,从而使得在外部公共网(Internet)上使用一个和数个合法IP地址正常传输数据。
其中,这里的外网和内网是相对来讲的,下面假设能够访问互联网的网络为外网。
一、基础环境
1)实验环境
一台Linux服务器(配置有两张网卡)
一台PC机(一张网卡,IP为10.0.0.10)
2)网络环境
Linux服务器当做NAT服务器,负责将内网的流量转至外网,因此需要两张网卡,配置两个网络,以下称为外网和内网。
内网中的网络可以设置为静态地址也可以配置DHCP服务器。
Linux中 ens160 为外网网卡,IP为 172.18.72.183
-
Linux中 ens192 为内网网卡,IP为 10.0.0.1
二、防火墙配置
1)让发送至内网网卡的数据全部通过
1 |
iptables -A FORWARD -i ens192 -j ACCEPT |
^注: `ens192` 为内网网卡
2)修改数据报头信息
1 |
iptables -t nat -A POSTROUTING -s 10.0.0.0 /24 -o ens160 -j MASQUERADE
|
^注: `10.0.0.0/24` 为内网网段, `ens160` 为外网网卡
或者
1 |
iptables -t nat -A POSTROUTING -j SNAT --to- source 172.18.72.183
|
^注: `172.18.72.183` 为外网网卡地址
三、开启Linux的路由功能
1
2
|
echo 1 > /proc/sys/net/ipv4/ip_forward # 打开路由功能
cat /proc/sys/net/ipv4/ip_forward # 查看是否启用路由功能,结果为1,代表已启用,0代表未启用
|
四、检查连通性
在 Windows 上设置静态IP(10.0.0.10/24),网关设为 10.0.0.1 。
1 |
ping www.baidu.com
|
检测通过。