SNAT策略与DNAT策略的介绍与实际应用分析

1.SNAT策略概述

  • 原理:修改数据包中的源IP地址
  • 作用:可以实现局域网共享上网
  • 配置的表及链:nat表中的POSTROUTING

SNAT(source NAT POSTROUTING),用于局域网访问互联网。

SNAT策略的典型应用环境

局域网主机共享单个公网IP地址接入Internet

2.DNAT策略概述

  • 原理:修改数据包中的目标IP地址
  • 作用:将位于企业局域网中的服务器进行发布
  • 配置的表及链:nat表中的PREROUTING链上

DNAT(destination NAT POSTROUTING),用于互联网访问局域网。

3.项目实操

准备及要求如下:

  • 局域网PC机,内网IP:192.168.70.10/24
  • Inter互联网,外网IP:192.168.80.13/24
  • 防火墙:
    nat转换前:192.168.70.10/24
    nat转换后:192.168.80.12/24
    转换前的源地址和目标地址分别为:192.168.70.10/24;192.168.80.13/24
    转换后的源地址和目标地址分别为:192.168.80.12/24;192.168.80.13/24

要求:
(1)内网能访问到外网,实现上网的功能;
(2)外网能映射内网的某个服务;
(3)外网不能访问内网。

项目分析:

Nat转换:入站接受PREROUTING策略匹配,出站POSTROUTING策略匹配
出站(内-外):OUTPUT--POSTROUTING(解决上网问题)
SNAT 192.168.70.0/24--->192.168.80.12
入站(外-内):PREROUTING--INPUT--FORWARD(服务映射)
DNAT 192.168.80.12--->192.168.70.10

具体实现方法:

SNAT:
(1)中间的防火墙充当路由器,开启nat功能;
(2)防火墙上做策略,指定192.168.70.10/24的主机转换成192.168.80.12

DNAT:
(1)中间的防火墙充当路由器,开启nat功能;
(2)防火墙上做策略,指定访问网关的某服务映射给内网服务器。

注意:

  • 必须在防火墙的 PREROUTING 上设置修改目标地址的防火墙策略,因为若不在此处修改,请求数据包通过 PREROUTING 和路由表后,由于目标主机是本机,就会将数据包发往input,进而被发往本地进程。

3.1 项目配置

1)在局域网PC上,进行以下配置

[root@client ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.70.10
NETMASK=255.255.255.0
GATEWAY=192.168.70.11
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=44f38f57-1fab-4e49-a1c2-cdb025cbbaba
DEVICE=ens33
ONBOOT=yes
[root@client ~]# systemctl restart network
[root@client ~]# ifconfig

在这里插入图片描述
设置apache主页,并启动httpd服务

[root@client ~]# yum -y install httpd
[root@client ~]# echo "this is my web site." > /var/www/html/index.html
[root@client ~]# systemctl start httpd
[root@client ~]# systemctl stop firewalld
[root@client ~]# setenforce 0
[root@client ~]# netstat -anpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      55402/httpd 

2)在防火墙上需要用到两张网卡,适当添加即可。配置如下:

[root@iptables ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.70.11
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=85a5cff8-6ba9-4887-87a5-2e7eb465ac1b
DEVICE=ens33
ONBOOT=yes
[root@iptables ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
[root@iptables ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.80.12
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
[root@iptables ~]# systemctl restart network
[root@iptables ~]# ifconfig 

在这里插入图片描述

[root@iptables ~]# echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf	//在防火墙上开启路由
[root@iptables ~]# sysctl -p
net.ipv4.ip_forward=1

设置策略

[root@iptables ~]# iptables -F
[root@iptables ~]# iptables -t nat -n -L 
[root@iptables ~]# iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -o ens36 -j SNAT --to-source 192.168.80.12
[root@iptables ~]# iptables -t nat -A PREROUTING -i ens36 -d 192.168.80.12 -p tcp --dport 80 -j DNAT --to-destination 192.168.70.10
[root@iptables ~]# iptables -t nat -L 

在这里插入图片描述

3)在Inter外网服务器上

[root@internet ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.80.13
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=85a5cff8-6ba9-4887-87a5-2e7eb465ac1b
DEVICE=ens33
ONBOOT=yes
[root@internet ~]# systemctl restart network
[root@internet ~]# ifconfig

在这里插入图片描述

3.2 测验结果

  • (1) 测验上网是否得到解决
    在局域网PC机上,测试 ping 192.168.80.13 外网的地址

在这里插入图片描述

  • (2) 测试外网是否能映射内网的服务
    在Internet外网上输入 curl http://192.168.80.12

在这里插入图片描述

  • (3) 测试外网是否能访问内网

在这里插入图片描述
此刻表示项目已经完成!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值