SNAT与DNAT原理与应用

1.DNAT 应用环境

在Internet中发布位于局域网内的服务器

2.DNAT原理

修改数据包的目的地址

3.DNAT转换前提条件

  • 1.局域网的服务器能够访问Internet
  • 2.网关的外网地址有正确的DNS解析记录
  • 3.Linux网关开启IP路由转发

4.SNAT源地址转换过程:

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP。
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP。
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分。

注:一个IP地址做SNAT转换,一般可以让内网100到200台主机实现上网。

SNAT策略的配置

SNAT转换前提条件

  1. 局域网各主机已正确设置IP地址、子网掩码、默认网关地址
  2. Linux网关开启IP路由转发

Linux网关开启IP路由转发

1、临时开启:

 echo 1 > /proc/sys/net/ipv4/ip_forward
 或
 sysctl -w net.ipv4.ip_forward=1

2.永久打开:

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 		#将此行写入配置文件

sysctl -p 						#读取修改后的配置

5.SNAT转换

固定的公网IP地址

 #配置SNAT策略,实现SNAT功能,将所有192.168.10.0这个网段内的ip的源地址改为12.0.0.12
 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j SNAT --to 12.0.0.12      
 或
 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j SNAT --to-source 12.0.0.2-12.0.0.12
 ​
 #-A POSTROUTING  指定POSTROUTING链
 #-s 192.168.10.0/24  源地址所处的网段(内网IP)
 #-o ens33  出站网卡
 #-j SNAT
 #--to 12.0.0.12   外网IP
 #--to-source 12.0.0.2-12.0.0.12   外网地址池
										

非固定的公网IP地址(共享动态IP地址)

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens33 -j MASQUERADE

实验:

网关配置

yum install httpd.x86_64 
ifconfig 
iptables -F
iptables -nvL
yum install -y iptables iptables-services.x86_64 
ifconfig 
systemctl stop firewalld.service 
setenforce 0
cd /etc/sysconfig/network-scripts/
ll
vim ifcfg-ens33 
cp ifcfg--ens33 ifcfg-ens36
vim ifcfg-ens36
ifconfig 
vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1 		#将此行写入配置文件
sysctl -p                   #读取配置
iptables -t nat -A POSTROUTING  -s 192.168.10.0/24 -o ens36 -j SNAT --to 12.0.0.254
iptables -nvL -t nat 

 内网配置

注:内网的网关一定要和网关服务器vmnet1的IP地址一致

 外网配置

 查看httpd的程序日志文件

cd /var/log/httpd/
tail -f access_log  实时跟踪
access_log logs/access.log; #访问日志

 设置snat的策略之后则显示的是网关访问

 未设置snat策略时显示的时内网访问

 六、DNAT原理与应用

1.DNAT 应用环境

在Internet中发布位于局域网内的服务器

2.DNAT原理

修改数据包的目的地址

3.DNAT转换前提条件

  • 1.局域网的服务器能够访问Internet
  • 2.网关的外网地址有正确的DNS解析记录
  • 3.Linux网关开启IP路由转发

4.打开DNAT

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 	

sysctl -p 	

5.DNAT转换

发布内网的Web服务

 #把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.10.100
 iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.10.100
 或
 iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.10.100-192.168.10.105
 ​
 #-A PREROUTING        //修改目标地址的链           
 #-i ens33             //入站网卡
 #-d 12.0.0.254        //数据包的目的地址
 #-p tcp --dport 80    //数据包的目的端口
 #-j DNAT              //使用DNAT功能
 #--to 192.168.10.100  //内网服务器IP

iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.12 -p tcp --dport 80 -j DNAT --to 192.168.10.100:80

内网一定要安装httpd服务,外网关闭httpd服务这样就可以实现外网访问12.0.0.254可以访问192.168.10.100

七、防火墙的备份和还原

1.导出(备份)所有表的规则

iptables-save > /opt/ipt.txt

2.导入(还原)规则

iptables-restore < /opt/ipt.txt

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

iptables-save > /etc/sysconfig/iptables
systemctl stop iptables						#停止iptables服务会清空掉所有表的规则
systemctl start iptables					#启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则

抓包

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值