【问题标题】:How can I dynamically set the source IP address when my machine makes a DNS query?当我的机器进行 DNS 查询时,如何动态设置源 IP 地址?
【发布时间】:2012-08-25 20:26:26
【问题描述】:

PushToTest 对社交/移动 Web 应用进行性能测试。例如,我们使用 20 个 AWS EC2 c1.medium 实例在 10 分钟内生成 50,000 个用户事务。

我们的 TestMaker 软件是 Java 并在 EC2/Centos、Windows、Linux、Unix 上运行以操作虚拟用户。每个虚拟用户操作一个无头浏览器。浏览器运行一个测试用例来运行应用程序。

我们客户的网站通常由 Akamai 边缘缓存提供服务。用户的浏览器对 IP 地址进行 DNS 查询,然后 Akamai 动态查找离用户最近的边缘缓存(称为区域)。边缘缓存提供站点的 HTML 和该区域的媒体(jpg、png、Flash 等)。

我们的测试解决方案需要将 DNS 查询作为一组源 IP 地址。每个 EC2 实例都需要来自测试环境设置的唯一 IP 地址。它是来自北美各地的一系列 IP 地址。 PushToTest 提供 IP 地址。

我们需要一种方法在 Centos 实例进行 DNS 查询时告诉它源 IP 地址。

我们如何在 EC2 中做到这一点?

-弗兰克

【问题讨论】:

  • 不清楚您要完成什么,或者更改 DNS 查询的源地址会有什么帮助。正如 Srdjan 在他的回答中正确指出的那样,DNS 响应将返回到欺骗的 IP 地址并被丢弃,因为该主机上没有待处理的请求。如果您尝试为不同的边缘缓存区域获取 DNS 解析,您应该直接与 Akamai 技术支持人员联系以获得潜在的解决方案。欺骗 DNS 源 IP 是行不通的。

标签: java linux dns centos spoofing


【解决方案1】:

你不能这样做。您可以通过降低 TCP/IP 堆栈来设置源 IP,但结果不会被路由回您。它将被路由到切换的 IP,因此建议可能使用代理来帮助您。

【讨论】:

    【解决方案2】:

    感谢您的回复。

    我们通过从多个 AWS 机器实例运行测试解决了这个问题。我们在谷歌上搜索了美国的 DNS 服务,屏幕抓取了结果,建立了一个美国 100 个 DNS 服务的列表。我们将列表保存到逗号分隔值 (cdv) 文件中。

    我们使用 PushToTest TestMaker 在 100 个 AWS 机器实例中运行了测试 - TestMaker 自动启动了这些实例。该测试使用 TestMaker 的唯一数据生产库 (UniqueDPL) 服务来唯一地设置每个机器实例的 DNS 客户端以使用来自 csv 文件的 DNS 服务器。

    Akamai 使用 DNS 定位魔法来确定离 DNS 服务最近的区域。我希望 Akamai 提供一个 REST API 来识别他们托管的许多区域的标头。

    -弗兰克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      相关资源
      最近更新 更多