User Tools

Site Tools


自作クラスタ計算機:kea_dhcpの基本設定

概要

管理ノードをルータ兼DHCPサーバーにして、スイッチングハブを介したプライベートLANを構成します。

  • ルータは、インターネットとプライベートLANを仲介する役割をします。
  • DHCPサーバーは、プライベートLAN内のコンピュータにプライベートIPアドレスを割り振るサーバーのことです
  • 計算ノードのMACアドレスをもとに、固定のプライベートIPアドレスを割り振るようにします
  • DHCPを使わなくてもプライベートネットワークを構成できますが、それぞれの計算ノードに個別に設定を入力しないといけなくなるので、計算ノードのOS入れ替え時やネットワーク設定の変更時に不便です
  • 作業の前に、管理ノードと計算ノードをそれぞれLANケーブルを使ってスイッチングハブに接続してください

以下では計算ノードが使用するDNSサーバのIPアドレスを次のものにします。 具体的なDNSサーバのIPアドレスは、研究室設置であれば大学のネットワーク管理者に問い合わせる、自宅設置であればインターネットサービスプロバイダの契約書を見る、などして確認してください。

  • DNSサーバ … aaa.aaa.aaa.aaa および bbb.bbb.bbb.bbb

設定手順

計算ノードでの作業

  1. 計算ノードの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を再インストールしようとも永久に変わることはありません(変更できるようにしてあるものも稀にあります)
  2. Netplanの設定ファイルを編集し、DHCPサーバからIPアドレスを受け取れるようにします。
    $ sudo nano /etc/netplan/50-cloud-init.yaml
    99-netcfg.yaml
    network:
      version: 2
      ethernets:
        enp96s0f0:
          dhcp4: true
    • dhcp4: true にしてください。(デフォルトはfalse)
      • trueでDHCPサーバからIPアドレスを受け取れるようになります。
    • optional: true があれば外してください。(デフォルトはtrue)
      • falseにすると、ネットワークにつながるまで(最大2分)サーバの起動が抑制されます。
    • 設定ファイル名はお使いの環境によります
  3. 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
  1. interfaces-config: DHCPサーバのプライベートLAN内におけるポートを指定します
    kea-dhcp4.conf
        "interfaces-config": {
            "interfaces": [ "enp1s0f1" ]
        },
  2. option-data: 計算ノードの構成オプションを設定します。特にDNSサーバーの設定をします
    kea-dhcp4.conf
        "option-data": [
            {
                "name": "domain-name-servers",
                "data": "aaa.aaa.aaa.aaa, bbb.bbb.bbb.bbb"
            },
            (略)
        ]
  3. subnet4: LANのサブネットを設定します
    dhcpd.conf
        "subnet4": [
            {   
                "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アドレスがサブネット外のものだとエラーになります。デフォルトで例がいろいろ書かれていますので、使わないやつはコメントアウトするか削除しておきましょう。
  4. 設定が終わったらDHCPサーバーを再起動します
    $ sudo systemctl restart kea-dhcp4-server
  5. 正しく設定されてstatusがactiveになっていることを確認します
    $ sudo systemctl status kea-dhcp4-server
  6. 管理ノードで
    $ ping 192.168.0.11

    などとして、計算ノードがネットワークにつながったかどうかを確認します

  7. 管理ノードを再起動した時、DHCPサーバーは自動的に起動してくれません。systemctlコマンドで自動起動を有効にします
    $ sudo systemctl enable kea-dhcp4-server

参考

自作クラスタ計算機/kea_dhcpの基本設定.txt · Last modified: 2026/06/11 20:53 by koudai