LoginSignup
16
10

More than 3 years have passed since last update.

docker-composeを使って最速で社内DNSを構築してみた

Last updated at Posted at 2020-11-29

この記事は 生産性向上のための環境整備2020 【PR】 Lenovo Advent Calendar 2020 の1日目の記事です。

2日目の記事:Lenovo社のモバイルディスプレイ 「ThinkVision M14」を買ってよかったこと! @RyotaMurohoshi

社内だけで使えるサービスやシステムを複数運営していると、IPアドレスでのアクセスは大変になってきます。

そこで、社内サービスにもドメインを使ってアクセスできるように社内DNSを整備しました。

合わせてこちらもご覧ください!セットで行うことで、より生産性を向上できます!
まだhttpで運用してるの👀?(Cloudflare + docker-composeで自動更新可能ワイルドカード証明書を発行してSSL化してみた)

前提

  • ドメインは取得済み
  • ドメインのワイルドカード証明書取得済み
    → これに関しては取得していなくても大丈夫ですが、SSL化された通信を行いたい場合は取得しておきましょう
  • 取得ドメイン:choipre.com

構築後のネットワーク図は以下のような感じになります
スクリーンショット 2020-11-29 13.46.45.png

構築

DNSはDockerを使って構築します。CoreDnsというDocker-imageが公開されているので、そちらを利用します。フォルダ構成としては以下の感じです。

drwxr-xr-x   - nomunomu  2 11 18:01 dns
.rw-r--r-- 244 nomunomu  4 11 16:00 ├── docker-compose.yml
.rw-r--r-- 115 nomunomu  4 11 16:00 ├── Dockerfile
drwxr-xr-x   - nomunomu  2 11 17:58 └── volumes
drwxr-xr-x   - nomunomu  4 11 16:14    └── config
.rw-r--r-- 181 nomunomu  4 11 16:32       ├── Corefile
.rw-r--r--  53 nomunomu  4 11 16:14       └── hosts

Docker系設定

docker-compose.yml
version: '3.1'
services:
  coredns:
    build: .
    container_name: coredns
    restart: on-failure
    expose:
      - '53'
      - '53/udp'
    ports:
      - '53:53'
      - '53:53/udp'
    volumes:
      - './volumes/config:/etc/coredns'
Dockerfile
FROM coredns/coredns:1.7.0

EXPOSE 53
EXPOSE 53/udp

ENTRYPOINT ["/coredns"]
CMD ["-conf", "/etc/coredns/Corefile"]

CoreDns設定

どのドメインとIPアドレスが紐づくかをhostsファイルに記述します。Corednsの設定はファイルはCorefileというファイルに記述します。

Corefile
. {
    whoami
    forward . 192.168.0.100:53   # ここはPublic-DNSでもよい
    errors
    log . "{proto} {remote} is Request: {name} {type} {>id}"
    hosts /etc/coredns/hosts {
        fallthrough
    }
    reload
}
hosts
192.168.0.110 xxxxxx.choipre.com
192.168.0.111 yyyyyy.choipre.com
192.168.0.112 zzzzzz.choipre.com

起動

docker-compose.ymlがあるディレクトリで以下のコマンドを流すと、DNSが起動します。

docker-compose up

docker-composeを走らせたPC(192.168.0.100)へ各クライアントのDNS解決先を向けることでローカルのIPに対してもドメインでアクセスすることができるようになります。

社内のネットワークを整備して、快適なネットワークLifeを!!

16
10
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
16
10