SYSTEMD.DNSSD(5)

الاسم
systemd.dnssd - تهيئة DNS-SD

موجز

network_service.dnssd

الوصف

إعداد DNS-SD يُنفذ بواسطة systemd-resolved(8).

ملف خدمة الشبكة الرئيس يجب أن يحمل الامتداد .dnssd؛ الامتدادات الأخرى تُتجاهل.

ملفات .dnssd تُقرأ من الملفات الموجودة في أدلة شبكة النظام /usr/lib/systemd/dnssd و /usr/local/lib/systemd/dnssd، ودليل شبكة وقت التشغيل المتغير /run/systemd/dnssd ودليل إدارة الشبكة المحلي /etc/systemd/dnssd. جميع ملفات التهيئة تُفرز وتُعالج جماعياً بترتيب معجمي، بغض النظر عن الأدلة التي توجد فيها. ومع ذلك، الملفات ذات أسماء الملفات المتطابقة تستبدل بعضها البعض. الملفات في /etc/ لها الأولوية القصوى، الملفات في /run/ تسبق الملفات ذات الاسم نفسه في /usr/lib/. يمكن استخدام هذا لتجاوز ملف تهيئة مزود من النظام بملف محلي إذا لزم الأمر.

إلى جانب ملف خدمة الشبكة foo.dnssd، قد يوجد دليل "إدراج" foo.dnssd.d/. جميع الملفات ذات اللاحقة ".conf" من هذا الدليل ستُحلل بعد تحليل الملف نفسه. هذا مفيد لتغيير أو إضافة إعدادات تهيئة، دون الحاجة إلى تعديل ملف التهيئة الرئيس. كل ملف إدراج يجب أن يحتوي على رؤوس أقسام مناسبة.

بالإضافة إلى /etc/systemd/dnssd، يمكن وضع أدلة ".d" للإدراج في أدلة /usr/lib/systemd/dnssd أو /run/systemd/dnssd. ملفات الإدراج في /etc/ تسبق تلك الموجودة في /run/ والتي بدورها تسبق تلك الموجودة في /usr/lib/ أو /usr/local/lib. ملفات الإدراج تحت أي من هذه الأدلة تسبق ملف خدمة الشبكة الرئيس أينما كان موجوداً.

خيارات القسم [SERVICE]

ملف خدمة الشبكة يحتوي على قسم [Service]، الذي يحدد خدمة شبكة قابلة للاكتشاف تُعلن في شبكة محلية باستخدام بث DNS متعدد الإرسال.

Name=
    اسم مثيل لخدمة الشبكة كما هو معرف في القسم 4.1.1 من RFC 6763[1]، مثلاً "webserver".

    الخيار يدعم توسيع المحددات البسيطة. التوسيعات التالية مفهومة:

    الجدول 1. المحددات المتاحة
    المحدد | المعنى | التفاصيل
    "%a" | المعمارية | سلسلة نصية قصيرة تحدد معمارية النظام المحلي. سلسلة مثل x86 أو x86-64 أو arm64. انظر المعماريات المحددة لـ ConditionArchitecture= في systemd.unit(5) للحصول على قائمة كاملة.
    "%A" | إصدار صورة نظام التشغيل | معرف إصدار صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_VERSION= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
    "%b" | معرف الإقلاع | معرف الإقلاع للنظام المشغل، منسق كسلسلة نصية. انظر random(4) لمزيد من المعلومات.
    "%B" | معرف بناء نظام التشغيل | معرف بناء نظام التشغيل للنظام المشغل، كما يُقرأ من حقل BUILD_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
    "%H" | اسم المضيف | اسم مضيف النظام المشغل.
    "%m" | معرف الآلة | معرف الجهاز للنظام المشغل، منسق كسلسلة نصية. انظر machine-id(5) لمزيد من المعلومات.
    "%M" | معرف صورة نظام التشغيل | معرف صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
    "%o" | معرف نظام التشغيل | معرف نظام التشغيل للنظام المشغل، كما يُقرأ من حقل ID= في /etc/os-release. انظر os-release(5) لمزيد من المعلومات.
    "%v" | إصدار النواة | مطابق لمخرجات uname -r.
    "%w" | معرف إصدار نظام التشغيل | معرف إصدار نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VERSION_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
    "%W" | معرف نوع نظام التشغيل | معرف تنويعة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VARIANT_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
    "%%" | علامة مئوية مفردة | استخدم "%%" بدلاً من "%" لتحديد علامة مئوية مفردة.

    أُضيف في الإصدارة 236.

