PERFDHCP(8) Kea PERFDHCP(8)

perfdhcp - ابزار سنجش کارایی و بارگذاری DHCP

perfdhcp [-1] [-4 | -6] [-A encapsulation-level] [-b base] [-B] [-c] [-C separator] [-d drop-time] [-D max-drop] [-e lease-type] [-E time-offset] [-f renew-rate] [-F release-rate] [-g thread-mode] [-h] [-i] [-I ip-offset] [-J remote-address-list-file] [-l local-address|interface] [-L local-port] [-M mac-list-file] [-n num-request] [-N remote-port] [-O random-offset] [-o code,hexstring] [--or encapsulation-level:code,hexstring] [-p test-period] [-P preload] [-r rate] [-R num-clients] [-s seed] [-S srvid-offset] [--scenario name] [-t report] [-T template-file] [-u] [-v] [-W exit-wait-time] [-w script_name] [-x diagnostic-selector] [-X xid-offset] [server]

دستور perfdhcp یک ابزار سنجش کارایی و بارگذاری (benchmarking) برای DHCP است. این ابزار با تولید حجم بالایی از ترافیک از چندین کلاینت شبیه‌سازی‌شده، امکان اندازه‌گیری کارایی کارگزارهای DHCP را فراهم می‌کند. این ابزار قادر است هر دو کارگزار IPv4 و IPv6 را آزمایش کند و آماری در مورد زمان‌های پاسخ و تعداد درخواست‌های ناموفق یا رهاشده (dropped) ارائه دهد.

این ابزار از دو سناریوی مختلف پشتیبانی می‌کند که امکان آزمایش رفتارهای مشخصی را فراهم می‌سازند. به‌طور پیش‌فرض (سناریوی پایه یا basic)، آزمایش‌ها با استفاده از توالی کامل تبادل چهار بسته‌ای (DORA برای DHCPv4 و SARR برای DHCPv6) اجرا می‌شوند. گزینه‌ای نیز برای اجرای آزمایش‌ها تنها با تبادل اولیه دو بسته‌ای (DO و SA) در نظر گرفته شده است. همچنین می‌توان perfdhcp را طوری پیکربندی کرد که پیام‌های RENEW و RELEASE پروتکل DHCPv6 را با نرخی مشخص، به صورت موازی با تبادلات چهارمرحله‌ای DHCPv6 ارسال کند. به‌طور پیش‌فرض، اگر طی یک ثانیه پاسخی دریافت نشود، پاسخ از دست‌رفته تلقی می‌شود و perfdhcp به دیگر تراکنش‌ها ادامه می‌دهد.

سناریوی دوم به نام بهمن (avalanche) از طریق --scenario avalanche انتخاب می‌شود. این سناریو ابتدا تعداد پیام‌های Discovery یا Solicit مشخص‌شده با گزینه -R را ارسال می‌کند؛ سپس بازسانی یا ارسال مجدد (با سازوکار عقب‌نشینی نمایی یا exponential back-off) برای هر کلاینت شبیه‌سازی‌شده انجام می‌شود تا زمانی که به همه درخواست‌ها پاسخ داده شود. هنگامی که همه کلاینت‌ها نشانی‌های خود را دریافت کنند، یا زمانی که برنامه به‌صورت دستی متوقف شود، گزارشی تولید می‌شود. این سناریو تلاش می‌کند حالتی را بازسازی کند که در آن کارگزار نمی‌تواند ترافیک را به اندازه کافی سریع مدیریت کند. کلاینت‌های واقعی فرض می‌کنند بسته یا پاسخ گم شده است و مجدداً ارسال می‌کنند که این کار ترافیک DHCP را بیشتر افزایش می‌دهد. این پدیده گاهی اثر بهمنی (avalanche effect) نامیده می‌شود که نام سناریو نیز از آن گرفته شده است. گزینه -p در سناریوی avalanche نادیده گرفته می‌شود.

هنگام اجرای آزمایش کارایی، perfdhcp بسته‌ها را با حداکثر سرعت ممکن با کارگزارِ تحت آزمایش تبادل می‌کند، مگر اینکه از پارامتر -r برای محدود کردن نرخ درخواست‌ها استفاده شود. مدت زمان آزمایش را می‌توان با تعیین آستانه بر روی هر یک یا همه موارد زیر محدود کرد: تعداد درخواست‌های ارسالی توسط perfdhcp، زمان سپری‌شده، یا تعداد درخواست‌های رهاشده توسط کارگزار.

