web-dev-qa-db-ja.com

OSX Mavericks-BINDはインストールされなくなりました...ローカルDNSサーバーを動作させる方法は?

私は常にOSXでBINDを使用して、ローカル開発マシンにローカルDNSリゾルバーを提供し、特にローカル開発環境にアクセスする仮想マシンを容易にしました。

愚かにも、一晩でOSX Mavericksにアップグレードすることにしました。コマンドライン開発ツールを追加しても、BINDはインストールされていないようです。

この機能を復元する方法についての提案はありますか、または最新のOSXに代替DNSソリューションがある場合は?

ありがとう、スティーブ

21
steve

Homebrewでbindをインストールできます: http://brew.sh/

9
Tony Legrone

Homebrewをインストールし、それを使用してバインドをインストールするのが最善の方法のようです。

小さな「落とし穴」はほとんどないので、このbashスクリプトをまとめてすべてを簡素化します。

1) Homebrewをインストール

2)このファイルを「ConfigureBrewBindOnOSX10_9.sh」としてMacに保存して実行します(sh ./ConfigureBrewBindOnOSX10_9.sh)、または手動でコマンドを1行ずつ実行します(詳細を確認したい場合)。

ConfigureBrewBindOnOSX10_9.shの内容

#!/bin/bash

# Last Updated: Jun 17, 2014
# [email protected]
#
# Run as root or Sudo the commands that need it as you go.

# 1) USE HOMEBREW TO INSTALL BIND

brew install bind

# 2) CONFIGURE BIND

# Create a custom launch key for BIND

/usr/local/sbin/rndc-confgen > /etc/rndc.conf
head -n 6 /etc/rndc.conf > /etc/rndc.key

# Set up a basic named.conf file.
# You may need to replace 9.10.0-P2 with the current version number if it is out of date.

cat > /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf  <<END
//
// Include keys file
//
include "/etc/rndc.key";

// Declares control channels to be used by the rndc utility.
//
// It is recommended that 127.0.0.1 be the only address used.
// This also allows non-privileged users on the local Host to manage
// your name server.

//
// Default controls
//
controls {
        inet 127.0.0.1 port 54 allow {any;}
        keys { "rndc-key"; };
};

options {
        directory "/var/named";
};

// 
// a caching only nameserver config
// 
zone "." IN {
    type hint;
    file "named.ca";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "named.local";
    allow-update { none; };
};

