SNAT DANT原理的应用

一,SNAT 原理的应用

SNAT 应用环境∶局域网主机共享单个公网IP地址接入Internet

SNAT原理∶修改数据包的源地址。 SNAT转换前提条件∶

局域网各主机已正确设置IP地址、子网掩码、默认网关地址

img

命令:

临时打开:

echo 1 >/proc/sys/net/ipv4/ip_forward

永久打开:

vim /etc/ sysctl. conf

net. ipv4.ip_ forward = 1

sysctl -P

SNAT转换

局域网PC封装源、如:目ip(源地址:192.168.100.77,目的地址:172.16.16.101),到达网关路由器,SNAT将源地址转换成唯一的一个公网ip,

此时源地址变成了公网ip172.16.16.254(eth0),再把数据包重新封装。当外网服务器收到,进行数据回复的时候。源目对调,源地址是web服务

器地址,目标地址是网关地址,找到网关路由之后,在网关路由中会有一个状态记录(局域网内或许不止一台主机访问外网),转发回去。

转换公式:

1:iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -i SNAT --to 12.0.0.1

2:iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10

二,DANT的原理的应用

工作原理如图:

img

转换前置条件

网关的外网地址有正确的DNS解析记录

Linux网关开启IP路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysct1 -p

DNAT转换1:

发布内网的Web服务

iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80 -j DNAT --to 192.168.80.11

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80-j DNAT --to 192.168.80.11-192.168.80.20

(入站 外网网卡 外网ip 内网服务器ip)

DNAT转换2:

发布时修改目标端口

iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 250-jDNAT --to 192.168.80.11:22

在外网环境中使用SSH测试

ssh -p 250 root@12.0.0.1

yum -y install net-tools

ifconfig ens33

防火墙规则的备份和还原

导出:

iptables-save > /opt/ipt.txt

导入:

iptables-restore < /opt/ipt.txt

iptables-save >/etc/sysconfig/iptables

(将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则)

systemctl stop iptables

(停止iptables服务会清空掉所有表的规则)

systemctl start iptables

(启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则)