14.4. マルチホーム DHCP サーバーの設定
マルチホーム
DHCP
サーバーは、複数のネットワーク、つまり複数のサブネットを提供します。このセクションの例では、複数のネットワークを提供するように DHCP
サーバーを設定する方法、リッスンするネットワークインターフェイスを選択する方法、およびネットワークを移動するシステムのネットワーク設定を定義する方法について詳しく説明します。
変更を行う前に、既存の
/etc/dhcp/dhcpd.conf
ファイルをバックアップします。
DHCP
デーモンは、/etc/dhcp/dhcpd.conf
ファイルで subnet 宣言を見つけるインターフェイスのみをリッスンします。
以下は、2 つのネットワークインターフェイスを持つサーバーの基本的な
/etc/dhcp/dhcpd.conf
ファイルです。enp1s0 10.0.0.0/24
ネットワーク enp2s0 172.16.0.0/24
ネットワークで。複数の subnet
宣言を使用すると、複数のネットワークに異なる設定を定義できます。
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; }
-
subnet 10.0.0.0 netmask 255.255.255.0 ;
DHCP
サーバーが提供しているネットワークごとに、subnet
宣言が必要です。複数のサブネットには複数のsubnet
宣言が必要です。DHCP
サーバーにsubnet
宣言の範囲内のネットワークインターフェイスがない場合、DHCP
サーバーはそのネットワークを提供しません。subnet
宣言が 1 つしかなく、そのサブネットの範囲内にネットワークインターフェイスがない場合、DHCP
デーモンは起動に失敗し、以下のようなエラーが/var/log/messages
に記録されます。dhcpd: No subnet declaration for enp1s0 (0.0.0.0). dhcpd: ** Ignoring requests on enp1s0. If this is not what dhcpd: you want, please write a subnet declaration dhcpd: in your dhcpd.conf file for the network segment dhcpd: to which interface enp2s0 is attached. ** dhcpd: dhcpd: dhcpd: Not configured to listen on any interfaces!
-
option subnet-mask 255.255.255.0;
option subnet-mask
オプションは、サブネットマスクを定義し、subnet
宣言のnetmask
値を上書きします。簡単なケースでは、サブネットとネットマスクの値は同じです。-
option routers 10.0.0.1;
option routers
オプションは、サブネットのデフォルトゲートウェイを定義します。これは、システムが異なるサブネット上の内部ネットワーク、さらには外部ネットワークに届くために必要です。-
range 10.0.0.5 10.0.0. 15;
range
オプションは、利用可能なIP
アドレスのプールを指定します。システムには、指定されたIP
アドレスの範囲からアドレスが割り当てられます。
詳細は、
dhcpd.conf (5)
の man ページを参照してください。
警告
DHCP サーバーが IP 範囲からの IP アドレスを別の物理 Ethernet セグメントにした場合に設定の間違いを回避するため、共有ネットワーク宣言にこれ以上サブネットを含めいないようにしてください。
14.4.1. ホストの設定
変更を行う前に、既存の
/etc/sysconfig/dhcpd
ファイルおよび /etc/dhcp/dhcpd.conf
ファイルをバックアップします。
複数ネットワークに対する単一システムの設定
以下の /etc/dhcp/dhcpd.conf
の例では、2 つのサブネットを作成し、接続先のネットワークに応じて、同じシステムの IP
アドレスを設定します。
default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; } host example0 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 10.0.0.20; } host example1 { hardware ethernet 00:1A:6B:6A:2E:0B; fixed-address 172.16.0.20; }
-
host example0
host
宣言は、IP
アドレスなどの単一システムの特定のパラメーターを定義します。複数のホストに特定のパラメーターを設定するには、複数のhost
宣言を使用します。ほとんどのDHCP
クライアントはhost
宣言の名前を無視し、この名前は他のhost
宣言に固有である限り、任意の名前にすることができます。複数のネットワークに同じシステムを設定するには、host
宣言ごとに異なる名前を使用します。そうしないと、DHCP
デーモンが起動に失敗します。システムは、host
宣言の名前ではなく、hardware ethernet
オプションで識別されます。-
hardware ethernet 00:1A:6B:6A:2E:0B;
hardware ethernet
オプションは、システムを識別します。このアドレスを見つけるには、ip link コマンドを実行します。-
fixed-address 10.0.0.20;
fixed-address
オプションは、hardware ethernet
オプションで指定したシステムに有効なIP
アドレスを割り当てます。このアドレスは、range
オプションで指定したIP
アドレスプール外でなければなりません。
option
ステートメントがセミコロンで終了しない場合、DHCP
デーモンは起動に失敗し、以下のようなエラーが /var/log/messages
に記録されます。
/etc/dhcp/dhcpd.conf line 20: semicolon expected. dhcpd: } dhcpd: ^ dhcpd: /etc/dhcp/dhcpd.conf line 38: unexpected end of file dhcpd: dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
複数のネットワークインターフェイスを持つシステムの設定
以下の host
宣言は、複数のネットワークインターフェイスを持つ単一のシステムを設定し、各インターフェイスが同じ IP
アドレスを受け取るようにします。両方のネットワークインターフェイスが同じネットワークに同時に接続されている場合には、この設定は機能しません。
host interface0 { hardware ethernet 00:1a:6b:6a:2e:0b; fixed-address 10.0.0.18; } host interface1 { hardware ethernet 00:1A:6B:6A:27:3A; fixed-address 10.0.0.18; }
この例では、
interface0
は最初のネットワークインターフェイスで、interface1
は 2 番目のインターフェイスです。異なる hardware ethernet
オプションは、各インターフェイスを識別します。
このようなシステムが別のネットワークに接続する場合は、
host
宣言をさらに追加します。以下の点に留意してください。
- ホストが接続しているネットワークに有効な
fixed-address
を割り当てます。 host
宣言の名前を一意にします。
host
宣言で指定された名前が一意でない場合、DHCP
デーモンは起動に失敗し、以下のようなエラーが /var/log/messages
に記録されます。
dhcpd: /etc/dhcp/dhcpd.conf line 31: host interface0: already exists dhcpd: } dhcpd: ^ dhcpd: Configuration file errors encountered -- exiting
このエラーは、
/etc/dhcp/dhcpd.conf
に複数の host interface0
宣言が定義されているために生じました。