Mac + BIND + MacPorts(作業記録) | naokitのブログ

naokitのブログ

初心者がMacをサーバに仕立てるブログ。あとロト7の探索をしてみた。あとマイニングに興味あり。

Mac El Capitan + MacPorts + BIND でなかなか言うことを聞いてくれなかった。解決に日曜日が潰れた。

 

要約

  • /opt/local/bin/daemondo をactivate した。
  • /Library/LaunchDaemons/org.macports.bind9.plistで、<key>Disabled</key><false/>
  • named 関連のファイル、たとえば named.conf のオーナーが named になっていなかったので、named -u named -f;で起動しなかった。launchctl 任せだったので気づくのが遅れた。

 

インストール

  • # port install bind9
  • # launchctl load -w /Library/LaunchDaemon/opt.macports.bind9.plist

 

設定ファイルのコピー(オリジナルが *.dist。そうした方がいいよとインストールの最後で言われた)

# cp /opt/local/etc/named.conf.dist /opt/local/etc/named.conf

# cp /opt/local/var/named/db.127.0.0.dist /opt/local/var/named/db.127.0.0

# cp /opt/local/var/named/db.cache.dist /opt/local/var/named/db.cache

# cp /opt/local/var/named/db.localhost.dist /opt/local/var/named/db.localhost

 

制御ソフト rndc のための秘密錠の作成

# rndc-confgen -a

 

実用できるかは置いといて、文法のチェック。

# named-checkconf

 

 

起動、停止、バージョン、ロングバージョン、ステイタス、リロード

# named

# rndc stop

# named -v

# named -V

# rndc status

# rndc reload

 

 

サービスのを有効化。

# vi /Library/LaunchDaemons/org.macports.bind9.plist

  • <key>Disabled</key><true/>
  • <key>Disabled</key><false/>

 

 

起動したらログに色々と、次々とエラーを吐く。一向に named が立ち上がらない。

  • Service exited with abnormal code 126.
  • Service only ran for 0 secounds. Pushing respawn out by 10 secounds.
  • daemondo: cannot execute binary file.

 

daemondoがアクティベートされていないので bind がスタートしない模様。

$ daemondo

とすると実行形式では無い?と怒られた。壊れているとおもい /opt/local/bin/daemondo を再インストール

$ port search daemondo

$ sudo port install MacPorts_daemondo

このあとなんかするように言ってきたので、それに従った(なんか強制的に実行ファイルにせよとかだったか)

 

次のエラーをはく。

Error: Failed to activate MacPorts_daemondo: Image error: /opt/local/bin/daemondo already exists and does not belong to a registered port.  Unable to activate port MacPorts_daemondo. Use 'port -f activate MacPorts_daemondo' to force the activation.

言われたとおりにする。

# port -f activate MacPorts_daemondo

 

$ port installed | grep daemondo

Password:

  MacPorts_daemondo @1.1_20141017 (active)

activeが付いたので決着したようだ。

 

 

 

エラーを吐いた。これには解決方法がすぐに思いつかず、めまいがした。

named: couldn't add command channel 127.0.0.1#953: address in use

named: couldn't add command channel ::1#953: address in use

953ってコントローラ rndc が使うポートなんだって。これがヒントなんだろう。

 

 

次にやるrndc の設定をちゃんとしているうちに文句言わなくなった。

 

 

rndc について、次のページがためになりました。ありがとうございます。

 

 

 

 

エラーを吐いた。

# rndc stop

rndc: connection to remote host closed

This may indicate that 。。。。。

# rndc-confgen -a

# less /opt/local/etc/rndc.key

secret "lLCYqYIjO9B7rebyxUwNGGxS3s=";

# vi /opt/local/etc/named.conf

にコピペした。

 

リモートコントローラ rndc を利用するための設定。

キーファイル

# less /opt/local/etc/rndc.key

# vi /opt/local/etc/named.conf

controls { inet * allow { any; } keys { "rndc-key"; }; };

key "rndc-key" { algorithm hmac-md5; secret "qPWZ3Ndl81__YOUR__KEY__AmJhVtU=="; };

 

 

エラーを吐いた。

# rndc reload

named: open: /opt/local/etc/rndc.key: permision denied

# chmod 0640 /opt/local/etc/rndc.key

 

 

エラーを吐いた。

# rndc reload

named: managed-keys.bind.jnl: open: premission denied

# chmod 0644 ./managed-keys.bind

# chmod 0644 ./managed-keys.bind.jnl

 

 

エラーを吐いた。

# rndc reload

# chown named:named /opt/local/var/named

# chmod 0777 /opt/local/var/named

 

 

エラーを吐いた。

named: /opt/local/etc/named.conf:74: couldn't add command channel 0.0.0.0#953: permission denied

