Ubuntu DHCP サーバーの DHCP プールが正しく動作しない

Ubuntu DHCP サーバーの DHCP プールが正しく動作しない

「55:a3」と「56:2a」で終わるMacアドレスも最後のプールに入ります。

123    match if binary-to-ascii(16,8,":",substring(hardware, 5, 6)) = "55:a3";                                                                                                                                                                
124 }                                                                                                                                                                                                                                         
125                                                                                                                                                                                                                                           
126 class "esx67" {                                                                                                                                                                                                                           
127    match if binary-to-ascii(16,8,":",substring(hardware, 5, 6)) = "56:2a";                                                                                                                                                                
128 }                                                                                                                                                                                                                                         
129                                                                                                                                                                                                                                           
130 shared-network 20-30 {                                                                                                                                                                                                                    
131    subnet 20.30.0.0 netmask 255.255.0.0 {                                                                                                                                                                                                 
132       option domain-name "nsbucqesystem.test";                                                                                                                                                                                            
133       option domain-name-servers 20.30.0.1;                                                                                                                                                                                               
134       option routers 20.30.0.1;                                                                                                                                                                                                           
135       default-lease-time 2592000;                                                                                                                                                                                                         
136       max-lease-time 2592000;                                                                                                                                                                                                             
137       ping-check true;                                                                                                                                                                                                                    
138    }                                                                                                                                                                                                                                      
139    pool {                                                                                                                                                                                                                                 
140       allow members of "esx65";                                                                                                                                                                                                           
141       range 20.30.1.1 20.30.1.254;                                                                                                                                                                                                        
142    }                                                                                                                                                                                                                                      
143    pool {                                                                                                                                                                                                                                 
144       allow members of "esx67";                                                                                                                                                                                                           
145       range 20.30.2.1 20.30.2.254;                                                                                                                                                                                                        
146    }                                                                                                                                                                                                                                      
147    pool {                                                                                                                                                                                                                                 
148       deny members of "esx67";                                                                                                                                                                                                            
149       deny members of "esx65";                                                                                                                                                                                                            
150       range 20.30.3.1 20.30.254.254;                                                                                                                                                                                                      
151    }                                                                                                                                                                                                                                      
152 }   

その設定のエラーを指摘できる人はいますか

答え1

問題はフィルターの使用にありますhardware

ドキュメントには次のように記載されています:

ハードウェア演算子はデータ文字列を返す最初の要素は、検討中のパケットで示されるネットワークインターフェースの種類であり、後続の要素はクライアントのリンク層アドレスである。パケットがない場合、または RFC2131 hlen フィールドが無効な場合、結果は null になります。ハードウェア タイプには、イーサネット (1)、トークン リング (6)、および fddi (8) があります。ハードウェア タイプは IETF によって指定されており、タイプ番号の定義方法の詳細は RFC2131 に記載されています (ISC DHCP ディストリビューションでは、doc/ サブディレクトリに含まれています)。

つまり、hardware, 5, 6予想どおり MAC アドレスの 5 番目と 6 番目のオクテットは返されませんが、最初の要素がタイプ (イーサネットなので 0x01) になるため、4 番目と 5 番目のオクテットが返されます。

関連情報