質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

1756閲覧

dnsmasqを使った内部DNSサーバを立てたが、名前解決できない

sensssssaaa

総合スコア2

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

1クリップ

投稿2022/08/28 03:55

編集2022/08/29 03:43

お世話になります。

やりたいこと

外部向けに公開しているWEBサーバに対して、LAN内からでもドメインを使ってアクセスしたい。
例えばドメイン「hogehoge.com」で外部公開しているサーバに対して、LANのIPを指定してアクセスするなどせず、
「hogehoge.com」を使ってアクセスしたい。

今回、クライアントのhostファイルを使って対応したくないので、LAN内にDNSサーバを構築して対応したい。

困っていること、質問したいこと

https://oiio.jp/entries/1256 こちらのサイトを参考にした。
この記事の筆者が行っていることをそのまま作業したが、
LAN内でドメインで名前解決されず、アクセスできない。

具体的には、wordpressで公開しているページに対して、
LAN内からURLにドメインを使用してアクセスができない。
(https://hogehoge.comでアクセスできない)

外部公開しているので、外部からはドメインでアクセスできる。

これが原因かな?と思い確認した内容

  • UFWで53ポートを開放、一応ルータ側もフォワーディングするように設定
  • NetworkManagerでresolv.confが再生成されないようになったことも確認
  • ルータでDNSサーバのIP(後述するが192.168.100.XXX)をLAN内DNSサーバアドレスに指定
  • /etc/dnsmasq.conf の no-dhcp-interface=enp3s0をenp1s0に変更(ifconfigで確認)
  • dnsmasqが起動していない? → 起動しているのを lsof -i:53で確認
  • アクセスできないのを確認後、念のためサーバ自体やNetworkmanagerやdnsmasqを再起動 → 変化なし

構成

>webサーバ 兼 内部DNSサーバ
OS Ubuntu 20.04.4 LTS
ドメイン hogehoge.com
LAN IP 192.168.100.XXX
ゲートウェイ 192.168.100.1
ホスト名 www

>クライアント
何でもいいが、内部と外部を頻繁に出入りするデバイス。
AndroidやノートPC等。特別クライアント側で設定が必要な構成にしたくない。

設定ファイル群

/etc/dnsmasq.conf

dnsmasq.conf

1 2port=53 3bogus-priv 4strict-order 5no-dhcp-interface=enp1s0

/etc/hosts

hosts

1127.0.0.1 localhost 2127.0.1.1 www 3 4# The following lines are desirable for IPv6 capable hosts 5::1 ip6-localhost ip6-loopback 6fe00::0 ip6-localnet 7ff00::0 ip6-mcastprefix 8ff02::1 ip6-allnodes 9ff02::2 ip6-allrouters 10 11192.168.100.XXX hogehoge.com

/etc/resolv.conf

resolv.conf

1nameserver 127.0.0.1 2nameserver 1.1.1.1

・これを試してみたら?
・情報が足りない
・これが原因じゃないか?

なんでもよいのでご意見をいただきたいです。よろしくお願いします。

修正依頼内容 その1

クライアントをwindowsとして、コマンドプロンプトでnslookupをしてみました

CMD

1User> nslookup hogehoge.com 2サーバー:dns9.quad9.net 3Address:9.9.9.9 4 5名前のない回答: 6名前: hogehoge.com 7Address:ドメインのグローバルIPv4/IPv6アドレス

でした。

これを見るとクライアントのDNSが192.168.100.XXXになっていないなと思いました。
(ルータでLAN側DNSサーバアドレスを変更するだけではだめなのでしょうか。)

そこで、Windows側でネットワークの詳細設定からDNSを192.168.100.XXXにし、再度nslookupをしました。

CMD

1User> nslookup hogehoge.com 2DNS request timed out. 3time out was 2 seconds. 4 5サーバー:Unknown 6Address:192.168.100.XXX 7 8以下timeoutのログが数回出力

でした。

修正依頼内容 その2

web/dnsサーバでのdig

1web/dns > dig hogehohe.com @localhost 2 3; <<>> DiG 9.16.1-Ubuntu <<>> hogehohe.com @localhost 4;; global options: +cmd 5;; Got answer: 6;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37071 7;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 8 9;; OPT PSEUDOSECTION: 10; EDNS: version: 0, flags:; udp: 1232 11;; QUESTION SECTION: 12;hogehohe.com IN A 13 14;; ANSWER SECTION: 15hogehohe.com. 300 IN A グローバルIPでした。 16 17;; Query time: 32 msec 18;; SERVER: 127.0.0.1#53(127.0.0.1) 19;; WHEN: 月 8月 29 10:20:05 JST 2022 20;; MSG SIZE rcvd: 63

ping

1user > ping 192.168.100.XXX 2 3192.168.100.XXX に ping を送信しています 32バイトのデータ: 4192.168.100.XXX からの応答: バイト数 = 32 時間 = 5ms TTL = 64 5192.168.100.XXX からの応答: バイト数 = 32 時間 = 5ms TTL = 64 6192.168.100.XXX からの応答: バイト数 = 32 時間 = 5ms TTL = 64 7192.168.100.XXX からの応答: バイト数 = 32 時間 = 5ms TTL = 64 8 9192.168.100.XXXのping統計: 10パケット数 送信=4 受信=4 損失 =0

でした。

今回は自分での気づきがないため、一旦指示された内容についての結果のみ共有します。

修正依頼内容 その3

web/dnsサーバでのdig

1; <<>> DiG 9.16.1-Ubuntu <<>> localhost @localhost 2;; global options: +cmd 3;; Got answer: 4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56239 5;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 6 7;; OPT PSEUDOSECTION: 8; EDNS: version: 0, flags:; udp: 4096 9;; QUESTION SECTION: 10;localhost. IN A 11 12;; ANSWER SECTION: 13localhost. 0 IN A 127.0.0.1 14 15;; Query time: 0 msec 16;; SERVER: 127.0.0.1#53(127.0.0.1) 17;; WHEN: 月 8月 29 11:11:16 JST 2022 18;; MSG SIZE rcvd: 54

このようになりました。

修正依頼内容 その4

web/dnsサーバーでの下記コマンドの結果は変化していませんか?

$ dig hogehoge.com @localhost

web/dnsのdig

1dig hogehoge.com @localhost 2 3; <<>> DiG 9.16.1-Ubuntu <<>> hogehoge.com @localhost 4;; global options: +cmd 5;; Got answer: 6;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20619 7;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 8 9;; OPT PSEUDOSECTION: 10; EDNS: version: 0, flags:; udp: 1232 11;; QUESTION SECTION: 12;hogehoge.com. IN A 13 14;; ANSWER SECTION: 15hogehoge.com. 300 IN A 同じグローバルIPアドレスです。 16 17;; Query time: 20 msec 18;; SERVER: 127.0.0.1#53(127.0.0.1) 19;; WHEN: 月 8月 29 12:35:49 JST 2022 20;; MSG SIZE rcvd: 63

また、Windowsなどクライアントから以下のコマンド

$ dig hogehoge.com @192.168.100.XXX #(IPアドレスはweb/dnsサーバーのもの)

windowsのdig

1dig hogehoge.com192.168.100.XXX 2 3; <<>> DiG 9.16.32 <<>> hogehoge.com 192.168.100.XXX 4;; global options: +cmd 5;; Got answer: 6;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30127 7;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 8 9;; OPT PSEUDOSECTION: 10; EDNS: version: 0, flags:; udp: 4096 11;; QUESTION SECTION: 12;hogehoge.com. IN A 13 14;; ANSWER SECTION: 15hogehoge.com. 293 IN A 同じグローバルIPアドレスです。 16 17;; Query time: 3 msec 18;; SERVER: 192.168.100.XXX#53(192.168.100.XXX) 19;; WHEN: Mon Aug 29 12:30:02 ;; MSG SIZE rcvd: 63 20 21;; Got answer: 22;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 64073 23;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 24 25;; OPT PSEUDOSECTION: 26; EDNS: version: 0, flags:; udp: 4096 27;; QUESTION SECTION: 28;192.168.100.XXX. IN A 29 30;; Query time: 5 msec 31;; SERVER: 192.168.100.XXX#53(192.168.100.XXX) 32;; WHEN: Mon Aug 29 12:30:02 ;; MSG SIZE rcvd: 43

さらに、以下のコマンドの結果はどうなりますか?

$ dig hogehoge.com

windowsのdig

1; <<>> DiG 9.16.32 <<>> hogehoge.com 2;; global options: +cmd 3;; Got answer: 4;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26977 5;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 6 7;; OPT PSEUDOSECTION: 8; EDNS: version: 0, flags:; udp: 4096 9;; QUESTION SECTION: 10;hogehoge.com. IN A 11 12;; ANSWER SECTION: 13hogehoge.com. 106 IN A 同じグローバルIPです。 14 15;; Query time: 0 msec 16;; SERVER: 192.168.100.XXX#53(192.168.100.XXX) 17;; WHEN: Mon Aug 29 12:39:06 ;; MSG SIZE rcvd: 63

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2022/08/28 04:07

テストに使った端末はWindowsでしょうか、Macでしょうか? また、nslookupやdigの結果を追記してください。
sensssssaaa

2022/08/28 23:48

コメントありがとうございます。本文の下部にて追記/修正内容を加筆しました。
ockeghem

2022/08/29 01:12

追記ありがとうございます。以下を試してみてください。 (1) webサーバ 兼 内部DNSサーバ上で下記のコマンドを実行する $ dig hogehoge.com @localhost (2) Windowsクライアントから以下のコマンドを実行する $ ping 192.168.100.XXX (webサーバ 兼 内部DNSサーバのIPアドレス)
sensssssaaa

2022/08/29 01:30

コメントありがとうございます。結果を本文に加筆しました。
ockeghem

2022/08/29 01:53

$ sudo lsof -i:53 をもう一度実行してみてください。ここ、結構ハマりやすいです
sensssssaaa

2022/08/29 01:56

ありがとうございます。こちらが結果になります。(章立てしなくてもよさそうな量だったので。) dnsmasq 1061 dnsmasq 4u IPv4 34863 0t0 UDP *:domain dnsmasq 1061 dnsmasq 5u IPv4 34864 0t0 TCP *:domain (LISTEN) dnsmasq 1061 dnsmasq 6u IPv6 34865 0t0 UDP *:domain dnsmasq 1061 dnsmasq 7u IPv6 34616 0t0 TCP *:domain (LISTEN)
ockeghem

2022/08/29 02:08

問題ないですね。切り分けのため、以下を実行してください $ dig localhost @localhost
sensssssaaa

2022/08/29 02:13

ありがとうございます。ただいま本文に追記しました。
ockeghem

2022/08/29 02:16

dnsmasqは正しく動いているようです。以下は打ち間違いではないですか? /etc/hostsからホスト名をコピペして実行してみてください。ホスト名は変えてあるのでしょうが、hogehogeではなくhogehohe となっているのが気になります。 $ dig hogehohe.com @localhost
sensssssaaa

2022/08/29 02:22

hogehohe.com部分だけ手打ちしてしまって、自分が実際に運用しているドメイン部分にコピペで書き換えただけなのでおそらく関係ないと思います。 念のため、hostsに記述されているドメインをコピーしてdigしてみましたが、自分が運用しているドメインのグローバルIPが表示されるだけ、つまりは修正依頼内容 その2で共有した結果になりました。
sensssssaaa

2022/08/29 02:25

書き漏らしていたので連投になりますが、一部手打ち/コピペで混乱を招いてしまいすみません。
ockeghem

2022/08/29 02:27

$ ping hogehoge.com をウェブサーバー兼DNSサーバー上で実行するとどうなりますか?
sensssssaaa

2022/08/29 02:31

PING hogehoge.com(ドメインのグローバルIPv6アドレス) 56 データ長(byte) 以下、ずっと 送信元 (ドメインのグローバルIPv6アドレス) icmp_seq=1 目的地へ届きません: アドレスに届きません のようになります。
ockeghem

2022/08/29 02:33

そのグローバルIPアドレスはどこで定義されていますか?
sensssssaaa

2022/08/29 02:37

「どこで定義されている」の意を自分が正確に解釈できているかわかりませんが、 当方のルータは固定IP機能がないので、DDNSを使ってルータのグローバルIP(例えば自分のLANから https://www.ugtop.com/spill.shtml にアクセスして表示されるIPv4アドレス)をドメインと紐付けています。 一応の捕捉になりますが、外部からドメインを使って自分のwebサーバにアクセスできる状態です。
ockeghem

2022/08/29 02:58

pingの結果からみて、/etc/hosts の設定が壊れているようです。今の行を消して入力し直してみてください。
sensssssaaa

2022/08/29 03:05

hostsを書き直して再度pingしてみたところ、 PING hogehoge.com (192.168.100.XXX) 56(84) バイトのデータ 64 バイト応答 送信元 hogehoge.com (192.168.100.XXX): icmp_seq=1 ttl=64 時間=0.037ミリ秒 64 バイト応答 送信元 hogehoge.com (192.168.100.XXX): icmp_seq=2 ttl=64 時間=0.089ミリ秒 64 バイト応答 送信元 hogehoge.com (192.168.100.XXX): icmp_seq=3 ttl=64 時間=0.092ミリ秒 と結果が変化しました。
sensssssaaa

2022/08/29 03:12

すみません、再度連投になりますが、修正後もLAN内ではドメインでwebサーバにアクセスできない状態です。
ockeghem

2022/08/29 03:28 編集

web/dnsサーバーでの下記コマンドの結果は変化していませんか? $ dig hogehoge.com @localhost また、Windowsなどクライアントから以下のコマンド C:> nslookup hogehoge.com 192.168.100.XXX 注: IPアドレスはweb/dnsサーバーのもの さらに、以下のコマンドの結果はどうなりますか? C:> nslookup hogehoge.com
sensssssaaa

2022/08/29 03:43

結果を本文のその4にて共有しました。
ockeghem

2022/08/29 03:49

dnsmasq の再起動が必要というのを言い忘れていました。再起動したら変わりませんか? $ sudo systemctl restart dnsmasq.service
sensssssaaa

2022/08/29 03:53

再起動後、各種digで表示されていたグローバルIP部が192.168.100.XXXになりました。 もしかしたらと思ってLAN内でドメインを使用してサイトにアクセスしたらアクセスできるようになりました.....! ありがとうございます。これは、hostsに問題があった、ということなのでしょうか...。
ockeghem

2022/08/29 03:53

はい、そうだと思います。
sensssssaaa

2022/08/29 04:02

ベストアンサーにしたいので回答してほしいとコメントしようとしたら、既にされていてよかった。 この度はありがとうございました!
guest

回答1

0

ベストアンサー

コメントのやり取りで解決したようでなによりです。/etc/hosts に全角空白でも入っていたのではないかと推測いたします。
DNSのIPアドレスを配布するには、ルーターのDHCP設定で可能なはずですが、そこはまだ解決していないと思います。その解決が必要であれば、別の質問を立てていただいたほうがよいと思います。

投稿2022/08/29 04:00

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問