BIND-də /24-dən az olan alt şəbəkələrə tərs zona nümayəndəliyi. Bu necə işləyir

Bir gün müştərilərimdən birinə ona təyin edilmiş /28 alt şəbəkəsinin PTR qeydlərini redaktə etmək hüququnu vermək vəzifəsi ilə üzləşdim. Kənardan BIND parametrlərini redaktə etmək üçün avtomatlaşdırmam yoxdur. Buna görə də fərqli bir marşrut seçməyə qərar verdim - müştəriyə /24 alt şəbəkəsinin PTR zonasının bir hissəsini həvalə etmək.

Görünür - daha sadə nə ola bilər? Biz sadəcə olaraq alt şəbəkəni tələb olunduğu kimi qeydiyyatdan keçiririk və subdomendə olduğu kimi onu istədiyiniz NS-yə yönləndiririk. Amma yox. Bu o qədər də sadə deyil (əslində ümumiyyətlə primitiv olsa da, intuisiya kömək etməyəcək), ona görə də bu məqaləni yazıram.

Bunu özü üçün anlamaq istəyən hər kəs oxuya bilər RFC
Kim hazır həll istəyir, pişiyə xoş gəlmisiniz.

Kopyala-yapışdır üsulunu bəyənənləri gecikdirməmək üçün əvvəlcə praktiki, sonra isə nəzəri hissəni yerləşdirəcəyəm.

1. Təcrübə edin. Təqdimat zonası /28

Tutaq ki, alt şəbəkəmiz var 7.8.9.0/24. Biz alt şəbəkəni həvalə etməliyik 7.8.9.240/28 dns müştərisinə 7.8.7.8 (ns1.client.domain).

Provayderin DNS-də bu alt şəbəkənin əks zonasını təsvir edən fayl tapmalısınız. Qoy olsun 9.8.7.adr.arpa.
240-dan 255-ə qədər olan yazıları şərh edirik, əgər varsa. Və faylın sonunda aşağıdakıları yazırıq:

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

serial zonasını artırmağı və etməyi unutmayın

rndc reload

Bu provayder hissəsini tamamlayır. Gəlin müştəri dns-ə keçək.

Əvvəlcə bir fayl yaradaq /etc/bind/master/255-240.9.8.7.in-addr.arpa aşağıdakı məzmun:

$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.

Və içində adlandırılan.conf yeni faylımızın təsvirini əlavə edin:

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

B bağlama prosesini yenidən başladın.

/etc/init.d/named restart

Hamısı. İndi yoxlaya bilərsiniz.

#>  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.

Nəzərə alın ki, təkcə PTR qeydi deyil, həm də CNAME verilir. Belə də olmalıdır. Səbəbi ilə maraqlanırsınızsa, növbəti fəsilə xoş gəlmisiniz.

2. Nəzəriyyə. Bu necə işləyir.

Qara qutunu konfiqurasiya etmək və sazlamaq çətindir. İçəridə nə baş verdiyini başa düşsəniz, daha asan olar.

Bir domendə alt domeni həvalə etdiyimiz zaman domain, sonra belə bir şey yazırıq:

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

Soruşan hər kəsə deyirik ki, biz bu sayta cavabdeh deyilik və kimin cavabdeh olduğunu deyirik. Və bütün sorğular müştəri.domen 7.8.7.8-ə yönləndirin. Yoxlama zamanı aşağıdakı şəkli görürük (müştərinin orada nə olduğunu buraxacağıq. Fərqi yoxdur):

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

Bunlar. bizə məlumat verildi ki, belə bir A rekordu var və onun ip 7.8.9.241-dir. Lazımsız məlumat yoxdur.

Eyni şeyi alt şəbəkə ilə necə etmək olar?

Çünki bizim DNS serverimiz RIPE-də qeydiyyatdan keçib, sonra şəbəkəmizdən PTR IP ünvanı tələb edərkən, ilk sorğu yenə də bizə olacaq. Məntiq domenlərlə eynidir. Ancaq alt şəbəkəni zona faylına necə daxil etmək olar?

Onu belə daxil etməyə çalışaq:

255-240  IN  NS      7.8.7.8

Və... möcüzə baş vermədi. Biz heç bir sorğu yönləndirməsini almırıq. İş ondadır ki, bind hətta əks zona faylındakı bu qeydlərin IP ünvanları olduğunu bilmir və daha çox diapazon girişini başa düşmür. Onun üçün bu, sadəcə bir növ simvolik subdomendir. Bunlar. bağlamaq arasında heç bir fərq olmayacaq255-240"Və"bizim super müştərimiz". Və sorğunun getməli olduğu yerə getməsi üçün sorğudakı ünvan belə görünməlidir: 241.255-240.9.8.7.in-addr.arpa. Və ya simvol alt domenindən istifadə etsək belə: 241.superclient.9.8.7.in-addr.arpa. Bu adi haldan fərqlidir: 241.9.8.7.adr.arpa.

Belə bir sorğunu əl ilə etmək çətin olacaq. İşləsə belə, onu real həyatda necə tətbiq edəcəyi hələ də aydın deyil. Axı, xahişlə 7.8.9.241 Provayderin DNS-i hələ də müştərinin yox, bizə cavab verir.

Və burada oyuna girirlər CNAME.

Provayder tərəfində, sorğunu müştəri DNS-ə yönləndirəcək formatda alt şəbəkənin bütün IP ünvanları üçün ləqəb qoymalısınız.

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

Bu zəhmətkeşlər üçündür =).

Tənbəllər üçün aşağıdakı dizayn daha uyğundur:

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

İndi məlumat tələb edin 7.8.9.241 haqqında 241.9.8.7.adr.arpa provayderin DNS serverinə çevriləcək 241.255-240.9.8.7.in-addr.arpa və dns müştərisinə gedir.

Müştəri tərəfi bu cür sorğulara cavab verməlidir. Buna uyğun olaraq bir zona yaradırıq 255-240.9.8.7.in-addr.arpa. Burada, prinsipcə, bütün /24 alt şəbəkəsinin hər hansı bir ipi üçün tərs qeydlər yerləşdirə bilərik, lakin onlar bizdən yalnız provayderin bizə yönləndirdikləri barədə soruşacaqlar, buna görə də biz ətrafında oynaya bilməyəcəyik =).
Təsvir etmək üçün bir daha müştəri tərəfdən əks zona faylının məzmununa bir nümunə verəcəyəm:

$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.

Çünki biz provayder tərəfində CNAME istifadə edirik və IP ünvanı ilə məlumat sorğusuna cavab olaraq bir yox, iki qeyd alırıq.

#>  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.

Və ACL-ni düzgün konfiqurasiya etməyi unutmayın. Çünki özünüz üçün bir PTR zonası götürməyin və kənardan heç kimə cavab verməməyin mənası yoxdur =).

Mənbə: www.habr.com

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