برای امکان سفارشی‌سازی محتوای بسته‌های ارسالی به کارگزار، perfdhcp اجازه تعیین فایل‌های الگو (template files) را می‌دهد که محتوای بسته‌ها را مشخص می‌کنند. برای نمونه، بسته سفارشی ممکن است حاوی ORO در DHCPv6 برای درخواست مجموعه‌ای از گزینه‌ها از کارگزار باشد، یا ممکن است حاوی گزینه Client FQDN باشد تا از کارگزار بخواهد به‌روزرسانی‌های DNS را انجام دهد. از این قابلیت می‌توان برای کشف گلوگاه‌های کارایی در پیکربندی‌های گوناگون کارگزار (مانند فعال یا غیرفعال بودن DDNS) استفاده کرد.

حداکثر دو فایل الگو را می‌توان در خط فرمان مشخص کرد که هر فایل بیانگر محتوای نوع خاصی از بسته است و نوع آن با توجه به آزمایشی که انجام می‌شود تعیین می‌گردد. برای نمونه، در آزمایش DHCPv6:

  • اگر هیچ فایل الگویی در خط فرمان مشخص نشود، perfdhcp هر دو بسته Solicit و Request را تولید می‌کند.
  • با تعیین یک فایل الگو، آن فایل به عنوان الگوی بسته‌های Solicit استفاده می‌شود و perfdhcp بسته‌های Request را تولید می‌کند.
  • با تعیین دو فایل الگو در خط فرمان، اولی به عنوان الگوی بسته‌های Solicit و دومی به عنوان الگوی بسته‌های Request به کار می‌رود.

(تعیین مشابهی برای بسته‌های DHCPDISCOVER و DHCPREQUEST در DHCPv4 نیز صدق می‌کند.)

فایل الگو حاوی بسته DHCP به صورت جریانی از ارقام هگزادسیمال ASCII است و هدرهای پشته IP/UDP را شامل نمی‌شود. فایل الگو نباید هیچ نویسه‌ای جز ارقام هگزادسیمال و فاصله‌ها داشته باشد. هنگام پردازش فایل الگو، فاصله‌ها نادیده گرفته می‌شوند؛ در این فایل، 12B4 با 12 B4 و همچنین با 1 2 B 4 یکسان است.

فایل‌های الگو باید همراه با پارامترهای خط فرمان که آفست فیلدهای داده تغییریافته در بسته‌های خروجی را مشخص می‌کنند، استفاده شوند. برای نمونه، سوییچ -E time-offset آفست گزینه DHCPv6 Elapsed Time را در الگوی بسته مشخص می‌کند. اگر آفست تعیین شده باشد، perfdhcp مقدار زمان سپری‌شده جاری را پیش از ارسال بسته به کارگزار در این فیلد تزریق می‌کند.

در بسیاری از سناریوها، perfdhcp نیاز به شبیه‌سازی کلاینت‌های متعددی دارد که هر کدام شناسه کلاینت یکتایی دارند. از آنجا که بسته‌ها برای هر کلاینت از همان فایل الگو تولید می‌شوند، تصادفی‌سازی شناسه کلاینت (یا نشانی سخت‌افزاری HW در DHCPv4) در بسته ایجادشده از آن ضروری است. گزینه -O random-offset امکان تعیین آفست در الگو را می‌دهد که در آن تصادفی‌سازی باید انجام شود. توجه به این نکته مهم است که این آفست به انتهای (نه ابتدای) شناسه کلاینت (یا فیلد نشانی سخت‌افزاری) اشاره می‌کند. تعداد بایت‌های تصادفی‌شده به تعداد کلاینت‌های شبیه‌سازی‌شده بستگی دارد. اگر تعداد کلاینت‌های شبیه‌سازی‌شده بین ۱ تا ۲۵۵ باشد، تنها یک بایت (که آفست تصادفی‌سازی به آن اشاره دارد) تصادفی می‌شود. اگر تعداد کلاینت‌های شبیه‌سازی‌شده بین ۲۵۶ تا ۶۵۵۳۵ باشد، دو بایت تصادفی می‌شوند. توجه داشته باشید که در این حالت دو بایت پایانی شناسه کلاینت تصادفی می‌شوند: بایتی که پارامتر آفست تصادفی‌سازی به آن اشاره می‌کند و بایت قبل از آن (random-offset - 1). اگر تعداد کلاینت‌های شبیه‌سازی‌شده از ۶۵۵۳۵ فراتر رود، سه بایت تصادفی می‌شوند و به همین ترتیب.

