تثبيت خادم DNS للتخزين المؤقت ضمن Windows. إعداد خادم DNS للتخزين المؤقت (BIND) للشبكة المحلية. الاستعلام التكراري أو العودي

09.10.2021

انتباه

لتثبيت dnsmasq وتكوينه بشكل صحيح، انتقل إلى جلسة المستخدم المتميز:

عندما يُطلب منك كلمة مرور، أدخل كلمة مرور المستخدم المتميز أو كلمة مرور المسؤول المحلي.

تم تصميم ذاكرة التخزين المؤقت لـ DNS لتسريع تحميل صفحات موقع الويب عن طريق تخزين عناوين IP الخاصة بها في الذاكرة. لتكوين التخزين المؤقت، استخدم الأداة المساعدة com.dnsmasq.

يم تثبيت dnsmasq

باستخدام محرر النصوص vi أو nano، افتح الملف الموجود في /etc/dnsmasq.conf

السادس /etc/dnsmasq.conf

نانو /etc/dnsmasq.conf

قم بتحرير الإعدادات التالية:

Resolv-file=/etc/resolv.dnsmasq no-poll استمع-عنوان=127.0.0.1 حجم ذاكرة التخزين المؤقت=150 conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

وأضف أيضًا المعلمة التالية:

جميع الخوادم

  • ملف الحل- ملف يحتوي على عناوين IP لخوادم DNS
  • لا استطلاع- معلمة تمنع التطبيق التلقائي للتغييرات على الملفات المسماة resolv.
  • عنوان الاستماع- معلمة تشير إلى العنوان الذي سيتم الاستماع إليه.
  • حجم ذاكرة التخزين المؤقت- حجم ذاكرة التخزين المؤقت. تسمح لك القيمة الافتراضية بتخزين 150 مضيفًا.
  • جonf-dir- المعلمة المسؤولة عن ملف التكوين الإضافي.
  • جميع الخوادم- يعيد توجيه طلب DNS إلى جميع خوادم DNS المتاحة ويعيد استجابة من الخادم الأول الذي يستجيب. يجب كتابة المعلمة يدويًا.

يمكنك أيضًا تحديد المعلمات التالية:

  • no-negcache- لا تقم بتخزين الاستجابات السلبية من الخوادم.
  • بواجهة indق- يسمح لك بتشغيل نسخ من العملية.
  • دns-forward-max- الحد الأقصى لعدد طلبات DNS. الافتراضي هو 150. يجب كتابة المعلمة يدويًا.

الآن قم بإنشاء ملف resolv.dnsmasqباستخدام محرر النصوص سادساأو نانوواكتب عناوين خوادم DNS هناك.

السادس /etc/resolv.dnsmasq

نانو /etc/resolv.dnsmasq

ثم قم بإضافة عنوان IP 127.0.0.1 للملف resolv.conf. للقيام بذلك، استخدم الأداة المساعدة « اتصالات الشبكة» ، يقع في "القائمة" ← "الخيارات" ← "اتصالات الشبكة"في بيئة رسومية القرفةأو "النظام" ← "الإعدادات" ← "اتصالات الشبكة"في بيئة رسومية رَفِيق. حدد اتصالك النشط، وانقر فوق الزر "يتغير"،انتقل إلى علامة التبويب "إعدادات IPv4"، يتغير "طريقة"على "تلقائي (DHCP، العنوان فقط)""، وفي الميدان" خوادم DNS الإضافية» اكتب العنوان 127.0.0.1 ، انقر فوق تطبيق وأعد التشغيل مدير الشبكة.

تحرير ملف resolv.conf باستخدام محرري النصوصغير مستحسن. سيتم الكتابة فوق الملف مع إعادة تشغيل النظام التالية.

قم بإعادة تشغيل Systemctl NetworkManager.service

للتأكد من أن التغييرات نافذة المفعول، قم بمراجعة محتويات الملف resolv.conf:

القط /etc/resolv.conf

يجب أن يكون المحتوى هكذا:

# تم إنشاؤه بواسطة خادم أسماء NetworkManager 127.0.0.1

ستسمح لك العمليات الموضحة أعلاه بإعادة توجيه جميع طلبات DNS إلى الجهاز المحلي.

أضف خدمة com.dnsmasqللتشغيل التلقائي وإعادة تسجيل الدخول إلى الجلسة:

Systemctl قم بتمكين dnsmasq.service - الآن

لإعادة ضبط ذاكرة التخزين المؤقت، ما عليك سوى إعادة تشغيل الخدمة:

أعد تشغيل Systemctl dnsmasq.service

فحص الوظائف

تحقق من تمكين الخدمة:

حالة Systemctl dnsmasq.service

التحقق من المنفذ 53:

نتستت -ntlp | grep:53 tcp 0 0 0.0.0.0:53 0.0.0.0:* الاستماع 7319/dnsmasq tcp6 0 0:::53:::* الاستماع 7319/dnsmasq

حاول الآن استخدام أداة الحفر للوصول إلى الموقع عدة مرات google.com

حفر google.com | grep "وقت الاستعلام" ؛؛ وقت الاستعلام: 135 مللي ثانية

إذا كان التخزين المؤقت لطلبات DNS يعمل، فسيتم تمييز السطر المميز في جميع الطلبات التالية تقريبًا وقت الاستعلامسيكون مساوياً للصفر.

؛؛ وقت الاستعلام: 0 مللي ثانية

وبخلاف ذلك، ستختلف من 0 وأعلى مع كل طلب جديد.

ونتيجة لذلك، سيتعرض خادم DNS الرئيسي على الشبكة لحمل أقل بكثير.

إذا وجدت خطأ، قم بتمييز النص وانقر فوقه السيطرة + أدخل.


المؤلف: بول كوبوت
تاريخ النشر: 24 مايو 2015
ترجمة: أ. بانين
تاريخ الترجمة: 11 يوليو 2015

الفصل الرابع: مقدمة إلى خوادم DNS

4.3. التخزين المؤقت لخوادم DNS

