দেখা যাচ্ছে যে আমার তিনটি জিনিস করা দরকার ছিল। চূড়ান্ত /etc/dhcpd.conf
ফাইলটি থেকে এখানে কিছু স্নিপ দেওয়া হল :
class "virtual-hosts"
{
match if substring(binary-to-ascii(16,8,":",hardware),2,7) = "0:50:56";
log(info, "Hit for class virtual-hosts");
}
subnet XXX.YYY.22.0 netmask 255.255.254.0
{
}
subnet XXX.YYY.24.0 netmask 255.255.255.0
{
option routers XXX.YYY.24.254;
option domain-name-servers XXX.YYY.22.168, XXX.YYY.22.169;
option ntp-servers XXX.YYY.22.168,XXX.YYY.22.169;
default-lease-time 86400; # 1 day
max-lease-time 604800; # 7 days
use-host-decl-names on;
allow unknown-clients;
option domain-name "example.com sub1.example.com sub2.example.com";
next-server XXX.YYY.22.159;
filename "pxelinux.0";
pool
{
allow members of "virtual-hosts";
get-lease-hostnames true;
one-lease-per-client true;
ping-check true;
range XXX.YYY.24.11 XXX.YYY.24.60;
}
}
প্রথমে class
বিবৃতিতে সেই কুৎসিত স্ট্রিং ম্যাচটি দেখুন । বাইনারি মানhardware
'র প্রথম উপাদান হার্ডওয়্যার প্রকার এবং দ্বিতীয় উপাদান ঠিকানা। আমি চালানোর আছে hardware
মাধ্যমে binary-to-ascii
এটি একটি সন্ধানযোগ্য পংক্তি পরিণত, এবং তারপর সাবস্ট্রিং মেলে। substring
ম্যাচ 2 আরম্ভ করা হয় এড়াতে 1:
যে binary-to-string
হার্ডওয়্যার টাইপ জন্য লিখেছেন। এবং, substring
ম্যাচটি কেবলমাত্র 7 টি অক্ষর দীর্ঘ কারণ binary-to-string
কেবল 16 এর চেয়ে কম বাইনারি মানগুলির জন্য একটি একক সংখ্যা ব্যবহার করে।
দ্বিতীয়ত, আমাকে dhcpd এমনকি একটি অনির্ধারিত হার্ডওয়্যার ঠিকানার সাথে মেলে চেষ্টা করার আগে allow unknown-clients;
কোথাও ঘোষণা করতে হবে। অন্যথায়, আমাকে একটি host{}
বিবৃতিতে পরিষ্কারভাবে পুরো ম্যাক ঠিকানাটি সংজ্ঞায়িত করতে হবে । তবে, আমি allow unknown-clients;
নিজে পুলটিতে চাই না, কারণ এটি সীমাবদ্ধ ...
তৃতীয়ত, allow members of "virtual-hosts";
পুলের বিবৃতিতে ঘোষণা ।
সুতরাং, সমাধানটি সাব-স্টেটমেন্টে সীমাবদ্ধ রাখার জন্য, বিবৃতিতে binary-to-text
অজানা ক্লায়েন্টদের সঠিক বিশদকরণ এবং মঞ্জুরি দেওয়ার ক্ষেত্রে নেমে আসে ।subnet
pool