إذا كنت محتاراً بشأن نظام DNS على أوبونتو 26.04، فلست وحدك! يستخدم النظام في الواقع طبقتين منفصلتين لحل الأسماء، مما قد يؤدي غالباً إلى الارتباك.
أهلاً بقراء WondTech! هل حاولت يوماً فهم نظام DNS على خادم أوبونتو 26.04 الخاص بك وشعرت وكأنك تواجه جداراً؟ لست وحدك، واتضح أن طريقة عمل DNS على أوبونتو الحديثة أكثر دقة مما يعتقده الكثير منا. انسَ الفكرة القديمة بأنه مجرد ملف واحد؛ هناك في الواقع طبقتان رئيسيتان تعملان.
إليك ما يعنيه هذا لك: عندما تحاول برامجك مثل 'ping' أو 'curl' أو حتى نصوص بايثون الخاصة بك حل اسم مضيف، فإنها تستخدم أولاً مكتبة C في نظامك. تتحقق هذه المكتبة من قائمة المصادر، بدءاً من ملف '/etc/hosts' الخاص بك. إذا لم يكن الاسم موجوداً هناك، فإنها «تطلب من DNS». لكن «طلب DNS» لا يعني التحدث مباشرة إلى خادم خارجي. بدلاً من ذلك، فإنها تنظر إلى '/etc/resolv.conf'، والذي في أوبونتو 26.04، هو رابط رمزي يشير إلى ملف يديره شيء يسمى 'systemd-resolved'. هذا الملف يطلب منها استخدام '127.0.0.53'.
عنوان '127.0.0.53' هذا هو في الواقع 'systemd-resolved' نفسه – وهو محلل DNS محلي للتخزين المؤقت يعمل مباشرة على خادمك! إنها الطبقة الثانية. فكر فيه كمساعد DNS الشخصي لخادمك. 'systemd-resolved' هو الذي يرسل بعد ذلك طلباتك إلى خوادم DNS الأصلية الحقيقية، والتي يتعلمها تلقائياً من أشياء مثل DHCP أو تكوين Netplan الخاص بك.
يشرح هذا الإعداد سبب احتمال إعطاء 'dig' و 'ping' إجابات مختلفة أحياناً: 'dig' يتجاوز طبقة مكتبة C الأولى ويتحدث مباشرة إلى 'systemd-resolved'. لذا، إذا كنت تحاول تغيير خوادم DNS الخاصة بك، فلا تقم بتحرير '/etc/resolv.conf' مباشرة! 'systemd-resolved' سيعيد كتابته ببساطة. الطريقة الصحيحة هي تكوين خوادمك الأولية عبر Netplan. يمكنك أيضاً استخدام أوامر مثل 'resolvectl status' لمعرفة خوادم المنبع التي يستخدمها 'systemd-resolved'، و 'resolvectl query' لمعرفة مصدر بحث معين. فهم هاتين الطبقتين هو المفتاح لاستكشاف الأخطاء وإصلاحها وإدارة DNS على جهاز أوبونتو 26.04 الخاص بك بفعالية.
إليك ما يعنيه هذا لك: عندما تحاول برامجك مثل 'ping' أو 'curl' أو حتى نصوص بايثون الخاصة بك حل اسم مضيف، فإنها تستخدم أولاً مكتبة C في نظامك. تتحقق هذه المكتبة من قائمة المصادر، بدءاً من ملف '/etc/hosts' الخاص بك. إذا لم يكن الاسم موجوداً هناك، فإنها «تطلب من DNS». لكن «طلب DNS» لا يعني التحدث مباشرة إلى خادم خارجي. بدلاً من ذلك، فإنها تنظر إلى '/etc/resolv.conf'، والذي في أوبونتو 26.04، هو رابط رمزي يشير إلى ملف يديره شيء يسمى 'systemd-resolved'. هذا الملف يطلب منها استخدام '127.0.0.53'.
عنوان '127.0.0.53' هذا هو في الواقع 'systemd-resolved' نفسه – وهو محلل DNS محلي للتخزين المؤقت يعمل مباشرة على خادمك! إنها الطبقة الثانية. فكر فيه كمساعد DNS الشخصي لخادمك. 'systemd-resolved' هو الذي يرسل بعد ذلك طلباتك إلى خوادم DNS الأصلية الحقيقية، والتي يتعلمها تلقائياً من أشياء مثل DHCP أو تكوين Netplan الخاص بك.
يشرح هذا الإعداد سبب احتمال إعطاء 'dig' و 'ping' إجابات مختلفة أحياناً: 'dig' يتجاوز طبقة مكتبة C الأولى ويتحدث مباشرة إلى 'systemd-resolved'. لذا، إذا كنت تحاول تغيير خوادم DNS الخاصة بك، فلا تقم بتحرير '/etc/resolv.conf' مباشرة! 'systemd-resolved' سيعيد كتابته ببساطة. الطريقة الصحيحة هي تكوين خوادمك الأولية عبر Netplan. يمكنك أيضاً استخدام أوامر مثل 'resolvectl status' لمعرفة خوادم المنبع التي يستخدمها 'systemd-resolved'، و 'resolvectl query' لمعرفة مصدر بحث معين. فهم هاتين الطبقتين هو المفتاح لاستكشاف الأخطاء وإصلاحها وإدارة DNS على جهاز أوبونتو 26.04 الخاص بك بفعالية.