تتوفّر الأداة Dig
على توزيعات لينكس للاستعلام من خواديم أسماء النطاقات DNS. تساعد هذه الأداة
كثيرا في تشخيص مشاكل النطاقات، كما أنها مناسبة للتأكد من أن إعدادات الشبكة تعمل
على النحو المتوقّع.
في هذا المقال
طريقة استخدام الأمر dig للتحقّق من إعدادات أسماء النطاقات والحصول على معلومات
عن كيفيّة ظهور نطاقك على شبكة الإنترنت. سنرى خلال هذا الدرس كذلك أدوات مصاحبة
تكمّل عمل Dig.
نفّذنا الأوامر
المعروضة في هذا المقال على الإصدار 16.04 من أوبنتو، إلا أنه من المُفترَض أن
تعمل بطريقة مماثلة على أغلب توزيعات لينكس الحديثة.
كيف تستخدم الأمر dig:
من أسهل الطرق لاستخدام الأمر dig هي تمرير اسم النطاق الذي نريد الاستعلام عنه إلى الأمر:
dig example.com
نختبر - مثلا -
محرّك البحث DuckDuckGo لنرى المعلومات التي سنحصُل عليها عنه:
dig duckduckgo.com
النتيجة:
;
<<>> DiG 9.10.3-P4-Ubuntu <<>> duckduckgo.com
;; global options:
+cmd
;; Got answer:
;;
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64718
;; flags: qr rd
ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;;
OPT PSEUDOSECTION:
; EDNS: version:
0, flags:; udp: 4000
;; QUESTION
SECTION:
;duckduckgo.com. IN A
;;
ANSWER SECTION:
duckduckgo.com.
176 IN A
50.18.192.251
duckduckgo.com.
176 IN A
50.18.192.250
;;
Query time: 270 msec
;; SERVER:
127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Apr
20 13:28:31 GMT 2017
;; MSG SIZE rcvd: 75
توجد الكثير من
المعلومات في النتيجة أعلاه، فلنفحصها الواحدة تلو الأخرى.
;
<<>> DiG 9.10.3-P4-Ubuntu <<>> duckduckgo.com
;; global options:
+cmd
تمثّل الأسطر أعلاه
ترويسة Header الاستعلام المُرسَل. يمكن تنفيذ الأمر dig على وضع الدُّفعات Batch
mode، لذا من الجيّد أن تظهر الترويسات المناسبة لكلّ وضع من أجل تسهيل تحليل
النتائج وقراءتها.
تأتي بعد ذلك
الأسطُر التالية.
;;
Got answer:
;;
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64718
;; flags: qr rd
ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
يُقدّم هذا المقطع
ملخصًّا تقنيًّا لنتائج الاستعلام. يظهر أن الاستعلام نُفِّذ بنجاح (status:
NOERROR، أي “الحالة: لا أخطاء”)، أن الأمر استخدم الخيارات qr rd raوأننا حصلنا
على إجابتيْن ANSWER: 2، ومقطع معلومات إضافيّ واحد ADDITIONAL: 1.
يظهر بعدها المقطع
الإضافيّ الذي يحوي سجلّا من نوع OPT يشير إلى أن الخادوم يدعم معيار EDNS المطلوب
لتطبيق إجراءات أمنيّة مثل DNSSEC.
;;
OPT PSEUDOSECTION:
; EDNS: version:
0, flags:; udp: 4000
ثم يأتي دور
الإجابة الفعليّة التي تُظهر البيانات التي حصلنا عليها من الاستعلام.
;;
QUESTION SECTION:
;duckduckgo.com. IN A
;;
ANSWER SECTION:
duckduckgo.com. 176
IN A 50.18.192.251
duckduckgo.com.
176 IN A
50.18.192.250
يعيد المقطع
الموالي ذكر الطلب الذي أرسلناه إليه (QUESTION SECTION) ويطبع بعدها سجلّات DNS
الموافقة له.
يُرجع الأمر dig
مبدئيّا السجلات من النوع A. تُظهر النتيجة أعلاه أن لـduckduckgo.com سجليْن من
هذا النوع، يحويان عناوين IP المميّزة لاسم النطاق المطلوب. يشير العدد 176إلى
المُعطى TTL أي مدة صلاحيّة المعلومة؛ وهي المدة التي سينتظرها خادوم أسماء
النطاقات قبل أن يعيد النظر في الارتباط بين اسم النطاق وعنوان IP. تعني IN أن هذا
السّجل من سجلات الإنترنت المعيارية.
تظهر ختام تنفيذ
الأمر معلومات إحصائيّة عن الاستعلام، ومن بينها المدّة التي استغرقها الخادوم
للإجابة. يمكن أن تدلّ هذه المعلومة على وجود مشاكل في خادوم الأسماء (الخادوم
يُطيل في الإجابة على الطلب).
;;
Query time: 27 msec
;; SERVER:
127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Apr
20 13:28:31 GMT 2017
;; MSG SIZE rcvd: 75
كيف تستخدم Dig
لاختبار سجلات DNS
تحوي إجابة dig
مبديئا معلومات عن السجلات من النوع A، إلا أنه يمكن تحديد نوع السجل المطلوب
بذكره بعد اسم النطاق:
dig your_domain_name.com record_type
يستفسر الأمر
التالي عن السجلّات من نوع MX (البريد الإلكتروني):
dig duckduckgo.com MX
يُظهر مقطع الإجابة
السجلات التاليّة:
;; QUESTION SECTION:
;duckduckgo.com. IN MX
;;
ANSWER SECTION:
duckduckgo.com.
300 IN MX
60 mx2.dnsmadeeasy.com.
duckduckgo.com.
300 IN MX
40 mx1.dnsmadeeasy.com.
duckduckgo.com.
300 IN MX
10 in1-smtp.messagingengine.com.
duckduckgo.com.
300 IN MX
20 in2-smtp.messagingengine.com.
duckduckgo.com.
300 IN MX
50 mx3.dnsmadeeasy.com.
نمرّر القيمة ANY
مكان اسم السجل إن أردنا الحصول على معلومات عن جميع سجلات النطاق:
dig duckduckgo.com ANY
تتضمّن نتائج الأمر
السابق جميع السجلّات التي توافق النطاق duckduckgo.com مهما كان نوعها.
ملحوظة: نظرا
لآليّة عمل نظام أسماء النطاقات فإن ظهور سجلّ أضيف حديثا إلى النطاق قد يأخذ
وقتا. انتظر انقضاء مدّة TTL عند إضافة سجلّ جديد إلى النطاق، قبل أن تعيد
الاستعلام عنه.
إذا كان كلّ ما
تريد البحث عنه هو عنوان (أو عناوين) IP الذي يُشير إليه النطاق فتمرير short+
مكان نوع السجل يعطيك الإجابة:
dig duckduckgo.com +short
النتيجة:
50.18.192.250
50.18.192.251
استعمال الأمر host
بدلا من dig
الأمر host هو بديل
للأمر dig يشبهه في خيارات الاستخدام. يُنفَّذ الأمر host على النحو التالي:
host domain_name_or_IP_address
حيث
domain_name_or_IP_address هو اسم نطاق أو عنوان IP. لاحظ أن الأمر host لا يحتاج
لخيارات من أجل تغيير وظيفة البحث من استعلام DNS العادي إلى استعلام DNS المعكوس
(معرفة اسم النطاق انطلاقا من عنوان IP)؛ إذ يختار الوظيفة المناسبة انطلاقا من
المعطى المُمرَّر.
يمكن تحديد نوع
السجلّات التي تهمّك بتمرير الخيار t- متبوعا باسم السجّل:
host -t mx duckduckgo.com
النتيجة:
duckduckgo.com mail is handled by 20
in2-smtp.messagingengine.com.
duckduckgo.com mail is handled by 10
in1-smtp.messagingengine.com.
duckduckgo.com mail is handled by 50 mx3.dnsmadeeasy.com.
duckduckgo.com mail is handled by 40 mx1.dnsmadeeasy.com.
duckduckgo.com mail is handled by 60 mx2.dnsmadeeasy.com.
استخدم الخيار a-
إن أردت معلومات عن جميع أنواع السجلات (الإجابة قد تكون طويلة):
host -a duckduckgo.com
يمكن أيضا استخدام
الخيار v- للحصول على معلومات إضافية عن المضيف:
host -v duckduckgo.com
أدوات أخرى
للاستعلام عن أسماء النطاقات
Ping
يُعدّ استخدام
الأمر ping إحدى أسهل الطرق لمعرفة ما إذا كان الخادوم يميّز الأسماء بطريقة
صحيحة:
ping your_domain_name.com
تشبه نتيجة الأمر
ما يلي:
PING your_domain_name.com (192.241.160.34) 56(84) bytes of
data.
64 bytes from 192.241.160.34: icmp_req=1 ttl=64 time=0.026
ms
64 bytes from 192.241.160.34: icmp_req=2 ttl=64 time=0.038
ms
64 bytes from 192.241.160.34: icmp_req=3 ttl=64 time=0.037
ms
.
. .
ستستمر مخرجات
الأمر بالظهور إلى أن تضغط على زرّيْ CTRL وC معا لإيقافه.
يمكنك أيضا تحديد
عدد المُخرجات بالخيار c-:
ping -c 3 your_domain_name.com
PING your_domain_name.com (192.241.160.34) 56(84) bytes of
data.
64 bytes from 192.241.160.34: icmp_req=1 ttl=64 time=0.027
ms
64 bytes from 192.241.160.34: icmp_req=2 ttl=64 time=0.059
ms
64 bytes from 192.241.160.34: icmp_req=3 ttl=64 time=0.042
ms
---
your_domain_name.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.027/0.042/0.059/0.015 ms
استخدام الأمر ping
وسيلة سريعة للتأكّد من أن نتيجة تمييز اسم النطاق هي عنوان IP الذي عيّنته له.
Whois
يتيح ميثاق
(بروتوكول) Whois معلومات عن أسماء النطاقات المسجَّلة، بما في ذلك عناوين
الخواديم المعدّة للعمل عليها. على الرغم من أن أغلب المعلومات التي يُظهرها الأمر
whois تتعلّق بالتسجيل Registration إلا أنها يمكن أن تكون مفيدة لمعرفة ما إذا
كانت خواديم الأسماء Name servers تظهر على نجو سليم.
يُستخدَم الأمر على
النحو التالي:
whois your_domain_name.com
تظهر في نتيجة اﻷمر
الكثيرُ من المعلومات التي تختلف طريقة عرضها من خادوم إلى آخر.
تظهر خواديم
النطاقات التي توجّه إلى عناوين IP الصحيحة عادة في أسفل النتيجة.
خاتمة
يمكن أن تكون
الأدوات Ping، Dig وWhois على الرغم من سهولة التعامل معها مفيدة جدًّا لإجراء
اختبارات أساسية على أسماء النطاقات، مما يساعدك في اقتصاد الكثير من الوقت ومعرفة
مشاكل الإعدادت بسرعة.