配置SNTA實現共享上網

2.配置SNAT實現共享上網
問題
本案例要求熟悉SNAT策略的典型應用場景,完成以下任務:
1)搭建一套“局域網-Linux網關-互聯網”的案例環境
2)在Linux網關上配置SNAT策略,實現局域網主機的共享上網
3)修改現有的SNAT策略,驗證MASQUERAD僞裝的有效性
方案
採用三臺RHEL6虛擬機svr5、gw1、pc120,如圖-2所示。其中,虛擬機svr5作爲局域網絡的測試機,接入NAT網絡(virbr0);虛擬機pc120作爲Internet的測試機,接入隔離網絡(virbr1);虛擬機gw1作爲網關/路由器,配置eth0、eth1兩塊網卡,分別接入兩個網絡virbr0、virbr1。
在這裏插入圖片描述
圖-2
內網測試機svr5還需要將默認網關指向Linux網關的內網接口192.168.4.1:
[root@svr5 ~]# route -n | grep UG
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
網關gw1上開啓路由轉發:
[root@gw1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@gw1 ~]# sysctl -p
net.ipv4.ip_forward = 1
… …
步驟
實現此案例需要按照如下步驟進行。
步驟一:搭建一套基於“局域網-Linux網關-互聯網”的案例環境
沿用練習一的環境,稍作調整。
停用虛擬機svr5、gw1、pc120上的iptables服務,清空防火牆規則:
[root@gw1 ~]# service iptables stop
iptables:將鏈設置爲政策 ACCEPT:filter [確定]
iptables:清除防火牆規則: [確定]
iptables:正在卸載模塊: [確定]
去掉外網測試機pc120的路由設置:
[root@pc120 ~]# route del default gw 174.16.16.1
[root@pc120 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
174.16.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
步驟二:在Linux網關上配置SNAT策略,實現局域網主機的共享上網
1)在網關啓用SNAT轉換之前,內網無法訪問外網
比如從內網機svr5嘗試訪問外網機pc120時,因爲pc120缺少到svr5所在私網網段的路由記錄,所以訪問會失敗。這個與正常的互聯網尋址情況是相吻合的,即私網地址不在互聯網中路由。
使用elinks測試Web訪問的情況如下:
[root@svr5 ~]# elinks --dump http://174.16.16.120
… …
^C //長時間無響應,按Ctrl+c鍵中止
[root@svr5 ~]#
2)在gw1上添加SNAT轉換規則
添加的規則應該在nat表內,將來自局域網段192.168.4.0/24、將要從外網接口eth1出去的數據包,在路由選擇之後將數據包的源IP地址修改爲網關gw1的外網接口的IP地址174.16.16.120:
[root@gw1 ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j SNAT --to-source 174.16.16.1

[root@gw1 ~]# iptables -t nat -nL POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all – 192.168.4.0/24 0.0.0.0/0 to:174.16.16.1
3)再次測試從內網訪問外網
從內網機svr5上訪問外網機pc120的網站,可以成功看到網頁:
[root@svr5 ~]# elinks --dump http://174.16.16.120
Test Page 120.
但是在檢查pc120的Web訪問日誌時,可以看到來訪的客戶機地址其實是網關gw1的外網地址,說明網關已經通過SNAT規則把Web請求包的源地址192.168.4.5改成了174.16.16.1,實現了局域網主機共享網關的公網IP地址上網:
[root@pc120 ~]# tail -1 /var/log/httpd/access_log
174.16.16.1 - - [19/May/2015:14:14:05 +0800] “GET / HTTP/1.1” 200 15 “-” “ELinks/0.12pre5 (textmode; Linux; -)”
步驟三:修改現有的SNAT策略,驗證MASQUERAD僞裝的有效性
1) 確認網關gw1上現有的SNAT策略
[root@gw1 ~]# iptables -t nat -nL POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all – 192.168.4.0/24 0.0.0.0/0 to:174.16.16.1
2) 將網關gw1上的SNAT策略替換爲MASQUERADE僞裝策略
可以刪除原策略,重新設置新策略,匹配條件與SNAT差不多,但是處理方式修改爲MASQUERADE即可:
[root@gw1 ~]# iptables -t nat -D POSTROUTING 1
[root@gw1 ~]# iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j MASQUERADE

[root@gw1 ~]# iptables -t nat -nL POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all – 192.168.4.0/24 0.0.0.0/0
3)再次測試從內網訪問外網
從內網機svr5上訪問外網機pc120的網站,還是可以成功看到網頁:
[root@svr5 ~]# elinks --dump http://174.16.16.120
Test Page 120.

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