[ملخص المشرف] كيفية تكوين صداقات مع DHCP وعدم الخوف من APIPA


تبدو الخدمة التي تُصدر عناوين IP للأجهزة على الشبكة المحلية واحدة من أبسطها وأكثرها دراية. ومع ذلك ، لا يزال لدى زملائي الأصغر سناً أحيانًا أسئلة مثل "يتلقى الكمبيوتر عنوانًا غريبًا" ، كما أن ظهور خادم DHCP ثانٍ في مقطع شبكة واحد يسبب بعض مشكلات التشويق أو الشبكة.


بحيث لا يكون لدى أولئك الذين يقرؤون هذه المواد مثل هذه الأسئلة ، أود أن أقوم بتجميع مجموعة من المعلومات الأساسية حول تشغيل آليات إصدار عنوان IP والميزات وأمثلة التكوين الخاصة بالتكوينات الآمنة من الفشل. نعم ، وربما يكون المتخصصون عديمي الخبرة مهتمين بالانتعاش العصبي.


وهناك القليل من النظرية والحلول للمشاكل المثيرة للاهتمام وغير العملية - في ظل الخفض.


في شبكة محلية محلية حديثة ، يتم إصدار العناوين عادة بواسطة خدمات متخصصة مع دعم بروتوكول. الأكثر شعبية من هذه هي DHCP (بروتوكول تكوين المضيف الحيوي).


Zeroconf أو لماذا نحتاج إلى نوع من DHCP


من حيث المبدأ ، تم إنشاء كومة تقنية تسمى Zeroconf خصيصًا للشبكات الصغيرة. يتيح لك الاستغناء عن أي خدمات وخوادم مركزية ، بما في ذلك ، على سبيل المثال لا الحصر ، إصدار عناوين IP. يقومون بإغلاق (جيدًا أو قريبًا تقريبًا) الأسئلة التالية:


الحصول على عنوان IP ( عنوان IP الخاص التلقائي أو APIPA). يعين النظام نفسه IP من شبكة 169.254.0.0/16 (باستثناء شبكات / 24 في بداية ونهاية النطاق) ، بناءً على عنوان MAC ومولد الأرقام العشوائية الزائفة. يسمح لك هذا النظام بتجنب التعارضات ، ويسمى العنوان من هذه الشبكة بالرابط المحلي - بما في ذلك بسبب عدم توجيه هذه العناوين.


البحث عن طريق الاسم . يعلن النظام عن اسم شبكته ، ويعمل كل كمبيوتر معه كما هو الحال مع DNS ، حيث يقوم بتخزين الإدخالات في ذاكرة التخزين المؤقت الخاصة به. تستخدم Apple تقنية mDNS (Multicast DNS) ، وتستخدم Microsoft LLMNR (تحليل أسماء البث المتعدد للرابط المحلي) ، والمشار إليها في المقالة " المجالات والعناوين و Windows: ميكس ، ولكن ليس اهتزاز ".


البحث عن خدمات الشبكة . على سبيل المثال ، الطابعات. ربما يكون البروتوكول الأكثر شهرة هو UPnP ، والذي ، من بين أشياء أخرى ، يمكنه فتح المنافذ على أجهزة التوجيه نفسها. البروتوكول معقد إلى حد ما ، فهو يستخدم مجموعة كاملة من الوظائف الإضافية مثل استخدام http ، على عكس البروتوكول الثاني المعروف - DNS-SD (اكتشاف خدمة DNS) ، والذي يستخدم ببساطة سجلات SRV ، بما في ذلك عند العمل مع mDNS.


مع كل مزايا Zeroconf - دون أي معرفة مقدسة ، يمكنك بناء شبكة عمل عن طريق توصيل أجهزة الكمبيوتر ببساطة على المستوى المادي - بل يمكن أن تتداخل مع متخصصي تكنولوجيا المعلومات.



مزعج بعض الشيء ، أليس كذلك؟


في أنظمة Windows ، لتعطيل الضبط التلقائي على جميع محولات الشبكة ، يجب عليك إنشاء معلمة DWORD باسم IPAutoconfigurationEnabled في قسم HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters وتعيينه على 0.


