مرجع إعدادات DNS
إعدادات محلل DNS لخادم Elide لبروتوكول HTTP.
يتحكم في كيفية حل الخادم لأسماء المضيفين للاتصالات الصادرة (مثل الوكيل العلوي، طلبات fetch). يستخدم المحلل عميل DNS غير حاجب قائم على UDP، مما يتجنب الحجب على الخيط الرئيسي.
سلسلة الحل
تتم عمليات البحث عبر هذه المراحل بالترتيب:
1. حرفي IP — إذا كان الإدخال عنوان IP بالفعل، لا حاجة لـDNS.
2. ملف المضيفين — بحث في /etc/hosts (عند تفعيل useHostsFile).
3. ذاكرة تخزين مؤقت في الذاكرة — ذاكرة مؤقتة مدركة لعمر TTL للنتائج السابقة.
4. استعلام DNS UDP — استعلام غير حاجب لخوادم الأسماء المُعدة.
5. احتياطي getaddrinfo — استدعاء حاجب على خيط خلفي (يُستخدم فقط عند انتهاء مهلة استعلام UDP أو فشله).
مثال
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. تجاوز الحقول الفردية لتخصيص سلوك المحلل.
| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
nameservers | Listing | (فارغ) | عناوين خوادم أسماء مخصصة بتنسيق IP أو IP:port. |
useHostsFile | Boolean | true | تفعيل بحث /etc/hosts. |
hostsFilePath | String | "/etc/hosts" | مسار ملف المضيفين. |
cacheTtl | Duration | 0.s | تجاوز عمر TTL للذاكرة المؤقتة لجميع نتائج DNS. |
maxCacheEntries | UInt | 4096 | الحد الأقصى لعدد الإدخالات في ذاكرة نتائج DNS المؤقتة. |
timeout | Duration | 5.s | مهلة استعلام DNS واحد قبل العودة إلى getaddrinfo. |
searchDomains | Listing | (فارغ) | نطاقات البحث المُلحقة بأسماء المضيفين غير المؤهلة (الأسماء بدون نقاط). |
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". عند الفراغ (الافتراضي)، تُستعلم الأسماء غير المؤهلة كما هي.
---