You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure Load Balancer能否用不同网卡分别处理健康探针与业务流量?

实现Azure负载均衡器健康探针与业务流量分离到不同网卡的方案

没问题,这个需求完全可以实现!核心思路是通过Azure负载均衡器的多后端池配置,把健康探针和业务流量分别绑定到VM的两个网卡上,同时在操作系统层面做限制,确保业务网卡不响应探针请求。下面是具体的实现步骤和关键细节:

前提准备

  • 确保你的VM使用的是标准SKU的Azure负载均衡器(基本LB功能有限,不支持这种灵活的多后端池关联配置)。
  • VM的两个网卡(Interface-1和Interface-2)已正确部署到Azure虚拟网络中(可以在同一子网,不过推荐分属不同子网以避免潜在的路由冲突),且网卡的私有IP最好配置为静态(防止IP变动导致探针或流量失效)。

具体配置步骤

  1. 创建两个后端池

    • 在负载均衡器的后端池设置中,新建后端池A:关联VM的Interface-1,这个池专门用于健康探针的检测目标。
    • 新建后端池B:关联VM的Interface-2,这个池用于接收和处理实际的业务流量。
  2. 配置健康探针

    • 新建一个健康探针,将其目标指向后端池A,指定探针的端口(比如80、443或自定义端口)和协议(HTTP/HTTPS/TCP)。
    • 确保VM的Interface-1上开放了这个探针端口(通过Azure NSG或OS防火墙),让探针能正常访问并获取健康状态。
  3. 配置业务流量的负载均衡规则

    • 新建负载均衡规则,前端端口映射到业务所需的后端端口(比如8080),后端目标选择后端池B
    • 关键:在规则的健康探针选项中,选择我们刚才为后端池A创建的那个探针。这样一来,只有当Interface-1的探针检测正常时,LB才会将业务流量转发到Interface-2,完全符合你的需求。
  4. 操作系统层面限制(关键)

    • 为了确保Interface-2不会响应健康探针的请求,需要在VM的OS防火墙中添加规则:
      • Linux系统:使用iptablesufw,拒绝Interface-2(比如eth1)上的探针端口入站流量。例如:iptables -A INPUT -i eth1 -p tcp --dport <探针端口> -j DROP
      • Windows系统:在Windows防火墙中创建入站规则,针对Interface-2,阻止探针端口的访问请求。

验证测试

  • 查看负载均衡器的探针状态,确认它仅检测Interface-1的IP,且状态为“正常”。
  • 发送业务请求到LB的前端IP,通过VM的网络监控工具(比如tcpdump或Windows事件查看器)确认流量确实到达Interface-2。
  • 模拟故障场景:临时禁用Interface-1的网络,观察LB是否停止向Interface-2转发业务流量,验证探针的关联逻辑生效。

注意事项

  • 如果你的VM需要跨子网通信,确保虚拟网络的路由表配置正确,避免两个网卡的流量出现路由冲突。
  • 标准LB的后端池支持同一VM的多个网卡,但要确保每个网卡的IP在后端池中正确注册。
  • 若使用NSG,需分别为两个网卡配置对应的入站规则:允许探针端口到Interface-1,允许业务端口到Interface-2,同时拒绝探针端口到Interface-2。

内容的提问来源于stack exchange,提问作者Ganesh Patwardhan

火山引擎 最新活动