بالطبع ، Zeroconf مناسب فقط للشبكات المعزولة الصغيرة (على سبيل المثال ، قابلت صديقًا مع أجهزة الكمبيوتر المحمولة ، وقمت بتوصيلها عبر Wi-Fi ودعونا نلعب Diablo II ، دون إضاعة الوقت على أي خوادم) ، وأريد أيضًا توصيل شبكة محلية بالإنترنت . لكي لا تعاني من الإعدادات الثابتة لكل كمبيوتر ، تم إنشاء بروتوكولات خاصة ، بما في ذلك بطل اليوم - DHCP.


DHCP والسلف


ظهرت واحدة من أوائل تطبيقات بروتوكول إصدار عناوين IP منذ أكثر من 30 عامًا وكان يطلق عليها RARP (بروتوكول تحليل العنوان العكسي). لتبسيط مبدأ عملها قليلاً ، بدا الأمر كما يلي: طلب العميل عنوان البث الخاص بالشبكة ، وقبله الخادم ، ووجد رابطًا لعنوان MAC وعنوان العميل في قاعدة بياناته ، وأرسل عنوان IP كرد.



مخطط بروتوكول RARP.


ويبدو أن كل شيء يعمل. لكن البروتوكول كان له عيوبه: كان من الضروري تكوين الخادم في كل جزء من الشبكة المحلية ، وتسجيل عناوين MAC على هذا الخادم ، ولم يكن من الممكن نقل معلومات إضافية إلى العميل على الإطلاق. لذلك ، ليحل محله ، تم إنشاء بروتوكول BOOTP (بروتوكول التمهيد).


في البداية ، تم استخدامه لمحطات العمل الخالية من الأقراص ، والتي كانت لا تحتاج فقط إلى إعطاء عنوان IP ، ولكن أيضًا لنقل معلومات إضافية إلى العميل ، مثل عنوان خادم TFTP واسم ملف التنزيل. بخلاف RARP ، كان البروتوكول يدعم بالفعل الترحيل - خدمات صغيرة تقوم بإعادة توجيه الطلبات إلى الخادم "الرئيسي". هذا جعل من الممكن استخدام خادم واحد على عدة شبكات في وقت واحد. بقي فقط الحاجة إلى تكوين الجداول يدويا والحد الأقصى للحجم للحصول على معلومات إضافية. نتيجة لذلك ، دخل بروتوكول DHCP الحديث إلى المشهد ، وهو امتداد متوافق لـ BOOTP (يدعم خادم DHCP عملاء قديمين ، ولكن ليس العكس).


يتمثل الاختلاف المهم عن البروتوكولات القديمة في القدرة على إصدار عنوان (تأجير) مؤقتًا ونقل كمية كبيرة من المعلومات المختلفة إلى العميل. يتم تحقيق ذلك بسبب الإجراء الأقل تافهة للحصول على العنوان. إذا كان المخطط في البروتوكولات القديمة بسيطًا ، من نوع استجابة الطلب ، فسيكون المخطط الآن كما يلي:


  • يبحث العميل عن الخادم مع طلب البث ، ويطلب كذلك إعدادات إضافية.
  • يستجيب الخادم للعميل من خلال تقديم عنوان IP وإعدادات أخرى له.
  • يؤكد العميل المعلومات المستلمة حسب طلب البث ، مع الإشارة في التأكيد إلى عنوان IP للخادم المحدد.
  • يوافق الخادم مع العميل عن طريق إرسال طلب إليه ، وعند استلام العميل يقوم بالفعل بتهيئة واجهة الشبكة أو يرفضها.


مخطط اتصال العميل مع خادم إعادة التوجيه والخادم.


يمكنك قراءة المزيد حول مخطط التفاعل بين الخادم والعميل وهيكل الطلبات والاستجابات ، على سبيل المثال ، في المادة " بنية حزم DHCP وتنسيقها والغرض منها ".


في عدة مقابلات سألوني: "ما هو النقل والمنفذ الذي يستخدمه DHCP؟" فقط في حالة الرد ، نرد: "خادم UDP: 67 ، عميل UDP: 68".

تمت مواجهة العديد من تطبيقات خادم DHCP من قبل العديد ، حتى عند إعداد شبكة منزلية. في الواقع ، الخادم الآن هو:


  • على ما يقرب من أي جهاز توجيه ، وخاصة SOHO.
  • على أنظمة خادم ويندوز. يمكنك أن تقرأ عن الخادم وتكوينه في الوثائق الرسمية.
  • على أنظمة * لا شىء. ربما كان البرنامج الأكثر شيوعًا هو ISC DHCP Server (dhcpd) و "حصادة" Dnsmasq .

