Skonfiguruj BIND, aby był prostym serwerem przekazującym (bez zapytań do serwerów głównych)

Chciałbym skonfigurować prosty serwer bind, który będzie działał jako prosty forwarder do OpenDNS serwery.

Nie chcę, aby moje powiązanie było możliwe, ale będąc w stanie wysyłać zapytania do serwerów głównych, chcę, aby cały ruch trafiał tylko do OpenDNS i być może działał jako „pamięć podręczna”.

Jak to osiągnąć? Czy powinienem w jakiś sposób wyłączyć wskazówki serwerów głównych? Czy to jest prawidłowa procedura?

Domyślam się, że należy zakomentować strefę „.” Obsługiwaną przez serwery główne w named.conf.default-zones . Czytałem jednak, że nie odpytujące serwery główne można również uzyskać wyłączając rekursję, ale wyłączenie rekurencji wydaje się prowadzić do tego, że serwer nie może również korzystać z usług przesyłania dalej … gdzie moja konfiguracja jest błędna?

Konfiguracja jest następująca:

named.conf

// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; 

named.conf.options

acl "trusted" { 127.0.0.1/8; 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; ::1; }; options { directory "/var/cache/bind"; # bind cache directory recursion no; # enables resursive queries allow-query { trusted; } ; allow-recursion { "none"; }; additional-from-cache no; allow-transfer { none; }; # disable zone transfers by default // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0"s placeholder. forward only; forwarders { 208.67.222.222; 208.67.220.220; }; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-enable no; dnssec-validation no; dnssec-lookaside auto; auth-nxdomain no; # conform to RFC1035 }; 

named.conf.local

// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; 

named.conf.default-zones

// prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; 

Odpowiedź

Konfiguracja BIND rzeczywiście, po zdefiniowaniu usług przesyłania dalej, wysyła wszystkie żądania, które nie zostały spełnione przez lokalny BIND do usług przesyłania dalej.

Co więcej, gdy używany jest forward only;, strefy lokalne są ignorowane, a wszystkie żądania są obsługiwane tylko z pamięci podręcznej lub przez usługi przesyłania dalej.

Jeśli potrzebujesz stref lokalnych (np prywatne adresy IP z RFC 1918 i lokalna strefa domowa / biurowa), aby mieć usługi przesyłania dalej, musisz skomentować zarówno strefę wskazówkami dotyczącymi katalogu głównego, jak i dyrektywą forward only;.

// forward only; // zone "." { // type hint; // file "/etc/bind/db.root"; // }; 

Z DNS HowTo

Ale jeśli ustawiono „tylko do przodu”, BIND poddaje się, gdy nie otrzymuje odpowiedzi od usług przesyłania dalej, a funkcja gethostbyname () zwraca natychmiast. Dlatego nie ma potrzeby wykonywania sztuczek -hand z plikami w / etc i zrestartuj serwer.

W moim przypadku właśnie dodałem linie

tylko do przodu; forwardery {193.133.58.5;};

do sekcji options {} mojego pliku named.conf. Działa bardzo ładnie. Jedyną wadą tego jest to, że redukuje niewiarygodnie wyrafinowany program DNS do stanu głupiej pamięci podręcznej.

Więc jeśli potrzebujesz tylko głupiej pamięci podręcznej, możesz tylko przekazywać żądania. To jest odpowiednia konfiguracja w środowisku korporacyjnym, na przykład, gdy przekazujesz żądania do biura centralnego.

Zgodnie z sytuacją, w której przekazujesz żądania na zewnątrz, radziłbym nie robić na ślepo forward only aby nie przekazywać dalej żądań DNS z zakresu prywatnych adresów IP / lokalnych domen DNS / Windows dla wyższych hierarchii / głównych serwerów nazw.

Komentarze

  • btw, OpenDNS (i inne) obsługują szyfrowane przekazywanie. Robię to w domu.
  • O super, proszę podać zmiany, kiedy możesz ^^ Chciałbym użyć szyfrowanego przesyłania dalej, abym mógł pozbyć się głupiego dostawcy usług, egzekwowania DNS, który przepisuje pakiety DNS!
  • otwórz nowe pytanie i komentarz z moim użytkownikiem; w ten sposób zostanie to udokumentowane i nie pomylimy tematów / pytań.
  • Ok, będę 🙂 Najpierw kawa, a potem napiszę nowe pytanie!
  • Widziałem to teraz .. . bardziej skomplikowane niż faktycznie czekałem. Odpowie później.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *