れんとう

まいにち なにか ひとつ

DNSアラカルト〜稀に高まるUNIX力〜

連休になるとやってること

不思議なもので、連休になるとUNIX力が急激に高まり、家の中にあるサーバー群に手を入れたくなる。

インフラってそんなに頻繁にいじるものではないんだけどね。でも、手入れって、大切。

ということで、不完全ながらもなんとか使えているので、ほったらかしにしていたDNS群を本格的に整備してみた。

なんでこんなにDNSがたくさんあるんだ?

自宅のネットワーク構成はこんな感じになっている。

MainRouter

├──RouterA

  ├──DNS(Master)

  ├──DNS(Slave)

  ├──DNS(MasterCopy)

  └──DNS(cache)

└──RouterB

    └──DNS(Master)

MainRouterがネットに繋がっていて、その下にルーターが2個。

Aの方には主にPC類をつないでいて、Bの方には家電やゲーム機がつないである。

で、DHCPは嫌いなので、それぞれのセグメントにあるIPアドレスは、DNSを立てて管理している。ローカルのみ名前解決し、グローバルな名前解決はDNSから上位ルーターフォワードして解決する仕組みだ。

なんでセグメントそんなに分けてるのかって?

 

実験用です!

( ー`дー´)キリッ

 

ネットワークってね、なんとなーくで動いちゃうことって結構あるのでね。

なんとなーく動いているように見えるからオッケ!という危ない設定の危機がゴロゴロあるような気がしてる。なので、じっくりゆっくり検証したくて、環境作ってるうちにこうなってしまった。

おかげで、普段使いしてるセグメントAを実験にいじると、支障が出ることもあるので、もう1つセグメントCを増やそうかな?と思ったりもしてます(マテ

ごった煮DNS環境

しかも、環境も複雑かも。

セグメントAのDNS(Master)は、OpenBSD+unbound+NSDDNS(Slave)はScientificLinux+BIND9。DNS(MasterCopy)はOpenBSD+unbound+NSDDNS(Master)と全く同じ設定にしてる、検証機。DNS(cache)はRaspbian+unbound。

セグメントBのDNS(Master)は、Raspbian+BIND9。

 

これだけやってみるとわかることもある。BIND、NSD、unboundと使っているDNSソフトウェアは同じでも、OSが違うと、設定ファイルの配置がかなり違うのだ。

やっぱり、検証って、必要だな、と思うよ?

OpenBSD+NSD+unbound

この組み合わせは、OpenBSDを使うようになってから初めて触った。

それまでBIND一辺倒だったので、戸惑ったけど、慣れてみると、シンプルでいいなと思う。シンプルなのは、設定ファイルの配置にも現れている。

OpenBSDのunbound+NSD

 

var/

├──nsd/

  ├──etc/

  │  └──nsd.conf

  └──zone/

        ├──master/

            ├──local.zone

            └──local.rev.zone

        └──slaves/

            ├──local.zone

            └──local.rev.zone

└──unbound/

    └─etc/

       └──unbound.conf

ね?シンプルでしょ?

バックアップも、/var/nsdと/var/unboundをtarするだけで、楽チンです。

でも、昔のPC-UNIXってこんな感じだったかも?

初期パッケージは/etcに設定ファイルがあるけど、後から足したものは、

/varか/usr/localの下にまとめて配置されたような遠い記憶がある。

ScientificLinux+BIND9

今、RedHat系はこんな感じなのかな?

馴染みのある感じなので、迷わずに設定できるかな。

ScientificLinuxのbind9

 

var/

├──named/

  └──data/

      ├───master/

          ├──local.zone

          └──local.rev.zone

      └──slaves/

            ├──local.zone

            └──local.rev.zone

└──etc/

    └─named.conf

/varと/etcに分かれてると、あちこち見るのがちょっと面倒かも。

Raspbian+BIND9

同じLinuxなのに!BIND9なのに!

debian系だと微妙に違うの?となりました。

設定ファイル、いろいろ書き込んだりすれば、RedHatと同じようなファイル配置で使えるんだろうけど、返って深みにはまりそうなので、標準?のファイル配置で使ってみた。

Raspbian(buster)のbind9

 

var/

├──cache/

  └──bind/

      ├───master/

          ├──local.zone

          └──local.rev.zone

      └──slaves/

            ├──local.zone

            └──local.rev.zone

└──etc/

    └──bind/

        ├───named.conf.d/

            ├──named.conf.options

            ├──named.conf.default-zones

            └──named.conf.local

        └─named.conf

 

設定ファイルの単純移植ができないのは、ヤラシーよなー。

Raspbian+unbound

単純にキャッシュサーバーを作りたかったので、unboundでサクッとやってみた。

こちらは、/etc/unboundの下にまとまってるので、楽だったかな。

最初、余計なincludeしてハマったけど。

 

Raspbian(buster)のunbound

 

etc/

 └──unbound/

      ├───unbound.conf.d/

          └──*.conf.local

      └─unbound.conf

 

DNSは全ての基本

自宅サーバーなんて言葉も流行らなくなってきて、昔ほど、サーバー構築する機会は減った気がする。でもね、ネットワークにおいてDNSは全ての基本。

httpdもsmtpdも名前解決がちゃんとできていないと正常に動作しない。

基本を習得することが上達への近道だよな、と思うので、久々にいろいろ触って、いい経験になりました。

さて、この後も、それぞれの環境で、apache、Nginx、Postfix、OpenSMTPDなどなど、いろんな設定をしてみるよ!