يُطلق على خادم DNS الذي لا يخدم منطقة DNS، ولكنه متصل بخوادم أسماء أخرى للتخزين المؤقت للاستعلامات، اسم خادم DNS للتخزين المؤقت. لا تعمل خوادم DNS للتخزين المؤقت مع قواعد بيانات منطقة DNS التي تحتوي على سجلات الموارد. وبدلاً من ذلك، يقومون بالاتصال بخوادم الأسماء الأخرى وتخزين المعلومات ذات الصلة مؤقتًا.

هناك نوعان من خوادم DNS للتخزين المؤقت. هذه هي خوادم DNS التي تستخدم خوادم DNS لإعادة التوجيه، بالإضافة إلى خوادم DNS التي تستخدم خوادم DNS الجذرية.

4.3.1. التخزين المؤقت لخادم DNS الذي لا يستخدم معيد التوجيه

يجب أن يحصل خادم DNS للتخزين المؤقت الذي لا يستخدم معيد التوجيه على معلوماته من مكان آخر. عند تلقي طلب من العميل، فإنه يتصل بأحد خوادم الجذر. يقوم خادم الجذر بتمرير المعلومات إلى خادم التخزين المؤقت حول الخادم الذي يخدم المجال الهدف المستوى الأعلىوالذي بدوره سوف يعيد توجيهه إلى خادم DNS آخر. قد يكون لدى الخادم الأخير المعلومات اللازمة للرد على الطلب، أو قد يقوم بتمرير معلومات حول خادم DNS آخر قد يحتوي على تلك المعلومات. في النهاية، سيتلقى خادم DNS الخاص بنا المعلومات التي يحتاجها للرد على الطلب وإرسال الرد إلى العميل.

يوضح الرسم التوضيحي أدناه عملية قيام العميل بإرسال طلب للحصول على معلومات عنوان IP لاسم المجال linux-training.be. سيتصل خادم التخزين المؤقت الخاص بنا بالخادم الجذر وسيتم إعادة توجيهه إلى الخادم الذي يخدم نطاق المستوى الأعلى .be. سيتم بعد ذلك الاتصال بالخادم الذي يخدم نطاق المستوى الأعلى ‎.be وسيتم إعادة توجيهه إلى أحد خوادم الأسماء الخاصة بمؤسسة Openminds. أحد خوادم الأسماء هذه (في في هذه الحالة nsq.openminds.be) سوف يستجيب للطلب من خلال توفير عنوان IP الخاص بالخادم اسم المجال Linux-training.be. بعد أن يرسل خادم التخزين المؤقت لدينا هذه المعلوماتالعميل، سيتمكن العميل من الاتصال بالموقع المعني.

عند استخدام tcpdump sniffer لحل اسم مجال معين، يمكنك الحصول على الإخراج التالي (تمت إزالة أول 20 حرفًا من كل سطر).

192.168.1.103.41251 > M.ROOT-SERVERS.NET.domain: 37279% أ؟ لينكس-tr\aining.be. (46) M.ROOT-SERVERS.NET.domain > 192.168.1.103.41251: 37279- 0/11/13 (740) 192.168.1.103.65268 > d.ns.dns.be.domain: 38555% أ؟ تدريب لينكس.\be. (46) d.ns.dns.be.domain > 192.168.1.103.65268: 38555- 0/7/5 (737) 192.168.1.103.7514 > ns2.openminds.be.domain: 60888% أ؟ لينكس قطار\ing.be. (46) ns2.openminds.be.domain > 192.168.1.103.7514: 60888*- 1/0/1 أ 188.93.155.\ 87 (62)

4.3.2. التخزين المؤقت لخادم DNS باستخدام خادم معيد التوجيه

خادم DNS للتخزين المؤقت الذي يستخدم معيد التوجيه هو خادم DNS الذي يحصل على جميع المعلومات الضرورية من معيد التوجيه. على سبيل المثال، يمكن لخادم DNS الخاص بمزود خدمة الإنترنت أن يعمل كخادم DNS لإعادة التوجيه.

يوضح الرسم التوضيحي أعلاه خادم DNS الموجود الشبكة المحليةشركة تستخدم خادم DNS الذي يوفره مزود خدمة الإنترنت كخادم DNS لإعادة التوجيه. إذا كان عنوان IP الخاص بخادم DNS الذي يوفره موفر الإنترنت هو 212.71.8.10، فيجب أن تكون الأسطر التالية موجودة في ملف التكوين name.conf الخاص بخادم DNS الخاص بالشركة:

وكلاء الشحن ( 212.71.8.10; );

بالإضافة إلى ذلك، يمكنك أيضًا تكوين خادم DNS الخاص بك للعمل مع معيدي التوجيه الشرطيين. وصف خادم DNS معيد التوجيه الشرطي في ملف التكوين هو كما يلي:

المنطقة "someotherdomain.local" (اكتب إلى الأمام؛ إلى الأمام فقط؛ معيدي التوجيه (10.104.42.1؛ )؛)؛

4.3.3. الاستعلام التكراري أو العودي

الطلب العودي هو طلب DNS، وبعد إرساله يتوقع العميل تلقي استجابة نهائية من خادم DNS (في الرسم التوضيحي أعلاه، يتم تصويره بسهم أحمر غامق موجه من MacBook إلى خادم DNS). الطلب التكراري هو طلب DNS، وبعد إرساله لا يتوقع العميل تلقي استجابة نهائية من خادم DNS (في الرسم التوضيحي أعلاه تم تصويره بثلاثة أسهم سوداء موجهة من خادم DNS). يتم تنفيذ الاستعلامات التكرارية في أغلب الأحيان بين خوادم الأسماء. لا تستجيب خوادم الأسماء الجذرية للاستعلامات العودية.

يُطلق على خادم DNS الذي يدير منطقة DNS اسم خادم DNS المعتمد لتلك المنطقة. تذكر أن منطقة DNS هي مجرد مجموعة من سجلات الموارد.

