LoginSignup
9

More than 1 year has passed since last update.

posted at

updated at

Organization

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

この記事は 生産性向上のための環境整備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を!!

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
What you can do with signing up
9