web-dev-qa-db-ja.com

特定のMACプレフィックスにDHCP IPを割り当てる

複数のサブネットにサービスを提供しているネットワークでISC DHCPdサーバーを実行しています。私がやりたいことの1つは、共通のMACプレフィックス(例:00:01:02)を持つホストに特定の範囲のIPを割り当てることです。また、割り当ては、固定アドレスの割り当てによって上書きできる必要があります。私はそれをググってみましたが、決定的なものを見つけていません。

Dhcpd.confのサブネットスタンザ内にステートメントを配置できる場合のボーナス(それは私の管理ソフトウェアに適しています)。

6
Jon Bailey

私のシステム(debian lenny)では、mac-addressと一致させるために、binary-to-asciiが必要です。私のdhcpd.confからのこの(動作する)例では、server247はクラス「ローカル」にありますが、プールにはない固定アドレスを指定しています。固定アドレスは、動的に割り当てられたアドレスとは別の範囲にすることをお勧めします(同じサブネット内に存在することもできます)。

class "kvm" {
   match if binary-to-ascii(16,8,":",substring(hardware, 1, 2)) = "56:11";
}

class "local" {
   match if binary-to-ascii(16,8,":",substring(hardware, 1, 2)) = "52:54";
}

Host meme {
 fixed-address 10.1.0.254;
}

Host server247 {
  hardware ethernet 52:54:00:2f:ea:07;
  fixed-address 10.1.0.247;
}

subnet 10.1.0.224 netmask 255.255.255.224 {
  option routers 10.1.0.225;
  pool {
     allow members of "kvm";
     range 10.1.0.226 10.1.0.235;
  }
  pool {
     allow members of "local";
     range 10.1.0.236 10.1.0.240;
  }
  pool {
     # Don't use this pool. It is really just a range to reserve
     # for fixed addresses defined per Host, above.
     allow known-clients;
     range 10.1.0.241 10.1.0.253;
  }
}

あなたの例では、あなたはそうするでしょう:

match if binary-to-ascii(16,8,":",substring(hardware, 1, 3)) = "00:01:02";
7
Gregor

このようなもの:

class "specialK" {
    match if substring (hardware, 1, 3) = 00:01:02;
}
subnet 10.0.0.0 netmask 255.255.255.0 {
    pool {
        range 10.0.0.16 10.0.0.32;
        allow members of "specialK";
    }
}

うーん、それは(ハードウェア、0、2)または(.. 1、3)であるはずですが、テストしてください。 :)

14
toppledwagon