أول خادم DNS موثوق لـ مناطق DNSيسمى خادم DNS الأساسي. سيعمل هذا الخادم بنسخة من قاعدة بيانات منطقة DNS القابلة للقراءة والكتابة. إذا كنت بحاجة إلى زيادة أمان البيانات في حالة الفشل، أو تحسين أداء الخادم أو موازنة التحميل، فيمكنك تشغيل خادم DNS آخر، والذي سيدير ​​​​منطقة DNS هذه أيضًا. سيتم تسمية هذا الخادم بخادم DNS الثانوي.

يتلقى الخادم الثانوي نسخة من قاعدة بيانات منطقة DNS من الخادم الأساسي أثناء عملية نقل منطقة DNS. يتم إرسال طلبات نقل بيانات منطقة DNS بواسطة خوادم ثانوية على فترات زمنية معينة. يتم تعيين مدة هذه الفواصل الزمنية ضمن سجل موارد SOA.

يمكنك فرض تحديث بيانات منطقة DNS باستخدام الأداة المساعدة rndc. يبدأ المثال أدناه عملية نقل البيانات لمنطقة DNS fred.local ويخرج أيضًا جزء الملف المقابل سجل النظام/var/log/syslog.

root@debian7:/etc/bind# تحديث Rndc fred.local root@debian7:/etc/bind# grep fred /var/log/syslog | الذيل -7 | قطع -c38-منطقة fred.local/IN: إرسال الإخطارات (المسلسل 1) تلقى أمر قناة التحكم "تحديث fred.local" منطقة fred.local/IN: بدأ النقل. نقل "fred.local/IN" من 10.104.109.1#53: متصل باستخدام 10.104.33.30#57367 منطقة fred.local/IN: نقل النقل التسلسلي 2 لـ "fred.local/IN" من 10.104.109.1#53: نقل مكتمل: رسالة واحدة، 10 سجلات، 264 بايت، 0.001 ثانية (264000 بايت/ثانية) المنطقة fred.local/IN: إرسال الإشعارات (التسلسل 2) root@debian7:/etc/bind#

عند إضافة خادم DNS ثانوي إلى منطقة DNS، يمكنك تكوين الخادم ليكون خادم DNS تابعًا للخادم الأساسي. سيكون خادم DNS الأساسي هو خادم DNS الرئيسي فيما يتعلق بالخادم الثانوي.

في أغلب الأحيان، يكون خادم DNS الأساسي هو الخادم الرئيسي الذي يتصل بجميع الخوادم التابعة. في بعض الأحيان يمكن أن يكون الخادم التابع أيضًا هو الخادم الرئيسي للخوادم التابعة في المستوى التالي. في الرسم التوضيحي أدناه، الخادم المسمى ns1 هو الخادم الأساسي، والخوادم المسماة ns2 وns3 وns4 هي الخوادم الثانوية. على الرغم من أن الخادم الرئيسي للخوادم المسماة ns2 وns3 هو ns1، فإن الخادم الرئيسي لـ ns4 هو ns2.

يحتوي سجل مورد SOA على قيمة معدل تحديث بيانات منطقة DNS المسماة التحديث. إذا تم تعيين هذه القيمة على 30 دقيقة، فسيرسل الخادم التابع طلبات لنقل نسخة من بيانات منطقة DNS كل 30 دقيقة. يحتوي هذا الإدخال أيضًا على قيمة لطول فترة المهلة المسماة "إعادة المحاولة". هذه القيمةيُستخدم عندما لا يستجيب الخادم الرئيسي لآخر طلب لنقل بيانات منطقة DNS. تحدد القيمة المسماة وقت انتهاء الصلاحية الفترة الزمنية التي يمكن للخادم التابع فيها الاستجابة للطلبات المقدمة من العملاء دون تحديث بيانات منطقة DNS.

يوجد أدناه مثال على استخدام الأداة المساعدة nslookup لقراءة بيانات سجل موارد SOA لمنطقة DNS (linux-training.be).

الجذر@ديبيان6:~# nslookup > نوع المجموعة = SOA > الخادم ns1.openminds.be > Linux-training.beالخادم: ns1.openminds.be العنوان: 195.47.215.14#53 linux-training.be Origin = ns1.openminds.be عنوان البريد = hostmaster.openminds.be serial = 2321001133 تحديث = 14400 إعادة المحاولة = 3600 انتهاء الصلاحية = 604800 الحد الأدنى = 3600

تحدث عمليات نقل بيانات منطقة DNS فقط عندما تتغير البيانات الموجودة في قواعد بيانات منطقة DNS (أي عندما تتغير قاعدة بيانات واحدة أو أكثر). أكثرسجلات الموارد على جانب الخادم الرئيسي). يقارن الخادم التابع رقم الإصدار (الرقم التسلسلي) لنسخته الخاصة من سجل مورد SOA برقم إصدار سجل مورد SOA للخادم الرئيسي المقابل. إذا كانت أرقام الإصدارات متطابقة، فلا يلزم تحديث البيانات (نظرًا لعدم إضافة سجلات موارد أخرى أو حذفها أو تغييرها). في نفس الحالة، إذا كان رقم إصدار سجل مورد SOA على جانب الخادم التابع أقل من رقم إصدار نفس السجل على جانب الخادم الرئيسي المقابل، فسيتم تقديم طلب نقل بيانات منطقة DNS.

يوجد أدناه لقطة لنافذة Wireshark sniffer مع البيانات التي تم اعتراضها أثناء نقل بيانات منطقة DNS.

4.9. عمليات النقل الكاملة أو الجزئية لبيانات منطقة DNS

يمكن أن يكون نقل بيانات منطقة DNS كاملاً أو جزئيًا. يعتمد قرار استخدام وضع أو آخر على كمية البيانات التي يجب نقلها إليها التحديث الكاملقاعدة بيانات منطقة DNS على الخادم التابع. يُفضل النقل الجزئي لبيانات المنطقة عندما يكون إجمالي كمية البيانات المتغيرة أقل من حجم قاعدة البيانات بأكملها. يتم إجراء عمليات نقل كاملة لبيانات منطقة DNS باستخدام بروتوكول AXFR، ويتم إجراء عمليات نقل جزئية لبيانات منطقة DNS باستخدام بروتوكول IXFR.

