一、前言:什么是SNAT?
SNAT用于局域網訪問互聯網,局域網的主機A想訪問互聯網上的主機C,首先要將資料包發送到防火墻所在的主機B,B收到后修改資料包的源地址為B機的公網IP,然后再發送到互聯網,
C機收到后將回應包經互聯網發送給B,B收到回應包之后修改回應包的目的地址為A,然后將資料包轉發給A,
至此就是SNAT的完整程序,在這個程序中,修改了請求報文的源地址,叫做SNAT(source NAT POSTROUTING),用于局域網訪問互聯網,
而DNAT(destination NAT POSTROUTING),修改了請求報文的目標地址,用于互聯網訪問局域網,
二、 實驗規劃

本次實驗需要兩臺虛擬機,一臺做客戶機,一臺做服務器,都是CentOS系統,版本為CentOS Linux release 8.3.2011,
各個虛擬機的IP設定如上圖所示,配置時要遵循以下四點:
- 客戶機的網關要和服務器的輸入網卡(圖中為ens37)一致(192.168.81.254)
- 客戶機的IP地址的網路位要和服務器的輸入網卡的網路位保持一致(192.168.81.XXX)
- 服務器的輸出網卡的網路位要和路由器的網路位保持一致(192.168.2.XXX)
- 服務器的輸入網卡(ens37)不要設定網關
不同網路路由器的IP地址不同,可以通過以下步驟來獲取自己網路的路由器IP地址


修改IP地址的具體流程見下一步,新建網卡需要關閉虛擬機,在"編輯虛擬機設定"中添加"網路配接器",注意所有的網卡都要設定為橋接模式,不要勾選"復制物理網路連接狀態",下圖為例:

全部配置好之后,通過ping百度來測驗,服務器可以上網,客戶機不能上網,
服務器

客戶機

三、修改IP地址
第一步,進入網卡組態檔目錄==/etc/sysconfig/network-scripts/==
cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
第二步,修改你的網卡組態檔,例如"ifcfg-ens33"
“ens33” 是具體介面的名字(注意不要打錯,打錯的地方不會報錯但是會失效)
BOOTPROTO="static" #指定是用靜態配置還是動態配置,none為靜態
NAME="ens33" #網卡的名字
DEVICE="ens33"
ONBOOT="yes" #yes表示開機的時候激活這個網路連接
IPADDR=192.168.2.1 #IP地址
NATMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.2.1 #設定網關,這個網關必須跟虛擬機NAT設定里的網關一樣,要不然就上不了網,如果不知道可刪去,會自動配置
DNS1=114.114.114.114 #首選DNS服務器
DNS2=8.8.8.8 #備選DNS服務器
第三步,重新啟動服務
1.centos8里(不能一次重啟兩個網卡,只能一個一個來)
ifup ens33
2.centos7里
service network restart
(結尾附有兩臺虛擬機的網卡設定檔案的具體內容)
三、開啟服務器的路由功能
臨時開啟路由功能(重啟失效)
echo 1 >/proc/sys/net/ipv4/ip_forward
永久開啟路由功能
cat /etc/sysctl.conf
sysctl -p
四、關閉服務器的Selinux和防火墻
關閉selinux
臨時關閉
setenforce 0
永久關閉
vim /etc/sysconfig/selinux
>>
SELINUX=disabled
關閉防火墻
臨時關閉
service firewalld stop
永久關閉
systemctl disable firewalld
五、使用Iptables實作SNAT策略
在服務器上新建snat.sh腳本
#!/bin/bash
#臨時開啟路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward
#臨時關閉selinux
setenforce 0
#清除filter表和nat表里的防火墻規則
iptables -F
iptables -t nat -F
#關閉firewalld服務
service firewalld stop
#snat策略,將進入的LAN口網段(192.168.81.0)包裝成出去的WAN口網段(192.168.2.15)
iptables -t nat -A POSTROUTING -s 192.168.81.0/24 -o ens33 -j SNAT --to-source 192.168.2.15
運行該腳本
. snat.sh
六、實驗完成,測驗客戶機

附:兩臺虛擬機網卡的具體組態檔
1、服務器的ens33輸出網卡
BOOTPROTO="static"
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR="192.168.2.15"
NETMASK="255.255.255.0"
GATEWAY="192.168.2.1"
DNS1="114.114.114.114"
DNS2="8.8.8.8"
2、服務器的ens37輸入網卡
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes
PREFIX=24
IPADDR=192.168.81.254
3、客戶機的ens33輸出網卡
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.81.1"
NATMASK="255.255.255.0"
GATEWAY="192.168.81.254"
DNS1="114.114.114.114"
DNS2="8.8.8.8"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291741.html
標籤:其他
