BIND'de /24'ten küçük alt ağlara ters bölge delegasyonu. Nasıl çalışır

Bir gün müşterilerimden birine, kendisine atanan /28 alt ağının PTR kayıtlarını düzenleme hakkını verme göreviyle karşı karşıya kaldım. BIND ayarlarını dışarıdan düzenlemek için otomasyonum yok. Bu nedenle, müşteriye /24 alt ağının PTR bölgesinin bir kısmını devretmek için farklı bir yol izlemeye karar verdim.

Görünüşe göre - daha basit ne olabilir? Alt ağı gerektiği gibi kaydediyoruz ve bir alt alan adında yapıldığı gibi onu istenen NS'ye yönlendiriyoruz. Ama hayır. Bu o kadar basit değil (her ne kadar gerçekte ilkel olsa da, sezgi yardımcı olmuyor), bu yüzden bu makaleyi yazıyorum.

Kendi kendine çözmek isteyen herkes okuyabilir. RFC
Kim hazır bir çözüm ister, cat'e hoş geldiniz.

Kopyala-yapıştır yöntemini sevenleri geciktirmemek adına önce pratik kısmını sonra teorik kısmını yayınlayacağım.

1. Pratik yapın. Yetki verme bölgesi /28

Diyelim ki bir alt ağımız var 7.8.9.0/24. Alt ağı devretmemiz gerekiyor 7.8.9.240/28 dns istemcisine 7.8.7.8 (ns1.client.domain).

Sağlayıcının DNS'sinde bu alt ağın ters bölgesini tanımlayan bir dosya bulmanız gerekir. Bırak olsun 9.8.7.in-addr.harp.
Varsa 240'tan 255'e kadar olan girişleri yorumluyoruz. Ve dosyanın sonuna şunu yazıyoruz:

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

seri bölgeyi arttırmayı unutmayın ve

rndc reload

Bu, sağlayıcı kısmını tamamlar. İstemci DNS'sine geçelim.

İlk önce bir dosya oluşturalım /etc/bind/master/255-240.9.8.7.in-addr.arpa aşağıdaki içerik:

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

Ve c adlandırılmış.conf yeni dosyamızın açıklamasını ekleyin:

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 işlemini yeniden başlatın.

/etc/init.d/named restart

Tüm. Şimdi kontrol edebilirsiniz.

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

Yalnızca PTR kaydının değil aynı zamanda CNAME'nin de verildiğini lütfen unutmayın. Böyle olması gerekiyor. Nedenini merak ediyorsanız bir sonraki bölüme hoş geldiniz.

2. Teori. Nasıl çalışır.

Bir kara kutuyu yapılandırmak ve hata ayıklamak zordur. İçeride neler olup bittiğini anlarsan her şey çok daha kolay olur.

Bir etki alanında bir alt etki alanını devrettiğimizde domain, sonra şöyle bir şey yazıyoruz:

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

Soran herkese bu siteden sorumlu olmadığımızı söylüyor ve sorumlunun kim olduğunu söylüyoruz. Ve tüm istekler istemci.alan adı 7.8.7.8'e yönlendirin. Kontrol ederken aşağıdaki resmi görüyoruz (müşterinin orada ne olduğunu çıkaracağız. Önemli değil):

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

Onlar. böyle bir A kaydının olduğu ve IP'sinin 7.8.9.241 olduğu bilgisi bize verildi. Gereksiz bilgi yok.

Aynı şey bir alt ağ ile nasıl yapılabilir?

Çünkü DNS sunucumuz RIPE'de kayıtlıysa, ağımızdan bir PTR IP adresi talep edildiğinde ilk talep yine bize olacaktır. Mantık alan adlarıyla aynıdır. Peki bir alt ağı bir bölge dosyasına nasıl girersiniz?

Bu şekilde girmeyi deneyelim:

255-240  IN  NS      7.8.7.8

Ve... mucize gerçekleşmedi. Herhangi bir istek yönlendirmesi almıyoruz. Mesele şu ki, bağlama, ters bölge dosyasındaki bu girişlerin IP adresleri olduğunu bile bilmiyor ve dahası, aralık girişini anlamıyor. Onun için bu sadece bir çeşit sembolik alt alan adı. Onlar. bağlama için " arasında hiçbir fark olmayacak255-240"Ve"süper müşterimiz". İsteğin gitmesi gereken yere gidebilmesi için istekteki adresin şu şekilde görünmesi gerekir: 241.255-240.9.8.7.in-addr.arpa. Veya bir karakter alt alanı kullanırsak şöyle: 241.oursuperclient.9.8.7.in-addr.arpa. Bu her zamankinden farklı: 241.9.8.7.in-addr.harp.

Böyle bir talebi manuel olarak yapmak zor olacaktır. İşe yarasa bile gerçek hayatta nasıl uygulanacağı hala belirsiz. Sonuçta istek üzerine 7.8.9.241 Sağlayıcının DNS'si hâlâ müşterininkine değil bize yanıt veriyor.

İşte burada devreye giriyorlar CNAME.

Sağlayıcı tarafında, alt ağın tüm IP adresleri için isteği istemci DNS'sine iletecek biçimde bir takma ad oluşturmanız gerekir.

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

Bu çalışkanlar içindir =).

Tembeller için aşağıdaki tasarım daha uygundur:

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

Şimdi şu adresten bilgi isteyin: 7.8.9.241 arasında 241.9.8.7.in-addr.harp sağlayıcının DNS sunucusunda şuna dönüştürülecek: 241.255-240.9.8.7.in-addr.arpa ve dns istemcisine gider.

Müşteri tarafının bu tür istekleri karşılaması gerekecektir. Buna göre bir bölge oluşturuyoruz 255-240.9.8.7.in-addr.arpa. Prensipte, /24 alt ağın tamamının herhangi bir IP'si için ters girişler yerleştirebiliriz, ancak bunlar bize yalnızca sağlayıcının bize ilettiği IP'ler hakkında sorular soracaktır, bu nedenle etrafta oynayamayız =).
Açıklamak için, istemci tarafından bir ters bölge dosyasının içeriğine bir kez daha örnek vereceğim:

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

Bunun nedeni, sağlayıcı tarafında CNAME kullanmamız ve IP adresine göre veri talebine yanıt olarak bir değil iki kayıt almamızdır.

#>  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'yi doğru şekilde yapılandırmayı unutmayın. Çünkü PTR bölgesini kendinize alıp dışarıdan kimseye cevap vermemenin hiçbir anlamı yok =).

Kaynak: habr.com

Yorum ekle