لتسريع تصفح الويب، نظام التشغيل نظام ويندوزيقوم بتخزين استجابات خادم DNS. مباشرة بعد وصول الاستجابة لتحديد الرقم من خادم DNS، يقوم Windows تلقائيًا بوضع هذا العنوان في وحدة التخزين المحلية. عندما يطلب المتصفح عنوان URL، يبحث Windows عنه أولاً في وحدة التخزين، وإذا عثر عليه، فإنه يُرجع النتيجة على الفور دون الاتصال بخوادم DNS الخاصة بمزود خدمة الإنترنت. تعمل ذاكرة التخزين المؤقت المحلية على زيادة السرعة وتوفير حركة المرور.

مسح ذاكرة التخزين المؤقت DNS المحلية

إذا، عند تخزين عنوان في التخزين المحليستتلف المعلومات أو سيتغير عنوان IP، ولن يتمكن المتصفح من فتح الموقع. هذا لا يحدث في كثير من الأحيان. لحسن الحظ، هناك طريقة لمسح ذاكرة التخزين المؤقت المحلية حل فوريالمشكلة التي نشأت.

يحتوي نظام التشغيل Windows على أداة ipconfig، الذي لديه الخيار /flushdnsلمسح كافة الإدخالات المخزنة مؤقتاً. إذا كنت بحاجة إلى مسح ذاكرة التخزين المؤقت المحلية، ثم في نافذة سطر الأوامر ( يبدأالبرامج(جميع البرامج) - معيارسطر الأوامر) يجب عليك إدخال الأمر ipconfig /flushdnsواضغط على مفتاح الإدخال.

لعرض كافة سجلات DNS في التخزين المحلي، يمكنك استخدام الخيار /displaydnsفرق ipconfig. للقيام بذلك، أدخل الأمر في نافذة سطر الأوامر ipconfig / معروضواضغط على مفتاح الإدخال. ستظهر جميع سجلات استجابة DNS المخزنة مؤقتًا في النافذة.

تحديد وقت الاحتفاظ بذاكرة التخزين المؤقت

عادةً، يقوم Windows بتخزين العناوين لمدة لا تزيد عن 86400 ثانية (يوم واحد)، ولكن يمكن تحديد وقت التخزين بحد آخر. للقيام بذلك، تحتاج إلى فتح محرر التسجيل (في سطر الأوامرأدخل الأمر رجديت واضغط على Enter). توجد في الجزء الأيمن من المحرر شجرة من مفاتيح التسجيل تشبه المجلدات القرص الصلب. في هذه الشجرة، من خلال النقر على أيقونات توسيع المجلد المقابلة (علامة الجمع)، يجب عليك فتح المسار HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters، ثم ضع المؤشر على المجلد الموجود في هذه الشجرة حدود. ستظهر محتويات هذا المفتاح (المجلد) في الجزء الأيسر من محرر التسجيل.

قيمة DWORD للمعلمة MaxCacheTtlيحدد الحد الزمني لتخزين الاستجابات بالثواني. ويمكن تغييره إلى أي شيء آخر. إذا كانت المعلمة MaxCacheTtlلا، هذا يعني أن الحد القياسي تم ضبطه على 86400 ثانية. لتغييره، تحتاج إلى إنشاء معلمة MaxCacheTtlاكتب DWORD بقيمة تساوي الحد المطلوب. المعلمة MaxCacheTtlإنه يحد فقط من وقت تخزين الاستجابات الإيجابية، أي عندما يكون من الممكن تحديد عنوان IP من اسم المجال.

إذا قام خادم DNS الخاص بالموفر بإرجاع استجابة سلبية (لم يتمكن من تحديد العنوان)، فسيتم تخزينها أيضًا في وحدة التخزين المحلية. عادةً، يتم تخزين هذه الاستجابة لمدة 15 دقيقة. وهذا يعني أنه إذا لم يكن من الممكن، أثناء زيارة موقع ما، تحديد عنوان IP الخاص به، فسيكون من المستحيل زيارة الموقع خلال 15 دقيقة، حتى لو أصبح متاحًا خلال هذا الوقت. لتجنب ذلك، يجب عليك تقليل وقت تخزين الاستجابات السلبية أو تعطيل تخزينها تمامًا. لتعيين وقت التخزين، يجب عليك ضبط (أو إنشاء، إذا كان مفقودًا) معلمة DWORD MaxNegativeCacheTtl، مما يحد من الحد الأقصى لوقت تخزين الاستجابات السلبية. لتعطيل التخزين الخاص بهم، ما عليك سوى ضبط وقت التخزين على الصفر.

قم بتعطيل التخزين المؤقت لاستجابة DNS

إذا كنت بحاجة إلى تعطيل التخزين المؤقت للعنوان في وحدة التخزين المحلية، فيجب عليك إدخال الأمر في سطر الأوامر net stop dnscache(أو sc توقف dnscache) واضغط على Enter. لإعادة تشغيله مرة أخرى، أدخل الأمر في سطر الأوامر صافي بداية dnscache(أو الشورييبدأ dnscache) ثم اضغط على Enter، أو أعد تشغيل الكمبيوتر.

في كل عام، تزداد سرعة الإنترنت - سواء في الميل الأخير أو القنوات الأساسية -. هناك شيء واحد ثابت فقط - لقد وصل زمن الوصول بالفعل إلى الحدود المادية: تبلغ سرعة الضوء في الألياف الضوئية حوالي 200 ألف كيلومتر في الثانية، وبالتالي، أسرع من ~ 150 مللي ثانية، لا يمكن تلقي استجابة من خادم عبر المحيط الأطلسي المستقبل المنظور (على الرغم من وجود المسرات بالطبع، مثل الألياف الضوئية ذات النواة الهوائية أو اتصالات الترحيل الراديوي، ولكن هذا يصعب على البشر العاديين الوصول إليه).

