目的:實現以下效果
一、 准備環境
@1 三台虛擬機
@2 client 端 ip 192.168.1.2 server端 兩塊網卡 , ip 分別是 192.168.1.1 和 172.16.100.1 web端 ip 為 172.16.100.3
注:虛擬機添加網卡后沒顯示配置文件,需要自己手動編輯一個配置文件
二,部署環境
1> 這時會發現,用client 端去ping web 端時ping 不通的,如下
這是因為 server端相當於client端與web 端的橋梁, server端的路由轉發功能沒有開啟
注: 路由轉發 是一個內核參數如下
0 表示未開啟, 那么如何將它開啟呢,下面是一種臨時開啟的方法
1 表示開啟,這樣路由轉發就臨時開啟了,我們來測試一下能否ping通
client 端 通過 server 端的 路由轉發成功的 ping 通了 web 端
#上述方法是臨時 開啟路由轉換功能,那么想要永久開啟呢?需要寫入 /etc/sysctl.conf 這個配置文件里面如下
#1寫入
#2 生效
#查看
!成功
注:這是模擬實驗,真實環境下是不允許client 端直接去訪問 web 端主機的
三、試驗
1>NAT 功能 可以在PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT) 這四個鏈上來實現,因server端開啟了路由轉發功能,所以實際上是只經過 PREROUTING(DNAT),POSTROUTING(SNAT) FORWARD 這三個鏈
@1 開始web 端的 httpd 服務
@2 測試下 client 能否訪問 web 端的 網站
@3 用web 端 查看下http的訪問日志
@4 有記錄
注意此時是 client i端 ip 訪問的 。
現在開始進行網絡地址轉換
2>.(server端)需要在 NAT 表上添加規則 ,注:網路地址轉換,DNAT 訪問的時候需要在 PREROUTING 鏈上 進行網絡地址轉換 ;SNAT 出去的時候需要在POSTROUTING 上 進行網絡地址轉換
命令:iptables -t NAT -A POSTROUTING -s 192.168.1.2 -d 172.16.100.222 -j SNAT --to-source 172.168.100.1
3> 查看下 NAT 表
4>client 端再訪問一下 web端的網站 ; 命令 curl http:// 172.16.100.222
5> 在web端 查看 httpd 的訪問日志
client端 訪問 web 端時 ip 被轉換成了 172.16.100.1
注: 在真實環境下,一般都需要進行網絡地址轉換,畢竟 client 端不能直接 訪問 web端的網站
$$2 DNAT
(實際是上訪問server端,server端沒有httpd服務,通過網絡地址轉換去找 client 端)
1>開啟client 端的 httpd 服務
2>命令 :
3>查看
4>抓取
訪問的server端 抓取的卻是client端 (目標地址轉換 DNT)