10.3. DHCP リレーエージェント

DHCP リレーエージェント (dhcrelay) を使うと、DHCP サーバーがないサブネットから他のサブネットにある DHCP サーバーに DHCP および BOOTP リクエストのリレーができるようになります。
DHCP クライアントが情報を要求すると、DHCP リレーエージェントは起動時に、指定された DHCP サーバーの一覧に要求を転送します。DHCP サーバーが応答を返すと、その応答は元の要求を送信したネットワーク上でブロードキャストまたはユニキャストで送信されます。
IPv4 用の DHCP リレーエージェントである dhcrelay は、インターフェースが /etc/sysconfig/dhcrelay 内で INTERFACES ディレクティブを使って指定されている場合を除いて、DHCPv4 および BOOTP リクエストをリッスンします。これについては、「dhcrelay の DHCPv4 および BOOTP リレーエージェントとしての設定」 を参照してください。IPv6 用の DHCP リレーエージェントである dhcrelay6 にはこのデフォルトの動作はないので、DHCPv6 リクエストをリッスンするインターフェースを指定する必要があります。これについては、「dhcrelay の DHCPv6 リレーエージェントとしての設定」 を参照してください。
dhcrelay は、DHCPv4 および BOOTP リレーエージェント (デフォルト) として実行するか、DHCPv6 リレーエージェント (-6 引数を使用) として実行することができます。使用法に関するメッセージを表示するには、dhcrelay -h コマンドを実行します。

10.3.1. dhcrelay の DHCPv4 および BOOTP リレーエージェントとしての設定

dhcrelayDHCPv4 および BOOTP モードで実行するには、リクエストを転送するサーバーを指定します。rootdhcrelay.service ファイルをコピーして、編集します。
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
~]# vi /etc/systemd/system/dhcrelay.service
[Service] セクション下にある ExecStart オプションを編集し、サーバー IPv4 のアドレスを行末に追加します。例を示します。
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1
DHCP リレーエージェントが DHCP リクエストをリッスンするインターフェースを指定するには、そのインターフェースを -i 引数をつけて ExecStart オプションに追加します (これがない場合は、すべてのインターフェースをリッスンすることになります)。例を示します。
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.1.1 -i em1
他のオプションについては、dhcrelay(8) man ページを参照してください。
変更を反映させるには、root でサービスを再起動します。
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay

10.3.2. dhcrelay の DHCPv6 リレーエージェントとしての設定

dhcrelayDHCPv6 モードで実行するには、-6 引数をつけて (クライアントまたは他のリレーエージェントからクエリーを受信する) 下方インターフェース と(クライアントおよび他のリレーエージェントからのクエリーの転送先となる) 上方インターフェース を指定します。rootdhcrelay.servicedhcrelay6.service にコピーして、編集します。
~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/dhcrelay6.service
~]# vi /etc/systemd/system/dhcrelay6.service
[Service] セクション下の ExecStart オプションを編集し、-6 引数をつけて 下方インターフェース上方インターフェース を追加します。例を示します。
ExecStart=/usr/sbin/dhcrelay -d --no-pid -6 -l em1 -u em2
他のオプションについては、dhcrelay(8) man ページを参照してください。
変更を反映させるには、root でサービスを再起動します。
~]# systemctl --system daemon-reload
~]# systemctl restart dhcrelay6