
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 ~]
قبل تثبيت الخدمة نفسها ، يجب تثبيت جميع التبعيات اللازمة:
- تعزيز مكتبات C ++ (http://www.boost.org/). # وقت التشغيل بيئة سي + + لتشغيل كيا نفسها
- مكتبة تشفير Botan (ver. 1.9) أو OpenSSL (ver. 1.0.1). أنصح openssl ، حيث لن يتم دعم البوتان منذ Kea 1.6.0
- مطلوب log4cplus (ver. 1.0.3) تطوير # لإنشاء سجلات
- مترجم C ++
- تقوم المكتبات تلقائيًا و libtool و pkg-config # بإنشاء Kea وتثبيته
- إذا كنت ستستخدم 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. تثبيت التبعيات اللازمة
الخطوة 2. إذا نهضت جميع التبعيات بشكل طبيعي ، فتابع إلى تثبيت Kea نفسها
* هنا تحتاج إلى ذكر الخيارات الضرورية - إذا كنت تخطط لاستخدام 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
في مقالة منفصلة ، سأشرح كيفية بدء مجموعة من خادمين وتكوين مزامنة قاعدة بيانات مخرجات الإيجار.