هناك الكثير من التطبيقات المحددة ، ولكن ، على سبيل المثال ، تكون إعدادات الخادم محدودة على أجهزة توجيه SOHO. يتعلق هذا في المقام الأول بإعدادات إضافية ، بالإضافة إلى "عنوان IP ، قناع ، بوابة ، خادم DNS". وهذا هو بالضبط هذه الخيارات الإضافية التي تسبب أكبر قدر من الاهتمام في البروتوكول. يمكن العثور على القائمة الكاملة في RFC المقابلة ، لكنني سأحلل بعض الأمثلة المثيرة للاهتمام.


خيارات DHCP مذهلة


في هذا القسم ، سأناقش الاستخدام العملي لخيارات DHCP على معدات MikroTik. سألفت الانتباه على الفور إلى حقيقة أنه لا يتم تعيين جميع الخيارات بشكل واضح ، يتم وصف تنسيق المعلمات في الويكي . تجدر الإشارة إلى أن العميل يطبق الخيارات فقط عندما يسأل عنها. في بعض الخوادم ، يمكنك فرض الإعدادات لإرسالها: على سبيل المثال ، في خادم DHCP ISC ، يكون توجيه قائمة طلب المعلمة dhcp مسؤولاً عن هذا ، وفي Dnsmasq - * * --dhcp-option-force . MikroTik و Windows لا يعرفون كيف.


الخيار 6 والخيار 15. دعونا نبدأ مع واحد بسيط. الإعداد رقم 6 هو خوادم DNS المخصصة للعملاء ، 15 هي لاحقة DNS. يمكن أن يكون تعيين لاحقة DNS مفيدًا عند العمل مع موارد المجال على شبكة خارج المجال ، كما هو موضح في المقالة " كيف قمنا بتخفيض عدد الموظفين من خلال شبكة Wi-Fi ". تكوين MikroTik تحت المفسد.


إعداد MikroTik ، الخيار 15
#  15.  —   HEX . /ip dhcp-server option add code=15 name=dns-suffix value=0x57687920616c6c207468697320736869743f #   /ip dhcp-server option sets add name=dns option=dns-suffix #   DHCP-  . /ip dhcp-server network set [find comment="wi-fi client dhcp"] dhcp-option-set=dns 

إن معرفة أن خادم DNS هو أيضًا خيار أصبح مفيدًا مؤخرًا عندما كان على العملاء المختلفين إصدار خوادم DNS مختلفة. لم يكن قرار النموذج "إصدار خادم واحد وجعل قواعد dst-nat مختلفة للمنفذ 53" ملائماً لعدة أسباب. جزء من التكوين مرة أخرى تحت المفسد.


إعداد MikroTik ، الخيار 6
 # ,  ,  ip    /ip dhcp-server option add code=6 name=google value="'8.8.8.8'" add code=6 name=cloudflare value="'1.1.1.1'" #  /ip dhcp-server lease add address=10.0.0.2 dhcp-option=google mac-address=11:11:11:11:11:11 server=dhcp add address=10.0.0.3 dhcp-option=cloudflare mac-address=22:22:22:22:22:22 server=dhcp 

الخيار 66 والخيار 67 . عادت هذه الإعدادات من BOOTP وتتيح لك تحديد خادم TFTP وصورة تمهيد الشبكة. بالنسبة لفرع صغير ، من الملائم تمامًا تثبيت Mikrotik ومحطات العمل الخالية من الأقراص هناك وإلقاء صورة معدة لبعض ThinStation على جهاز التوجيه . مثال تكوين DHCP:


 /ip dhcp-server option add name="option66" code=66 value="s'192.168.88.1'" add name="option67" code=67 value="'pxelinux.0'" /ip dhcp-server option sets add name="set-pxe" options=option66,option67 

الخيار 121 والخيار 249 . يتم استخدامها لنقل مسارات إضافية إلى العميل ، والتي قد تكون في بعض الحالات أكثر ملاءمة من تسجيل المسارات على العبارة الافتراضية. الإعدادات متطابقة تقريبًا ، باستثناء أن عملاء Windows يفضلون الأخير. لتكوين المعلمة ، يجب تحويل المسارات إلى ست عشري ، مع تجميع قناع الشبكة الوجهة وعنوان الشبكة والبوابة في سطر واحد. أيضًا ، بواسطة RFC ، يجب إضافة مسار افتراضي. خيار الضبط تحت المفسد.


إعداد الطريق

