最簡單的SNAT拿來當作分享器用的話
假設我實體IP為66.111.222.33
假設某一虛擬192.168.56.101送封包給Google
這時候會在IPTable裡面加上一筆192.168.56.101的資料
然後把封包來源改成66.111.222.33後送出去給Google
Google收到這封包後回傳給66.111.222.33
這時候SNAT攔截到了封包去查看IPTable發現有對應資料
於是乎把目的66.111.222.33改成192.168.56.101
如此一來完成NAT的功能
========================================================
但是我的問題是假設有另一台192.168.56.102也丟封包給Google
這時候Google要回傳封包
那NAT要怎麼知道這回應封包要轉給101還是102呢
TCP可以看seq和ack但其他的封包類型似乎沒辦法
我想到的方法是每個port對應到NAT的其中一個port
例如192.168.56.101:80→66.111.222.33→30080
192.168.56.101:21→66.111.222.33→30021
192.168.56.102:80→66.111.222.33→40080
除此之外是不是有什麼實作方法?
上網查詢很久都查不到相關資料
懇請前輩們解惑
謝謝
--
假設我實體IP為66.111.222.33
假設某一虛擬192.168.56.101送封包給Google
這時候會在IPTable裡面加上一筆192.168.56.101的資料
然後把封包來源改成66.111.222.33後送出去給Google
Google收到這封包後回傳給66.111.222.33
這時候SNAT攔截到了封包去查看IPTable發現有對應資料
於是乎把目的66.111.222.33改成192.168.56.101
如此一來完成NAT的功能
========================================================
但是我的問題是假設有另一台192.168.56.102也丟封包給Google
這時候Google要回傳封包
那NAT要怎麼知道這回應封包要轉給101還是102呢
TCP可以看seq和ack但其他的封包類型似乎沒辦法
我想到的方法是每個port對應到NAT的其中一個port
例如192.168.56.101:80→66.111.222.33→30080
192.168.56.101:21→66.111.222.33→30021
192.168.56.102:80→66.111.222.33→40080
除此之外是不是有什麼實作方法?
上網查詢很久都查不到相關資料
懇請前輩們解惑
謝謝
--
All Comments