خادم يستند إلى Kea فشل DHCP

صورة

Kea DHCP تثبيت خادم تجاوز الفشل وتعليمات الإعداد الأساسية


Kea DHCP هو خادم DHCP مفتوح المصدر تم تطويره بواسطة اتحاد أنظمة الإنترنت (ISC) مع دعم DHCPv4 و DHCPv6.

ISCs هم نفس الأشخاص الذين يطورون الربط المفضل لدينا و dhcpd. كيا - وضعت على أساس BIND 10.

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

لن أخوض في العمل التفصيلي لبروتوكول DHCP ، ثم ستكون المقالة مرتين أو ثلاث مرات. هناك مقال جيد عن حبري .

يعمل بروتوكول DHCP عبر بروتوكول UDP (المنافذ 67-68) ، ويتم استخدامه للتخصيص الديناميكي لعناوين IP. يستخدم أربع خطوات لتلقي / إصدار عناوين IP - اكتشاف-عرض-طلب-إقرار (DORA) . يستخدم DHCP أيضًا مفهوم التأجير - تأجير العنوان ، مدة التأجير للجهاز هي وقت التأجير .

صورة

لماذا كيا


يحتوي خادم DHCP الخاص بـ Kea على العديد من المزايا - السرعة والقدرة على إنشاء مجموعة تجاوز الفشل ووظائف رائعة والقدرة على شراء الدعم الفني من المطورين.

سيتم استخدام هذا المنتج من قبل مشغل الاتصالات الخاص بنا ، الذي يخطط لإصدار حوالي 2 مليون عنوان ، مع 2000 طلب في الثانية. تم اختياره بسبب سرعة العمل وإمكانية إنشاء مجموعة من خادمين.

نظام التشغيل المدعوم


• CentOS Linux - 7.1804 (المعروف أيضًا باسم 7.5)
• فيدورا - 28 ، 29
• أوبونتو - 16.04 ، 18.04
• دبيان جنو / لينكس - 7 ، 8 ، 9
• فري - 11.0
• ماك - 10.13 ، 10.14

لا توجد خطط إطلاق Kea لنظام التشغيل Windows.

استئجار قاعدة التخزين


Kea DHCP - يدعم تخزين قاعدة بيانات العناوين التي تم إصدارها في ملف CSV محلي (memfile) أو في أحد DBMSs الثلاثة - MySQL و PostgreSQL و Cassandra.

الاختلافات في السرعة وقدرات التخزين. أسرع Memfile 10 مرات ، ولكن تخزين قاعدة البيانات في DBMS يسمح لك بتخزين حقول إضافية وخيارات DHCP. مقارنة السرعة:

صورة

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

في مشروعنا ، قررنا البدء من القاعدة في ملف ، حيث أن عدد الطلبات في الثانية سيكون أكثر من 2000.

تركيب


على سبيل المثال ، سيتم نشر Kea استنادًا إلى CentOS 7 (إصدار الحد الأدنى):

[root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) 

قبل تثبيت الخدمة نفسها ، يجب تثبيت جميع التبعيات اللازمة:

  1. تعزيز مكتبات C ++ (http://www.boost.org/). # وقت التشغيل بيئة سي + + لتشغيل كيا نفسها
  2. مكتبة تشفير Botan (ver. 1.9) أو OpenSSL (ver. 1.0.1). أنصح openssl ، حيث لن يتم دعم البوتان منذ Kea 1.6.0
  3. مطلوب log4cplus (ver. 1.0.3) تطوير # لإنشاء سجلات
  4. مترجم C ++
  5. تقوم المكتبات تلقائيًا و libtool و pkg-config # بإنشاء Kea وتثبيته
  6. إذا كنت ستستخدم DBMS ، فقم بتثبيت MySQL أو PostgreSQL أو Cassandra.

اختياري إذا كنت بحاجة إلى RADIUS أو NETCONF / YANG (باللغة الإنجليزية)
  • مكتبة عميل FreeRADIUS عندما - مع العلم التكوين freeradius المستخدمة.
  • Sysrepo (الإصدار 0.7.6 أو الأحدث) و libyang (الإصدار 0.16-r2 أو الأحدث) عند استخدام إشارة التكوين مع sysrepo.
  • googletest (الإصدار 1.8 أو الأحدث) ، عند استخدام خيار التكوين --with-gtest لإنشاء اختبارات الوحدة.
  • تقوم أدوات إنشاء الوثائق بإلحاق و docbook-xsl و libxslt و Doxygen ، إذا كنت تستخدم خيار التكوين --enable-create-docs لإنشاء الوثائق.


الخطوة 1. تثبيت التبعيات اللازمة


 # wget     sudo yum install wget #  community  sudo yum install epel-release #     sudo yum install log4cplus-devel # run-time  ++    Kea sudo yum install boost-devel #   ssl ,   *-devel,    sudo yum install openssl-devel #     Kead sudo yum install automake libtool #  gc,  Development Tools, ..        sudo yum groupinstall Development\ Tools 

الخطوة 2. إذا نهضت جميع التبعيات بشكل طبيعي ، فتابع إلى تثبيت Kea نفسها


 #   Kea (    https://ftp.isc.org/isc/kea/1.5.0/    ) wget -nd https://ftp.isc.org/isc/kea/1.5.0/kea-1.5.0.tar.gz #   tar zxvf kea-1.5.0.tar.gz #      cd kea-1.5.0 #        #./configure [  ]      ./configure 

* هنا تحتاج إلى ذكر الخيارات الضرورية - إذا كنت تخطط لاستخدام DBMS ، فأنت بحاجة إلى تحديد هذا الخيار.

جميع الخيارات أثناء التجميع:
بادئة
حدد موقع التثبيت (الافتراضي هو / usr / local).
--with-دفعة-تشمل
حدد المسار للعثور على رؤوس التعزيز.
--with-بوتان بين التكوين
حدد المسار إلى البرنامج النصي botan-config لإنشاءه مع Botan لوظائف التشفير.
--with-ك
أنشئ Kea برمز للسماح لها بتخزين عقود الإيجار وحجوزات المضيف في قاعدة بيانات MySQL.
--with-pgsql
بناء Kea مع رمز للسماح لها بتخزين عقود الإيجار والتحفظات المضيف في قاعدة بيانات PostgreSQL.
--with-cql
أنشئ Kea برمز للسماح لها بتخزين عقود الإيجار وحجوزات المضيف في قاعدة بيانات Cassandra (CQL).
- مع gtest ، - مع gtest المصدر
تمكين بناء اختبارات وحدة C ++ باستخدام إطار عمل اختبار Google. يحدد هذا الخيار المسار إلى مصدر gtest. (إذا لم يكن الإطار مثبتًا على نظامك ، فيمكن تنزيله من github.com/google/googletest .) من github.com/google/googletest .)
- مع معيار ، - مع مصدر مرجعي
قم بتمكين إنشاء معايير الواجهة الخلفية لقاعدة البيانات باستخدام إطار Google Benchmark. يحدد هذا الخيار المسار إلى مصدر gtest. (إذا لم يكن الإطار مثبتًا على نظامك ، فيمكن تنزيله من github.com/google/benchmark .)
--with-log4cplus
حدد المسار للعثور على رؤوس Log4cplus والمكتبات.
--with-بينسل
استبدال Botan بواسطة OpenSSL مكتبة التشفير. بشكل افتراضي ، يتم تكوين عمليات البحث عن تثبيت بوتان صالح: إذا لم يتم العثور على أحد ، فإنه يبحث عن OpenSSL.

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

