首先說明SNAT和DNAT都大體至關於網絡中的NAT和PAT協議,本實驗是經過用一臺linxu虛擬機來模擬內網網關,而且利用linux上的iptables防火牆策略,達到地址轉換和端口映射的目的。linux
SNAT服務器
實驗結構:網絡
真機----------------(v1)網關服務器s1(v2)--------------(v2)外網服務器s2tcp
開2臺虛擬機linux,分別模擬s1和s2。ide
其中,s1上另增長一塊網卡,使用vmnet1與真機相連。測試
使用vmnet2與外網服務器的s2的vmnet2相連。spa
IP地址規劃blog
真機:接口
vmnet1:192.168.80.5/24ip
s1:
vmnet1:192.168.80.20/24
vmnet2:192.168.90.1/24
s2:
vmnet2:192.168.90.22/24
實驗步驟:
設置s1,s2的網卡參數
vi /etc/sysconfig/network-scripts/ifcfg-eth0
設置以下
繼續設置另外一塊網卡的參數
首先ifconfig查看一下eth1的mac地址,而後
cd /etc/sysconfig/network-scripts/
複製模板
cp -p ifcfg-eth0 ifcfg-eth1
修改
vi ifcfg-eth1
設置以下
在s1上開啓路由轉發功能
vi /etc/sysctl.conf
設置s2的網卡參數
s2
vi /etc/sysconfig/network-scripts/ifcfg-eth1
關閉s2的防火牆
service iptables stop
將真機vmnet1的IP地址設置爲192.168.80.5/24 ,網關設置爲192.168.80.20
2.在s1上設置防火牆,使得s1能夠作pat,將真機地址192.168.80.5轉換爲外網口
地址192.168.90.1
iptables –t nat –I POSTROUTING –s 192.168.80.0/24 –o eth1 –j SNAT --to
192.168.90.1
註釋:-t 規則表 -I 規則鏈 -s 源地址 -o出站接口 -j 策略
測試結果,在真機上ping 192.168.90.22
是通的。
能夠在s2上搭建一個ftp,來觀察結果。
s2
service vsftpd start
而後在真機上登陸 ftp
在s2上查看一下是誰在登陸
s2
netstat –anpt
登陸本身的主機地址爲192.168.90.1 代表pat已經轉換地址成功。
DNAT
實驗結構:
真機(模擬外網)(v1)----------(vmnet1)網關服務器s1(vmnet2)---- -----(vmnet2)內網服務器s2
IP地址的規劃依舊不變
在s1上作修改
s1
首先清空原來的防火牆配置
iptables –F
配置新的DNAT策略
iptables –t nat –A PREROUTING –i eth0 –d 192.168.80.20 –p tcp --dport 21 –j DNAT
--to 192.168.90.22
註釋:-t 規則表 -A 規則鏈 -i 入站接口 -d 目標地址 –p協議 --dport 目標端口 -j 策略
測試,用真機ftp 192.168.90.22
成功登陸
在s2上netstat -anpt
驗證登陸的爲真機IP地址192.168.80.5。
實驗結束。