برنامه perfdhcp می‌تواند با فعال کردن گزینه -J و ارسال مسیر فایلی شامل نشانی‌های v4 یا v6 که به عنوان رله (relay) در پیام‌های تولیدی به کار می‌روند، ترافیک چندین زیرشبکه را شبیه‌سازی کند. این کار امکان آزمایش شمار زیادی از شبکه‌های مشترک (shared networks) در Kea را فراهم می‌سازد. هنگام آزمایش DHCPv4، کارگزار Kea باید با متغیر محیطی KEA_TEST_SEND_RESPONSES_TO_SOURCE راه‌اندازی شود تا Kea مجبور شود پیام‌های تولیدی را به نشانی مبدأ بسته ورودی ارسال کند.

در حال حاضر الگوها را می‌توان برای تولید بسته‌های ارسالی به کارگزار در تبادلات چهارمرحله‌ای به کار برد؛ یعنی Solicit و Request (در DHCPv6) و DHCPDISCOVER و DHCPREQUEST (در DHCPv4). از الگوها نمی‌توان هنگام ارسال بسته‌های Renew یا DHCPRELEASE استفاده کرد.

-1
گزینه server-id را از نخستین پیام دریافت‌شده برمی‌دارد.
-4
عملکرد DHCPv4 را برقرار می‌سازد؛ این حالت پیش‌فرض است. با گزینه -6 ناسازگار است.
-6
عملکرد DHCPv6 را برقرار می‌سازد. با گزینه -4 ناسازگار است.
نوع پایه MAC یا DUID مورد استفاده برای شبیه‌سازی کلاینت‌های مختلف را مشخص می‌کند. مقدار basetype می‌تواند "mac" یا "duid" باشد. (همچنین کلمه کلیدی "ether" می‌تواند به عنوان جایگزینی برای MAC استفاده شود.) گزینه -b را می‌توان چندین بار مشخص کرد. نشانی MAC باید شامل شش اکتت باشد که با دو نقطه تکی (:) یا دوگانه (::) از هم جدا شده‌اند؛ برای نمونه: mac=00:0c:01:02:03:04. مقدار DUID یک رشته هگزادسیمال است؛ این مقدار باید حداقل شش اکتت طول داشته باشد و از ۶۴ بایت بیشتر نباشد، و طول آن باید کمتر از ۱۲۸ رقم هگزادسیمال باشد. برای نمونه: duid=0101010101010101010110111F14.
زمانی را مشخص می‌کند که پس از آن، یک درخواست رهاشده و از دست‌رفته تلقی می‌شود. این مقدار بر حسب ثانیه داده می‌شود و می‌تواند شامل بخش اعشاری باشد. مقدار پیش‌فرض ۱ است.
نوع اجاره (lease) درخواستی از کارگزار را مشخص می‌کند. این مقدار می‌تواند یکی از موارد زیر باشد:
تنها نشانی‌های معمولی (v4 یا v6) درخواست می‌شوند.
تنها پیشوندهای IPv6 درخواست می‌شوند.
هم نشانی‌ها و هم پیشوندهای IPv6 درخواست می‌شوند.

حالت‌های -e prefix-only و -e address-and-prefix را نمی‌توان با گزینه -4 به کار برد.

