🦁

ヤマハルーター(RTX1300)でDHCPの固定割当(予約アドレス)を設定する

2024/06/06に公開

10Gの固定IP回線の為にRTX1300を購入したので、せっかくなのでいろいろな設定を試してみます。DHCPIP環境を用意してやることと言えばポート開放(ヤマハルーターだと静的IPマスカレードの設定)だと思います。
ただ、ポート開放する為には開放する対象PCのIPを固定にしないといけません。
PC側の設定でDHCPではなくIPを指定しても良いのですが、今回はPC側はDHCP設定で、かつルーター側の設定でDHCPで払い出すIPが固定になるようにしてみます。
このMACアドレスのデバイスにはこのIPを払い出すといった設定ですね。

今回やりたいこと

  • DHCPで払い出すIPが固定になるように予約する
    このMACアドレスのデバイスにはこのIPといった設定
  • 予約していないデバイスには自動で範囲内のIPを払い出す
    固定にするのは一部のデバイスのみ
  • 予約で利用するIP帯域と自動で利用するIP帯域は分ける
    172.16.123.2~63までは予約用で、172.16.123.64~191を自動払い出しに利用する
    ★↑これが今回の記事のメイン。他は調べれば出てくるので。

今回の設定ではコマンドでしか設定できない内容が含まれますので、そこはコマンドで設定します。
ただし、WebのGUIで設定可能な内容についてはなるべくGUIを利用する手順としています。

まずはMACアドレスで制御できるように設定する

「このMACアドレスのデバイスにはこのIP」と設定したいのですが、デフォルトの設定ではMACアドレスよりClient Identifierという識別子が優先して判定に使われるようになっているので、この設定をOFFにしてしまいます。
(OFFにしなくてもMACアドレスを判定に利用する方法もあるようなのですが、自分はこの方法を採用しました。

下記コマンドを実行します。

dhcp server rfc2131 compliant except use-clientid

払い出すIPの予約の仕方

予約は簡単で、下記コマンドを実行するだけです。(IPとMACアドレスのペアを登録する。
aa:aa:aa:aa:aa:aaはMACアドレス

dhcp scope bind 1 172.16.123.2 aa:aa:aa:aa:aa:aa

ただし、このコマンドはDHCPサーバー設定の識別番号1の割り当てに対して実行することになるのですが、割り当ての範囲内のIPを指定しないとエラーになります。
つまり、DHCPの割り当て範囲を172.16.123.64~191(63までは固定の予約で利用するので64以降を自動払い出しに使用)と設定していると、172.16.123.2の予約は出来ないということになります。
もちろん、172.16.23.64などであれば成功します。

ならDHCPの割り当て範囲を172.16.123.2~191にすれば良いのでは?と思うかもしれませんが、これだと予約する前にデバイスをルーターに繋ぐと172.16.123.2が自動で使われてしまうんですよね。
なので、予約に使う範囲は自動で使われないようにしておきたい。

というわけで、以降はその為の設定になります。

DHCPによるアドレス割り当てを予約と自動の2つに分けて用意する

まずはGUIのDHCPサーバー設定で予約と自動の2つのIP範囲を分けて登録します。

  • 識別番号1: 172.16.123.2 - 172.16.123.63
  • 識別番号2: 172.16.123.64 - 172.16.123.191

ただしこれだけだと結局172.16.123.2は自動で利用されてしまうので、コマンドで追加の設定をしてあげます。

DHCP割り当てを予約専用(bind-only)にする設定

識別番号1は予約でのみ利用したいので、下記コマンドを実行します。

dhcp scope lease type 1 bind-only fallback=2

これは、「識別番号1は予約専用(bind-only)で、予約されていないものは識別番号2を参照してね」という設定になります。

これで、

  • 識別番号1の範囲内で予約の設定が可能
  • 予約されていないMACアドレスのデバイスには識別番号2の範囲内で自動払い出し

と動作することになります。

これで無事にやりたいことが実現できました!

Discussion