Подтвердить что ты не робот

OSX Mavericks - BIND больше не установлен... как заставить локальный DNS-сервер работать?

Я всегда использовал BIND на OSX для предоставления локального разработчика DNS-решений для моих локальных машин разработки, в частности для облегчения доступа виртуальных машин к локальной локальной среде.

Глупо я решил перейти на OSX Mavericks за одну ночь, и кажется, что BIND больше не установлен - даже когда добавлены инструменты разработчика командной строки.

У кого-нибудь есть предложение о том, как восстановить эту функциональность, или если в последней версии OSX есть альтернативное решение DNS?

Спасибо, Стив

4b9b3361

Ответ 1

Вы можете установить bind с Homebrew: http://brew.sh/

Ответ 2

Установка Homebrew и использование его для установки bind - лучший маршрут.

Немного мало "gotcha's", поэтому я собрал этот bash script, чтобы упростить все это.

1) Установить Homebrew.

2) Сохраните этот файл на своем Mac как "ConfigureBrewBindOnOSX10_9.sh" и запустите его (sh ./ConfigureBrewBindOnOSX10_9.sh) или запустите его вручную за строкой (если вы хотите увидеть больше деталей по мере того, как вы идете.

Содержимое 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 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

Дайте мне знать, если вам нужна помощь, я успешно настроил это на несколько машин.

Ответ 3

Установите BIND9 с помощью Homebrew. Текущая установка brew не такая полная, как мне бы хотелось, поэтому, когда я сам столкнулся с этой проблемой, я обновил файл brew для создания исходных файлов конфигурации (в соответствии с установкой системы в Mountain Lion) в том числе план запуска.

Хотя мои изменения еще не объединены, вы можете увидеть обновленный файл здесь: github.com/mxcl/homebrew/pull/23598 Используйте brew edit bind, чтобы открыть формулу для BIND, и скопируйте в мою раздвоенную версию, сохраните и переустановите с помощью brew с помощью brew install bind.

Ответ 4

Люди и мыши бесплатно предлагают установщики 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)

Вот моя рекомендация для базового файла "/etc/named.conf" для BIND 9.9.4. Многие базовые рекомендации по конфигурации в Интернете и шаблоны из BIND-установок в дистрибутивах Linux/BSD не обновлялись до последних обновлений в 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; };
};

Некоторые комментарии:

  • rndc.key не нужно импортировать с помощью оператора импорта. если нет выделенной конфигурации rndc, rndc.key будет считаться по умолчанию при запуске
  • если не определено "контрольный" блок, используется инструкция управления defaul. Конфигурация управления по умолчанию -

    управляет {       inet 127.0.0.1           разрешить {localhost; } keys {rndc_key; };  };

  • никогда не указывать "источник запроса" с номером порта для кэширующего DNS-сервера (я бы предпочел не видеть его даже после того, как он закомментировал, кто-то может включить его и создать отверстие для безопасности), это безопасность (он отключает рандомизацию портов UDP и позволяет легко скрыть тайник DNS)

  • Не нужно указывать пустую зону для "0.0.127.in-addr.arpa.", так как она (среди пары других пустых зон) в конфигурации BIND по умолчанию с версии 9.5.x
  • спецификация зоны для "localhost" показывает, как определить пустую зону, для которой не требуется дополнительный зонный файл на диске.
  • для кэширования DNS-серверов, работающих в интернет-DNS, я настоятельно рекомендую использовать "root.hints" (список корневых DNS-серверов), который встроен в BIND, не указав зону типа "подсказка". "Встроенные" корневые подсказки обновляются каждый раз при обновлении программы BIND.
  • выражение о регистрации содержит список категорий ведения журнала, которые интересны для кэширующего DNS-сервера. "журнал запросов" (регистрирует все запросы, полученные DNS-сервером) может повредить производительность занятого DNS-сервера ( > 1000 запросов в секунду), он отключен в блоке параметров, но может быть включен (переключен) с помощью "rndc querylog". Статус функции querylog (включен/отключен) можно просмотреть с помощью "состояния rndc"

Ответ 6

Привязка установлена ​​в Mavericks. Просто файлы переместились. Вы можете найти все файлы зон в /Library/Server/named/.

Apple действительно проделала хорошую работу для более совместимой реализации по сравнению с 10.6.8.

Легко изменить файлы вручную.

Мои $0,02

LL

Ответ 7

Я использовал локальный DNS-сервер, работающий на MAC, пока не обнаружил DNSMasq на DD-WRT

Я настраиваю маршрутизатор DD-WRT для своей локальной сети и WIFI, а затем использовал функцию DDSMasq DD-WRT, чтобы отобразить все объекты, которые должны отображаться на машинах разработки.

Войдите в свой маршрутизатор 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 без особых проблем.

Преимущества:

  • Недостаток DNS-сервера на вашем MAC-сервере
  • Конфигурация DNS не требуется просто работает через DHCP
  • Простое подключение мобильных устройств через WIFI к разработке машина!
  • Простота обслуживания и настройки через интерфейс маршрутизатора