GNU/Linux >> Linux の 問題 >  >> Linux

NIC インターフェース (eth0 / eth1) ごとに DNS サーバーを構成しますか?

やりたいことは簡単にはできません。

<ブロック引用>

または、eth0 と eth1 で異なる DNS ネーム サーバーを構成するにはどうすればよいですか?

ホスト名の名前検索は、標準のシステム ライブラリを介して行われ、特定の「接続」に関連付けられることはありません。実際、DNS クエリが発生した時点で、 アプリケーションが接続先のアドレスを把握していないため、接続できません (これが、そもそも DNS を使用している理由です)。

<ブロック引用>

resolv.conf のデフォルトではなく、ifcfg の DNS 設定を尊重するにはどうすればよいですか?

Linux リゾルバーには、単一のグローバル構成 (/etc/resolv.conf) しかありません。 )。インターフェイスごと、ドメインごと、または接続ごとの設定はありません。 /etc/sysconfig/network-scripts/... の設定 /etc/resolv.conf を設定するためにのみ使用されます 、そして一般的に DNS1 を指定した場合 と DNS2 これらのファイルでは、最後に表示されるインターフェイスは /etc/resolv.conf に表示されるものになります。 .

<ブロック引用>

これを処理するより良い方法はありますか?

実際に達成しようとしていることを教えてください。具体的な状況について詳しく教えていただければ、より良い解決策を提案できるかもしれません。


DNS リクエストは基本的に次のいずれかです

<オール>
  • 「host1.domain1.com の IP アドレスは?」または
  • 「192.168.0.5 のホスト名は?」
  • そのため、「要求」時に、どのイーサネット カードが関与するかはわかりません。 できること 「'domain1.com' で終わるすべてのリクエストは 192.168.0.2 に送られ、他のすべてのリクエストは 10.0.0.2 に送られるべきです。」

    同様に、「192.168.0.0/24 に一致するすべての逆引き DNS リクエストは 192.168.0.2 に送信され、残りは 10.0.0.2 に送信されます。」

    larsks が言ったように、Linux はそのような構成をサポートしていません。ただし、上記のロジックを実装し、適切な「実際の」DNS サーバーにリクエストを転送する、独自の最小限の DNS サーバーを実行することもできます。

    私は dnsmasq がこれを行うことができると信じています (How to configure dnsmasq to forward multiple DNS servers? を参照してください)。しかし、それがわかる前に、私は Twisted で自分自身をロールバックしました:

    from twisted.internet import reactor
    from twisted.names import dns
    from twisted.names import client, server
    
    class Resolver(client.Resolver):
      def queryUDP(self, queries, timeout=None):
        if len(queries) > 0 and (str(queries[0].name).endswith('.domain1.com'):
          self.servers = [('192.168.0.2', 53)]
        else:
          self.servers = [('10.0.0.2', 53)]
        return client.Resolver.queryUDP(self, queries, timeout)
    
    resolver = Resolver(servers=[('10.0', 53)])
    factory = server.DNSServerFactory(clients=[resolver])
    protocol = dns.DNSDatagramProtocol(factory)
    
    reactor.listenUDP(53, protocol, interface='127.0.0.1')
    reactor.listenTCP(53, factory, interface='127.0.0.1')
    reactor.run()
    

    Linux
    1. CentOS 5 /RHEL5でDNSサーバーを構成する方法

    2. 統合されたDNSを使用してActiveDirectoryを構成する

    3. Centos 7 :DNS サーバーの構成

    1. 特定のDNSサーバーを使用するようにOpenVPNクライアントを構成する

    2. CentOSでMariaDBサーバーを構成する

    3. DNSサーバーを作成する

    1. CentOS7でDNSサーバーをバインドするためのRNDCキーを構成する

    2. Oracle Linux 6でインタフェース・ボンディング(NICチーミング)を構成する方法

    3. Linux で eth0 インターフェース名は何を意味しますか?