YAMAHA RTXでDHCP固定割当する際の落とし穴
code:command
dhcp scope bind 1 <固定したいIPアドレス> <IPアドレスを固定したい機器のMACアドレス>
しかしなぜかうまく割り当てられなかった
リース情報を消してもダメ、つなぎ直してもダメ、DHCP再要求してもダメ
調べたところこの記事が見つかった
YAMAHAルータの中ではuse-clientid 機能という
RFCで定義されてる動作なのでYAMAHA製ルータ以外でも実装されている可能性アリ
解決策1:use-clientid 機能を無効にしてしまう
code:command
dhcp server rfc2131 compliant except use-clientid
このコマンドを実行したあと、冒頭のコマンドを実行すればOK
use-clientid 機能が有効になっていることのメリットは少ないようなので、これでもアリ
code:command
dhcp scope bind 1 <固定したいIPアドレス> <クライアントID>
クライアントIDを知る必要がある
クライアントIDの中身に詳しいのはこのブログ
要点を抜粋すると
実際の DHCP クライアントは、ほとんどがクライアント ID として「0x01 + MAC アドレス」を指定してくる
先頭の 0x01 は種別が MAC アドレスだという意味で、事実上 MAC アドレスで識別しているのと変わらない
macOS ではネットワーク設定画面から簡単にこのクライアント ID を任意の値に設定できる
同一セグメント内で「クライアント ID」が重複するように設定できてしまう
解決策3:type ethernet を指定する方法
code:command
dhcp scope bind 1 192.168.0.2 ethernet <MACアドレス>
type ethernet を明示することで、もしクライアント ID が送られてくる場合であっても MAC アドレスによる固定割当ができる