目标:
在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.得到图二的信息得知负载均衡器路由成功