نرخی را مشخص می‌کند که با آن درخواست‌های DHCPRELEASE در DHCPv4 یا Release در DHCPv6 به کارگزار ارسال می‌شوند. این مقدار تنها زمانی معتبر است که همراه با نرخ تبادل (تعیین‌شده توسط -r rate) استفاده شود. علاوه بر این، مجموع این مقدار و نرخ تمدید (تعیین‌شده توسط -f rate) باید برابر یا کمتر از مقدار نرخ تبادل باشد.
نرخی را مشخص می‌کند که با آن درخواست‌های DHCPREQUEST در DHCPv4 یا Renew در DHCPv6 به کارگزار ارسال می‌شوند. این مقدار تنها زمانی معتبر است که همراه با نرخ تبادل (تعیین‌شده توسط -r rate) به کار رود. افزون بر این، مجموع این مقدار و نرخ آزادسازی (تعیین‌شده توسط -F rate) باید برابر یا کمتر از نرخ تبادل باشد.
امکان انتخاب حالت ریسه‌ها (thread-mode) را فراهم می‌کند که می‌تواند single یا multi باشد. در حالت چندریسه‌ای، بسته‌ها در یک ریسه جداگانه دریافت می‌شوند که استفاده بهتری از پردازنده‌ها را ممکن می‌سازد. در سامانه‌های تک‌پردازنده‌ای بهتر است در یک ریسه اجرا شود تا از مسدود شدن ریسه‌ها توسط یکدیگر جلوگیری به عمل آید. اگر بیش از یک پردازنده در سامانه موجود باشد، حالت چندریسه‌ای پیش‌فرض است؛ در غیر این صورت تک‌ریسه‌ای پیش‌فرض خواهد بود.
راهنما را نمایش داده و خارج می‌شود.
تنها بخش ابتدایی تبادل را انجام می‌دهد: اگر -4 انتخاب شده باشد DISCOVER-OFFER، و اگر -6 برگزیده شده باشد Solicit-Advertise.

گزینه -i با گزینه‌های زیر ناسازگار است: -1، -d، -D، -E، -S، -I و -F. علاوه بر این، نمی‌توان آن را با نمونه‌های متعدد از -O، -T و -X به کار برد.

