SNAT和DNAT

本文详细介绍了SNAT和DNAT在Linuxiptables防火墙中的作用,涉及配置步骤,如开启路由转发、网络接口配置以及如何使用SNAT和DNAT进行源地址和目标地址的转换,以实现内外网络通信和负载均衡。
摘要由CSDN通过智能技术生成

目录

一、SNAT DNAT 介绍

二、SNAT策略的配置

        2.1 前期准备

        2.2 各主机网络配置

         2.3配置SNAT

三、DNAT 策略的配置

        3.1 配置DNAT    


一、SNAT DNAT 介绍

SNAT(Source Network Address Translation)和 DNAT(Destination Network Address Translation)是 Linux iptables 防火墙中的两种网络地址转换技术,用于在网络数据包传输过程中修改源地址和目标地址。它们在网络环境中起到重要作用,允许在不同网络中进行网络通信,并提供网络安全和负载均衡等功能。

  1. SNAT(Source NAT):

    SNAT 是一种将源 IP 地址和端口号转换为不同地址和端口的技术。当网络中的内部设备(例如私有 IP 地址)需要访问外部网络(例如公共互联网)时,SNAT 可以用于将内部设备的源地址转换为一个公共 IP 地址。这使得外部服务器返回的数据包能够正确路由回内部网络。

    典型的用例包括多台内部主机通过一个公共 IP 地址访问互联网,例如局域网中的多台计算机共享一个公共 IP 地址。

  2. DNAT(Destination NAT):

    DNAT 是一种将目标 IP 地址和端口号转换为不同地址和端口的技术。当外部网络中的数据包需要访问内部网络时,DNAT 可以用于将外部请求的目标地址转换为内部网络中的目标地址,以确保数据包被正确路由到内部服务器。

    典型的用例包括将外部网络请求的流量引导到内部的服务器,例如将公共 IP 地址上的访问映射到局域网中的特定服务器。

二、SNAT策略的配置

        2.1 前期准备

          1.开启linux路由转发功能

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1    #将此行写入配置文件   
sysctl -p  #读取修改后的配置

         2.配置好虚拟机ip地址网关等 

        2.2 各主机网络配置

        外网主机1

     网关服务器     ens33

      

                        ens36

http服务器:

         2.3配置SNAT

        要想内网终端访问公网就需要配置SNAT

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ens36 -j SNAT --to 15.1.2.1
或
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ens36 -j MASQUERADE
#如果地址不固定可以设置

#-t nat:指定使用 NAT 表,NAT 表用于网络地址转换。
#-A POSTROUTING:将规则添加到 POSTROUTING 链,这是出站数据包离开网络接口之前应用的链。
#-s 192.168.2.0/24:指定源地址为 192.168.2.0/24 子网的数据包。
#-o ens36:指定输出接口为 ens36,表示出站数据包将通过 ens36 接口发送。
#-j SNAT:表示将执行 SNAT(源地址网络转换)。
#--to 15.1.2.1:指定转换后的源 IP 地址为 15.1.2.1。

可以去访问15.1.2.100 外网http服务器查看是否成功

访问成功

三、DNAT 策略的配置

        3.1 配置DNAT    

iptables -t nat -A PREROUTING -i ens36 -d 15.1.2.1 -p tcp --dport 80 -j DNAT --to 192.168.2.102

-t nat:指定使用 NAT 表,NAT 表用于网络地址转换。
-A PREROUTING:将规则添加到 PREROUTING 链,这是入站数据包到达网络接口之前应用的链。
-i ens36:指定输入接口为 ens36,表示入站数据包将通过 ens36 接口接收。
-d 15.1.2.1:指定目标地址为 15.1.2.1,表示目标 IP 地址为 15.1.2.1 的数据包将受到影响。
-p tcp:指定协议为 TCP。
--dport 80:指定目标端口为 80,表示目标端口为 80 的数据包将受到影响。
-j DNAT:表示将执行 DNAT(目标地址网络转换)。
--to 192.168.2.102:指定转换后的目标 IP 地址为 192.168.2.102。

 这使得外网能访问内网http服务器向外提供服务

看外网客户端是否能访问服务器

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值