Type=
    نوع لخدمة الشبكة كما هو معرف في القسم 4.1.2 من RFC 6763[1]، مثلاً "_http._tcp".

    أُضيف في الإصدارة 236.

SubType=
    نوع فرعي لخدمة الشبكة كما هو معرف في القسم 7.1 من RFC 6763[1]، مثلاً "_printer".

    أُضيف في الإصدار 256.

Port=
    رقم منفذ IP لخدمة الشبكة.

    أُضيف في الإصدارة 236.

Priority=
    رقم أولوية مُعين في سجلات الموارد SRV المقابلة لخدمة الشبكة.

    أُضيف في الإصدارة 236.

Weight=
    رقم وزن مُعين في سجلات الموارد SRV المقابلة لخدمة الشبكة.

    أُضيف في الإصدارة 236.

TxtText=
    قائمة مفصولة بمسافات من أزواج مفتاح/قيمة عشوائية تنقل معلومات إضافية حول الخدمة المسماة في سجل الموارد TXT المقابل، مثلاً "path=/portal/index.html". المفاتيح والقيم يمكن أن تحتوي على تسلسلات هروب بنمط C والتي تُترجم عند قراءة ملفات التهيئة.

    هذا الخيار مع TxtData= يمكن تحديده أكثر من مرة، وفي هذه الحالة سيتم إنشاء سجلات موارد TXT متعددة للخدمة. إذا تم تعيين السلسلة الفارغة لهذا الخيار، تُعاد تعيين القائمة وكل التعيينات السابقة لن يكون لها تأثير.

    أُضيف في الإصدارة 236.

TxtData=
    قائمة مفصولة بمسافات من أزواج مفتاح/قيمة عشوائية تنقل معلومات إضافية حول الخدمة المسماة في سجل الموارد TXT المقابل حيث القيم هي سلسلة مشفرة base64 تمثل أي بيانات ثنائية، مثلاً "data=YW55IGJpbmFyeSBkYXRhCg==". المفاتيح يمكن أن تحتوي على تسلسلات هروب بنمط C والتي تُترجم عند قراءة ملفات التهيئة.

    يمكن تحديد هذا الخيار مع TxtText= أكثر من مرة، وفي هذه الحالة سيتم إنشاء سجلات موارد TXT متعددة للخدمة. إذا تم تعيين سلسلة فارغة لهذا الخيار، يتم إعادة تعيين القائمة ولن يكون لجميع التعيينات السابقة أي تأثير.

    أُضيف في الإصدارة 236.

أمثلة

مثال 1. خدمة HTTP

    # /etc/systemd/dnssd/http.dnssd
    [Service]
    Name=%H
    Type=_http._tcp
    Port=80
    TxtText=path=/stats/index.html t=temperature_sensor

هذا يجعل خادم http قيد التشغيل على المضيف قابلاً للاكتشاف في الشبكة المحلية بشرط تمكين MulticastDNS على واجهة الشبكة.

الآن يجب أن تكون الأداة المساعدة "resolvectl" قادرة على حل الخدمة إلى اسم المضيف:

    $ resolvectl service meteo._http._tcp.local
    meteo._http._tcp.local: meteo.local:80 [priority=0, weight=0]
                            169.254.208.106%senp0s21f0u2u4
                            fe80::213:3bff:fe49:8aa%senp0s21f0u2u4
                            path=/stats/index.html
                            t=temperature_sensor
                            (meteo/_http._tcp/local)
    -- Information acquired via protocol mDNS/IPv6 in 4.0ms.
    -- Data is authenticated: yes

يجب أن يرى "Avahi" قيد التشغيل على مضيف مختلف في نفس الشبكة المحلية الخدمة أيضًا:

    $ avahi-browse -a -r
    + enp3s0 IPv6 meteo                                         Web Site             local
    + enp3s0 IPv4 meteo                                         Web Site             local
    = enp3s0 IPv6 meteo                                         Web Site             local
       hostname = [meteo.local]
       address = [fe80::213:3bff:fe49:8aa]
       port = [80]
       txt = ["path=/stats/index.html" "t=temperature_sensor"]
    = enp3s0 IPv4 meteo                                         Web Site             local
       hostname = [meteo.local]
       address = [169.254.208.106]
       port = [80]
       txt = ["path=/stats/index.html" "t=temperature_sensor"]

انظر أيضًا

systemd(1), systemd-resolved.service(8), resolvectl(1)

ملاحظات

1.  RFC 6763
    https://tools.ietf.org/html/rfc6763

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.