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)。
場景:雲上的vm主機使用者作為用戶端通路外網伺服器
<code>vm(client)--->SNAT(将資料包中的内網源IP轉換為外網IP)--->Internet(伺服器)--->SNAT(将資料包内的目的IP轉換為内網IP)--->vm(client)</code>