یک فایل متنی شامل چندین نشانی را مشخص می‌کند و برای آزمایش شبکه‌های اشتراکی طراحی شده است. در صورت ارائه، perfdhcp برای هر تبادل به‌صورت تصادفی یکی از نشانی‌ها را انتخاب می‌کند تا ترافیک را از چندین زیرشبکه تولید کند. هنگام آزمایش DHCPv4، باید با متغیر محیطی KEA_TEST_SEND_RESPONSES_TO_SOURCE=ENABLE راه‌اندازی شود؛ در غیر این صورت، perfdhcp قادر به دریافت پاسخ‌ها نخواهد بود.
برای عملکرد DHCPv4، نام میزبان/نشانی محلی را برای برقراری ارتباط با کارگزار مشخص می‌کند. به‌طور پیش‌فرض، نشانی رابطی که ترافیک به‌طور معمول از طریق آن به کارگزار هدایت می‌شود، استفاده می‌گردد. برای عملکرد DHCPv6، نام رابط شبکه‌ای را مشخص می‌کند که تبادلات از طریق آن آغاز می‌شوند.
پورت محلی مورد استفاده را مشخص می‌کند. این مقدار باید صفر یا یک عدد صحیح مثبت تا ۶۵۵۳۵ باشد. مقدار ۰ (پیش‌فرض) به perfdhcp اجازه می‌دهد پورت خود را انتخاب کند.
فایل متنی حاوی فهرستی از نشانی‌های MAC (هر خط یک نشانی) را مشخص می‌کند. در صورت ارائه، برای هر تبادل جدید یک نشانی MAC به‌طور تصادفی از این فهرست انتخاب می‌شود. در DHCPv6، نشانی‌های MAC برای تولید DUID-LL به کار می‌روند. این پارامتر نباید همراه با پارامتر -b استفاده شود.
پورت راه دور مورد استفاده را مشخص می‌کند. این مقدار باید صفر یا یک عدد صحیح مثبت تا ۶۵۵۳۵ باشد. مقدار ۰ (پیش‌فرض) به perfdhcp اجازه می‌دهد از پورت استاندارد سرویس استفاده کند.
برنامه perfdhcp را مجبور می‌کند گزینه اضافی مشخص‌شده (یا در صورت استفاده مکرر، چندین گزینه) را در بسته‌های ارسالی بگنجاند. بخش code کد گزینه را مشخص می‌کند و hexstring یک رشته هگزادسیمال است که محتوای گزینه را تعیین می‌نماید. باید احتیاط کرد، زیرا perfdhcp هیچ‌گونه منطقی را پشت گزینه‌ها ارائه نمی‌دهد؛ آن‌ها صرفاً در بسته‌ها درج شده و همان‌گونه ارسال می‌شوند. مراقب باشید گزینه‌هایی را که از پیش درج شده‌اند تکرار نکنید. برای نمونه، جهت درج شناسه کلاس کلاینت (کد گزینه ۶۰) با رشته "docsis"، از -o 60,646f63736973 استفاده کنید. از -o می‌توان چندین بار استفاده کرد. خانواده پروتکل (-4 یا -6) باید پیش از استفاده از -o مشخص شود.
تبادلات پیش‌بارگذاری (preload) را پشت‌سرهم در زمان راه‌اندازی آغاز می‌کند. باید ۰ (پیش‌فرض) یا یک عدد صحیح مثبت باشد.
نرخ تبادلات DORA/SARR (یا اگر -i داده شده باشد، DO/SA) در هر ثانیه را آغاز می‌کند. گزارشی دوره‌ای تولید می‌شود که تعداد تبادلات تکمیل‌نشده و همچنین میانگین تاخیر پاسخ را نشان می‌دهد. برنامه تا زمان توقف ادامه می‌یابد و در آن نقطه گزارش نهایی تولید می‌شود.
تعداد کلاینت‌های مختلف مورد استفاده را مشخص می‌کند. با مقدار ۱ (پیش‌فرض)، همه درخواست‌ها به نظر می‌رسد از یک کلاینت یکسان ارسال می‌شوند. این مقدار باید یک عدد مثبت باشد.
دانه (seed) تصادفی‌سازی را مشخص می‌کند و اجرای perfdhcp را تکرارپذیر می‌سازد. این مقدار باید ۰ یا یک عدد صحیح مثبت باشد. مقدار ۰ به این معنی است که از دانه استفاده نمی‌شود؛ این مقدار پیش‌فرض است.
نوع سناریو را مشخص می‌کند و می‌تواند basic (پیش‌فرض) یا avalanche باشد.
فایل حاوی الگوی مورد استفاده را به عنوان جریانی از ارقام هگزادسیمال مشخص می‌کند. این گزینه را می‌توان تا دو بار مشخص کرد و محتوای بسته‌های ارسالی را کنترل می‌کند (بخش "الگوها" در بالا را ببینید).
بررسی یکتایی نشانی را فعال می‌کند. طول مدت اعتبار اجاره نباید کوتاه‌تر از مدت زمان آزمایش باشد، و کلاینت‌ها نباید یک نشانی را بیش از یک بار بدون آزادسازی آن درخواست کنند.
نسخه Kea را نمایش می‌دهد.
نسخه گسترش‌یافته Kea را نمایش می‌دهد.
پارامتر زمان انتظار خروج را مشخص می‌کند که باعث می‌شود perfdhcp پس از برآورده شدن شرایط خروج، برای مدت زمان معینی صبر کند تا تمام بسته‌ها را بدون ارسال بسته جدیدی دریافت کند. این مقدار بر حسب میکروثانیه بیان می‌شود. در صورت عدم تعیین، مقدار ۰ استفاده می‌شود (یعنی بلافاصله پس از تحقق شرایط خروج، برنامه پایان می‌یابد).
نام اسکریپتی را که باید پیش/پس از perfdhcp اجرا شود مشخص می‌کند. هنگام فراخوانی، یک پارامتر منفرد به اسکریپت ارسال می‌شود که مقدار آن "start" یا "stop" است و نشان می‌دهد که اسکریپت قبل یا بعد از perfdhcp فراخوانی شده است.
عیب‌یابی تکمیلی را در خروجی می‌گنجاند. این گزینه رشته‌ای از کلیدواژه‌های تکی است که عملیات مورد نیاز برای خروجی پرجزئیات را مشخص می‌کند. حروف کلیدی انتخاب‌گر عبارتند از:
آرگومان‌های رمزگشایی‌شده خط فرمان را چاپ می‌کند.
علت خروج را چاپ می‌کند.
جزئیات پردازش نرخ را چاپ می‌کند.
اجاره‌های دریافت‌شده را چاپ می‌کند.
شناسه نخستین کارگزار (server ID) را چاپ می‌کند.
پس از پایان، زمان‌سنج‌های همه تبادلات موفق را چاپ می‌کند.
پس از پایان، الگوها را چاپ می‌کند.
مدت زمان بر حسب ثانیه که پس از آن perfdhcp شبیه‌سازی انتظار طولانی‌تر کلاینت برای پاسخ‌های کارگزار را آغاز می‌کند. این کار مقدار فیلد secs را در DHCPv4 افزایش می‌دهد و مقادیر فزاینده‌ای را در گزینه Elapsed Time در DHCPv6 ارسال می‌کند. باید همراه با -y به کار رود.
مدت زمان بر حسب ثانیه که در طی آن perfdhcp شبیه‌سازی انتظار طولانی‌تر کلاینت برای پاسخ‌های کارگزار را انجام می‌دهد. این کار مقدار فیلد secs را در DHCPv4 افزایش می‌دهد و مقادیر فزاینده‌ای را در گزینه Elapsed Time در DHCPv6 ارسال می‌کند. باید همراه با -Y استفاده شود.

