今天來細說在「SLB管理」裡面的細部功能:
首先來介紹代理協議(Proxy Protocol),這是一種傳輸協議,透過為TCP添加一個很小的表頭來便於傳遞用戶信息,例如協議堆疊、來源IP/端口、目的IP/端口等等,這在服務端需要獲取用戶真實IP的場景就非常有用。
平台的代理協議預設為開啟,當開啟時,EDGE看到的最後一個來源的IP位址會是用戶的IP;而當關閉代理協議時,看到的就會是SLB的IP。如下圖所示。
當用戶請求有經過代理伺服器時,可以另外增加表頭以保留用戶IP。
(需要注意的是EDGE與SLB的代理協議必須要同時開啟才會生效)
SLB管理參數裡面還包含了「線路」的功能,可以在這裡去定義用戶必須使用哪些電信商或瀏覽器,才會由這台SLB服務。平台預設會是默認,也就是沒有任何限制。假設我想要這台SLB只服務使用北京電信的用戶,就要把默認給刪除並選擇北京電信。如下圖所示。
(SLB管理 ➙ 線路)
在這樣的設定下,就只有來自北京地區使用中國電信的用戶能夠正常訪問。
(實際VPN到北京電信測試,能夠正常訪問,dig也能正常解析到SLB的IP)
若用戶是來自重慶地區的聯通電信來訪的話,就會無法使用。
(實際VPN到重慶聯通測試,無法正常訪問,dig會沒有A紀錄的解析結果)
此外,經詢問iNODE NINJA的技術人員,「線路」功能是根據騰訊雲DNSPod的免費版方案而定。
Source IP Pool是在「SLB管理」裡面的進階功能,可以在欄位裡填入SLB網卡上綁定的多個IP,來增加SLB到EDGE的連接數。如下圖所示。
因為Local Address : Port與Local Address : Port的排列組合最多只有65,535個連線,當經過SLB的負載均衡後,SLB會替換Local Address : Port並向EDGE建立連線,而Local Address : Port與Peer Address : Port的排列組合一樣最多只有65,535個。
因此如果從用戶1.1.1.1和2.2.2.2到SLB的連線總數超過65,535個時,就會受到SLB到EDGE這一段的最大連線數的限制。如下圖所示。
為了避免這種情況發生,我們可以在「SourceIpPool」的欄位輸入網卡上的IP,例如a.a.a.b,多設定一個IP就可以讓SLB到EDGE的最大連線數變成65,535*2個,依此類推,就不會發生連線數被塞爆的問題。如下圖所示。
SLB管理參數就先介紹到這裡,下一篇我們要介紹虛擬SLB的功能。