J'ai toujours utilisé BIND sur OSX pour fournir un résolveur DNS local pour mes machines de développement locales, en particulier pour faciliter l'accès des machines virtuelles à mon environnement de développement local.
Bêtement, j'ai décidé de passer à OSX Mavericks du jour au lendemain et il semble que BIND ne soit plus installé - même lorsque les outils de développement en ligne de commande sont ajoutés.
Quelqu'un a-t-il une suggestion sur la façon de restaurer cette fonctionnalité, ou si le dernier OSX a une solution DNS alternative en place?
Merci, Steve
Vous pouvez installer bind avec Homebrew: http://brew.sh/
Installer Homebrew et l'utiliser pour installer bind semble la meilleure voie.
Il y a peu de "gotcha's", j'ai donc mis en place ce script bash pour simplifier le tout.
1) Installer Homebrew .
2) Enregistrez ce fichier sur votre Mac en tant que "ConfigureBrewBindOnOSX10_9.sh" et exécutez-le (sh ./ConfigureBrewBindOnOSX10_9.sh
), ou exécutez ses commandes ligne par ligne à la main (si vous voulez voir plus de détails au fur et à mesure.
Contenu de 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
Faites-moi savoir si vous avez besoin d'aide, j'ai réussi à le configurer sur quelques machines silencieuses.
Installez BIND9 en utilisant Homebrew. L'installation de brew actuelle n'est pas aussi complète que je le souhaiterais, donc quand j'ai rencontré ce problème moi-même, j'ai mis à jour le fichier de brew pour générer les fichiers de configuration initiaux (pour correspondre à l'installation du système dans Mountain Lion) ainsi que pour inclure un launchd plist.
Bien que mes modifications n'aient pas encore été fusionnées, vous pouvez voir le fichier mis à jour ici: github.com/mxcl/homebrew/pull/23598 Use brew edit bind
pour ouvrir la formule de BIND, et copier dans ma version fourchue, enregistrer et réinstaller avec brew en utilisant brew install bind
.
Men & Mice propose des programmes d'installation BIND gratuitement sur http://support.menandmice.com/download/bind/macosx/10.9-Mavericks/
MacOS X 10.4 (PPC), 10.5/10.6 (x86) et 10.7/10.8 (et nouveau) 10.9 (x86_64)
Voici ma recommandation pour un fichier de base "/etc/named.conf" pour BIND 9.9.4. De nombreuses recommandations de configuration de base dans Internet et les modèles des installations BIND dans les distributions Linux/BSD n'ont pas été mises à jour vers les mises à jour récentes dans BIND et ne sont pas optimales (bien qu'elles continuent de fonctionner)
// 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; };
};
Certains commentaires:
si aucun bloc "contrôle" n'est défini, l'instruction de contrôle par défaut est utilisée. La configuration de contrôle par défaut est
les contrôles {inet 127.0.0.1 permettent {localhost; } clés {rndc_key; }; };
ne spécifiez jamais "requête-source" avec un numéro de port pour un serveur DNS de mise en cache (je préférerais ne pas le voir même commenté, quelqu'un pourrait l'activer et créer un trou de sécurité), c'est un risque pour la sécurité (il désactive le port UDP la randomisation ainsi permet une usurpation de cache DNS facile)
Bind est installé dans Mavericks. Seuls les fichiers ont été déplacés. Vous pouvez trouver tous les fichiers de zone dans/Library/Server/named /.
Apple a en fait fait du bon travail pour une implémentation plus conforme par rapport à 10.6.8.
Il est facile de modifier les fichiers à la main.
Mon 0,02 $
LL
J'utilisais un serveur DNS local fonctionnant sur le MAC jusqu'à ce que je découvre DNSMasq sur DD-WRT
J'ai configuré un routeur DD-WRT pour mon LAN et WIFI, puis j'ai utilisé la fonction DNSMasq de DD-WRT pour répertorier tous les éléments qui doivent être mappés sur des machines de développement.
Connectez-vous à votre routeur DD-WRT:
Sous Services, activez DNSMasq
Sous "Options DNSMasq supplémentaires", répertoriez chaque entrée que vous souhaitez masquer:
address=/[url]/[ip]
Exemples:
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
C'est presque comme exécuter votre propre serveur DNS sur le routeur uniquement pour les adresses locales mais sans la surcharge.
De cette façon, je peux me connecter aux machines de développement local via le LAN et tous les appareils mobiles via WIFI sans trop de tracas.
Avantages:
Essayez ceci http://blakeembrey.com/articles/local-development-with-dnsmasq/
Cela a bien fonctionné pour moi après avoir installé des non-conformistes.