Istnieje wiele skrótów, które mogą ułatwić życie:
Jeśli korzystasz z Bind lub podobnego oprogramowania, które używa plików do przechowywania danych strefy: skieruj strefy do tego samego pliku, na przykład:
zone "example.net" {
type master;
file "/etc/bind/zone/default.zone";
};
zone "example.org" {
type master;
file "/etc/bind/zone/default.zone";
};
Ponieważ możesz korzystać z niektórych skrótów DNS, możesz utworzyć plik strefy uniwersalnej:
$TTL 1h ; default expiration time of all resource records without their own TTL value
@ IN SOA ns1.example.com. username.example.com. (
20140218131405 ; Serial number YYYYMMDDHHMMSS
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400 ; Minimum TTL 1 day )
@ IN NS ns1.example.com. ; ns1.example.com is a primary nameserver
@ IN NS ns2.example.com. ; ns2.example.com is a backup nameserver
@ IN MX 10 mail.example.com. ; mail.example.com is the mailserver
@ IN MX 20 mail2.example.com. ; the secondary mailserver
@ IN A 192.0.2.1 ; IPv4 address for the bare domain
IN AAAA 2001:db8:10::1 ; IPv6 address for the bare domain
www IN A 192.0.2.1 ; www.domain
IN AAAA 2001:db8:10::1 ; IPv6 address for www.domain - note by starting the line with a blank it becomes the continuation of the previous record and this IPv6 record applies to www
wwwtest IN CNAME www ; wwwtest is an alias for www
Wykorzystuje to fakt, że nazwy hostów w plikach strefy, które nie kończą się kropką, .są zawsze rozszerzane o to, $ORIGIN
co z kolei jest domyślnie ustawione na nazwę strefy. I @jest skrótem od $ ORIGIN.
Zamiast ręcznie zarządzać poszczególnymi plikami stref, włącz metodę interakcji programowo z serwerami nazw.
Użyłem PowerDNS, który pozwala na RDMS jako back-end, który bardzo dobrze pasuje do stosu LAMP, którego wtedy używaliśmy. Usługi w chmurze, takie jak Amazon Route 53, również ujawniają interfejsy API sieci.
Ale nawet czcigodny Bind obsługuje również dynamiczną aktualizację, która jest metodą dodawania, zastępowania lub usuwania rekordów na serwerze głównym, wysyłając mu specjalną formę wiadomości DNS. Format i znaczenie tych komunikatów określono w RFC 2136 .
Aktualizacja dynamiczna jest włączana przez włączenie klauzuli allow-update
lub update-policy
w instrukcji strefy. Aby uzyskać więcej informacji, zapoznaj się z Instrukcją obsługi administratora Bind .
rndc addzone
opcja, ale nadal jest to trochę brzydkie, ponieważ kończy się generowaniem pliku konfiguracyjnego o zaszyfrowanej nazwie w katalogu roboczym dla każda dodana strefa.Krótka odpowiedź
Jeśli szukasz konfiguracji „zerowej konfiguracji” w BIND, nie istnieje. Utworzenie strefy głównej (
.
) wydaje się dobrym pomysłem, ale tak nie jest i musisz znaleźć rozwiązanie, które nie wymaga zepsucia DNS, aby spełnić twoje potrzeby.Długa odpowiedź
W ciągu ostatniego roku otrzymywaliśmy kilka wariantów tego pytania.
Odpowiedź jest tutaj dość prosta: nie można skonfigurować definicji pojedynczej strefy. Każde oprogramowanie, które pozwala zdefiniować lub w inny sposób zsyntetyzować wiele
SOA
rekordów w tym kontekście, jest uszkodzonym oprogramowaniem, a robienie uszkodzonych rzeczy nie jest tematem ServerFault. Musisz albo wybrać oprogramowanie DNS, które upraszcza to zarządzanie, albo wymyślić inną strategię, która nie obejmuje tego konkretnego skrótu.Zdecydowanie istnieje kilka sztuczek, które mogą ułatwić życie ... na przykład BIND, dość często definiuje się wiele stref, które odnoszą się do tego samego pliku strefy szablonu. Jest to całkowicie legalne, a oprogramowanie sprawdzające nie znajdzie w tym nic złego: patrz odpowiedź MadHattera. Większość osób omija to rozwiązanie, ponieważ dodawanie deklaracji strefy za każdym razem, gdy nabywana jest nowa domena, jest „zbyt dużym nakładem pracy”, ale dla tego rodzaju hostingu nie ma opcji „skonfiguruj raz i odejdź”.
Nowsze wersje BIND obsługują wywoływaną opcję
allow-new-zones
, która umożliwia dynamiczne tworzenie definicji stref w locie dzięki nowejrndc addzone
funkcjonalności. Możesz rzucić okiem na to i sprawdzić, czy pasuje do twoich potrzeb.Poza sugerowanymi rozwiązaniami, twoje opcje są nieco ograniczone. Czasami po prostu utkniesz w pracy, jeśli oprogramowanie nie działa tak, jak chcesz.
źródło
Kiedy mówisz „domeny muszą być skonfigurowane identycznie”, czy masz na myśli, że muszą one przechowywać te same rekordy zasobów? W takim razie czy
DNAME
RR dla wszystkich domen oprócz jednej nie byłby czystszym rozwiązaniem?Nie mogę pokonać sztuczki @MadHatter zaimportowania tego samego pliku szablonu, pozostając ściśle w zakresie pytania. Mogę zaoferować tylko podobne podejście dla
LDAP
backendu (w moim przypadku używanego z powerDNS): dodajassociatedDomain
atrybuty dla odpowiednich rekordów SOA i NS, na przykład:źródło