گزینه‌های زیر تنها برای DHCPv4 اعمال می‌شوند (یعنی زمانی که -4 مشخص شده باشد).

مدیریت پخشی (broadcast) را اجباری می‌کند.

گزینه‌های زیر تنها برای DHCPv6 اعمال می‌شوند (یعنی هنگامی که -6 مشخص شده باشد).

گزینه ثبت سریع (rapid-commit) را اضافه می‌کند (تبادلات به صورت Solicit-Advertise انجام می‌شوند).
مشخص می‌کند که ترافیک رله‌شده باید تولید شود. آرگومان سطح کپسوله‌سازی را تعیین می‌کند؛ یعنی چند عامل رله (relay agent) شبیه‌سازی می‌شوند. در حال حاضر تنها مقدار سطح کپسوله‌سازی پشتیبانی‌شده عدد ۱ است، به این معنی که ترافیک تولیدی معادل میزان ترافیک عبوری از یک عامل رله منفرد است.
برنامه perfdhcp را مجبور می‌کند گزینه اضافی مشخص‌شده (یا در صورت استفاده مکرر، چند گزینه) را در پیام رله‌شده DHCPv6 در سطح کپسوله‌سازی مشخص وارد کند؛ در حال حاضر، تنها مقدار پشتیبانی‌شده برای سطح کپسوله‌سازی عدد ۱ است. این گزینه بسیار شبیه به -o است: code کد گزینه را مشخص می‌کند و hexstring رشته‌ای هگزادسیمال است که محتوای گزینه را تعیین می‌نماید. باید احتیاط کرد، زیرا perfdhcp هیچ‌گونه منطقی را پشت گزینه‌ها ارائه نمی‌دهد؛ آن‌ها صرفاً در بسته‌ها درج شده و به همان شکل ارسال می‌شوند. بخش encapsulation-level: اختیاری است؛ در صورت حذف آن، مقدار پیش‌فرض سطح کپسوله‌سازی ۱ استفاده می‌شود. برای نمونه، جهت درج شناسه مشترک (کد گزینه ۳۸) با مقدار ۱۲۳۴ در نخستین سطح کپسوله‌سازی، از --or 38,31323334 یا --or 1:38,31323334 استفاده کنید. از --or می‌توان چندین بار استفاده کرد، و باید همراه با -A به کار رود.

گزینه‌های زیر فقط می‌توانند همراه با -T استفاده شوند و نحوه اصلاح الگو توسط perfdhcp را کنترل می‌کنند. این گزینه‌ها را می‌توان چندین بار در خط فرمان تعیین کرد؛ هر بار استفاده روی فایل الگوی متناظر اثر می‌گذارد (بخش "الگوها" در بالا را ببینید).

آفست فیلد secs (در DHCPv4) یا گزینه Elapsed Time (در DHCPv6) را در الگوی دوم (یعنی Request) مشخص می‌کند؛ باید ۰ یا یک عدد صحیح مثبت باشد. مقدار ۰ این قابلیت را غیرفعال می‌کند.
آفست نشانی IP (در DHCPv4) در گزینه requested-ip یا گزینه IA_NA (در DHCPv6) را در الگوی دوم (Request) مشخص می‌کند.
آفست آخرین اکتت برای تصادفی‌سازی در الگو را مشخص می‌کند. این مقدار باید یک عدد صحیح بزرگتر از ۳ باشد. برای استفاده از این گزینه، سوییچ -T باید ارائه شود.
آفست گزینه server-id را در الگوی دوم (Request) مشخص می‌کند. این مقدار باید یک عدد صحیح مثبت باشد، و این سوییچ تنها زمانی قابل استفاده است که گزینه الگو (-T) نیز داده شده باشد.
آفست شناسه تراکنش (xid) را در الگو مشخص می‌کند. این مقدار باید یک عدد صحیح مثبت باشد، و این سوییچ تنها زمانی قابل استفاده است که گزینه الگو (-T) نیز ارائه شده باشد.

