目录
一、SNAT概念
1.1 SNAT的原理
SNAT适用于局域网主机共享单个公网IP地址接入Internet
源地址转换(Source Network Address Translation),根据指定的条件修改数据包的源IP地址,通
常被叫做源映射。
客户端往网关服务器发数据包,通过网关服务器不进行转发,发送至需要访问的服务器,访问后,
数据包回来的时候还是私网IP,原来的源IP作为目的IP进行传送,私网IP作为目的地址在互联网中
会被丢弃,所以我们需要将IP进行转换,这样就能以公网IP的身份返回
1.2 SNAT转换流程
SNAT转换是从私网到公网,源IP地址改变,目的IP地址不变
1.3 SNAT的实例
1.3.1 临时打开和永久打开
Linux系统本身没有转发功能,只有路由发送数据。
①临时打开
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1
②永久打开
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #将此行写入配置文件 (注意要有空格)
sysctl -p #读取修改后的配置
1.3.2 SNAT的转发方式
①私网转换固定的公网IP地址
iptables -t nat -A POSTROUTING -s 192.168.58.0/24 -o ens33 -j SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.58.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
②转换非固定的公网地址
iptables -t nat -A POSTROUTING -s 192. 168.58.0/24 -o ens36 -j MASQUERADE
1.4 实例
前提:
网关服务器内网网卡(VMnet1) 192.168.100.100
网关服务器外网网卡 (VMnet2) 10.0.0.2
Linux Web服务器 (VMnet2) 10.0.0.12
局域网(windows10)(VMnet1) 192.168.100.111
①配置网关服务器的网卡
②修改web服务器的IP地址和网关地址
③修改win10的IP地址
④在网关服务器上设置SNAT
⑤在win10上验证
二、DNAT概述
2.1 DNAT的原理
目标 地址转换。根据指定条件修改数据包的目标IP地址,保证了内网服务器的安全,通常被叫做目的映射。
2.2 DNAT转换流程
DNAT转换流程是源IP不变,目标IP地址改变
2.3 DNAT的实例
2.3.1 Linux网关开启路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
2.3.2 DNAT转换的方式
①内网的web服务
把从ens37进来的要访问web服务的数据包目的地址转换为192.168.100.100
iptables -t nat -A PREROUTING -i ens37 -d 10.0.0.2 -p tcp --dport 80 -j DNAT --to 192.168.100.100
或
iptables -t nat -A PREROUTING -i ens37 -d 10.0.0.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.100 ##80 是端口,
- i:入站外网网卡
10.0.0.2: 外网IP
192.168.100.100: 内网服务器IP
②修改目标的端口
发布局域网内部的OpenSSH服务器,外网主机需使用250端口进行连接
iptables -t nat -A PREROUTING -i ens37 -d 10.0.0.12 -p tcp --dport 250 -j DNAT --to 192.168.100.100:22
在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1
yum -y install net-tools #####若没有ifconfig 命令可提前使用yum 进行安装
ifconfig ens33
总结
SNAT:源地址转换数据包从内网发送至公网时,SNAT会把数据包的源IP由私网IP转换成公网IP。当响应的数据包从公网发送内容时,会把数据包的目的IP由公网IP转为私网IP
DNAT:将公网IP映射为局域网内对应的私网IP的服务器