BIND ішінде /24-тен аз ішкі желілерге кері аймақ өкілдігі. Бұл қалай жұмыс істейді

Бір күні менің клиенттерімнің біріне оған тағайындалған /28 ішкі желінің PTR жазбаларын өңдеу құқығын беру міндеті тұрды. Менде BIND параметрлерін сырттан өңдеуге арналған автоматтандыру жоқ. Сондықтан, мен басқа бағытты таңдауды шештім - клиентке /24 ішкі желінің PTR аймағының бір бөлігін тапсыру.

Көрінетін сияқты - не қарапайым болуы мүмкін? Біз жай ғана ішкі желіні қажетіне қарай тіркейміз және оны қосалқы доменмен орындалғандай қалаған NS-ге бағыттаймыз. Бірақ жоқ. Бұл соншалықты қарапайым емес (бірақ шын мәнінде бұл қарапайым, бірақ интуиция көмектеспейді), сондықтан мен бұл мақаланы жазып отырмын.

Оны өзі анықтағысы келген адам оқи алады RFC
Кім дайын шешімді қалайды, мысыққа қош келдіңіз.

Көшіру-қою әдісін ұнататындарды кешіктірмеу үшін алдымен практикалық бөлімді, сосын теориялық бөлімді жариялаймын.

1. Жаттығу. Өкілдік аймағы /28

Бізде ішкі желі бар делік 7.8.9.0/24. Біз ішкі желіге өкілдік беруіміз керек 7.8.9.240/28 dns клиентіне 7.8.7.8 (ns1.client.domain).

Провайдердің DNS жүйесінде осы ішкі желінің кері аймағын сипаттайтын файлды табу керек. Бола берсін 9.8.7.in.add.arpa.
Біз 240-тан 255-ке дейінгі жазбаларға түсініктеме береміз, егер бар болса. Ал файлдың соңында келесіні жазамыз:

255-240  IN  NS      7.8.7.8
$GENERATE 240-255 $ CNAME $.255-240

сериялық аймақты көбейтуді ұмытпаңыз және жасаңыз

rndc reload

Бұл провайдер бөлігін аяқтайды. Клиент DNS-ке көшейік.

Алдымен файлды жасайық /etc/bind/master/255-240.9.8.7.in-addr.arpa келесі мазмұн:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Және .conf жаңа файлымыздың сипаттамасын қосыңыз:

zone "255-240.9.8.7.in-addr.arpa." IN {
        type master;
        file "master/255-240.9.8.7.in-addr.arpa";
};

B байланыстыру процесін қайта бастаңыз.

/etc/init.d/named restart

Барлық. Енді сіз тексере аласыз.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

PTR жазбасы ғана емес, сонымен қатар CNAME де берілгенін ескеріңіз. Осылай болуы қажет. Неге деп ойласаңыз, келесі тарауға қош келдіңіз.

2. Теория. Бұл қалай жұмыс істейді.

Қара жәшікті конфигурациялау және жөндеу қиын. Ішінде не болып жатқанын түсінсеңіз, бұл әлдеқайда оңай.

Домендегі қосалқы доменді өкілдік еткенде домен, содан кейін біз келесідей нәрсені жазамыз:

client.domain.	NS	ns1.client.domain.
ns1.client.domain.	A	7.8.7.8

Сұрағандардың барлығына біз бұл сайтқа жауапты емеспіз деп айтамыз және кім жауапты екенін айтамыз. Және барлық сұраулар клиент.домен 7.8.7.8-ге қайта бағыттау. Тексеру кезінде біз келесі суретті көреміз (клиентте не бар екенін көрсетпейміз. Бұл маңызды емес):

# host test.client.domain
test.client.domain has address 7.8.9.241

Анау. бізге мұндай А жазбасы бар екенін және оның IP 7.8.9.241 екенін хабарлады. Қажетсіз ақпарат жоқ.

Ішкі желімен бірдей нәрсені қалай жасауға болады?

