NAT與FULL NAT的區別


LVS 當前應用主要采用 DR 和 NAT 模式,但這 2 種模式要求 RealServer 和 LVS在同一個 vlan中,導致部署成本過高;
TUNNEL 模式雖然可以跨 vlan,但RealServer上需要部署 ipip 模塊等, 網絡拓撲上需要連通外網,較復雜,不易運維。
為了解決上述問題,我們在 LVS 上添加了一種新的轉發模式:FULLNAT
該模式和 NAT 模式的區別是: Packet IN 時,除了做 DNAT,還做 SNAT(用戶 ip->內網 ip),從而實現LVS-RealServer 間可以跨 vlan 通訊, RealServer 只需要連接到內網

 

FULLNAT 將作為一種新工作模式(同 DR/NAT/TUNNEL),實現如下功能:
1. Packet IN 時,目標 ip 更換為 realserver ip,源 ip 更換為 內網 local ip
2. Packet OUT 時,目標 ip 更換為 client ip,源 ip 更換為 vip
注: Local ip 為一組內網 ip 地址;
性能要求,和 NAT 比, 正常轉發性能下降<10%

 

關於NAT和FULLNAT的區別如下圖所示:

 

nat模式下報文變化

發送       接收

cip ---> vip

cip ---> rip ( DNAT )

rip ---> cip

vip ---> cip ( SNAT )

 

fullnat模式下報文變化:

發送       接收

cip ---> vip

lip ---> rip ( SNAT + DNAT )

rip ---> lip

vip ---> cip ( SNAT + DNAT )

注釋:

  1. cip為客戶端的地址
  2. vip為虛擬地址
  3. rip為真實的服務器
  4. lip為本地地址
  5. SNAT為來源地址轉換
  6. DNAT為目的地址轉換

 

FULLNAT一個最大的問題是:RealServer無法獲得用戶IP;為了解決這個問題我們提出了TOA的概念,主要原理是:將client address放到了TCP Option里面帶給后端RealServer,RealServer上通過toa內核模塊hack了getname函數,給用戶態返回TCP Option中的client ip。

 

TOA (address of tcp option)-插入 client ip 

1. 該功能只有 fullnat 才會用
2. tcp 協議相關

 

LVS可以防御DDOS 4層標志位攻擊,其中,synproxy是用於防御synflood攻擊的模塊

 

參考資料:https://github.com/alibaba/LVS/tree/master/docs

                  http://blog.sina.com.cn/s/blog_620c47630102v2iz.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM