iptables中的snat與dnat配置技術文檔


首先需要弄清楚snat與dnat的區別:
從定義來講它們一個是源地址轉換(snat),一個是目的地址轉換(dnat)。都是地址轉換的功能,將私有地址轉換爲公網地址。

要區分這兩個功能可以簡單的由連接發起者是誰來區分:

  • SNAT:內部地址要訪問公網上的服務時(如web訪問),內部地址會主動發起連接,由路由器或者防火牆上的網關對內部地址做個地址轉換,將內部地址的私有IP轉換爲公網的公有IP,網關的這個地址轉換稱爲SNAT,主要用於內部共享IP訪問外部。
  • DNAT:當內部需要提供對外服務時(如對外發布web網站),外部地址發起主動連接,由路由器或者防火牆上的網關接收這個連接,然後將連接轉換到內部,此過程是由帶有公網IP的網關替代內部服務來接收外部的連接,然後在內部做地址轉換,此轉換稱爲DNAT,主要用於內部服務對外發布。

在配置防火牆或者路由acl策略時要注意這兩個NAT一定不能混淆。

一、SNAT實驗:

實驗準備:
內部PC機(虛擬win10:192.168.200.100);網關服務器(centos7-2:ens-33:192.168.200.20與ens-36:12.0.0.1,注意需要提前再添加一張網卡ens-36,實現雙網卡);外部web服務器(centos7-1:12.0.0.12)
在這裏插入圖片描述

操作步驟:
首先我們需要更改一下網關服務器中ens-36網卡的IP地址(這裏我們可以將ens-33的網卡配置文件複製到ens-36中然後直接進行修改即可)
在這裏插入圖片描述
重啓網卡後查看一下是否更改成功。
在這裏插入圖片描述



然後在網關服務器中重啓iptables服務
在這裏插入圖片描述
然後將nat中的規則清除
在這裏插入圖片描述
在網關服務器中開啓路由轉發功能
在這裏插入圖片描述
使用sysctl -p 查看路由轉發功能是否開啓成功。
在這裏插入圖片描述






接下來準備web服務器,進入/etc/sysconfig/network-scripts/下更改ifcfg-ens33。更改IP地址與網關地址,並將DNS註釋掉。
在這裏插入圖片描述
更改完網卡後會與xshell斷開連接,那我們就直接在虛擬機中進行操作。
在7-1中檢查一下網卡是否更改成功。
在這裏插入圖片描述
然後將firewalld防火牆關閉
在這裏插入圖片描述
接下來掛載磁盤後,安裝httpd服務,並開啓。
在這裏插入圖片描述
在這裏插入圖片描述
接下來在虛擬win10上測試一下是否可以連接上web。
不過在此之前需要先修改一下win10的網卡。
在這裏插入圖片描述
使用ping 命令檢驗是否可以連通網關服務器與web服務器
在這裏插入圖片描述
同樣在虛擬win10中也可以連接上web服務器的網站
在這裏插入圖片描述
此時我們在web服務器中查看httpd的訪問日誌文件,發現是使用的客戶機自己的IP進行訪問的。
在這裏插入圖片描述

















接下來就是進行SNAT的配置,將內部IP地址192.168.200.100更改爲公網IP地址12.0.0.1後進行web的訪問。

iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens36 -j SNAT --to 12.0.0.1
         指定nat表   指定鏈          內網IP網段       外網網卡  使用SNAT  轉換的外網IP 

在這裏插入圖片描述
設置完以後在win10上再次訪問wen服務器
在這裏插入圖片描述
再次查看web服務器的httpd日誌,發現這次訪問的網址是12.0.0.1了,說明SNAT設置成功。
在這裏插入圖片描述



二、DNAT實驗

實驗準備:
內網web服務器 7-1(192.168.200.11);網關服務器 7-2(ens33:192.168.200.20;ens36:12.0.0.1);外網客戶端win10(12.0.0.0/24)
注意:配置DNAT,需要一起配置SNAT,因爲web服務器返回數據的時候也是需要將IP地址轉換之後進行回覆的。
在這裏插入圖片描述
我們繼續使用上面配置SNAT的虛擬機,所以首先需要將網關服務器上面的iptables規則清空。
在這裏插入圖片描述
然後重新確認一下是否開啓了路由轉發功能(=1即開啓)
在這裏插入圖片描述






將web服務器(7-1)的網卡進行更改。
在這裏插入圖片描述
在這裏插入圖片描述
最好在web服務器上再重啓一下httpd服務
在這裏插入圖片描述
在win10上更改一下網卡
在這裏插入圖片描述
然後就是進行DNAT和SNAT的配置了,其中DNAT配置命令爲:






iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.200.11
                 使用PREROUTING鏈  指定入站端口ens36          指定端口號80

SNAT配置命令爲:

iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to 12.0.0.1

在這裏插入圖片描述
接着查看一下規則是否配置成功
在這裏插入圖片描述
然後就可以在 win10 上訪問12.0.0.1進行web訪問了
在這裏插入圖片描述
而此時訪問後在web服務器的日誌中查看訪問日誌
在這裏插入圖片描述







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章