Оригинал
у меня есть сложная настройка DNS на моем домашнем маршрутизаторе, на котором работают серверы Ubuntu. Моя цель состоит в том, чтобы быть в состоянии,
- запрос DNS моего местного провайдера для гео leocation чувствительных поисков, что я забочусь о
dnscrypt-proxy
для большинства просмотров. Для некоторых доменов (некоторые из них я знаю), многие из которых я не знаю, и как таковые, кроме конкретных доменов, мой провайдер отравляет поиски ложными адресами для трафика blackhole. Я желаем, чтобы это был сервер поиска DNS по умолчанию- минимизировать поиск DNS в интернете. Мое подключение к интернету не является надежным и в определенное время в течение дня у меня есть всего лишь 50/50 шанс иметь DNS поисков из страны успеха
- иметь свой собственный внутренний домен, преимущественно для обратного поиска.
решение, которое я должен был реализовать для достижения этих целей,
unbound
в качестве основного DNS-сервера моей локальной сети для кэширования поиска, агрессивно сохраняя этот кэш, и перенаправление адресов на соответствующий DNS-сервер для кэша пропускаетdnscrypt-proxy
on127.0.2.1:53
какforward-addr
на"."
в несвязанныхbind
on192.168.1.1:40
авторитетным для моего локального домена толькоisc-dhcp-server
для раздачи IP-адресов и вставки прямого и обратного просмотра.
мне удалось достичь большинства своих целей. Так сдержанно менять вещи значительно за исключением для прямого / обратного просмотра нестатических хостов в моей локальной сети.
мои подозрения isc-dhcp-server
отправляет обновления DDNS в unbound
, что не имеет ни малейшего представления, что с ней делать. Как я могу спросить isc-dhcp-server
отправить 192.168.1.1:40
,bind
несмотря на то, что я хочу, чтобы DNS-сервер для моих клиентов был 192.168.1.1:53
,unbound
или enable unbound
знать, как пересылать DDNS обновления bind
?
пример ошибки сообщение
Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPREQUEST for 192.168.1.101 from 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0
Sep 29 08:01:10 ubuntu dhcpd[7057]: DHCPACK on 192.168.1.101 to 28:18:78:7c:d5:a1 (Xbox-SystemOS) via enp2s0
Sep 29 08:01:22 ubuntu dhcpd[7057]: Unable to add forward map from Xbox-SystemOS.mydomain.ddns.net. to 192.168.1.101: timed out
соответствующие строки в dhcpd.conf
ddns-updates on;
ddns-update-style interim;
key rndc-key { algorithm hmac-md5; secret MIND_YOUR_BUSINESS; }
subnet ...... {
....
option domain-name-servers 192.168.1.1;
...
ddns-domainname "mydomain.ddns.net.";
ddns-rev-domainname "in-addr.arpa.";
}
соответствующие строки /etc/bind/named.conf.local
zone "mydomain.ddns.net" {
type master;
file "/etc/bind/zones/db.mydomain.ddns.net"; # Zone file path
allow-update { key rndc-key; }; # allow for dynamic updates
};
zone "168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168"; # 192.168.0.0/16 subnet
allow-update { key rndc-key; }; # allow for dynamic updates
};
обновление 1
После рытья через dhcpd.conf
я пришел к выводу, что не могу указать номер порта для сервера bind в нем. Существует, однако, волшебный вариант с именем ddns-local-address4
что позволило мне указать другой IP-адрес сервера для DDNS из domain-name-server option
.
я изменил привязку к послушай 127.0.0.1
и это в значительной степени работает (по крайней мере, bind теперь получает обновление). Однако это срабатывание на разрешения.
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: signer "rndc-key" approved
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' A 192.168.1.104
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': adding an RR at 'iPhone.mydomain.ddns.net' TXT "316a52934f2adcaf4c95004e870a4c0f70"
Sep 29 19:21:40 ubuntu named[31415]: /etc/bind/zones/db.mydomain.ddns.net.jnl: open: permission denied
Sep 29 19:21:40 ubuntu named[31415]: client 127.0.0.1#2824/key rndc-key: updating zone 'mydomain.ddns.net/IN': error: journal open failed: unexpected error
Sep 29 19:21:40 ubuntu kernel: [212079.779512] audit: type=1400 audit(1475148100.710:25): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/etc/bind/zones/db.mydomain.ddns.net.jnl" pid=31419 comm="named" requested_mask="w" denied_mask="w" fsuid=110 ouid=0
мои лучшие попытки, однако, дать bind достаточное разрешение на обновление этого файла не работает. Что это дает?
ps aux | grep named
bind 31415 0.0 0.2 429564 19572 ? Ssl 19:10 0:00 /usr/sbin/named -f -u bind
ls -la /etc/bind/zones
total 16
drwxrwsr-x 2 root bind 4096 Sep 29 19:21 .
drwxr-sr-x 3 root bind 4096 Sep 29 19:07 ..
-rw-r--r-- 1 root bind 340 Sep 28 08:01 db.192.168
-rw-r--r-- 1 root bind 514 Sep 27 07:40 db.mydomain.ddns.net
-rw-rw-r-- 1 bind bind 0 Sep 29 19:21 db.mydomain.ddns.net.jnl
обновление 2
я изменил свой профиль apparmor для имени, и я больше не получаю ошибки разрешений.
когда я запрос bind
непосредственно на 127.0.0.1, все работает.
однако, когда я запроса с помощью ubuntu
, это не пересылка просмотров bind
правильно.
что я делаю неправильно сейчас?
С unbound.conf
local-zone: "1.168.192.in-addr.arpa." nodefault
local-zone: "168.192.in-addr.arpa." nodefault
stub-zone:
name: "168.192.inaddr.arpa."
stub-addr: 127.0.0.1
stub-zone:
name: "1.168.192.inaddr.arpa."
stub-addr: 127.0.0.1
stub-zone:
name: "mydomain.ddns.net."
stub-addr: 127.0.0.1