عكس تفويض المنطقة إلى الشبكات الفرعية الأقل من /24 في BIND. كيف تعمل

في أحد الأيام، واجهت مهمة منح أحد عملائي الحق في تحرير سجلات PTR للشبكة الفرعية /28 المخصصة له. ليس لدي أتمتة لتحرير إعدادات BIND من الخارج. لذلك، قررت أن أسلك طريقًا مختلفًا - لتفويض العميل بجزء من منطقة PTR للشبكة الفرعية /24.

يبدو - ما الذي يمكن أن يكون أسهل؟ نحن ببساطة نسجل الشبكة الفرعية كما هو مطلوب ونوجهها إلى 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-addr.harp.
نعلق على الإدخالات من 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";
};

ب- أعد تشغيل عملية الربط.

/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

أولئك. لقد علمنا بوجود مثل هذا السجل وعنوان IP الخاص به هو 7.8.9.241. لا توجد معلومات غير ضرورية.

كيف يمكن أن يتم نفس الشيء مع شبكة فرعية؟

لأن تم تسجيل خادم DNS الخاص بنا في RIPE، ثم عند طلب عنوان IP PTR من شبكتنا، سيظل الطلب الأول لنا. المنطق هو نفسه كما هو الحال مع المجالات. ولكن كيف يمكنك إدخال شبكة فرعية في ملف المنطقة؟

دعونا نحاول إدخاله مثل هذا:

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-addr.harp.

سيكون من الصعب تقديم مثل هذا الطلب يدويًا. وحتى لو نجحت، فلا يزال من غير الواضح كيفية تطبيقها في الحياة الواقعية. بعد كل شيء، عند الطلب 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-addr.harp على خادم DNS الخاص بالموفر سيتم تحويله إلى 241.255-240.9.8.7.in-addr.arpa ويذهب إلى عميل DNS.

سيحتاج جانب العميل إلى التعامل مع مثل هذه الطلبات. وفقا لذلك، نقوم بإنشاء منطقة 255-240.9.8.7.in-addr.arpa. في ذلك، يمكننا، من حيث المبدأ، وضع إدخالات عكسية لأي عنوان IP للشبكة الفرعية /24 بأكملها، لكنهم سيسألوننا فقط عن تلك التي يرسلها إلينا المزود، لذلك لن نتمكن من التلاعب =).
للتوضيح، سأقدم مرة أخرى مثالاً على محتويات ملف المنطقة العكسية من جانب العميل:

$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

إضافة تعليق