named: stopping command channel on 127.0.0.1#953

named: stopping command channel on ::1#953

# vi named.conf

controls {

    inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };

};

key "rndc-key" {

        algorithm hmac-sha256;

    secret "eD4CZud56o。。。。u2k/xoU=";

};

 

 

 

 

ここまでで、次のコマンドは受け付ける。

# rndc reload

# rndc stop

# launchctl unload -w /Library/LaunchDaeomon/org.macports.bind9.plist

次のコマンドは受け付けない。

# rndc start

 

なお、rndcでポートの開け閉めはできない模様。(リセットする)

 

 

 

BINDがログで

loading configuration: permission denied

と吐いていたので conf やdb.*やらの持ち主をnamedへとchownで直した。

 

# launchctl list | grep bind

6821    0    org.macports.bind9

 

named のリモートコントロールは rndc。たとえば、rndc stop -p とか rndc reload。探し回ったわ。named はストップできない模様。

 

# rndc reload

むむむ、エラーを吐く

rndc: conncect failed: 127.0.0.1#953: connection refused

よく考えたら、named が走っていなかった。

# named

# rndc reload

server reload successful

動いた。

 

 

 

 

 

動作テスト

$ nsloopup me.server.co.jp

Server:       dns.server.co.jp

Address:    234.5.6.7#53

Name:    me.server.co.jp

Address: 123.123.123.123

 

$ nslookup 123.123.123.123

123.123.123.in-addr.arpa    canonical name = 123.123.123.in-addr.arpa.

123.123.123.in-addr.arpa    name = me.server.co.jp.

Authoritative answers can be found from:

123.123.123.123.in-addr.arpa    nameserver = ns.my.company.jp.

ns.my.company.jp    internet address = 123.123.123.123

 

 

Mac > ネットワークユーティリティ > Portscan でnamedのポート53番が開いていないのに気づく。

# vi /opt/local/etc/named.conf

listen-on { 127.0.0.1; };

listen-on port 53 { any; };

 

 

 

ここまで。大変苦労して、エラーを無くしたnamed.confを列記します。

 

options {

    listen-on-v6 { none; };

    listen-on port 53 { any; };

    allow-query { 127.0.0.1;  };

    dnssec-validation auto;

    pid-file "/opt/local/var/run/named/named.pid";

};

 

zone "." IN {

        type hint;

        file "db.cache";

};

 

zone "localhost" IN {

        type master;

        file "db.localhost";

        allow-update { none; };

};

 

zone "0.0.127.in-addr.arpa" IN {

        type master;

        file "db.127.0.0";

        allow-update { none; };

};

 

controls {

    inet 127.0.0.1 port 953 allow { localhost; } keys { "rndc-key"; };

};

 

key "rndc-key" {

        algorithm hmac-sha256;

    secret "eD4CZud56o__SECRET__OB/WJ42squ2k/xoU=";

};

(END)

 

 

 

 

 

 

postfix を起動しようとしたらエラーを吐いた。

# postfix start

Password:

postfix: warning: valid_hostname: invalid character 47(decimal): 33.32/27.44.15.154.in-addr.arpa

postfix: fatal: unable to use my own hostname

文字コード 47 は / (スラッシュ)のこと。ここはdomain name を表示するはず。

 

$ hostname 

33.32/27.44.15.154.in-addr.arpa

 

named を起動させて無くても同じ。再起動でもダメ。Onix でもだめ。違うユーザで入っても変わらず。

システム環境設定 > 共有 > コンピュータ名、これでは無い。

 

$ host my.server.com

host my.server.com has address 123.123.123.123

host my.server.com mail is handled by 10 host my.server.com

これは合っている。

 

このページに行き着く。

 

 

$ sudo scutil --set HostName <新しいホスト名>

やっと設定できたわ。長いこと悩んだわ。

 

 

 

あとはいつもと同じ。

デーモンに登録

# launchctl load -w /Library/LaunchDaemons/org.macports.bind9.plist 

 

デーモンから削除

# launchctl unload -w /Library/LaunchDaemons/org.macports.bind9.plist 

 

起動

# launchctl start /Library/LaunchDaemons/org.macports.bind9.plist 

 

停止

# launchctl stop /Library/LaunchDaemons/org.macports.bind9.plist 

 

 

ここで

# launchctl list | grep bind

56    0.   org.macports.bind9

named and bind が見えなくなった。嫌な予感。でも再起動したらnamedが立ち上がってくる。とりあえず先に進む。再起動したら見えた。見えたら動いている証拠。

 

ローンチコントローラー任せじゃ無くて、起動できるか手作業でチェックするのも悪くない。superで実行しないといっぱいエラーをはく。

$ sudo named -u named -f

$ sudo named -u root -f