【发布时间】:2013-12-10 17:28:11
【问题描述】:
我有一个关于当机器连接到多个网络接口 (Linux) 时 DNS 查找的目的地确定的问题。
简介: 我正在开发一个连接到 2 个(或更多)网络的 Linux 机器。 每个网络接口都连接到不同的网络 (ISP) 并接收 (DHCP) 不同的 IP/默认网关和 2 个 DNS 服务器。
盒子运行绑定到特定接口的不同网络应用程序(客户端)。
例如:
应用程序 A 通过网络 1(接口 1)连接到服务器。
应用程序 B 通过网络 2(接口 2)连接到服务器。
我可以使用基于源的路由来控制每个应用程序的目标接口。 (在具有路由策略的 Linux 中 - ip rule/ ip route / 等...)。
我的问题是关于 DNS 查找:
Linux 共享一个resolv.conf 文件,两个网络(1,2)DNS 服务器都在这个文件中维护。
当应用程序使用标准的 getaddrinfo() 函数时,它使用 Linux 默认解析机制(通过 reolv.conf 文件)。
这意味着应用程序 B 可以将其 DNS 查询发送到与网络 1 相关的 DNS 服务器。
我可以访问代码,我可以手动执行此操作并从我的应用程序直接向特定 DNS 服务器发送 DNS 查询,但这不是首选选项。
是否有标准方法(代码/或配置)导致从应用程序 A 选择网络 1 DNS 服务器和应用程序 B 选择网络 2 DNS 服务器进行 DNS 查找?
谢谢
【问题讨论】:
标签: linux networking dns