در صورتی که تعداد درخواست‌های رهاشده به "max-drop" برسد، آزمایش بلافاصله متوقف می‌شود. از -D 1 برای توقف آزمایش حتی در صورت رها شدن یک درخواست منفرد استفاده کنید. مقدار "max-drop" باید یک عدد صحیح مثبت باشد. اگر "max-drop" شامل پسوند % باشد، حداکثر درصد درخواست‌های رهاشده مجاز پیش از توقف آزمایش را مشخص می‌کند. در این حالت، بررسی آستانه پس از انتظار برای دریافت ۱۰ درخواست آغاز می‌شود.
تعداد "num-request" تراکنش را آغاز می‌کند. تا زمانی که همه تراکنش‌ها آغاز نشده یا منتظر پاسخ نمانده باشند، هیچ گزارشی تولید نمی‌شود؛ پس از آن گزارشی تولید شده و برنامه پایان می‌یابد.
درخواست‌ها را برای مدت زمان "test-period" ارسال می‌کند که به همان شیوه -d مشخص می‌شود. این گزینه می‌تواند به عنوان جایگزینی برای -n استفاده شود، یا هر دو گزینه را می‌توان ارائه داد که در این صورت، آزمایش پس از رسیدن به هر یک از محدودیت‌ها پایان می‌یابد.
تاخیر (بر حسب ثانیه) میان دو گزارش متوالی را تنظیم می‌کند.
خروجی مقدماتی را حذف کرده و باعث می‌شود داده‌های میانی تنها شامل مقادیری باشند که با separator از هم جدا شده‌اند. این گزینه همراه با -t برای تولید گزارش‌هایی که در فواصل زمانی -t به‌سادگی قابل تجزیه و تحلیل هستند به کار می‌رود.

کارگزار مورد آزمایش را مشخص می‌کند که به صورت یک نشانی IP داده می‌شود. در حالت DHCPv6، نام ویژه all می‌تواند برای ارجاع به All_DHCP_Relay_Agents_and_Servers (نشانی چندپخشی FF02::1:2)، یا نام ویژه servers برای ارجاع به All_DHCP_Servers (نشانی چندپخشی FF05::1:3) استفاده شود. تعیین کارگزار اجباری است مگر در مواردی که گزینه -l برای تعیین یک رابط شبکه مشخص شده باشد، که در این حالت مقدار پیش‌فرض آن all خواهد بود.

برنامه perfdhcp می‌تواند خطاهای زیر را در تبادل بسته‌ها گزارش دهد:

پیامی دریافت شده که بسیار کوتاه است.
پیامی دریافت شده که با هیچ‌کدام از پیام‌های ارسالی به کارگزار مطابقت ندارد (یعنی پیامی تکراری است، پیامی است که پس از تاخیری بیش از حد رسیده، یا پیامی است که ناشناخته است).
هنگام ارسال پیام، به محدودیت‌های سامانه محلی برخورد شده است.

برنامه perfdhcp با یکی از کدهای وضعیت زیر خارج می‌شود:

0
موفقیت‌آمیز.
1
خطای عمومی.
2
خطا در آرگومان‌های خط فرمان.
3
بدون خطای عمومی در عملکرد، اما یک یا چند تبادل ناموفق بوده‌اند.

در اینجا مثالی آورده شده است که ترافیک عادی DHCPv4 مربوط به ۱۰۰ دستگاه DHCPv4 (-R 100) را با نرخ ۱۰ بسته در ثانیه (-r 10) شبیه‌سازی می‌کند، جزئیات نرخ پرس‌وجو/پاسخ را نمایش می‌دهد (-xi)، هر ۲ ثانیه یک گزارش نشان می‌دهد (-t 2)، و بسته‌ها را به نشانی IP 192.0.2.1 ارسال می‌کند:

sudo perfdhcp -xi -t 2 -r 10 -R 100 192.0.2.1

