VyOSでDHCPを設定する

 

VyOSでDHCPサーバを動作させるのに必要な設定

  • インタフェースにIPアドレスの設定を行う
  • サブネットIDを指定する
  • アドレスプールのスタートアドレスを定義する
  • アドレスプールのストップアドレスを定義する
  • DHCPでのリース期間を定義する(任意)

CiscoではサブネットIDの指定及び、スタート/ストップアドレスの指定は必須ではないですが、VyOSではこれらが必須となっており、設定しなくてもcommitできますが動作しませんのでご注意ください。

それぞれ設定に使用するコマンドはこちらです。(インタフェースへのIPアドレス設定は基礎なため省略します)

設定項目 コマンド例
サブネットIDを指定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> subnet-id <サブネットID>
アドレスプールのスタートアドレスを指定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> range <range名> start <スタートアドレス>
アドレスプールのストップアドレスを指定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> range <range名> stop <ストップアドレス>
リース期間を設定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> lease <リース期間(秒)>

では、下記の設定例で使用するコマンドを記述します

DHCPサーバを構築する。LAN側IPアドレスは192.168.10.254とする。アドレスプールの範囲は192.168.10.10〜192.168.10.100とし、その他設定は任意とする。

コマンド

set interfaces ethernet eth1 address 192.168.10.254/24
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 subnet-id 10
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 lease 84200
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 range LAN1 start 192.168.10.10
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 range LAN1 stop 192.168.10.100
commit
  

解説

  • 1行目:サブネットIDを指定します。こちらの番号は任意です。
  • 2行目:リース期間を設定します。こちらの値は任意ですが、秒単位で指定する必要があります。
  • 3行目:開始アドレスを指定します。
  • 4行目:終了アドレスを指定します。
  • 全コマンドでネットワーク名を指定しています。こちらは任意の文字列で問題ありませんが、これらは同一アドレスプールであれば統一する必要があります。
  • また、少し落とし穴として、rangeでrange名を指定する点です。こちらのrange名は任意の文字列ですが、startとstopで同一のものを使用する必要がありますので注意が必要です。

拡張

DHCPサーバで配布できる情報を増やします

  • DNSサーバのIPアドレス
  • デフォルトゲートウェイのIPアドレス(DHCPリレーエージェントを使用する環境で必要)
設定項目 コマンド例
DNSサーバを指定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> option name-server <DNSサーバ>
デフォルトゲートウェイを設定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> option default-router <デフォルトゲートウェイIPアドレス>

今まで使っていなかった項目の、optionというサブコマンドを使用します。optionを入力後、「?」を入力してみると、他にも様々なものを設定できることが確認できます。基本的にDHCPサーバで配布する情報を増やすためにはoptionサブコマンドを使用します。

また、DHCPサーバで配布するアドレスの範囲を指定する際、Ciscoでは先にサブネットを指定し、その後excluded-addressコマンドで除外範囲を指定する、といった設定方法でした。

VyOSでは、先程のrangeサブコマンドで配布する開始アドレス及び終了アドレスを指定することで配布範囲を制限しますが、その中でも特定のアドレスを配布外としたい場合、下記のコマンドを使用して、除外アドレスを指定します。

設定項目 コマンド例
除外アドレスを指定する set service dhcp-server shared-network-name <ネットワーク名> subnet <ネットワークアドレス>/<プレフィックス> exclude <除外アドレス>

こちらのコマンドでは単一のIPアドレスしか指定できないため注意が必要です。

また、DHCPリレーエージェントをVyOSでも動作させることができ、次の設定項目を設定する必要があります:

  • クライアントがいるサブネットのインタフェースを指定する
  • DHCPサーバがいるサブネットのインタフェースを指定する
  • DHCPサーバのIPアドレスを指定する
設定項目 コマンド例
クライアント側インタフェースを指定する set service dhcp-relay listen-interface <インタフェース>
DHCPサーバ側のインタフェースを指定する set service dhcp-relay upstream-interface <インタフェース>
DHCPサーバのIPアドレスを指定する set service dhcp-relay server <DHCPサーバ>

今までDHCPの設定を行う際には、コマンドでservice dhcp-serverを指定していましたが、今回はdhcp-relayという別のサービスを使用することとなります。

また、リレーエージェントの設定をする際、DHCPサーバ側にも新たな落とし穴があります。

最初の方に説明した、DHCPサーバへのインタフェース設定について、VyOSではアドレスプールのネットワークのアドレスを自身が所有している必要があります。

アドレスプール192.168.0.0/24を所有するなら、インタフェースに192.168.0.254などのアドレスを持っている必要があります。

ですが、リレーエージェントを動作させる環境なのであれば、通常クライアントとは異なるサブネットにDHCPサーバが設定されます。

そこで、DHCPサーバ側に、どのインタフェースからDHCPディスカバパケットを受信するのかといったことを教えてあげる必要があります。

設定項目 コマンド例
DHCPサーバにどのインタフェースからDHCPディスカバパケットを受け取るのかを指示する set service dhcp-server listen-address <自インタフェースのIPアドレス>

注意が必要な点としては、インタフェースを指定するのではなく、インタフェースに設定されているIPアドレスを指定する必要があるという点です。

では次の例で使用するコマンドを紹介します。

DHCPサーバを構築する。DHCPサーバはeth1に10.0.0.1/24を持ち、DHCPリレーエージェントはeth1に10.0.0.2/24、eth2に192.168.10.254を持つとする。アドレスプールの範囲は192.168.10.10~192.168.10.100とし、デフォルトゲートウェイの配布も行う。

コマンド

<DHCPサーバ>
set interfaces ethernet eth1 address 10.0.0.1/24
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 subnet-id 10
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 option default-router 192.168.10.254
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 range LAN1 start 192.168.10.10
set service dhcp-server shared-network-name LAN1 subnet 192.168.10.0/24 range LAN1 stop 192.168.10.100
set service dhcp-server listen-address 10.0.0.1
commit

<リレーエージェント>
set interfaces ethernet eth1 address 192.168.10.254/24
set interfaces ethernet eth2 address 10.0.0.2/24
set service dhcp-relay listen-interface eth1
set service dhcp-relay upstream-interface eth2
set service dhcp-relay server 10.0.0.1
commit
  

解説

<DHCPサーバ>

  • 3行目:リレーエージェントを使用する環境で、デフォルトゲートウェイの配布を行わないと、クライアントにはデフォルトゲートウェイの設定が行われませんので、必須となります。
  • 6行目:リレーエージェントを使用する環境で必須となります。こちらがないとcommitができませんので注意が必要です。

<リレーエージェント>

  • 4、5行目:Ciscoにはない設定な上、最近のバージョンで必要になったそうですので、注意が必要です。

 

 

以上、VyOSでのDHCP設定でした。



お疲れ様でした