【发布时间】:2019-09-10 13:05:12
【问题描述】:
面临一个奇怪的问题。我们完整的基础设施在 Azure 上。
1) 我们有一个服务在一个端口 (9443) 上运行。它在 2 个盒子上运行,盒子 1 和盒子 2。
2) 我们在 azure 上使用 LB 对其进行前端处理,并且我已经为该端口创建了 LB 规则。
3) 现在从 azure 上的任何其他框中,我可以执行 curl -I -v https://dns.of.lb:9443/blah/blah 并得到 304 作为回报。
4) 我可以从浏览器访问 LB DNS,它运行良好。
问题是:当我从 box1 或 box2 运行相同的 curl 命令时,我什么也得不到。似乎 curl 卡住了,或者 LB 不让它通过。
但是从每个盒子,我仍然可以运行以下,并且两者都在两个盒子上运行。
https://dns.of.box1:9443/blah/blah https://dns.of.box2:9443/blah/blah
为什么 azure LB 不允许从负载平衡盒生成的流量通过负载平衡返回。我敢肯定,我不是在创建无限循环场景。这是一个有效的用例,一个盒子正在运行 2 个服务,一个服务想通过 LB 使用另一个服务,而不是直接使用。
更新 20190912
所以解决了上面提到的问题,我到现在都这样做了。
在机器上又增加了一个网卡。所以现在 azure VM1 (linux) 有 2 个网卡
- NIC 1:A.B.C.D
- NIC 2:A.B.C.E
(是的,IP 的前 3 部分相同)。事实上,我使用的所有系统(VM、LB)都有类似的东西。
- 现在我希望从 VM1 生成到 A.B.C.X:9443 的流量应该使用 NIC 1:A.B.C.D
- 从 VM1 生成到 A.B.C.X:8444 的流量应使用 NIC 2:A.B.C.E
- 其余流量可以选择任何网卡,我不太在意。
对于前 2 条规则,结束 IP 相同,只是端口不同。
这可能吗?如果可以,那么是使用路由表吗?如是, 请帮我设置路由表。
【问题讨论】:
标签: azure unix routing azure-virtual-network azure-load-balancer