عندما نحاول، على سبيل المثال، من روسيا فتح موقع ويب موجود في الولايات المتحدة الأمريكية (من المحتمل أن تكون خوادم NS الخاصة به موجودة هناك)، ولم يتم العثور على المجال في ذاكرة التخزين المؤقت لنظام أسماء النطاقات (DNS) الخاص بمزود الخدمة الخاص بك، سيتعين علينا الانتظار لفترة طويلة حتى على إنترنت جيجابت، وربما حتى ثانية كاملة: بينما نحن عبر المحيط سنتلقى أسماء خوادم NS الخاصة بالمجال، بينما سنحل عنوان IP الخاص بهم، بينما سنرسل ونستقبل طلب DNS نفسه...

منذ عامين، أطلقت Google خوادم DNS العامة الخاصة بها، ومن أجل الترويج للانتقال إليها، قامت بتطوير الأداة المساعدة NameBench، التي تجري اختبارات DNS على سجل التصفح الخاص بك وتوضح كيفية استخدام Google DNS DNS أسرعخادم المزود الخاص بك.

لكنني تمكنت من إنشاء خادم DNS خاص بي يعمل بشكل أسرع من Google Public DNS، وفي هذه الملاحظة القصيرة أريد مشاركة النتائج.

PDNSD

com.pdnsd- التخزين المؤقت لوكيل DNS. بالإضافة إلى التخزين المؤقت العادي لطلبات DNS (مع القدرة على تحديد الحد الأدنى من TTL بشكل صارم - قد يكون ذلك ضروريًا جدًا إنترنت سيء)، يمكنه إرسال طلب في وقت واحد إلى العديد من خوادم DNS "الأصلية"، وإعطاء العميل الاستجابة الأولى التي يتم إرجاعها.

إن إدراج الاقتراع الموازي هو الذي يمنحنا الميزة الرئيسية في السرعة، لأن عندما يتم العثور على نتيجة في ذاكرة التخزين المؤقت لأي من المزودين، نحصل على النتيجة بسرعة كبيرة، ولا ننتظر حلًا كاملاً وبطيئًا إذا لم يكن لدى المزود الأول إجابة في ذاكرة التخزين المؤقت.

تم التثبيت في Ubuntu باستخدام Banal apt-get.

بضع نقاط في التكوين