لنفترض أننا بحاجة إلى إضافة مسار مثل عنوان dst = 10.0.0.0 / 24 gateway = 192.168.88.2 للعملاء ، وستكون البوابة الرئيسية 192.168.88.1. دعنا نجلب كل شيء في HEX:


إعدادات البياناتديسمبرHEX
قناع240x18
شبكة الوجهة10.0.0.00x0A 00 00
بوابة192.168.88.20xc0 a8 58 02
الشبكة الافتراضية0.0.0.0/00x00
العبارة الافتراضية192.168.88.10xc0 a8 58 01

دعونا نجمع كل هذه السعادة في سطر واحد والحصول على الإعداد:


 /ip dhcp-server option add code=121 name=classless value=0x0A0000c0a8580200c0a85801 

اقرأ المزيد في المقال " Mikrotik ، DHCP Classless Route ".


الخيار 252. التكوين التلقائي لخادم الوكيل. إذا كانت المنظمة تستخدم لسبب ما وكيلًا غير شفاف ، فسيكون من المناسب تكوينه مع العملاء من خلال ملف wpad (pac) خاص. تم توضيح مثال لإعداد مثل هذا الملف في مادة التكوين التلقائي للوكيل (PAC) . لسوء الحظ ، ليس لدى MiroTik خادم ويب مضمن لاستضافة هذا الملف. يمكنك استخدام حزمة نقطة الاتصال أو ميزات metarouter لهذا الغرض ، ولكن من الأفضل وضع الملف في مكان آخر.


الخيار 82 . أحد الخيارات الأكثر فائدة ليس فقط للعميل ، ولكن لترحيل DHCP. يتيح لك نقل معلومات حول منفذ التبديل الذي يتصل به العميل ومعرف رمز التبديل نفسه. استنادًا إلى هذه المعلومات ، يمكن للخادم ، بدوره ، إصدار مجموعة معينة من الإعدادات للعميل أو ببساطة تسجيل الدخول - من أجل العثور على منفذ اتصال العميل ، لم يكن من الضروري الانتقال إلى جميع المحولات في صف واحد (خاصةً إذا لم تكن موجودة في الحزمة).


بعد تكوين DHCP-Relay على جهاز التوجيه ، ستظهر حقول معرف دائرة الوكيل ومعرف العميل عن بعد في معلومات العميل ، حيث يكون الأول هو معرف منفذ التبديل والثاني هو معرف التبديل.



إصدار عناوين بخيار 82.


يتم تقديم المعلومات بالتنسيق الست عشري. للراحة ، يمكنك استخدام البرامج النصية لتحليل سجل DHCP. على سبيل المثال ، يتم نشر حل لأحد الحلول من Microsoft في معرض البرامج النصية لـ Technet يسمى " Decorating DHCP Options 82 ".


يستخدم الخيار 82 أيضًا بنشاط في نظام الفوترة لمقدمي الخدمات وفي حماية الشبكة من التداخل الخارجي. هذا هو أكثر تفصيلا قليلا.


إضافة الموثوقية وشبكات الأمن


بسبب بساطة البروتوكول ووجود طلبات البث ، هناك هجمات فعالة على البنية التحتية - بشكل رئيسي من نوع MITM ("رجل في الوسط"). يتم تنفيذ الهجمات من خلال رفع خادم DHCP أو الترحيل: بعد كل شيء ، إذا كنت تتحكم في إصدار إعدادات الشبكة ، يمكنك بسهولة إعادة توجيه حركة المرور إلى بوابة معرضة للخطر. لتسهيل الهجوم ، يتم استخدام تجويع DHCP (يتظاهر بأنه عميل أو مرحل ، المهاجم يفرض على خادم DHCP "الأصلي" لاستنفاد عناوين IP الخاصة به). يمكنك قراءة المزيد حول تنفيذ الهجوم في مقالة " Attacking DHCP " ، في حين أن DHCP Snooping هي طريقة الحماية.


هذه هي وظيفة التبديل التي تتيح لك "ربط" خادم DHCP بمنفذ معين. سيتم حظر استجابات DHCP على المنافذ الأخرى. في بعض المحولات ، يمكنك تكوين العمل مع الخيار 82 عندما يتم اكتشافه في الحزمة (مما يشير إلى وجود مرحل): تجاهل ، استبدال ، اتركه دون تغيير.


