ネットワーキングについて学ぶだけです。
私はMint-18にいます。 network-manager
を使用します。 dnsmasq
が有効になっています。
特定のドメイン名で終わるアドレスをプライベートネームサーバーで解決してほしい。
server
オプションを使用してprivate-nameserverをdnsmasq構成ファイルに追加すると、すべてが失敗します。 google.comも解決できません。
> nslookup google.com
;; connection timed out; no servers could be reache
server
オプションを削除して\etc\resolve.conf
の先頭に同じプライベートネームサーバーを追加すると、ネットワークマネージャーが再起動し、プライベートホスト名を解決できます。
> nslookup abcprivate.net
Server: nn.nn.nn.nn
Address: nn.nn.nn.nn#53
Non-authoritative answer:
Name: abcprivate.net
Address: mm.mm.mm.mm
だから私はプライベートネームサーバーが正しいことを知っています。したがって、それは私がdnsmasqを構成している方法でなければなりません。
これが私の設定ファイルです
>cat /etc/NetworkManager/dnsmasq.d/dnsmasq.conf
server=/abcprivate.net/nn.nn.nn.nn
ここで、abcprivate.netはプライベートネットワークのドメイン、nnは数字です。
私の設定は正しいことがわかりましたが、使用されていませんでした。
>ps ax | grep dnsmasq
1273 ? S 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
ご覧のように、confファイルを使用していませんでした...それが事実であることを確認するために、他のいくつかのテストを行いました。
私は問題を解決することになりましたが、次の方法でそれを行いました:
/etc/NetworkManager/NetworkManager.conf
のdns
行をコメント化/etc/NetworkManager/dnsmasq.d/dnsmasq.conf
を/etc/dnsmasq.conf
に移動しています/etc/resolvconf/resolv.conf.d/head
ファイルを変更して...ファイルリストについては以下を参照)dnsmasq -d -R -q
(何が起こっているのかを確認できるように、画面にクエリを記録したいと思いました)。$ cat /etc/dnsmasq.conf
cache-size=1000
listen-address=127.0.1.1
server=8.8.8.8
server=/abcprivate.net/nn.nn.nn.nn
cache-size=1000
$ cat /etc/resolvconf/resolv.conf.d/head
nameserver 127.0.1.1
$ cat /etc/systemd/system/dnsmasq.service
[Unit]
Description=SystemD - Dnsmasq is a Domain Name System (DNS) forwarder
Requires=network-manager.service
[Service]
Type=simple
ExecStart=/usr/sbin/dnsmasq -d -q -R
私はこのスレッドが古くなっていることを知っていますが、誰かに役立つ場合に備えて、/ etc/NetworkManager/dnsmasq.c/dnsmasq.confはすべてではないにしても多くのパラメーターで無視されます。この投稿を参照してください: http://shiliangya.blogspot.com/2016/02/networkmanager-conflict-with-dns-cahing.html また、ハードコードされた設定の1つがconf-file = /であるためconf-file-dirのパラメーターも設定されている場合でも、conf-fileが読み取られないようにするdev/null。
dnsmasq
はあなたがやりたいことをできると思いますが、dnsmasq.conf
で問題が発生しているようです
おそらく、この行をdnsmasq.conf
でコメント解除する必要があります。
resolv-file=/etc/dnsmasq.resolv
次に、他のネームサーバーを含むファイル/etc/dnsmasq.resolv
が必要です。私はこれを持っています:
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 4.3.2.1
さらに、/etc/dnsmasq.conf
には次のような行が必要だと思います。
server=/.intranet/10.0.0.3
server=/0.0.10.in-addr.arpa/10.0.0.3
local=/.intranet/
1つ目は、「。intranet」ドメインのIPアドレスサーバーを設定します。私の元のDSLモデムは内部で10.0.0.0/24アドレスを使用していたので、それが今日入手したものです。 2行目では、IPアドレスからホスト名を検索できます。 3行目は、dnsmasq
に、/etc/hosts
の「.intranet」ドメインで完全修飾名を検索するか、クライアントがdnsmasq
DHCPに登録したものから検索するように指示しています。 10.0.0.3は、dnsmasq
を実行しているマシンのIPアドレスです。
要約すると:dnsmasq.resolv
は、dnsmasq
が他の名前を転送する先のIPアドレスを設定します。 server
およびlocal
設定は、特定のドメインのDNSサーバーのIPアドレス、およびそのドメイン内の名前のアドレスを取得する場所を決定します。