from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

BIND9で権威鯖を作る&ゾーン転送

昨日の記事の続きです。

bindでは権威鯖とキャッシュ鯖が兼用できる。

まあとりあえず課題用に配布されたVMドメイン付けてみたいと思う。

環境

DNSクライアント側

centos

  • VM上に建っているweb鯖

centosだけど上のとは違う。

やる

基本的に権威作るにはnamed.conf書くー>RRファイル?書くの2つがいる。(web鯖立てるとかは別として

named.confのほうは管理ゾーン書いてfile XXXtype master;を記述するだけでおk。

RRfileは/var/named/以下におくのが普通っぽいのでそれにしたがう。

tips

  • SOAレコードとNSレコードは必ず記述する。

  • $originとか$TTLでエラーが出る場合それ以前にSOAとかその辺が間違っている場合が多い

このエラー出た時はfixしても動かなかったのに成功した後に消しても普通に動いた

  • RRファイルはエラーが出やすいので初心者は下手に改造せずまずは参考情報通りにやってみたほうがよさそう。

RRfile

↓この辺参照

rock-and-hack.blogspot.jp

www.atmarkit.co.jp

BINDの設定 - ゾーンファイルの記述方法

↓こんな感じでできる。

bindで権威鯖を作るとき

成功すると

こんな感じになる。最高か

f:id:lv7777:20161103001257p:plain

蛇足

正直この記事はもう上のツイートだけで落ちがついてるしここから先は完全に蛇足だけどこれ一つのためにわざわざアレだし別に人に見せるためにブログやってるわけじゃないしまあいいわ(妥協

まずはnamed.confのゾーン転送を許可しておく

allow-transfarオプションで設定できる。デフォルトはany。つまりどこからでもゾーン転送を許可している。まずいですよ!

cmd.exeでnslookupする。serverサブコマンドでdns鯖を指定してls -d levena.evenasで出・・・出ますよ・・・

SOAレコードとかもちゃんと出力させたいなら-dオプションが必須ってはっきりわかんだね。

C:\Users\user>nslookup
既定のサーバー:  UnKnown
Address:  192.168.1.8

> ls
サーバー:  UnKnown
Address:  192.168.1.8

名前:    ls.

> ls levena.evenas
[UnKnown]
 levena.evenas.                 NS     server = ns1.levena.evenas
 ns1                            A      192.168.1.8
 www                            A      192.168.1.4
> ls -d levena.evenas
[UnKnown]
 levena.evenas.                 SOA    ns1.example.jp ns1.levena.evenas. (2014120901 3600 900 1814400 900)
 levena.evenas.                 NS     ns1.levena.evenas
 ns1                            A      192.168.1.8
 www                            A      192.168.1.4
 levena.evenas.                 SOA    ns1.example.jp ns1.levena.evenas. (2014120901 3600 900 1814400 900)
>

さらに蛇足

> server 8.8.8.8
既定のサーバー:  google-public-dns-a.google.com
Address:  8.8.8.8

> ls -d twitter.com
[google-public-dns-a.google.com]
*** ドメイン twitter.com を一覧表示できません: Server failed
コンピューターへのゾーン twitter.com の転送が DNS サーバーによって拒否されました。この
処理が正しくない場合は、IP アドレス 8.8.8.8 の DNS サーバーで
twitter.com のゾーン転送セキュリティ設定を確認してください。

digでもやる

dig ipアドレスordns鯖のアドレス 聞きたいアドレスてきな

dig 192.168.1.8 twitter.com

できない

なんか一つ目の引数でdns鯖設定してるのにうまく解決ができない。調べてみるとこいつは/etc/resolv.confベースで動いているらしい。でも引数で設定してるしできるはずだと思うんだけどなあ・・・

resolv.confを自分の立てたbindにしたら行けた。。。引数聞いてないの謎すぎる・・・

digコマンド 使い方 オプション DNS BIND

options

dig、結果をそのまま返してくるので表示されるものがめちゃくちゃ多い。

そのためいろんなオプションがある。

  • +noall +ans +com

全部消してanswerセクションとcomセクションのみ表示。もはや定型文。

  • +norec

再帰しない。権威としてのみdnsを使用する。

こいつつけてうちのbindにtwitter.comを聞くと返さなくなる。これなしだと普通に通る。

  • ゾーン転送

dig 192.168.1.8 levena.evenas axfrみたいな感じで最後にaxfrオプションをつける。

注意するのはこれはzoneを返すのでゾーンアドレスに向かって打つ。Aレコードに向かって打っても失敗する。

Aレコードを聴きに行くわけではなくその管理してるゾーンを聞くのでwww.levena.evenasではなくlevena.evenasを指定する。

  • RRタイプの指定

dig 192.168.1.8 www.levena.evenas mxみたいな感じで後ろに付ける。axfrと似てる。