首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以每次命中为基础伪造DNS解析

以每次命中为基础伪造DNS解析
EN

Stack Overflow用户
提问于 2010-10-07 05:32:35
回答 2查看 246关注 0票数 2

我正在编写一个应用程序,它的唯一目的是确定我们的核心应用程序之一是否已启动并在生产中运行。此应用程序是WCF应用程序。该应用程序在负载均衡器后面的两个不同的机器上运行。每个机器上的站点都配置为侦听以下DNS名称的流量: app.company.com。DNS将app.company.com解析到我们的负载均衡器,然后负载均衡器以循环的方式将请求传递给两个机器中的一个。就确定我们的核心应用程序是否正常运行而言,仅通过请求访问负载均衡器是不可接受的,因为负载均衡器可能会将我们轮询到活动服务器,即使其中一台服务器关闭,我们的应用程序也需要能够确定其中一台服务器是否已关闭。是的,负载均衡器已经在一定程度上检查服务器是否正常运行,但它并不涵盖所有场景。

我的问题是,我不能直接发送流量到每个盒子(通过IP或主机名),因为主机头(app.company.com)必须在请求中,否则目标服务器或WCF将拒绝它。如果我使用app.company.com而不是主机名或IP地址,我将命中负载均衡器,如果我修改机器上的hosts文件,它将只适用于一个机器。

有没有一种方法可以在.Net或Windows中强制DNS解析,将app.company.com解析为我选择的IP地址,并且可以针对每个请求进行微调,而不会影响整个系统的DNS?否则,我可能会考虑手工制作一个请求,这样我就可以在请求中嵌入正确的主机头,而不是实际去往相同DNS名称的目标。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-10 12:28:13

我找到了一个很好的解决这个问题的方法。我最终做的是在同一个web应用程序中创建第二个服务,然后我更改了每台机器上的主机文件,使其包含一行将本地主机指向app.company.com的文件。

代码语言:javascript
复制
127.0.0.1     app.company.com

然后,我将这个新服务配置为指向"app.company.com“。

这允许我通过第二个服务通过主机名或IP地址直接访问服务器,而第二个服务通过主机名与被测服务通信。

这完美地满足了我们的需求。

票数 0
EN

Stack Overflow用户

发布于 2010-10-07 05:58:46

它的负载均衡器在每个命中的基础上分配DNS (正如您所说的,以循环方式),因此您不能从客户端超载。你也许可以配置你的负载均衡器,让来自特定IP的请求不会得到负载均衡,但如果你需要通过DNS检查两个负载均衡的应用程序,这并没有太大帮助。

因此,你需要重新考虑如何解决这个问题。

一种策略是让负载平衡的应用程序报告它们是可操作的,而不是单独的应用程序签入。

或者,让每个应用程序定期更新服务器上的时间戳文件,以便您的应用程序可以通过IP地址分别到达这些盒子,并检查时间戳文件的存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3877069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档