web-dev-qa-db-fra.com

OSX Mavericks - BIND n'est plus installé ... comment faire fonctionner le serveur DNS local?

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

21
steve

Vous pouvez installer bind avec Homebrew: http://brew.sh/

9
Tony Legrone

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.

10
Camden S.

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.

7
jcoleman

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:

  • rndc.key n'a pas besoin d'être importé à l'aide d'une instruction d'importation. si aucune configuration rndc dédiée n'est présente, rndc.key sera lu par named au démarrage par défaut
  • 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)

  • pas besoin de spécifier une zone vide pour "0.0.127.in-addr.arpa.", comme c'est le cas (parmi quelques autres zones vides) dans la configuration BIND par défaut depuis la version 9.5.x
  • la spécification de zone pour "localhost" montre comment définir une zone vide qui ne nécessite pas de fichier de zone supplémentaire sur le disque
  • pour la mise en cache des serveurs DNS qui fonctionnent dans le DNS Internet, je recommande fortement d'utiliser le "root.hints" (liste des serveurs DNS racine) qui est intégré dans le BIND en ne spécifiant pas de zone de type "hint". Les indications de racine "intégrées" sont mises à jour à chaque mise à jour du programme BIND.
  • l'instruction de journalisation donne une liste des catégories de journalisation qui sont intéressantes pour un serveur DNS de mise en cache. "journalisation des requêtes" (enregistre toutes les requêtes reçues par le serveur DNS) peut nuire aux performances d'un serveur DNS occupé (> 1000 requêtes par seconde), il est désactivé dans le bloc d'options mais peut être activé (basculé) à l'aide de "rndc querylog ". Le statut de la fonction querylog (activé/désactivé) peut être recherché en utilisant "rndc status"
2
Carsten Strotmann

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

1
Long Lane

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:

  • Pas de surcharge de serveur DNS sur votre MAC
  • Aucune configuration DNS requise ne fonctionne que via DHCP
  • Connectez facilement des appareils mobiles via WIFI à des machines de développement!
  • Facile à entretenir et à configurer via l'interface du routeur
1

Essayez ceci http://blakeembrey.com/articles/local-development-with-dnsmasq/

Cela a bien fonctionné pour moi après avoir installé des non-conformistes.

1
Azadious