目標:
在Azure上部署面向Internet的負載均衡器,連接兩個Linux虛擬機,最終達到從外部訪問一個IP地址,負載均衡器按照之前定的規則分流向兩臺VM。此例中最終訪問負載均衡器的80端口,流量經過轉換後路由到兩臺VM的22 ssh端口。
準備:
1.Git Bash for Windows
2.Azure賬戶
3.創建了資源組
4.在同一資源組中創建兩個Linux VM,在創建時加入同一個可用性集
步驟:
一.創建負載均衡器
1.在“添加”中,找到“公共IP”點擊新建,爲面向Internet的負載均衡器創建一個靜態的公共IP
2.在負載均衡器中點擊添加,“公共IP地址”中選擇剛纔創建的靜態公共IP
3.在“負載均衡器”的界面裏進入剛創建的myLB,點擊“設置”中的“前端IP配置”
選擇剛創建好的IP地址
二.後端地址池
同在設置裏選擇“後端池”新建。關聯到之前兩臺VM所在的可用性集裏,點擊底部“添加目標網絡IP配置”,把兩個VM都加入到其中。
三.探測器
1.設置裏選擇“運行情況探測器”,此次我們虛擬機開放的端口時ssh的默認22端口,所以在“端口”上填入22。
2.間隔5秒和不正常閾值2,代表,此探測器對VM進行22端口的探測,每5秒一次,若有2次沒有正確反映,則視此VM狀態爲不穩定,並停止向其路由流量。直到狀態恢復爲穩定,再次路由流量。
四.負載均衡規則
1.設置裏選擇“負載平衡規則”並添加,“端口”爲外界訪問此IP的端口,“後端端口”爲訪問VM的端口,這裏爲ssh的默認22端口。
2.會話持續性是用來選擇基於幾元組的哈希,用來分發。引官方文檔:“默認情況下,它使用 5 元組哈希(包括源 IP、源端口、目標 IP、目標端口和協議類型)將流量映射到可用服務器。 它僅在傳輸會話 內 提供粘性。 同一 TCP 或 UDP 會話中的數據包將會定向到負載均衡的終結點後面的同一實例。 當客戶端關閉連接後再重新將其打開,或者從同一源 IP 啓動新的會話時,源端口將會變化。 這可能會導致流量轉到其他數據中心的其他終結點。”
這裏可以將5元組哈希改爲客戶端IP或者客戶端IP和協議
五.入站 NAT規則
入站NAT規則(源NAT)同樣是負載均衡器的功能,一般用於對單臺虛擬機的端口轉發。
1.同上,添加“入站NAT規則”,“端口”填要從Internet上訪問負載均衡器的端口選擇一臺虛擬機,配置ip地址,“端口映射”選擇自定義,“目標端口”填寫22
2.此例設置,意味着當訪問負載均衡器的3441端口時,均衡器將流量路由到所選VM的22端口。
3.注:此目標端口不能與其他規則中的相同,否則會出現如圖錯誤紅色歎號提示。
六.測試結果
在windows系統上可用telnet檢測遠程虛擬機端口的開放情況。
在如上的設置中,如訪問負載均衡器的80端口,應該隨機映射到兩臺虛擬機的ssh默認22端口。
1.在cmd或power shell中輸入telnet進入程序
2.輸入如圖命令,請替換爲自己的公共IP和端口
3.得到圖二的信息得知負載均衡器路由成功