私は常にOSXでBINDを使用して、ローカル開発マシンにローカルDNSリゾルバーを提供し、特にローカル開発環境にアクセスする仮想マシンを容易にしました。
愚かにも、一晩でOSX Mavericksにアップグレードすることにしました。コマンドライン開発ツールを追加しても、BINDはインストールされていないようです。
この機能を復元する方法についての提案はありますか、または最新のOSXに代替DNSソリューションがある場合は?
ありがとう、スティーブ
Homebrewでbindをインストールできます: http://brew.sh/
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
ヘルプが必要な場合はお知らせください。静かな数台のマシンでこれを設定しました。
Homebrewを使用してBIND9をインストールします。現在のbrewインストールは望んでいるほど完全ではないので、自分でこの問題にぶつかったとき、brewファイルを更新して初期設定ファイルを生成し(Mountain Lionのシステムインストールに一致する)、launchdを含めますplist。
私の変更はまだマージされていませんが、更新されたファイルはここで見ることができます:github.com/mxcl/homebrew/pull/23598 Use brew edit bind
BINDの式を開き、分岐したバージョンをコピーして保存し、brew install bind
。
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; };
};
コメント:
「制御」ブロックが定義されていない場合、デフォルトの制御ステートメントが使用されています。デフォルトの制御構成は
controls {inet 127.0.0.1 allow {localhost; }キー{rndc_key; }; };
キャッシングDNSサーバーのポート番号で「query-source」を指定しないでください(コメントアウトされていても見たくない、誰かが有効にしてセキュリティホールを作成する可能性があります)、それはセキュリティリスクです(UDPポートを無効にします)ランダム化abdにより、DNSキャッシュスプーフィングが容易になります)
バインドはMavericksにインストールされます。ファイルだけが移動しました。/Library/Server/named /にすべてのゾーンファイルがあります。
実際、Appleは10.6.8と比較して、より準拠した実装に向けて良い仕事をしました。
手作業でファイルを変更するのは簡単です。
私の0.02ドル
LL
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経由ですべてのモバイルデバイスに簡単に接続できます。
利点:
これを試してください http://blakeembrey.com/articles/local-development-with-dnsmasq/
Mavericksをインストールした後、私にとってはうまくいきました。