У меня есть локальная сеть с поддержкой IPv6. Я хотел бы настроить Ubuntu в качестве сервера DNSv6 для локальных адресов локальной сети (нет интернета / туннелирования).
Я мог бы вручную отредактировать файл etc / hosts для каждого хоста, но я думаю, что локальный сервер DNSv6 был бы более эффективным. Любое предложение?
РЕДАКТИРОВАТЬ: я обнаружил, что dnsmasq блестяще решает мою проблему; однако, поскольку по умолчанию выполняется с большим количеством параметров, включая -no-resolv
(это, вероятно, связано с конфигурацией IPv4 хоста), мне нужно остановить и перезапустить его вручную. Можно ли этого избежать?
Во-первых: вам не нужно запускать отдельный DNS-сервер на IPv6. Вашему DNS-серверу даже не нужно прослушивать запросы через IPv6, чтобы отвечать записями AAAA. Таким образом, вы даже можете использовать DNS и устанавливать соединения IPv6, выполняя все DNS-разрешения по IPv4. Это не более или менее эффективно.
Конечно, на самом деле делать все, включая разрешение по IPv6, гораздо круче: -)
Сделать BIND прослушивать запросы по IPv6 легко (и другие DNS-серверы будут похожими):
options {
listen-on-v6 {
any;
};
};
Затем вам нужно будет сообщить своим клиентам, что они могут выполнять разрешение DNS по IPv6. Обычно вы делаете это с DHCPv6, но вы также можете включить эту информацию в объявления маршрутизатора. То, что будет использовать ваш клиент, зависит от операционной системы, в которой он работает.
DHCPv6 может использоваться двумя способами: с сохранением состояния и без сохранения состояния. Настройка без сохранения состояния предоставляет всем клиентам дополнительную информацию, такую как DNS-преобразователи и т. Д., Фактически не выполняя всю сложную работу, такую как назначение адресов и ведение базы данных аренды. Пример конфигурации для сервера DHCPv6 с дополнительным устройством (опять же, другие серверы DHCP будут аналогичными):
iface eth0 {
stateless
option dns-server 2001:db8:0:1::53
option domain example.com, test1.example.com
}
Затем необходимо сообщить своим клиентам, что в сети доступен сервер DHCPv6 без сохранения состояния. Мы также включаем информацию DNS для клиентов, которые хотят это таким образом, а не через DHCPv6 (да, это раздражает, есть два способа установить одинаковые настройки, но это так). Я использую RAdvD здесь:
interface eth0 {
AdvSendAdvert on;
AdvDefaultPreference high;
AdvManagedFlag off;
AdvOtherConfigFlag on;
prefix 2001:db8:0:1::/64 {};
RDNSS 2001:db8:0:1::53 {};
DNSSL example.com test1.example.com {};
};
Теперь RA сообщает клиенту настройки DNS (если он может понять их здесь) и сообщает клиенту, что существует сервер DHCPv6 без состояния (управляемый, другой config on), а сервер DHCPv6 также предоставляет настройки DNS (для клиентов, которые ожидают их здесь). DNS-сервер прослушивает как IPv4, так и IPv6 и может отвечать на все запросы по любому протоколу. Ответы (записи A и / или AAAA) говорят клиенту, что они могут использовать для подключения. Большинство клиентов предпочтут IPv6 (ответ AAAA), когда смогут.
PS: Замените 2001:db8:0:1::53
реальным IPv6-адресом вашего DNS-сервера.