logging {
        category default {
                _default_log;
        };

        channel _default_log  {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};

END

# Symlink Homebrew's named.conf to the typical /etc/ location. 
ln -s /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf /etc/named.conf 


# Create directory that bind expects to store zone files

mkdir /var/named

curl http://www.internic.net/domain/named.root > /var/named/named.ca


# 3) CREATE A LuanchDaemon FILE: 

cat > /System/Library/LaunchDaemons/org.isc.named.plist <<END
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <false/>
        <key>EnableTransactions</key>
        <true/>
        <key>Label</key>
        <string>org.isc.named</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/sbin/named</string>
                <string>-f</string>
        </array>
        <key>ServiceIPC</key>
        <false/>
</dict>
</plist>
END

chown root:wheel /System/Library/LaunchDaemons/org.isc.named.plist 
chmod 644 /System/Library/LaunchDaemons/org.isc.named.plist 

# Shutdown bind (if it was running)
#launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist


# Launch BIND and set it to start automatically on system reboot.
launchctl load -wF /System/Library/LaunchDaemons/org.isc.named.plist

ヘルプが必要な場合はお知らせください。静かな数台のマシンでこれを設定しました。

10
Camden S.

Homebrewを使用してBIND9をインストールします。現在のbrewインストールは望んでいるほど完全ではないので、自分でこの問題にぶつかったとき、brewファイルを更新して初期設定ファイルを生成し(Mountain Lionのシステムインストールに一致する)、launchdを含めますplist。

私の変更はまだマージされていませんが、更新されたファイルはここで見ることができます:github.com/mxcl/homebrew/pull/23598 Use brew edit bind BINDの式を開き、分岐したバージョンをコピーして保存し、brew install bind

7
jcoleman

Men&MiceはBINDインストーラーを無料で提供しています http://support.menandmice.com/download/bind/macosx/10.9-Mavericks/

MacOS X 10.4(PPC)、10.5/10.6(x86)および10.7/10.8(および新規)10.9(x86_64)

BIND 9.9.4の基本的な「/etc/named.conf」ファイルに関する推奨事項を次に示します。 Linux/BSDディストリビューションのBINDインストールからのインターネットおよびテンプレートの多くの基本的な構成の推奨事項は、BINDの最近の更新に更新されておらず、最適ではありません(引き続き機能します)

// BIND named.conf caching only DNS server
// configuration file for 
// BIND 9.7 and up
options {
    // set the DNS servers "home" directory
    // all files with relative path names
    // will be read or written from this
    // directory
    directory "/var/named";
    // disable query-logging on start
    // query-logging can be enabled using
    // "rndc querylog"
    querylog no;
};

// automatic empty zone for the "localhost" name
zone "localhost" IN {
   type master;
   database "_builtin empty . nothing.invalid.";
};

// logging template for a caching DNS server
logging {
   channel syslog { syslog daemon; severity info; };
   channel security { file "security.log" versions 10 size 50M; print-time yes; };
   channel query_log {
     file "query.log" versions 10 size 50M; severity debug; print-time yes;
   };
   category general       { syslog; };
   category security      { security; };
   category queries       { query_log; };
   category dnssec        { security; };
   category default       { syslog; };
   category resolver      { syslog; };
   category client        { syslog; };
   category query-errors  { query_log; };
   category edns-disabled { syslog; };
};

コメント:

  • importステートメントを使用してrndc.keyをインポートする必要はありません。専用のrndc設定が存在しない場合、rndc.keyはデフォルトで起動時にnamedによって読み取られます
  • 「制御」ブロックが定義されていない場合、デフォルトの制御ステートメントが使用されています。デフォルトの制御構成は

    controls {inet 127.0.0.1 allow {localhost; }キー{rndc_key; }; };

  • キャッシングDNSサーバーのポート番号で「query-source」を指定しないでください(コメントアウトされていても見たくない、誰かが有効にしてセキュリティホールを作成する可能性があります)、それはセキュリティリスクです(UDPポートを無効にします)ランダム化abdにより、DNSキャッシュスプーフィングが容易になります)

  • バージョン9.5.x以降のデフォルトのBIND構成では、「0.0.127.in-addr.arpa。」に空のゾーンを指定する必要はありません(他のいくつかの空のゾーンの中で)。
  • 「localhost」のゾーン仕様は、ディスク上に追加のゾーンファイルを必要としない空のゾーンを定義する方法を示しています
  • インターネットDNSで動作するDNSサーバーをキャッシュするには、「ヒント」タイプのゾーンを指定せずにBINDに組み込まれている「root.hints」(ルートDNSサーバーのリスト)を使用することを強くお勧めします。 「ビルドイン」ルートヒントは、BINDプログラムが更新されるたびに更新されます。
  • ロギングステートメントは、キャッシングDNSサーバーにとって興味深いロギングカテゴリのリストを提供します。 "query-logging"(DNSサーバーが受信したすべてのクエリを記録する)は、ビジーなDNSサーバーのパフォーマンスを損なう可能性があります(> 1000クエリ/秒)。オプションブロックでは無効になりますが、「rndc querylog 「。 queryrn機能のステータス(有効/無効)は、「rndcステータス」を使用して検索できます。
2

バインドはMavericksにインストールされます。ファイルだけが移動しました。/Library/Server/named /にすべてのゾーンファイルがあります。

実際、Appleは10.6.8と比較して、より準拠した実装に向けて良い仕事をしました。

手作業でファイルを変更するのは簡単です。

私の0.02ドル

LL

1
Long Lane

DD-WRTでDNSMasqを発見するまで、MACで実行されているローカルDNSサーバーを使用していました

LANとWIFI用にDD-WRTルーターをセットアップし、DD-WRTのDNSMasq機能を使用して、開発マシンにマップする必要のあるすべてのものを一覧表示しました。

DD-WRTルーターにログインします。

サービスで、DNSMasqを有効にします

[追加のDNSMasqオプション]の下に、マスクする各エントリをリストします。

address=/[url]/[ip]

例:

address=/www.dev.mysite.com/192.168.1.10
address=/photos.dev.mysite.com/192.168.1.11
address=/static.dev.mysite.com/192.168.1.12

これは、ローカルアドレスのためだけにルーター上で独自のDNSサーバーを実行するのに似ていますが、オーバーヘッドはありません。

これにより、LAN経由でローカル開発マシンに接続し、WIFI経由ですべてのモバイルデバイスに簡単に接続できます。

利点:

  • MACにDNSサーバーのオーバーヘッドがない
  • DHCPを介して機能するだけのDNS設定は不要
  • モバイルデバイスをWIFI経由で開発マシンに簡単に接続します!
  • ルーターインターフェイスを介して簡単に保守および構成できます
1

これを試してください http://blakeembrey.com/articles/local-development-with-dnsmasq/

Mavericksをインストールした後、私にとってはうまくいきました。

1
Azadious