一、SNAT策略概述
1、SNAT 策略的典型应用环境
局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)
局域共享上网
2、 SNAT 策略的原理
修改数据包的源地址
把从内网 --> 外网的数据的源内网地址转换成公网源地址
3、SNAT转换前提条件
- 局域网各主机已正确设置IP地址、子网掩码
- 局域网各主机正确设置默认网关地址
- Linux网关支持IP路由转发
临时打开的方法:
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1
#只能临时生效,重启服务器之后会返回为0
永久打开的方法:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #将此行写入配置文件
sysctl -p #读取修改后的配置
4、配置SNAT 内网连接外网实现源地址转换
第一步:准备虚拟机
准备三台虚拟机;一台当作网关服务器;一台当作外网web服务器;一台当作内网客户机;为了区分内网和外网的区别,设置两个VMnet;VMnet1作为内网;VMnet2作为外网
第二步:为网关服务器添加配置
(1)多添加一个网络适配器
(2)修改网卡和新网卡配置
(3)网关服务器设置同意路由转发
#永久启用
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
#若 net.ipv4.ip_forward=0 即无法连通外网地址
第三步:配置客户机
第四步:配置外网web服务器
(1)配置网卡
(2)安装并启动httpd软件
yum install -y httpd
systemctl restart httpd
netstat -lntp | grep :80 #查看软件是否开启
第五步:关闭防火墙和syslinux
systemctl stop firewalld
setenforce 0
第六步:配置SNAT源地址转换
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens36 -j SNAT --to 12.0.0.10
第七步:在内网ping外网服务器,并用tcpdump抓包工具查看信息
内网:
ping -c 10 12.0.0.20 #先ping
外网:
tcpdump -i ens33 -s 0 -w ./test2.cap #再tcpdump抓包;内网ping完后
sz test1.cap 到真机文件中,使用 winsharp 进行查看抓包
二、DNAT策略
1、工作原理
2、应用场景
3、DNAT转换的前提条件
局域网的Web服务器能够访问Internet
网关的外网IP地址有正确的DNS解析记录
Linux网关支持IP路由转发
4、配置DNAT
准备虚拟机设置IP地址和网关
将一台主机放在内网,作为Web服务器,两台作为客户端放在外网,一台作为网关务器
与DNAT实验时相反,这次的web服务器在内网环境,服务机在公网环境
准备DNS服务器给外网客户端使用
yum install -y bind
vim /etc/named.conf
vim /etc/named.rfc1912.zones
cd /var/named/
cp -p named.localhost xy101.com.zone
vim xy101.com.zone
systemctl start named
systemctl enable named
去客户机验证
vim /etc/resolv.conf
nameserver 12.0.0.30
nsloookup www.xy101.com
配置内核配置文件,添加ip_forward 实现路由转发功能的开启
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
保存退出之后
sysctl -p
客户机验证
ping 192.168.80.30
ping 12.0.0.30
ping 12.0.0.100
ping 12.0.0.200
作DNAT转换
用客户机做网页查询;没有任何反应
添加配置即可实现访问网址 ;(先关闭防火墙)
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 80 -j DNAT --to 192.168.80.15:80
实现远程登录Web服务器
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 2345 -j DNAT --to 192.168.80.15:22