当机器连接到多个网络接口(Linux)时,我对DNS查找的目的地确定有疑问。
说明: 我正在开发一个连接到2个(或更多)网络的Linux机器。 每个网络接口连接到不同的网络(ISP)并接收(DHCP)不同的IP /默认网关和2个DNS服务器。
该框运行与特定接口绑定的不同网络应用程序(客户端)。
例如:
应用程序A通过网络1(接口1)连接到服务器。
应用程序B通过网络2(接口2)连接到服务器。
我可以使用基于源的路由来控制每个应用程序的目标接口。 (在Linux中使用路由策略 - ip rule / ip route / etc ...)。
我的问题是关于DNS查找:
Linux共享一个resolv.conf文件,两个网络(1,2)DNS服务器都保存在此文件中。
当应用程序使用标准的getaddrinfo()函数时,它使用Linux默认解析机制(通过reolv.conf文件)。
这意味着应用程序B可以将其DNS查询发送到与网络1相关的DNS服务器。
我可以访问代码,我可以手动执行并直接从我的应用程序向特定的DNS服务器发送DNS查询,但这不是首选选项。
是否有标准方式(代码/或配置)导致来自应用程序A的DNS查找选择网络1 DNS服务器和应用程序B选择网络2 DNS服务器?
由于
答案 0 :(得分:0)
没有。您需要以不同于IP堆栈的方式执行DNS解析。