0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

この記事では、CoreDNSをDockerコンテナ上で起動し、digコマンドで登録されたDNSレコードを確認する方法を紹介します。

ステップ1: CoreDNSの設定ファイルを作成する

まず、CoreDNSの設定ファイル(Corefile)を作成します。このファイルには、DNSサーバーの設定とホストするレコードが含まれます。以下は基本的な設定例です。

.:1053 {
    forward . 8.8.8.8
    log
    errors
}
example.com:1053 {
    hosts {
        127.0.0.1 localhost
        192.168.1.100 www.example.com
        fallthrough
    }
    log
}

この設定では、example.comドメインのDNSクエリを処理し、指定されたIPアドレスにマッピングします。また、すべての他のクエリはGoogleのパブリックDNS(8.8.8.8)にフォワードされます。

ステップ2: DockerコンテナでCoreDNSを起動する

設定ファイルが準備できたら、Dockerコンテナを使用してCoreDNSを起動します。以下のコマンドを実行します。

docker run -d -p 1053:1053/udp -p 1053:1053/tcp -v $(pwd)/Corefile:/Corefile coredns/coredns:latest -conf /Corefile

このコマンドは、ローカルの1053番ポートをコンテナの1053番ポートにマッピングし、設定ファイルをコンテナ内の/Corefileにマウントします。

ステップ3: DNSレコードの確認

CoreDNSが正常に起動したかを確認するために、DNSクエリを実行して登録したレコードを確認します。以下のコマンドを実行します。

dig @127.0.0.1 -p 1053 www.example.com

このコマンドの出力が以下のようになれば、設定が正しく反映されています。

; <<>> DiG 9.10.6 <<>> @127.0.0.1 -p 1053 www.example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 453
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.example.com.		IN	A

;; ANSWER SECTION:
www.example.com.	3600	IN	A	192.168.1.100

;; Query time: 2 msec
;; SERVER: 127.0.0.1#1053(127.0.0.1)
;; WHEN: Sat Jul 13 15:40:04 JST 2024
;; MSG SIZE  rcvd: 75

まとめ

以上の手順で、CoreDNSをDocker上で起動し、基本的なDNSレコードを登録することができました。digコマンドを使用することで、特定のポートに対してDNSクエリを送信し、設定を確認することができます。

公式ドキュメント: CoreDNS Documentation

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?