私は少し研究をしました。
最初に学んだことは、MACアドレス以外の基準に基づいてDHCPリースを割り当てることができるということです。
dhcp FAQから:
クライアントIDとは何ですか?
DHCPプロトコルの目的でクライアントIDと呼ばれるものは、クライアントコンピューターを識別するためにプロトコルで使用されるものです。デフォルトでは、DHCP実装は通常、この目的のためにクライアントのMACアドレスを使用しますが、DHCPプロトコルは他のオプションを許可します。一部のDHCP実装には、必要なクライアントIDを指定するセットアップオプションがあります。MACアドレスの1つの代替手段は、選択した文字列です。いずれにせよ、DHCPが機能するためには、選択したクライアントIDを他のクライアントが使用していないことを確認する必要があり、DHCPサーバーがそれを受け入れることを確認する必要があります。
その後、明らかにopenWRTのluci Webインターフェースではサポートされていませんが、dnsmasq自体はclient_idと複数のMACアドレスをサポートしています(注意が必要です)。
dnsmasqのmanページから:
-G、--dhcp-host = [hwaddr] [、id:client_id | *] [、set:tag] [、ipaddr] [、hostname] [、lease_time] [、ignore] DHCPサーバーのホストごとのパラメーターを指定します。これにより、特定のハードウェアアドレスを持つマシンに常に同じホスト名、IPアドレス、およびリース時間を割り当てることができます。このように指定されたホスト名は、マシン上のDHCPクライアントによって提供されたホスト名よりも優先されます。ハードウェアアドレスを省略してホスト名を含めることもできます。この場合、IPアドレスとリース時間は、その名前を要求するすべてのマシンに適用されます。たとえば、-dhcp-host = 00:20:e0:3b:13:af、wap、infiniteは、ハードウェアアドレス00:20:e0:3b:13:afを持つマシンにwapという名前と無限の名前を与えるようにdnsmasqに指示しますDHCPリース。--dhcp-host = lap、192.168.0.199は、マシンラップに常にIPアドレス192.168.0.199を割り当てるようにdnsmasqに指示します。
(...)
「id:」を前に付けることで、ハードウェアアドレスではなくクライアント識別子を使用してホストを識別することができます。したがって、--dhcp-host = id:01:02:03:04、.....は、クライアント識別子01:02:03:04のホストを指します。次のように、クライアントIDをテキストとして指定することもできます。--dhcp-host = id:clientidastext、.....
(...)
特別な場合として、複数のハードウェアアドレスを含めることができます。例:--dhcp-host = 11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2これにより、IPアドレスを複数のハードウェアアドレスに関連付けることができ、dnsmasq権限が付与されます。別のハードウェアアドレスがリースを要求したときに、いずれかのハードウェアアドレスへのDHCPリースを放棄する。これは危険なことであることに注意してください。ハードウェアアドレスの1つだけが常にアクティブであり、dnsmasqがこれを強制する方法がない場合にのみ、確実に動作します。たとえば、有線と無線の両方のインターフェースを持つラップトップに安定したIPアドレスを割り当てると便利です。
マルチMacソリューションを選択しました(クライアント側でクライアントIDを指定する方法を見つけようとしなかったため、個別のクライアントごとに行う必要があり、マルチMacの代替は家の中のすべての携帯用の1つのソリューション。)
luciインターフェースを回避し、次の行を/etc/dnsmasq.confに直接追加しました。
dhcp-hostsfile = / etc / dnsmasq-dhcphosts.conf
/etc/dnsmasq-dhcphosts.confには、次の形式の行が含まれています。
mac1、mac2、ip
(次の更新で上書きされないように、この構成を別のファイルに保存します。)
正常に動作します。