Deja configurez al 3-lea split-view DNS folosind BIND în ultimile 2 săptămâni. Așa c-o iau ca pe un semn că ar trebui să explic și altora care-i șmecheria.

Întâi trebuie explicat motivul pentru care am vrea să avem un split-view dns. Păi presupunem că avem un server DNS local care ne rezolvă un domeniu (să zicem example.com). Stațiile din rețeaua locală sunt cu adrese IP private (192.168.x.x, 10.x.x.x, 172.[16-31].x.x ). În rețeaua locală mai avem și un server de mail (tot cu IP privat dar scos în extern folosind port forwarding). Să zicem că nu avem chef să schimbam numele/ip-ul mail serverului în clientul de mail de fiecare data cand ajungem în reteaua locala cu laptopul. Și-atunci cum facem ?

Ar fi util un server dns care să servească IP-urilor locale un anumit răspuns pentru o cerere. Și celor din extern alt răspuns. Astfel, mail.example.com poate să fie 192.168.1.2 pentru stațiile din rețeaua locală și 88.78.68.58 pentru cererile venite din exterior. (este doar un exemplu, e util și în alte cazuri).

Cum facem ? Toată șmecheria se face în named.conf. Dacă folosiți deja acl-uri în DNS atunci poate că aveți deja adăugată o intrare pentru rețeaua locală. Dacă nu, adăugați un acl care să arate similar cu :

acl “local_lan” {
192.168.1.0/24;
# Clasa de IP-uri din LAN local
127.0.0.1;
# loopback
};

După care, atunci când definiți fișierele de zonă, folosiți “view” :

view "internal" {
        match-clients { local_lan; };
#doar pentru intrările din "local_lan" definit sus
        recursion yes;
# permite cereri recursive
..........................................
#urmează fișierele cu zonele

Fișierele cu zonele definite aici vor conține adresele IP interne ale serverelor care oferă diferitele servicii. La sfârșit închidem “view” cu }; și trecem la partea pentru extern.

view "external" {

        match-clients { !localnets; any; };
#localnets este cuvânt cheie. ! e folosit pentru negație
        recursion no;
# dezactivează cererile recursive (util de setat așa)
...........................................
#urmează fișierele cu zonele

Fișierele cu zonele definite aici conțin adresa(adresele) externe.
Cam asta-i toată treaba. Faceți câte 2 fișiere pentru fiecare zonă pe care o rezolvă serverul DNS (unul pentru intern și unul pentru extern) și rulați serviciul. Ar trebui să funcționeze perfect.
Dacă nu, PEBKAC.