自作クラスタ計算機:kea_dhcpの基本設定
This is an old revision of the document!
概要
管理ノードをルータ兼DHCPサーバーにして、スイッチングハブを介したプライベートLANを構成します。
- ルータは、インターネットとプライベートLANを仲介する役割をします。
- DHCPサーバーは、プライベートLAN内のコンピュータにプライベートIPアドレスを割り振るサーバーのことです
- 計算ノードのMACアドレスをもとに、固定のプライベートIPアドレスを割り振るようにします
- DHCPを使わなくてもプライベートネットワークを構成できますが、それぞれの計算ノードに個別に設定を入力しないといけなくなるので、計算ノードのOS入れ替え時やネットワーク設定の変更時に不便です
- 作業の前に、管理ノードと計算ノードをそれぞれLANケーブルを使ってスイッチングハブに接続してください
以下では計算ノードが使用するDNSサーバのIPアドレスを次のものにします。 具体的なDNSサーバのIPアドレスは、研究室設置であれば大学のネットワーク管理者に問い合わせる、自宅設置であればインターネットサービスプロバイダの契約書を見る、などして確認してください。
- DNSサーバ … aaa.aaa.aaa.aaa および bbb.bbb.bbb.bbb
設定手順
計算ノードでの作業
- 計算ノードのLANケーブルがささっているポートのデバイス名とMACアドレスを調べて記録しておきます
$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp96s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether ac:1f:6b:bc:93:8a brd ff:ff:ff:ff:ff:ff 3: enp96s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether ac:1f:6b:bc:93:8b brd ff:ff:ff:ff:ff:ff- この場合はスイッチングハブにつながっているLANポートのデバイス名がenp96s0f0で、MACアドレスが ac:1f:6b:bc:93:8a です。
- MACアドレスはメーカーが出荷時にネットワーク機器ごとに設定しているものであり、OSを再インストールしようとも永久に変わることはありません(変更できるようにしてあるものも稀にあります)
- Netplanの設定ファイルを編集し、DHCPサーバからIPアドレスを受け取れるようにします。
$ sudo nano /etc/netplan/50-cloud-init.yaml
- 99-netcfg.yaml
# This is the network config written by 'subiquity' network: ethernets: eno1np0: dhcp4: true dhcp6: true optional: true dhcp-identifier: mac match: macaddress: 3c:ec:ef:1f:72:84 set-name: eno1np0 eno2np1: optional: true accept-ra: true version: 2
- dhcp4: true がなければ追加してください。(デフォルトはfalse)
- trueでDHCPサーバからIPアドレスを受け取れるようになります。
- option: デフォルトのfalseのままだと、サーバー起動時にネットワークにつながるまでOSが立ち上がらなくなります。特に、LANケーブルが繋がってないポートはtrueに設定しておかないと、いつまでたってもOSが起動しなくなります。
- dhcp-identifier: MACアドレスを使ってDHCPサーバーにIPアドレスを要求します
- 設定ファイル名はお使いの環境によります
- Netplanの設定ファイルを読み込みます
$ sudo netplan apply
管理ノードでの作業
IPアドレスを固定
もし管理ノードのIPアドレスを固定していない場合は、プライベートLANのIPアドレスを固定しておきます。 NetplanのプライベートLANのポートの設定で、以下のように設定してください
- dhcp4: false
- addresses: [192.168.0.1/24]
(ファイル名は、お使いの環境のディレクトリ内に用意されているファイルに合わせてください)
$ sudo nano /etc/netplan/50-cloud-init.yaml
- 50-cloud-init.yaml
network: version: 2 renderer: NetworkManager ethernets: enp1s0f1: dhcp4: false dhcp6: false addresses: [192.168.0.1/24]
- Ubuntu Desktop版の場合は renderer: NetworkManager が必要です。Server版の場合はこの行を削除してください。
$ sudo netplan apply
管理ノードを再起動してください。
- 再起動後、IPアドレスが固定されているか確認してください。
$ ip a
インストールと設定
DHCPサーバーの立ち上げに必要なパッケージをインストールします
$ sudo apt install kea-dhcp4-server
- IPv4対応版のみをインストールしました。フルパッケージをインストールしたければ isc-kea をインストールしてください。
DHCPサーバーの設定をしていきます。 設定ファイルは /etc/kea/kea-dhcp4.conf です。 いろいろな項目がありますが、最低限、以下を自分の環境に合わせれて設定すれば十分です
$ sudo nano /etc/kea/kea-dhcp4.conf
- interfaces-config: DHCPサーバのプライベートLAN内におけるポートを指定します
- kea-dhcp4.conf
"interfaces-config": { "interfaces": [ "enp1s0f1" ] },
- option-data: 計算ノードの構成オプションを設定します。特にDNSサーバーの設定をします
- kea-dhcp4.conf
"option-data": [ { "name": "domain-name-servers", "data": "aaa.aaa.aaa.aaa, bbb.bbb.bbb.bbb" }, (略) ]
- subnet4: LANのサブネットを設定します
- dhcpd.conf
"subnet4": [ { "id": 1, "subnet": "192.168.0.0/24", "pools": [ { "pool": "192.168.0.100 - 192.168.0.200" } ], "interface": "enp1s0f1", "option-data": [ { "name": "routers", "data": "192.168.0.1" } ], "reservations": [ { "hw-address": "1a:1b:1c:1d:1e:1f", "ip-address": "192.168.0.10" }, { "hw-address": "2a:2b:2c:2d:2e:2f", "ip-address": "192.168.0.11" }, { "hw-address": "3a:3b:3c:3d:3e:3f", "ip-address": "192.168.0.12" } ] } ],
- subnet: プライベートLANのネットワークアドレスとネットマスク
- pools: プライベートLANに接続された機器に自動で割り当てるIPアドレスの範囲
- 下のreservationsで指定されているものと重複している分は除外されます
- interface: DHCPサーバのプライベートLAN内におけるポートを指定します
- option-data: ここでルーターのプライベートLAN側のIPアドレスを指定します
- ルーターとは、プライベートLANとインターネットを仲介するサーバーのことです。今回は管理ノードがDHCPとルーターの役割を担います。
- reservations: 計算ノードのMACアドレスを使って、割り当てるIPアドレスを指定します。計算ノードの台数分だけ、対応するMACアドレスと割り当てたいプライベートIPアドレスを入力
- 予約しているIPアドレスがサブネット外のものだとエラーになります。デフォルトで例がいろいろ書かれていますので、使わないやつはコメントアウトするか削除しておきましょう。
- 設定が終わったらDHCPサーバーを再起動します
$ sudo systemctl restart kea-dhcp4-server
- 正しく設定されてstatusがactiveになっていることを確認します
$ sudo systemctl status kea-dhcp4-server
- 管理ノードで
$ ping 192.168.0.11
などとして、計算ノードがネットワークにつながったかどうかを確認します
- systemctlコマンドで、管理ノードを再起動したときの自動起動を有効にします(デフォルトでは有効になっていますが一応)
$ sudo systemctl enable kea-dhcp4-server
参考
自作クラスタ計算機/kea_dhcpの基本設定.1781806947.txt.gz · Last modified: 2026/06/19 03:22 by koudai