global ( perm_cache=10240; // الحد الأقصى لحجم ذاكرة التخزين المؤقت بالكيلوبايت. // افتراضيًا كان 1024، ولم تكن جميع سجلاتي مناسبة.cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // الحد الأدنى من الوقت لتخزين الإدخال في ذاكرة التخزين المؤقت // حتى إذا وصل TTL أقل من 60 دقيقة، فسيكون 60 دقيقة max_ttl=1w; // الحد الأقصى لوقت حفظ الإدخال في ذاكرة التخزين المؤقت neg_ttl=5m; وقت تخزين الاستجابات السلبية مؤقتًا (أي إذا لم يتم العثور على المجال) [..] par_queries=3; // عدد خوادم DNS "الأصلية" التي تم الاستعلام عنها في نفس الوقت (التسمية = "الرئيسية"؛ ip = 85.21.192.5 //هناك هناك 4 خوادم، إذا لم تستجب الثلاثة الأولى، فسيتم إرسال طلب إلى الرابع، 213.234.192.7 // أول خادمين هما خادم المزود الخاص بك، وبعض الخوادم المجاورة، 8.8.4.4 // هذا هو Google Public DNS - يقومون بتخزين كل شيء نادر ويتم حله بسرعة، 8.8.8.8 [..] )

من حيث المبدأ، يمكن جعل التخزين المؤقت أقل عدوانية (min_ttl=1m على سبيل المثال)، ولكن على مدار عام من التشغيل لم تنشأ أي مشاكل خاصة. في حالة حدوث مشكلات، يمكنك اختياريًا مسح إدخال واحد من ذاكرة التخزين المؤقت:
سجل sudo pdnsd-ctl 3.14.by الحذف أو الكل مرة واحدة:
Sudo pdnsd-ctl ذاكرة التخزين المؤقت الفارغة

نتائج الاختبار في NameBench



نرى أنه بالنسبة لـ 50% من الطلبات، نتلقى استجابة في أقل من 10 مللي ثانية، وبالنسبة لـ 85% من الطلبات، يكون Google Public DNS أسرع، ومن ثم تتطابق النتائج بشكل طبيعي مع Google.

بناءً على نتائج الاختبار، يقدم لنا NameBench بكل سرور ما يلي:

8.8.8.8 نسخة متماثلة أبطأ من SYS-192.167.0.98 8.8.4.4 نسخة متماثلة أبطأ من SYS-192.167.0.98

وبالتالي، فإن وكيل DNS الذكي للتخزين المؤقت مع الاستعلامات المتوازية يسمح لك بتسريع حتى سرعة الإنترنت حتى 100 ميجابت. وبالنسبة للروابط (الراديو) البطيئة ذات الكمون العالي وفقدان الحزمة، يمكن أن يكون الفرق مثل السماء والأرض.

من الخدمات المهمة التي تضمن عمل الإنترنت الحديث هي خدمة تحويل اسم الموقع إلى عنوان IP. سنقوم بإعداد تنفيذ خدمة DNS في هذه المقالة باستخدام مثال إعداد Bind 9 (المسمى) على خادم ضمن تشغيل CentOS 7. سنقوم بإعداد الحد الأدنى من الوظائف الأساسية الضرورية وننظر بشكل أعمق قليلاً في إعدادات التسجيل.

إذا كانت لديك الرغبة في تعلم كيفية العمل مع أجهزة توجيه Mikrotik وتصبح متخصصًا في هذا المجال، أنصحك باتباع برنامج يعتمد على معلومات من الدورة الرسمية. الدورة جديرة بالاهتمام، اقرأ الرابط للحصول على كافة التفاصيل. هناك دورات مجانية.

ربط- التطبيق الأكثر شيوعًا لخادم DNS اليوم، والذي يضمن تحويل عناوين IP إلى أسماء DNS والعكس. ويسمى أيضًا باسم، على سبيل المثال في Freebsd. إذا حكمنا من خلال المعلومات الواردة من ويكيبيديا، فإن 10 من أصل 13 خادم DNS جذري على الإنترنت تعمل الآن على الربط. يتم تثبيته خارج الصندوق في كل شيء تقريبًا توزيعات لينكس. سأفكر في تثبيته على خادم CentOS 7.

تثبيت Bind 9 (المسمى) على CentOS 7

أولاً، دعونا نتحقق مما إذا كان لدينا خادم DNS مثبت على النظام:

# rpm -qa bind* bind-libs-lite-9.9.4-14.el7.x86_64 bind-license-9.9.4-14.el7.noarch

لم أقم بتثبيته لأنني اخترت الحد الأدنى من حزمة البرامج. سيعمل خادم الأسماء الخاص بنا في بيئة chroot، لذا قم بتثبيت الحزم المناسبة:

# yum - y install bind bind - utils bind - chroot

مرة أخرى، يرجى ملاحظة أننا سوف نستخدم bind in chrootالبيئة لزيادة الأمن. وهذا يفرض ميزات معينة في إعداد وإدارة الخادم. عليك أن تكون حذرا في هذه الأشياء الصغيرة. لذلك، دعونا تشغيل ربط:

#بدء تشغيل النظام name-chroot# تمكين النظام name-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

التحقق من محتويات دليل chroot:

# ls -l /var/named/chroot/etc

كل شيء على ما يرام، لقد بدأ الخادم، وتم إنشاء الملفات الضرورية، وكل شيء جاهز للتكوين. دعونا نعتني بالأمر.

إعداد خادم DNS في CentOS 7

يوجد ملف تكوين الخادم الخاص بنا في /var/named/chroot/etc/named.conf. نفتحه ونخرجه إلى النموذج التالي:

# خيارات mcedit /var/named/chroot/etc/named.conf (منفذ الاستماع 53 (any; ); منفذ الاستماع on-v6 53 ( none; ); الدليل "/var/named"; ملف التفريغ " /var/named/data/cache_dump.db";allow-query ( 127.0.0.1; 192.168.7.0/24; ); العودية نعم; السماح بالعودية ( 127.0.0.1; 192.168.7.0/24; ); معيدي التوجيه ( 8.8 .8.8); الإصدار "خادم DNS"; دليل المفاتيح المُدارة "/var/named/dynamic"; "؛ رقم تمكين DNSsec؛ رقم التحقق من DNSsec؛ ); منطقة "." IN (اكتب تلميح؛ ملف "named.ca"؛ ); تضمين "/etc/named.rfc1912.zones"؛ تضمين "/etc/named.root.key"؛ التسجيل (ملف القناة الافتراضي (ملف "/var/log/named/default.log" الإصدار 3 الحجم 5 م؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ )؛ الفئة الافتراضية (default_file؛ )؛

سيضمن هذا التكوين تشغيل خادم التخزين المؤقت العادي على الشبكة المحلية. تعليقات على بعض المعلمات:

لا تنس تعديل قواعد جدار الحماية بالشكل الصحيح عمل DNSالخادم - افتح منفذ UDP 53 لخادم التخزين المؤقت الذي قمنا بتكوينه الآن، و53 منفذ تي سي بيلنقل المناطق، والتي سيتم مناقشتها لاحقا

الآن لنقم بإنشاء مجلد للسجلات. لا تنس أننا نعمل في بيئة chroot:

# cd /var/named/chroot/var/log && mkdir المسمى && chown المسمى. اسمه

دعم المنطقة الخاصة

لنفترض أننا بحاجة إلى وضع منطقتنا site1.ru في اسمنا. أولًا، نقوم بإنشاء ملف المنطقة الذي سيخدمه خادم DNS:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ IN SOA site1.ru. site1.ru.local. (2015092502 43200 3600 3600000 2592000) في NS ns1.site1.ru.

في NS ns2.site1.ru.

في 192.168.7.254 في MX 10 mx.site1.ru. بوابة في 192.168.7.254 م × في 192.168.7.250 ns1 في 192.168.7.235 ns2 في 192.168.7.231

إن وصف بناء جملة ملفات المنطقة مغطى جيدًا على الإنترنت، ولا أريد الخوض في هذا الأمر بالتفصيل. إذا رغبت في ذلك، يمكن للجميع معرفة ما إذا كانوا بحاجة إلى تكوين الدعم لمنطقتهم الخاصة.

قمنا بتعيين الحقوق اللازمة:

# جذر chown: اسمه /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone المنطقة "site1.ru" (اكتب الملف الرئيسي؛ الملف "site1.ru.zone"؛ );:

نعيد قراءة التكوين المسمى باستخدام

rndc

# إعادة تكوين rndc

إضافة إلى ربط منطقة الرقيق

إذا كنت تريد الاحتفاظ بنسخة من منطقة مأخوذة من خادم DNS آخر على الخادم الخاص بك، فقم بإضافة الإعدادات التالية إلى التكوين.

المنطقة "site.ru" IN (اكتب Slave; masters (10.1.3.4; ); ملف "site.ru.zone"; );

10.1.3.4 - عنوان IP لخادم DNS الذي نأخذ منه المنطقة. لا تنس السماح بنقل المنطقة إلى خادم DNS الخاص بك. تحتاج إلى إضافة إذن الكتابة إلى المجموعة المسماة بحيث تبدو كما يلي:بعد ذلك، يمكنك إعادة تشغيل الربط والتحقق من إنشاء ملف المنطقة التابعة. مع الإعدادات المذكورة أعلاه، سيكون موجودا في

/var/named/chroot/var/named/site.ru.zone

. إذا لم يكن لدى bind حقوق إنشاء ملف، فسوف تتلقى خطأ في السجل:

تفريغ الملف الرئيسي: tmp-7Swr6EZpcd: مفتوح: تم رفض الإذن من المثير للاهتمام والمفيد فهم التسجيل التفصيلي لتشغيل الخادم. لقد استحوذت لفترة طويلة بشكل سطحي على جميع أنواع التوصيات وأجزاء من عينات التكوين على الإنترنت، حتى قررت التعامل مع هذا الموضوع بنفسي ونظرت في الدليل الأصلي.للتسجيل. يمكنك تسجيل كل ما يتعلق بتشغيل الخادم تقريبًا. أنا الآن أمثلة بسيطةسأريكم كيف يعمل.

أولاً، في التكوين، قمنا بتعيين القناة حيث سيتم تخزين سجلات أحداث معينة. فيما يلي مثال على هذه القناة:

القناة العامة (ملف "/var/log/named/general.log" الإصدارات 3 الحجم 5M؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛

يُشار هنا إلى اسم القناة، الذي توصلنا إليه بأنفسنا - بشكل عام، يُشار إلى المسار إلى الملف، ويُقال أننا سنقوم بتخزين 3 إصدارات من السجل لا يزيد حجمها عن 5 ميغابايت. المعلمة خطورةيمكن أن تأخذ القيم التالية:

المعلمة وقت الطباعةيشير إلى أنه يجب تسجيل وقت الحدث في السجل. بالإضافة إلى الإعدادات التي حددتها، يمكن إضافة المعلمات التالية إلى تكوين القناة:

  • شدة الطباعةنعم | no — يحدد ما إذا كان سيتم كتابة معلمة الخطورة في السجل أم لا
  • فئة الطباعةنعم | no — يحدد ما إذا كان سيتم كتابة اسم فئة السجل أم لا

لم أحدد هذه المعلمات، حيث تم تعيين القيمة الافتراضية على لا، وهو ما يناسبني شخصيا.

الفئة عام ( عام؛ );

وصف فئات السجل في الرابط (مسمى)
تقصيرتقع أحداث جميع الفئات من هذا الجدول هنا إذا لم يتم تعريفها بشكل منفصل، باستثناء فئة الاستعلامات، التي يجب تضمينها على وجه التحديد. وهذا يعني أنه إذا قمت بتعيين الفئة الافتراضية فقط، فسوف تتدفق إليها أحداث جميع الفئات.
عامهذه الفئة مخصصة لكافة السجلات التي لم يتم تضمينها في أي من الفئات المدرجة.
قاعدة البياناتالرسائل المتعلقة بتخزين المنطقة والتخزين المؤقت.
حمايةتأكيد ورفض الطلبات.
التكوينكل ما يتعلق بقراءة وتنفيذ ملف التكوين.
محللتحليل الاسم، بما في ذلك معلومات حول الاستعلامات العودية التي يتم إجراؤها نيابة عن العميل بواسطة خادم التخزين المؤقت.
xfer-inمعلومات حول الحصول على المناطق.
xfer-outمعلومات حول مناطق النقل.
يخطرتسجيل عمليات بروتوكول NOTIFY.
عميلتلبية طلبات العملاء.
لا مثيل لهالرسائل التي تم تسميتها لا يمكن تعيينها لأي فئة أو التي لم يتم تحديد أي تعيين لها.
شبكةتسجيل عمليات الشبكة.
تحديثالتحديثات الديناميكية.
تحديث الأمنتأكيد أو رفض طلبات التحديث.
الاستعلاماتتسجيل الطلبات إلى خادم DNS. لتمكين هذه الفئة، يجب عليك تعيين المعلمة بشكل منفصل في تكوين الخادم. ويرجع ذلك إلى حقيقة أن هذه الفئة تنشئ الكثير من الإدخالات في ملف السجل، مما قد يؤثر على أداء الخادم.
أخطاء الاستعلامأخطاء في الطلبات المقدمة إلى الخادم.
إرسالإعادة توجيه الحزم الواردة إلى وحدات الخادم للمعالجة.
com.dnssecتشغيل بروتوكولات DNSSEC وTSIG.
خوادم عرجاءالأخطاء الثابتة التي تربط الاستلام عند الوصول الخوادم البعيدةفي محاولة لحل طلب تحليل الاسم.
التفويض فقططلبات التسجيل التي قامت بإرجاع NXDOMAIN.
edns-معطلالطلبات التي تضطر إلى استخدام DNS العادي بسبب تجاوز المهلات.
آر بي زيجميع العمليات المتعلقة بتنفيذ منطقة سياسة الاستجابة (RPZ).
الحد الأقصى للمعدلالعمليات المتعلقة بواحد أو أكثر من بيانات حد السعر في الخيارات أو العرض.

وبالتالي، لعرض كافة فئات السجلات في ملفات منفصلة، ​​تحتاج إلى إضافة البناء التالي إلى التكوين المسمى:

التسجيل (القناة الافتراضية (إصدارات الملف "/var/log/named/default.log" 3 الحجم 5m؛ ديناميكية الخطورة؛ وقت الطباعة نعم؛ )؛ إصدارات القناة العامة (إصدارات الملف "/var/log/named/general.log" 3 حجم 5 م؛ وقت الطباعة نعم؛ /var/log/named/security.log" الإصدارات 3 الحجم 5 م؛ ديناميكي الخطورة؛ وقت الطباعة نعم؛ ); تكوين القناة (ملف "/var/log/ الإصدارات المسماة/config.log" 3 الحجم 5m؛ ديناميكية الخطورة؛ وقت الطباعة نعم؛ ); محلل القناة (ملف "/var/log/named/resolver.log" الإصدارات 3 الحجم 5m؛ ديناميكية الخطورة؛ وقت الطباعة نعم؛ ); /xfer-out.log" الإصدارات 3 الحجم 5 م؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ )؛ إعلام القناة (ملف "/var/log/named/notify.log" الإصدارات 3 الحجم 5 م؛ الخطورة ديناميكية؛ وقت الطباعة نعم ); /client.log" الإصدارات 3 بحجم 5 م؛ ديناميكية الشدة وقت الطباعة نعم؛ ); قناة غير متطابقة (ملف "/var/log/named/unmatched.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); شبكة القنوات (ملف "/var/log/named/network.log" الإصدارات 3 الحجم 5M؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ )؛ تحديث القناة (ملف "/var/log/named/update.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); أمان تحديث القناة (الإصدارات "/var/log/named/update-security.log" الإصدار 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); استعلامات القناة (ملف "/var/log/named/queries.log" الإصدارات 3 الحجم 5M؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛)؛ أخطاء استعلام القناة (الإصدارات "/var/log/named/query-errors.log" الإصدار 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); إرسال القناة (ملف "/var/log/named/dispatch.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); قناة dnssec (ملف "/var/log/named/dnssec.log" الإصدار 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); خوادم القناة الضعيفة (ملف "/var/log/named/lame-servers.log" الإصدارات 3 الحجم 5M؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛)؛ تفويض القناة فقط (ملف "/var/log/named/delegation-only.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); قناة edns-disabled (ملف "/var/log/named/edns-disabled.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); قناة rpz (ملف "/var/log/named/rpz.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); حد معدل القناة (ملف "/var/log/named/rate-limit.log" الإصدارات 3 الحجم 5m؛ الخطورة ديناميكية؛ وقت الطباعة نعم؛ ); الفئة الافتراضية (افتراضي؛)؛ فئة عامة(عامة؛); قاعدة بيانات الفئة (قاعدة البيانات؛) ؛ أمان الفئة ( الأمان؛ ) ؛ تكوين الفئة(التكوين;); محلل الفئة (محلل؛)؛ فئة xfer-in ( xfer-in; ); فئة xfer-out ( xfer-out; ); إخطار الفئة (إخطار؛) ؛ عميل الفئة (العميل؛) ؛ فئة لا مثيل لها ( لا مثيل لها؛ ); شبكة الفئة ( شبكة؛ ) ؛ تحديث الفئة(update;); فئة أمان التحديث ( أمان التحديث؛ ) ؛ استعلامات الفئة ( استعلامات؛ ); أخطاء استعلام الفئة ( أخطاء الاستعلام؛ )؛ إرسال الفئة ( إرسال ؛ ) ؛ فئة DNSsec ( dnssec; ); فئة الخوادم العرجاء ( الخوادم العرجاء؛ ) ؛ فئة التفويض فقط ( التفويض فقط; ); فئة edns معطل ( edns-disabled; ); الفئة rpz ( rpz; ); حد معدل الفئة ( حد المعدل؛ ) ؛ );

إذا أردنا جمع كل سجلات الطلبات من فئة ما الاستعلامات، ثم في قسم الخيارات بملف التكوين، تحتاج إلى إضافة معلمة تسمح بذلك:

سجل الاستعلام نعم؛

إعادة تشغيل الربط:

# إعادة تشغيل systemctl المسمى chroot.service

التحقق من تشغيل خادم DNS

أولاً، دعنا نذهب إلى الدليل الذي يحتوي على السجلات ونتحقق مما لدينا هناك:

# cd /var/named/chroot/var/log/named # ls -l

تم إنشاء جميع ملفات السجل وبدأت في الامتلاء. يمكنك التحقق من واحد منهم. على سبيل المثال، دعونا نرى كيف يقوم خادم Centos (192.168.7.246) بتسجيل طلبات المستخدم. دعنا نحاول تشغيل nslookup yandex.ru من جهاز الكمبيوتر 192.168.7.254 (Windows) ونرى كيف ينعكس ذلك في ملف السجل:

26 سبتمبر 2015 19:25:30.923 العميل 192.168.7.254#56374 (yandex.ru): الاستعلام: yandex.ru IN A + (192.168.7.246) 26 سبتمبر 2015 19:25:31.013 العميل 192.168.7.254# 56375 (yandex.ru): الاستعلام: yandex.ru IN AAAA + (192.168.7.246)

لنقم الآن باختبار اتصال site1.ru للتحقق من مدى دعم الخادم لمنطقتنا:

دعونا نرى ما هو موجود في السجلات:

26 سبتمبر 2015 19:28:01.660 العميل 192.168.7.254#49816 (site1.ru): الاستعلام: site1.ru IN A + (192.168.7.246)

وهذا يجعل من السهل جدًا تتبع اتجاه الكمبيوتر. على سبيل المثال، يمكنك رفع خادم DNS مؤقتًا وتمكين سجل الاستعلام. في العميل، حدد خادم DNS الوحيد الذي قمنا بتكوينه. ومن ثم يمكننا، على سبيل المثال، تتبع أين يذهب Windows بعد التحميل دون علمنا. أو حيث يتم تحميل الإعلانات على Skype. سيتم تجميع جميع الطلبات بدقة في ملف، والذي يمكن بعد ذلك تحليله بسهولة، ثم، على سبيل المثال، .

هذا كل ما أردت أن أخبرك به في هذه المادة. موضوع ربط الإعداد (المسمى) واسع جدًا. وربما سأعود إليها مرة أخرى.

دورات اون لاين على ميكروتيك

إذا كانت لديك الرغبة في تعلم كيفية العمل مع أجهزة التوجيه Mikrotik وتصبح متخصصًا في هذا المجال، أنصحك بأخذ دورات وفقًا للبرنامج بناءً على معلومات من الدورة الرسمية مساعد شبكة معتمد من MikroTik. بجانب البرنامج الرسمي، سوف الدورات العمل المختبريحيث يمكنك اختبار وتعزيز المعرفة المكتسبة في الممارسة العملية. جميع التفاصيل موجودة على الموقع تكلفة التدريب مناسبة جداً فرصة جيدةاكتساب معرفة جديدة في مجال الموضوع ذي الصلة حاليًا. مميزات الدورة:
  • المعرفة الموجهة نحو الممارسة؛
  • مواقف ومهام حقيقية؛
  • أفضل البرامج العالمية.