صورة

الخطوة 3. تثبيت


 make sudo make install 

يستغرق إجراء العملية وقتًا طويلاً جدًا (ساعة أو نحو ذلك). جعل تثبيت لمدة دقيقة تقريبا.

إطلاق والإعداد


يتم تشغيله من الدليل المثبت:

 keactrl start 

لا تزال هناك خيارات إيقاف ، إعادة تحميل (إعادة التكوين) والحالة

عند بدء التشغيل ، يبدأ تشغيل ثلاث عمليات - kea-dhcp4 ، kea-dhcp6 kea-ctrl - agent - وكيل لإدارة اتصالات الخادم وإدارتها

إذا كنت لا تحتاج إلى dhcp6 ، فيمكنك تشغيل dhcp4 فقط ، ولا تنسَ بدء تشغيل الوكيل:

 keactrl start -s dhcp4, ctrl_agent 

ترتيب


ملف التكوين الرئيسي dhcp4 هو /usr/local/etc/kea/kea-dhcp4.conf

الملف موصوف جيدًا ، وهناك الكثير من التعليقات والأمثلة على الإعدادات ، لن تشعر بالارتباك ، سأكتب فقط الإعدادات الرئيسية:
حدد الواجهة أو العنوان الذي ستعمل من خلاله dhcp4:

 "interfaces-config": { // interface name (eg "eth0" or specific IPv4 address on that // interface name (eg "eth0/192.0.2.1"). "interfaces": [ ] } 

حدد مكان تخزين قاعدة التأجير

 "lease-database": { // Memfile is the simplest and easiest backend to use. It's a in-memory // C++ database that stores its state in CSV file. "type": "memfile", "lfc-interval": 3600 }, 

ما خوادم DNS سيتم تقديمها للعملاء

 "option-data": [ { "name": "domain-name-servers", "data": "192.0.2.1, 192.0.2.2" }, 


اسم نطاق مؤسستك
 { "name": "domain-search", "data": "mydomain.example.com, example.com" }, 

والإعداد الرئيسي هو الشبكات الفرعية والبرك والعبّارة الافتراضية:

 "subnet4": [ { //subnet  ,  Kea      "subnet": "192.0.2.0/24", // ,       "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "option-data": [ { //  default gateway    "name": "routers", "data": "192.0.2.1" } ], 

حسنًا ، هناك حاجة إلى المعلمة الأخيرة لحجز العناوين من التجمع / الشبكة الفرعية ، ولن يتم إصدار العناوين المحددة للعملاء ، بل ستكون مطلوبة لعناوين الخادم / الجهاز التي تم تسجيلها بشكل ثابت:

 "reservations": [ { "hw-address": "1a:1b:1c:1d:1e:1f", "ip-address": "192.0.2.201" } ] 

فيما يلي الإعدادات الرئيسية ، بعد تغيير التكوين ، تحتاج إلى إعادة تشغيل الخدمة -

 keacrtl stop keactrl start -s dhcp4,ctrl_agent 

قاعدة CSV


يتم تخزين قاعدة البيانات المحلية هنا - /usr/local/var/kea/kea-leases4.csv


السجلات


يتم تخزين السجلات بشكل افتراضي - / usr / local / var / log /

هنا ، كل مكون من المكونات لديه ملف منفصل:

  • كيا-dhcp4.log
  • كيا-dhcp6.log
  • كيا-CTRL-agent.log

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

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


All Articles