·SNAT(源地址轉換):是Linux防火牆的一種地址轉換操做,也是iptables命令中的一種數據包控制類型,其做用是根據指定調教修改數據包的源IP地址html
內部地址要訪問公網上的服務時(如web訪問),內部地址會主動發起鏈接,由路由器或者防火牆上的網關對內部地址作個地址轉換,將內部地址的私有IP轉換爲公網的公有IP,網關的這個地址轉換稱爲SNAT,主要用於內部共享IP訪問外部。linux
·SNAT策略只能用在nat表的POSTROUTING鏈,使用iptables命令編寫SNAT策略時,須要結合‘--to-source IP’選項來指定修改後的源IP地址web
·DNAT(目標地址址轉換):是Linux防火牆的另外一種地址轉換操做,一樣也是iptables命令中的數據包控制類型,其做用是—根據指定條件修改數據包的目標IP地址和目標端口vim
當內部須要提供對外服務時(如對外發布web網站),外部地址發起主動鏈接,由路由器或者防火牆上的網關接收這個鏈接,而後將鏈接轉換到內部,此過程是由帶有公網IP的網關替代內部服務來接收外部的鏈接,而後在內部作地址轉換,此轉換稱爲DNAT,主要用於內部服務對外發布。服務器
·DNAT策略只能用在nat表的PREROUTING鏈,使用使用iptables命令編寫DNAT策略時,須要結合‘--to-destination IP地址’選項來指定內部服務器的IP地址網站
·SNAT策略只能用在nat表的POSTROUTING鏈;3d
·SNAT將內部地址的私有IP轉換爲公網的公有IP;日誌
·SNAT用於內部共享IP訪問外部。htm
·DNAT策略只能用在nat表的PREROUTING鏈;blog
·DNAT主要用於內部服務對外發布;
|
IP 地址 |
用途 |
Win 7 |
192.168.100.40 |
充當內網web服務器 |
Linux
(CentOS7) |
ens33:192.168.100.1
ens36:12.0.0.1 |
充當防火牆 ens33:看成內網網關 ens36:看成外網網關 |
Linux (RedHat6) |
12.0.0.12 |
充當外網服務器(httpd) |
SNAT+DNAT策略開始
·由於Linux(CentOS7)做爲防火牆網關,須要添加一塊網卡,並對其進行IP配置!以上表格已註明IP地址和做用
·win7做爲內網服務器,了爲以後的驗證,爲它創建一個網站服務,可讓外網訪問此網站:
·Linux(RedHat6)做爲外網服務器,一樣也安裝httpd服務。而且修改IP地址爲:12.0.0.12 網關爲:12.0.0.1
執行如下命令:
yum install httpd -y //安裝httpd服務
service httpd start //啓動httpd服務
service iptables stop //關閉防火牆
setenforce 0 //關閉selinux
·Linux(CentOS7)從當防火牆,把iptables的全部規則刪除包括nat表裏的規則:
·對於Linux服務器,IP轉發是實現路由功能的關鍵所在,若要Linux主機做爲網關設備,就必須開啓路由功能,修改配置文件:vim /etc/sysctl.conf
在執行命令:sysctl -p //讀取修改後的配置
·內網win7須要訪問外網RedHat6的httpd服務,那麼就須要作SNAT策略,由下圖說明命令所表明含義:
·如今外網RedHat6須要訪問內網win7的web服務,那麼就須要作DNAT策略,由下圖說明命令所表明含義:
內網訪問外網:
查看httpd的日誌文件,能夠看到是哪一個IP 訪問httpd:
實驗成功。
總結:
·在配置防火牆或者路由acl策略時要注意這兩個NAT必定不能混淆。
·注意內網和外網的網卡名稱,在配置時不要混淆
·DNAT策略只能用在nat表的PREROUTING鏈
·SNAT策略只能用在nat表的POSTROUTING鏈