Өйткені біздің DNS серверіміз RIPE-де тіркелген, содан кейін біздің желіден PTR IP мекенжайын сұраған кезде, бірінші сұрау әлі де бізде болады. Логика домендермен бірдей. Бірақ ішкі желіні аймақтық файлға қалай енгізуге болады?

Оны келесідей енгізуге тырысайық:

255-240  IN  NS      7.8.7.8

Ал... ғажайып болған жоқ. Біз сұрауды қайта бағыттауды қабылдап жатқан жоқпыз. Мәселе мынада, байланыстыру кері аймақ файлындағы бұл жазбалар IP мекенжайлары екенін білмейді және диапазон жазбасын түсінбейді. Ол үшін бұл символдық субдоменнің бір түрі ғана. Анау. байланыстыру үшін » арасында ешқандай айырмашылық болмайды255-240«Ал»біздің суперклиент«. Сұрау қажет жерге бару үшін сұраудағы мекенжай келесідей болуы керек: 241.255-240.9.8.7.in-addr.arpa. Немесе таңбаның қосалқы доменін пайдаланатын болсақ: 241.oursuperclient.9.8.7.in-addr.arpa. Бұл әдеттегіден ерекшеленеді: 241.9.8.7.in.add.arpa.

Мұндай сұранысты қолмен жасау қиын болады. Тіпті ол жұмыс істесе де, оны нақты өмірде қалай қолдану керектігі әлі белгісіз. Өйткені, сұраныс бойынша 7.8.9.241 Провайдердің DNS-і әлі де клиенттікіне емес, бізге жауап береді.

Міне, олар ойынға түседі CNAME.

Провайдер тарапынан сұрауды клиенттік DNS-ке жіберетін пішімде ішкі желінің барлық IP мекенжайлары үшін бүркеншік ат жасау керек.

255-240  IN  NS      ns1.client.domain.
241     IN  CNAME   241.255-240
242     IN  CNAME   242.255-240
и т.д.

Бұл еңбекқорларға арналған =).

Ал жалқаулар үшін төмендегі дизайн қолайлы:

255-240  IN  NS      ns1.client.domain.
$GENERATE 240-255 $ CNAME $.255-240

Енді мына жерден ақпаратты сұраңыз 7.8.9.241 -дан 241.9.8.7.in.add.arpa провайдердің DNS серверіндегі түрлендіріледі 241.255-240.9.8.7.in-addr.arpa және dns клиентіне өтеді.

Клиент тарап осындай сұрауларды өңдеуі керек. Тиісінше, біз аймақты жасаймыз 255-240.9.8.7.in-addr.arpa. Онда біз, негізінен, бүкіл /24 ішкі желінің кез келген IP үшін кері жазбаларды орналастыра аламыз, бірақ олар бізден провайдер бізге жіберетіндер туралы ғана сұрайды, сондықтан біз ойнай алмаймыз =).
Түсіндіру үшін мен клиент тарапынан кері аймақ файлының мазмұнына тағы да мысал келтіремін:

$ORIGIN 255-240.9.8.7.in-addr.arpa.
$TTL 1W
@                       1D IN SOA       ns1.client.domain. root.client.domain. (
                        2008152607      ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum
@                       IN NS        ns1.client.domain.
@                       IN NS        ns2.client.domain.
241                     IN PTR          test.client.domain.
242                     IN PTR          test2.client.domain.
245                     IN PTR          test5.client.domain.

Себебі біз провайдер тарапынан CNAME қолданамыз және IP мекенжайы бойынша деректерді сұрауға жауап ретінде біз бір емес, екі жазба аламыз.

#>  host 7.8.9.245 
245.9.8.7.in-addr.arpa is an alias for 245.255-240.9.8.7.in-addr.arpa.
245.255-240.9.8.7.in-addr.arpa domain name pointer test5.client.domain.

Және ACL дұрыс конфигурациялауды ұмытпаңыз. Өйткені PTR аймағын өзіңізге алып, сырттан ешкімге жауап бермеу мағынасы жоқ =).

Ақпарат көзі: www.habr.com

пікір қалдыру