Bas*_*l A 1 networking domain-name-system linux routing
我在 linux 机器上有多个 Internet 连接,我希望每个 Internet 连接都使用特定的 DNS 名称服务器。 /etc/resolv.conf是一个问题,因为它对所有开放的互联网连接使用全局名称服务器。
请注意,所有连接均已打开并同时使用。
一种对 linux 说以下内容的方法:
使用 DNS 名称服务器 A 进行互联网连接 1
使用 DNS 名称服务器 B 进行互联网连接 2
使用 DNS 名称服务器 C 进行互联网连接 3
问题是/etc/resolv.conf所有连接都使用相同的名称服务器。
我必须坚持上面的确切要求。
由于应用程序,我正在测量 ISP 性能和 DNS 响应时间。
使用 OpenDNS 对我没有任何好处。
至于 DHCP,我已经从 ISP 自动获取 DNS,但在 resolve.conf 中只使用了最后的 DNS 服务器,覆盖了以前的名称服务器。
需要帮忙。
Aln*_*tak 13
本质上你有两个问题:
如果您开发自己的测试代码,第一个相对容易解决。最终用户程序几乎总是最终使用libresolv,其中的res_init()功能负责读取/etc/resolv.conf和设置 DNS 服务器以供该程序进行后续查询。在您自己的代码中显式重置每个程序实例上的 DNS 服务器非常容易。
第二个问题需要网络层面的改变。您可能有三个默认路由,并且每个 ISP 没有特定的路由表条目。您需要找出您的三个 ISP 的名称服务器所在的子网,然后添加到该子网的路由,强制流量通过正确的 ISP 退出。
例如,如果 ISP 使用 192.168.1.1 作为 DNS 服务器,那么您需要:
# route add -net 192.168.1.0/24 gw w.x.y.z
Run Code Online (Sandbox Code Playgroud)
其中 wxyz 是面向该特定 ISP 的下一跳地址。
请注意,所有的这将是一个很多更简单,如果你没有尝试测试3个ISP都在同一时间从同一台机器!
我已经对 DNS 服务器进行了批量测试,但拒绝尝试将它们全部连接在一起进行测试 - 一次完成一个要容易得多。
| 归档时间: |
|
| 查看次数: |
4562 次 |
| 最近记录: |