Հակադարձ գոտի պատվիրակում ենթացանցերին /24-ից պակաս BIND-ում: Ինչպես է դա աշխատում

Մի օր ես կանգնած էի իմ հաճախորդներից մեկին իրավունք տալ խմբագրելու իրեն հատկացված /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.- addr.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.

Իսկ ներսում անունով ավելացնել մեր նոր ֆայլի նկարագրությունը.

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

Մենք ասում ենք բոլորին, ովքեր հարցնում են, որ մենք պատասխանատու չենք այս կայքի համար և ասում ենք, թե ով է պատասխանատու: Եվ բոլոր խնդրանքները client.domain վերահղում դեպի 7.8.7.8: Ստուգելիս մենք տեսնում ենք հետևյալ նկարը (մենք բաց կթողնենք այն, ինչ հաճախորդն ունի այնտեղ։ Կարևոր չէ).

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

Նրանք. մեզ տեղեկացրին, որ կա այսպիսի A գրառում և դրա ip-ն 7.8.9.241 է։ Ոչ մի ավելորդ տեղեկատվություն:

Ինչպե՞ս կարելի է նույն բանն անել ենթացանցով:

Որովհետեւ մեր DNS սերվերը գրանցված է RIPE-ում, այնուհետև մեր ցանցից PTR IP հասցե խնդրելու դեպքում առաջին հարցումը դեռևս կլինի մեզ համար: Տրամաբանությունը նույնն է, ինչ տիրույթների դեպքում։ Բայց ինչպե՞ս եք մուտքագրում ենթացանցը գոտու ֆայլի մեջ:

Փորձենք մուտքագրել այն այսպես.

255-240  IN  NS      7.8.7.8

Եվ... հրաշքը չեղավ. Մենք որևէ հարցում չենք ստանում վերահղում: Բանն այն է, որ bind-ը նույնիսկ չգիտի, որ հակադարձ գոտու ֆայլի այս գրառումները IP հասցեներ են, և առավել եւս չի հասկանում միջակայքի մուտքագրումը: Նրա համար սա ընդամենը ինչ-որ խորհրդանշական ենթադոմեյն է։ Նրանք. կապելու համար տարբերություն չի լինի»255-240"Եւ"մեր սուպերհաճախորդը«. Եվ որպեսզի հարցումը գնա այնտեղ, որտեղ պետք է գնա, հարցումի հասցեն պետք է նման լինի. 241.255-240.9.8.7.in-addr.arpa. Կամ այսպես, եթե օգտագործենք նիշերի ենթադոմեյն. 241.oursuperclient.9.8.7.in-addr.arpa. Սա տարբերվում է սովորականից. 241.9.8.7.- addr.arpa- ում.

Ձեռքով նման հարցում կատարելը դժվար կլինի։ Եվ նույնիսկ եթե այն աշխատում է, դեռևս պարզ չէ, թե ինչպես կիրառել այն իրական կյանքում: Ի վերջո, ըստ պահանջի 7.8.9.241 Պրովայդերի DNS-ը դեռ պատասխանում է մեզ, ոչ թե հաճախորդի:

Եվ ահա, որտեղ նրանք հայտնվում են խաղի մեջ CNAME- ը.

Պրովայդերի կողմից դուք պետք է ենթացանցի բոլոր IP հասցեների համար փոխանուն կազմեք այնպիսի ձևաչափով, որը հարցումը կուղարկի հաճախորդի DNS-ին:

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.- addr.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 գոտի վերցնել և դրսից որևէ մեկին չպատասխանել =):

Source: www.habr.com

Добавить комментарий