مرجع إعدادات ⁦DNS⁩

إعدادات محلل ⁦DNS⁩ لخادم ⁦Elide⁩ لبروتوكول ⁦HTTP⁩.

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

سلسلة الحل

تتم عمليات البحث عبر هذه المراحل بالترتيب:

1. حرفي ⁦IP⁩ — إذا كان الإدخال عنوان ⁦IP⁩ بالفعل، لا حاجة لـ⁦DNS⁩. 2. ملف المضيفين — بحث في ⁦/etc/hosts⁩ (عند تفعيل ⁦useHostsFile⁩). 3. ذاكرة تخزين مؤقت في الذاكرة — ذاكرة مؤقتة مدركة لعمر ⁦TTL⁩ للنتائج السابقة. 4. استعلام ⁦DNS UDP⁩ — استعلام غير حاجب لخوادم الأسماء المُعدة. 5. احتياطي ⁦getaddrinfo⁩ — استدعاء حاجب على خيط خلفي (يُستخدم فقط عند انتهاء مهلة استعلام ⁦UDP⁩ أو فشله).

مثال

pkl
dns {
  nameservers { "1.1.1.1"; "8.8.8.8" }
  useHostsFile = true
  cacheTtl = 300.s
  timeout = 5.s
}

> هذه الصفحة مُولَّدة تلقائياً من مخطط ⁦PKL⁩. راجع الدليل لأمثلة الاستخدام.

DnsConfig

إعدادات محلل ⁦DNS⁩.

جميع الحقول لها قيم افتراضية معقولة. الإعداد الأدنى (الفارغ) يقرأ خوادم الأسماء من ⁦/etc/resolv.conf⁩ ويُفعل ملف المضيفين ويُخزن النتائج مؤقتاً باستخدام عمر ⁦TTL⁩ من استجابات ⁦DNS⁩. تجاوز الحقول الفردية لتخصيص سلوك المحلل.
الحقلالنوعالافتراضيالوصف
nameserversListing(فارغ)عناوين خوادم أسماء مخصصة بتنسيق ⁦IP⁩ أو ⁦IP:port⁩.
useHostsFileBooleantrueتفعيل بحث ⁦/etc/hosts⁩.
hostsFilePathString"/etc/hosts"مسار ملف المضيفين.
cacheTtlDuration0.sتجاوز عمر ⁦TTL⁩ للذاكرة المؤقتة لجميع نتائج ⁦DNS⁩.
maxCacheEntriesUInt4096الحد الأقصى لعدد الإدخالات في ذاكرة نتائج ⁦DNS⁩ المؤقتة.
timeoutDuration5.sمهلة استعلام ⁦DNS⁩ واحد قبل العودة إلى ⁦getaddrinfo⁩.
searchDomainsListing(فارغ)نطاقات البحث المُلحقة بأسماء المضيفين غير المؤهلة (الأسماء بدون نقاط).

nameservers

عناوين خوادم أسماء مخصصة بتنسيق ⁦IP⁩ أو ⁦IP:port⁩.

عند الفراغ (الافتراضي)، تُقرأ خوادم الأسماء من ⁦/etc/resolv.conf⁩. عند التحديد، يُتجاهل ⁦/etc/resolv.conf⁩ بالكامل. المنفذ الافتراضي هو ⁦53⁩ إذا لم يُحدد. عناوين ⁦IPv4⁩ و⁦IPv6⁩ مدعومة.

أمثلة: ⁦"8.8.8.8"⁩، ⁦"1.1.1.1:53"⁩، ⁦"[2606:4700:4700::1111]"

useHostsFile

تفعيل بحث ⁦/etc/hosts⁩.

عند ⁦true⁩ (الافتراضي)، يُقرأ ملف المضيفين مرة واحدة عند بدء التشغيل وأسماء المضيفين المُعثور عليها فيه تتجاوز استعلامات ⁦DNS⁩ بالكامل. عطّل هذا إذا أردت أن يمر كل الحل عبر خوادم أسماء ⁦DNS⁩.

hostsFilePath

مسار ملف المضيفين.

يُستخدم فقط عند ⁦useHostsFile⁩ بقيمة ⁦true⁩. تجاوز هذا لملفات مضيفين مخصصة أو تخطيطات نظام غير قياسية. الافتراضي: ⁦/etc/hosts⁩.

cacheTtl

تجاوز عمر ⁦TTL⁩ للذاكرة المؤقتة لجميع نتائج ⁦DNS⁩.

عند تعيينه لمدة موجبة، تستخدم جميع نتائج ⁦DNS⁩ المُخزنة مؤقتاً هذا العمر بغض النظر عن عمر ⁦TTL⁩ في استجابة ⁦DNS⁩. عند ⁦0.s⁩ (الافتراضي)، يُحترم عمر ⁦TTL⁩ من استجابة ⁦DNS⁩. عيّنه لمدة قصيرة (مثل ⁦30.s⁩) لفرض إعادة حل أكثر تكراراً.

maxCacheEntries

الحد الأقصى لعدد الإدخالات في ذاكرة نتائج ⁦DNS⁩ المؤقتة.

عند امتلاء الذاكرة المؤقتة، يُخرج الإدخال ذو أقرب انتهاء صلاحية. الافتراضي: ⁦4096⁩. عيّنه إلى ⁦0⁩ لجعله بدون حدود (غير مُوصى به في الإنتاج بسبب نمو الذاكرة غير المحدود).

timeout

مهلة استعلام ⁦DNS⁩ واحد قبل العودة إلى ⁦getaddrinfo⁩.

إذا لم تصل استجابة ⁦DNS⁩ خلال هذه المدة، يعود الحل إلى استدعاء ⁦getaddrinfo⁩ حاجب على خيط خلفي. الافتراضي: ⁦5⁩ ثوانٍ.

searchDomains

نطاقات البحث المُلحقة بأسماء المضيفين غير المؤهلة (الأسماء بدون نقاط).

على سبيل المثال، مع ⁦searchDomains { "example.com" }⁩، استعلام عن ⁦"myhost"⁩ سيجرب أيضاً ⁦"myhost.example.com"⁩. عند الفراغ (الافتراضي)، تُستعلم الأسماء غير المؤهلة كما هي.

---