كيفية إعداد DNS Caching باستخدام dnsmasq على أوبونتو

يمكن استخدام DNSmasq للتخزين المؤقت لطلبات DNS لتوزيعات Linux. ومع ذلك ، يمكن أن تكون صعبة بعض الشيء.

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

أولاً ، دعنا نرى ما هو التخزين المؤقت لنظام أسماء النطاقات.

ما هو DNS Caching؟

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

كلما طلبت من محرك البحث عرض صفحة ويب ، فهذا ما يحدث بالفعل وراء الكواليس.

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

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

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

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

كيف يساعد التخزين المؤقت لنظام أسماء النطاقات في إصلاح DNS المتقطع في حل المشكلات في مثيلات Amazon EC2؟

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

  إصلاح League of Legends حدث خطأ غير متوقع في جلسة تسجيل الدخول

سيساعدك نشر ذاكرة التخزين المؤقت DNS المحلية في النظام على تقليل استخدام وحدة المعالجة المركزية والشبكة مع منع أخطاء تحليل DNS. تستجيب ذاكرة التخزين المؤقت المحلية لنظام أسماء النطاقات للاستعلامات التي يتم إجراؤها على موارد DNS الخارجية مثل Amazon RDS و S3.

يتم استخدام بروتوكول DHCP أثناء التشغيل بواسطة مثيلات Amazon EC2 المتصلة بـ Amazon VPCs لطلب عنوان خادم DNS.

عندما تستخدم Amazon VPC لإنشاء سحابة افتراضية خاصة ، فإن Route 53 DNS Resolver يستخدم بشكل فعال محللًا على VPC للاستجابة لطلبات DNS لمثيلات EC2 التي تعمل ضمن عناوين ويب Amazon VPC المحلية والإدخالات في المناطق المدارة بشكل خاص. يقوم برنامج Resolver بإجراء عمليات بحث متكررة عبر خوادم DNS العامة لجميع عناوين الويب الإضافية.

تعمل ذاكرة التخزين المؤقت لـ DNS كسجل انتقالي لاستعلامات DNS السابقة التي يمكن لنظامنا فحصها بسرعة أثناء محاولة الوصول إلى موقع ويب على الإنترنت. يحتفظ بسجل لكل جلسة حالية ولاحقة. تعمل ذاكرة التخزين المؤقت DNS هذه على تسهيل دقة المجال وتمنع حدوث أخطاء في مثيلات Amazon EC2 Linux.

يستخدم العديد من المستخدمين عادةً خدمة Amazon Route 53 لنظام DNS عند الوصول إلى AWS. إنه حقًا سهل الاستخدام وخالٍ تقريبًا. ولكن هناك عددًا من الأسباب التي قد تؤثر على قرار المستخدم باستخدام خادم DNS محلي.

على الرغم من أن bind9 لا يزال خيارًا رائعًا لإعداد خادم ذاكرة تخزين مؤقت DNS محلي ، إلا أن dnsmasq أسهل بكثير في التثبيت والتكوين على كل من مثيلات EC2 وعلى جهاز محلي.

ما هو dnsmasq؟

DNSmasq هي أداة مرتبطة بـ Linux تدعم التخزين المؤقت DNS و DHCP و TFTP و DNS. تم تصميمه ليكون مضغوطًا وخفيف الوزن ، مما يجعله مثاليًا للشبكات والجدران النارية ذات قيود أقل على الموارد.

من السهل بشكل لا يصدق التثبيت والتكوين. من أجل إعداد DNS و DHCP للشبكات الفرعية ، يعد dnsmasq حلاً مرنًا وعمليًا.

من الممكن إعداد هذه المعرفات المعينة من قبل DHCP والتعليمات المرتبطة بها لكل خادم أو لوحدة تحكم أساسية. يتم دعم كل من خيارات DHCP الديناميكية والثابتة بواسطة dnsmasq. إنه محمول ولديه القدرة على إدارة DNS و DHCP لما لا يقل عن 1000 عميل.

عند تلقي استعلام DNS ، فإن dnsmasq إما يستجيب من ذاكرة تخزين مؤقت محلية أو ينقله إلى خادم DNS موثوق. بالإضافة إلى الاستجابة لطلبات DNS الخاصة بالعناوين باستخدام تكوين DHCP ، فإنه يتحقق من محتويات ملف / etc / hosts لتحديد أسماء المضيفين المحلية غير المدرجة في DNS العام.

يؤدي استخدام أداة dnsmasq بدلاً من ذاكرة التخزين المؤقت DNS المدمجة في المتصفح إلى تحسين أداء تصفح الإنترنت بشكل كبير. إنه مثالي لبيئة متكاملة ذات موارد محدودة لأنه سهل الإعداد للغاية ويحتاج إلى مساحة صغيرة جدًا على القرص.

ميزات dnsmasq

  • من السهل دمج خوادم DNS الداخلية باستخدام dnsmasq من خلال تكوينه لنقل استعلامات تحليل اسم المجال المعينة إلى خوادم موثوقة معينة.
  • يتم تقليل عبء العمل على الخادم وتعزيز الموثوقية باستخدام خادم DNS المحلي الذي تم تكوينه.
  • يعد تكوين DNS لنقاط النهاية الممكّنة بجدار الحماية أمرًا سهلاً ومستقلًا عن DNS الذي يستخدمه مزود خدمة الإنترنت.
  • إذا تعذر الوصول إلى المنفذ المرتبط بالإنترنت أثناء إجراء فحص DNS على الكمبيوتر ، فسيتم تعليق عملية البحث على الفور.
  • من خلال PPP (بروتوكول نقطة إلى نقطة) أو استعلامات DHCP ، يمكن بالفعل تكوين dnsmasq لجمع البيانات بشكل دوري مباشرة من خادم حل المجال الأساسي.
  كيفية إلغاء اشتراكك في Stadia Pro

