1. nomunomu0504

    Posted

    nomunomu0504
Changes in title
+Dockerを使って最速で社内DNSを構築してみた
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,89 @@
+
+社内だけで使えるサービスやシステムを複数運営していると、IPアドレスでのアクセスは大変になってきます。
+
+そこで、社内サービスにもドメインを使ってアクセスできるように社内DNSを整備しました。
+
+## 前提
+- ドメインは取得済み
+- ドメインのワイルドカード証明書取得済み
+→ これに関しては取得していなくても大丈夫ですが、SSL化された通信を行いたい場合は取得しておきましょう
+- 取得ドメイン:choipre.com
+
+構築後のネットワーク図は以下のような感じになります
+![スクリーンショット 2020-11-29 13.46.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110131/4dd761d5-14b0-c87f-9e01-96d0ec7db003.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を!!