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.

Тэгээд бас нэртэй манай шинэ файлын тайлбарыг нэмнэ үү:

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

Тэгээд ... гайхамшиг тохиолдсонгүй. Бид ямар ч хүсэлтийн дахин чиглүүлэлт хүлээн аваагүй байна. Хамгийн гол нь 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.in.add.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.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

сэтгэгдэл нэмэх