تثبيت

يجب إيقاف تشغيل خدمة حل النظام قبل تثبيت الأداة المساعدة dnsmasq وتكوينها.

systemctl stop systemd-resolved

يمكنك أيضًا إخفائها باستخدام سمة القناع بحيث لا تبدأ تلقائيًا عند إعادة التشغيل.

 systemctl mask systemd-resolved

تثبيت dnsmasq هو الإجراء الأولي الذي تحتاج إلى تنفيذه بعد إيقاف تشغيل systemd -olved. يأتي DNSmasq مثبتًا مسبقًا في جميع توزيعات Linux تقريبًا. إذا لم يكن الأمر كذلك ، يمكنك تثبيته يدويًا. قم بتشغيل محطة أوامر ، ثم اكتب الأمر التالي للقيام بذلك.

sudo apt-get install dnsmasq

استخدم الأمر التالي إذا كنت من مستخدمي yum:

sudo yum install -y dnsmasq

يقوم هذا الأمر تلقائيًا بتثبيت الأداة ويبدأ dnsmasq في الخلفية.

بعد التثبيت الناجح ، يمكنك التحقق من حالة dnsmasq باستخدام الأمر أدناه.

systemctl status dnsmasq

إذا أظهر حالته على أنها “نشطة (قيد التشغيل)” ، فهذا يعني أن التثبيت قد تم وتهيئته للمنفذ 53. إذا أظهر حالته على أنها “غير نشطة (ميتة)” ، فأنت بحاجة إلى إعادة تشغيل كل من جهاز Ubuntu و dnsmasq مرة أخرى. هذا سوف يصلح الخطأ

ترتيب

Dnsmasq جاهز الآن للإعداد على جهازك كخادم DNS للتخزين المؤقت المحلي. يوجد ملف التكوين الافتراضي في /etc/dnsmasq.conf. يجب تعديل ملف التكوين هذا لإعداد الأداة المساعدة dnsmasq في النظام.

استخدم هذا الأمر لفتح ملف التكوين وتحريره.

nano /etc/dnsmasq.conf

يجب تحرير ملف التكوين فقط بامتيازات الجذر. ما عليك سوى مسح كل شيء في الملف بما في ذلك التعليقات والنسخ واللصق ببساطة وحفظ إعداد التكوين هذا.

port=53
domain-needed
bogus-priv
listen-address=127.0.0.1
expand-hosts
domain=geek-demo.com
cache-size=1000

اسمحوا لي أن أصف بإيجاز ما تعنيه كل من المعلمات.

  • المنفذ – لتحديد أو ربط المنفذ الذي سيستخدمه Dnsmasq لتلقي طلبات DNS.
  • المجال المطلوب – ينقل أسماء المجال فقط إلى خادم DNS الرئيسي.
  • bogus-priv – يمنع إعادة توجيه المجال والمنافذ
  • عنوان الاستماع – لتحديد عنوان خادم الأسماء. عادةً ما يتم استخدام المضيف المحلي كإعداد افتراضي لإعداد خادم DNS محلي.
  • المجال – لتكوين المجالات التي يلحق dnsmasq بالمعرفات القصيرة.
  • حجم ذاكرة التخزين المؤقت – الحد الأقصى لحجم التخزين المؤقت لنظام أسماء النطاقات المسموح به في التخزين.

بعد إجراء جميع التغييرات اللازمة ، احفظ وأغلق ملف التكوين. والخطوة التالية هي تحرير ملف /etc/resolv.conf لإضافة عنوان تحليل المضيف المحلي. استخدم الأمر أدناه للفتح باستخدام محرر nano.

nano /etc/resolv.conf

هنا ، يمكنك العثور على جميع خوادم الأسماء التي يستخدمها نظامك لتحليل العنوان. في تلك القائمة ، أضف عنوان الاسترجاع أيضًا. أضف “خادم الأسماء 127.0.0.1” واحتفظ به في السطر الأول.

  يساعدك Background Burner على إزالة الخلفية من الصور

احفظ واخرج من ملف التكوين. من أجل تفعيل الإعداد المحدث ، أعد تشغيل الأداة المساعدة dnsmasq.

systemctl restart dnsmasq

اختبار خادم التخزين المؤقت DNS المحلي

من السهل اختبار خادم DNS المحلي. افتح سطر أوامر واستخدم الأمر dig للتحقق من التخزين المؤقت لنظام أسماء النطاقات. عند تشغيل أمر dig لأول مرة ، يجب أن تكون النتيجة شائعة جدًا.

┌──(root💀kali)-[/home/writer]
└─# dig admingate.org.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> admingate.org.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;admingate.org.com.                 IN      A

;; ANSWER SECTION:
admingate.org.com.          227     IN      A       172.66.43.163
admingate.org.com.          227     IN      A       172.66.40.93

;; Query time: 31 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:52:49 EDT 2022
;; MSG SIZE  rcvd: 74

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

┌──(root💀kali)-[/home/writer]
└─# dig admingate.org.com                                                                                     1 ⚙

; <<>> DiG 9.18.0-2-Debian <<>> admingate.org.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admingate.org.com.                 IN      A

;; ANSWER SECTION:
admingate.org.com.          281     IN      A       172.66.40.93
admingate.org.com.          281     IN      A       172.66.43.163

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sat Oct 15 07:58:10 EDT 2022
;; MSG SIZE  rcvd: 74

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

تغليف

في هذه المقالة ، رأينا كيفية إعداد وتكوين dnsmasq للعمل كخادم DNS محلي. قد تكون مهتمًا أيضًا بمعرفة كيفية تغيير خوادم DNS لتصفح أسرع في أنظمة التشغيل المختلفة.