私はネットワーキングについて学んだだけです。
私はMint-18を使用しています。使用network-manager
。dnsmasq
有効です。
特定のドメイン名で終わるアドレスをプライベートネームサーバーで確認したいと思います。
server
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は数値です。
答え1
私の設定は正しいですが、使用されていないことがわかりました。
>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ファイルを使用していません。これが真であることを確認するために、いくつかの追加テストを行いました。
最終的に問題を解決しましたが、次の方法で問題を解決しました。
- Network-manager dnsmasqプラグインを無効にする:
dns
その行をコメントアウトします。/etc/NetworkManager/NetworkManager.conf
- 移動
/etc/NetworkManager/dnsmasq.d/dnsmasq.conf
する/etc/dnsmasq.conf
- すべてのネームサーバーキャプチャを/etc/dnsmasq.confに追加します(以下のファイルリストを参照)。
- /etc/resolve.confの上部にdnsmasqアドレスを追加します(
/etc/resolvconf/resolv.conf.d/head
ファイルを変更して...下のファイルリストを参照)。 - Resolve.conf を読み取らないように dnsmasq を起動します。 (
dnsmasq -d -R -q
何が起こっているのかを見るために画面にクエリを記録したいです。) - 1. すべてがうまく動作します。 systemDユニットファイルにdnsmasqをカプセル化しました。
$ 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
答え2
私はあなたが望むことをすることが可能だと信じていますが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/
最初のサーバーは、「.intranet」ドメインのIPアドレスを設定します。私の元のDSLモデムは、内部的に10.0.0.0/24アドレスを使用していたので、今日得られたアドレスです。 2 行目では、IP アドレスでホスト名を検索できます。 3行目は、「.intranet」ドメインまたはDHCPに登録されているクライアントで完全修飾dnsmasq
名を検索するように指示します。 10.0.0.3は実行中のシステムのIPアドレスです。/etc/hosts
dnsmasq
dnsmasq
要約すると、dnsmasq.resolv
別の名前が渡されるIPアドレスを設定してください。設定dnsmasq
によって、特定のドメインのDNSサーバーのIPアドレスとそのドメインの名前のアドレスを取得できる場所が決まります。server
local