در اینجا حالتی مشابه اما برای DHCPv6 آورده شده است. توجه داشته باشید که پروتکل DHCPv6 از نشانی‌های محلی پیوند (link-local) استفاده می‌کند، بنابراین رابط شبکه‌ای (در این مثال eth0) که ترافیک باید روی آن ارسال شود، باید مشخص گردد. مقدار all یک نام مستعار مناسب برای All_DHCP_Relay_Agents_and_Servers (نشانی چندپخشی FF02::1:2) است. همچنین می‌توان از نام مستعار servers برای ارجاع به All_DHCP_Servers (نشانی چندپخشی FF05::1:3) استفاده کرد. مقدار پیش‌فرض all است.

sudo perfdhcp -6 -xi -t 1 -r 1 -R 10 -l eth0 all

مثال‌های زیر ترافیک معمول DHCPv4 و DHCPv6 را شبیه‌سازی می‌کنند که پس از ۳ ثانیه، وانمود می‌کند هیچ پاسخی از کارگزار به مدت ۱۰ ثانیه دریافت نکرده است. پروتکل DHCPv4 این موضوع را با یک فیلد secs افزایش‌یافته اعلام می‌کند، در حالی که DHCPv6 از گزینه Elapsed Time استفاده می‌نماید. در شبکه‌های واقعی، این نشان می‌دهد که کلاینت‌ها پاسخ‌ها را به موقع دریافت نمی‌کنند. از این روش می‌توان برای شبیه‌سازی برخی سناریوهای دسترسی‌پذیری بالا (HA) استفاده کرد، زیرا Kea از فیلد secs و مقدار گزینه Elapsed Time به عنوان یکی از شاخص‌های پاسخ ندادن شریک HA استفاده می‌کند. در صورت فعال شدن با -y و -Y، مقادیر secs و Elapsed Time به‌طور پیوسته افزایش می‌یابند.

sudo perfdhcp -xi -t 1 -r 1 -y 10 -Y 3 192.0.2.1
sudo perfdhcp -6 -xi -t 1 -r 1 -y 10 -Y 3 2001:db8::1

نرم‌افزار Kea همراه با یک راهنمای مرجع جامع مدیران Kea عرضه می‌شود که تمام جنبه‌های اجرای نرم‌افزار Kea شامل کامپایل، نصب، پیکربندی، مثال‌های پیکربندی و موارد دیگر را پوشش می‌دهد. همچنین Kea دارای راهنمای پیام‌های Kea است که فهرستی از تمامی پیام‌های قابل چاپ توسط Kea را به همراه توضیح کوتاهی برای هر یک ارائه می‌دهد. هر دو سند در قالب‌های گوناگون (.txt, .html, .pdf) همراه با توزیع Kea در دسترس هستند. مستندات Kea در نشانی https://kea.readthedocs.io موجود است.

کد منبع Kea در راهنمای توسعه‌دهندگان Kea مستند شده است که در نشانی https://reports.kea.isc.org/dev_guide در دسترس قرار دارد.

وب‌سایت پروژه Kea در نشانی https://kea.isc.org در دسترس است.

دو فهرست پستی عمومی برای پروژه Kea در دسترس است. فهرست kea-users (نشانی kea-users در lists.isc.org) برای کاربران Kea در نظر گرفته شده است، در حالی که kea-dev (نشانی kea-dev در lists.isc.org) برای توسعه‌دهندگان Kea، مشارکت‌کنندگان بالقوه و سایر کاربران پیشرفته است. هر دو فهرست در نشانی https://lists.isc.org در دسترس هستند. جامعه کاربری در هر دوی این فهرست‌ها پشتیبانی در حد توان ارائه می‌دهد.

سازمان ISC پشتیبانی حرفه‌ای برای خدمات Kea ارائه می‌دهد. برای جزئیات به https://www.isc.org/kea مراجعه کنید.

ابزار perfdhcp در ابتدا در اکتبر ۲۰۱۱ توسط John DuBois، Francis Dupont و Marcin Siodelski از ISC کدنویسی شد. نگارش Kea 1.0.0 که شامل perfdhcp بود، در دسامبر ۲۰۱۵ منتشر گردید.

kea-dhcp4(8), kea-dhcp6(8), kea-dhcp-ddns(8), kea-admin(8), kea-netconf(8), keactrl(8), kea-lfc(8), راهنمای مرجع مدیران Kea.

Internet Systems Consortium

2019-2026, Internet Systems Consortium

July 9, 2026 3.2.0