例如.
eth0 is on subnet 10.0.0.1/24
eth1 is on subnet 192.168.0.1/24
Any requests sent over eth0 should use DNS server 10.0.0.2.
Any requests sent over eth1 should use DNS server 192.168.0.2.
我已经添加:
DNS1:10.0.0.2>在/ etc / sysconfig / network中的脚本/的ifcfg-eth0的
DNS1:19.168.0.2>在/ etc / sysconfig / network中的脚本/的ifcfg-eth1的
但是这些值会被忽略,并且它始终默认为resolv.conf中的设置
“nameserver 10.0.0.2”当eth0关闭时,连接将通过eth1发送…但是DNS无法再解析,因为它尝试达到10.0.0.2.
>如何让它尊重ifcfg中的DNS设置而不是resolv.conf的默认设置?
>或者如何为eth0与eth1配置不同的DNS名称服务器?
>有没有更好的方法来处理这个?
更新
我们有两个VLAN,每个VLAN都有自己的DNS服务器.这些处理本地DNS(example.loc,guest.app等)的查找,以及在需要时转发.
这是两个独立的物理位置中的两个独立服务器.如果可能的话,我宁愿不在两个子网上运行一个服务器(一个处理敏感数据).
如果eth0要关闭,我需要eth1继续能够发出DNS请求.
我想到将两个IP添加到resolv.conf,然后让它失败,如果它无法到达第一个子网中的服务器,但这似乎不优雅(当eth0是时,必须等待第一个服务器超时每个DNS查询下).
解决方法
Or how do I configure a different DNS Name Server for eth0 vs eth1?
主机名的名称查找通过标准系统库进行,并且不以任何方式与特定的“连接”相关联.实际上,在DNS查询发生时,没有连接,因为您的应用程序甚至没有计算出它要连接的地址(这就是为什么它首先使用DNS).
How do I get it to respect the DNS settings in ifcfg rather than a default for resolv.conf?
Linux解析器只有一个全局配置(/etc/resolv.conf).没有任何类型的每个接口,每个域或每个连接设置. / etc / sysconfig / network-scripts / …中的设置仅用于填充/etc/resolv.conf,通常如果在这些文件中指定DNS1和DNS2,则会出现最后一个界面在/etc/resolv.conf中.
Is there a better way of handling this?
你能告诉我们你真正想要实现的目标吗?如果您能告诉我们有关您具体情况的更多信息,我们可能会建议更好的解决方案.