您好,登錄后才能下訂單哦!
SNAT,是源地址轉換,其作用是將ip數據包的源地址轉換成另外一個地址。
SNAT,可能有人覺得奇怪,好好的為什么要進行ip地址轉換啊,為了弄懂這個問題,我們要看一下局域網用戶上公網的原理,假設內網主機A(192.168.2.8)要和外網主機B(61.132.62.131)通信,A向B發出IP數據包,如果沒有SNAT對A主機進行源地址轉換,A與B主機的通訊會不正常中斷,因為當路由器將內網的數據包發到公網IP后,公網IP會給你的私網IP回數據包,這時,公網IP根本就無法知道你的私網IP應該如何走了。所以問它上一級路由器,當然這是肯定會失敗的,因為從公網上根本就無法看到私網IP,因此你無法給他通信。為了實現數據包的正確發送及返回,網關必須將A的址轉換為一個合法的公網地址,同時為了以后B主機能將數據包發送給A,這個合法的公網地址必須是網關的外網地址,如果是其它公網地址的話,B會把數據包發送到其它網關,而不是A主機所在的網關,A將收不到B發過來的數據包,所以內網主機要上公網就必須要有合法的公網地址,而得到這個地址的方法就是讓網關進行SNAT(源地址轉換),將內網地址轉換成公網址(一般是網關的外部地址),所以大家經常會看到為了讓內網用戶上公網,我們必須在routeros的firewall中設置snat,俗稱IP地址欺騙或偽裝(masquerade)。
下邊來看SNAT怎么實現,SNAT的配置方法和DNAT是不一樣的,DNAT可以直接在FW上配置,SNAT我們可以通過UDR實現,如果想讓所有出站流量都經過FW,我們可以通過UDR配置默認路由的出口為FW,這樣訪問internet的流量就必須要走FW了
首先來看下FW做DNAT時對IP的改寫,從家里電腦curl到FW IP
在Nginx log里可以看到源IP會是FW的IP,也就是說在做DNAT時,FW會重寫請求的源IP
而如果curl 服務器的公網IP
Log里會看到源IP是客戶端的公網IP
從各個region curl到web服務器公網IP,包括FW的VNET和peer的VNET
直接Curl web服務器公網IP,看到的源IP都是服務器的公網IP,說明出站是直接走到internet,不經過FW,沒有SNAT
下邊來看SNAT怎么配置,首先在各個region創建UDR
添加默認路由到FW
關聯到各個subnet中
之后嘗試從VM 繼續curl到web服務器,會發現流量被FW拒絕了,因為沒有出站的允許規則
解決這個問題可以在FW上開通網絡規則
10.88網段的可以curl www.baidu.com
不在88網段的就不行
再次添加其他網段的網絡規則
嘗試單獨再添加linux2所在網段的規則
再次嘗試,可以連接,DNAT就簡單實現了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。