في مفاتيح MikroTik ، يتم تمكين DHCP Snooping في إعدادات الجسر:


 # dhcp-snooping  option 82 /interface bridge add name=bridge set [find where name="bridge"] dhcp-snooping=yes add-dhcp-option82=yes #    /interface bridge port add bridge=bridge interface=ether1 add bridge=bridge interface=ether2 trusted=yes 

التكوين في مفاتيح أخرى مشابه.


تجدر الإشارة إلى أن طرز MikroTik ليست كلها مزودة بدعم الأجهزة الكامل لـ DHCP Snooping - فقط CRS3xx هي التي لديها.

بالإضافة إلى الحماية من المتسللين المتطفلين ، ستخفف هذه الوظيفة من الصداع عند ظهور خادم DHCP آخر على الشبكة - على سبيل المثال ، عندما يقوم جهاز توجيه SOHO المستخدم كمحول مع نقطة وصول بإعادة ضبط إعداداته. لسوء الحظ ، في الشبكات التي توجد فيها أجهزة SOHO ، لا يوجد دائمًا هيكل شبكة كبل مختص به أجهزة توجيه مُدارة. لكن هذا سؤال آخر.



التبديل الجميل هو مفتاح الصحة.


تتضمن طرق الحماية الأخرى " أمان المنفذ " ("ربط" عنوان MAC محددًا بمنفذ جهاز التوجيه ، وسيتم حظر المنفذ عند اكتشاف حركة مرور من عناوين أخرى) ، وتحليل حركة المرور لعدد طلبات DHCP والاستجابات أو الحد من عددهم ، وبطبيعة الحال ، مختلف أنظمة IPS \ IDS .


إذا كنا لا نتحدث فقط عن حماية الشبكة ، ولكن أيضًا عن الموثوقية ، فلن نفترض أن نذكر قدرات DHCP الآمنة من الفشل. في الواقع ، مع بساطته ، غالبًا ما تكون DHCP واحدة من الخدمات الرئيسية ، وإذا فشلت ، يمكن شل عمل المنظمة. ولكن إذا قمت فقط بتثبيت خادمين بإعدادات متطابقة ، فلن يؤدي أي شيء غير تعارض عناوين IP إلى ذلك.


يبدو أنه يمكنك تقسيم منطقة التوزيع بين خادمين ، والسماح لأحدهما بإعطاء نصف العناوين ، والآخر يعطي الآخر. هنا مجرد نصف مشلول من البنية التحتية أفضل قليلاً من الكل.


سنقوم بتحليل المزيد من الخيارات العملية.


في أنظمة Windows Server التي تبدأ في عام 2012 ، يعمل نظام التكرار DHCP خارج الصندوق ، في وضع موازنة التحميل (نشط-نشط) أو في وضع التسامح مع الخطأ (نشط غير نشط). يمكن العثور على وصف تفصيلي للتكنولوجيا والإعدادات في الوثائق الرسمية. ألاحظ أن التسامح مع الخطأ قد تم تكوينه على مستوى المنطقة ، لذلك يمكن أن تعمل مناطق مختلفة في أوضاع مختلفة.



تكوين فشل خادم DHCP في ويندوز.


يستخدم خادم DHCP ISC توجيه نظير تجاوز الفشل لتكوين التسامح مع الخطأ ؛ يُقترح مزامنة البيانات بشكل مستقل - على سبيل المثال ، باستخدام rsync. اقرأ المزيد في المقالة " خادمين DHCP على Centos7 ... "


إذا قمت بإجراء حل متسامح مع الأخطاء يستند إلى MikroTik ، فلا يمكنك الاستغناء عن الحيل. تم الإعلان عن أحد خيارات حل المشكلة في MUM RU 18 ، ثم نشرها على مدونة المؤلف . باختصار: تم تكوين خادمين ، ولكن مع معلمة تأخير الحد الأقصى (تأخير الاستجابة). بعد ذلك ، سيصدر الخادم العنوان بتأخير أقل ، وبتأخير أطول - فقط عند فشل العنوان الأول. يجب أن يتم مزامنة المعلومات مرة أخرى مع البرامج النصية.


شخصيا ، في وقت من الأوقات ، أرتبت أعصابي بشكل جيد عندما ظهر جهاز توجيه على الشبكة "بطريق الخطأ" ومتصل بشبكة المنطقة المحلية على حد سواء واجهات WAN و LAN.


قل لي ، هل كان لديك للتعامل مع الجذام DHCP؟

Source: https://habr.com/ru/post/ar467333/


All Articles