User Tools

Site Tools


Sidebar

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

概要

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

  • ルータは、インターネットとプライベートLANを仲介する役割をします。
  • DHCPサーバーは、プライベートLAN内のコンピュータにプライベートIPアドレスを割り振るサーバーのことです
  • 計算ノードのMACアドレスをもとに、固定のプライベートIPアドレスを割り振るようにします
  • DHCPを使わなくてもプライベートネットワークを構成できますが、それぞれの計算ノードに個別に設定を入力しないといけなくなるので、計算ノードのOS入れ替え時やネットワーク設定の変更時に不便です
  • 作業の前に、管理ノードと計算ノードをそれぞれLANケーブルを使ってスイッチングハブに接続してください
  • (追記)このページで紹介しているISC DHCPは開発が終了する予定です(クライアント版などは2021年に開発が終了しています)。後継であるKea DHCPを使用してください
  • (追記2)ISC DHCPは2022年をもって開発が終了しました

以下では計算ノードが使用する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 vi /etc/netplan/99-netcfg.yaml
    99-netcfg.yaml
    network:
      version: 2
      ethernets:
        enp96s0f0:
          dhcp4: yes
          dhcp6: yes
  3. Netplanの設定ファイルを読み込みます
    $ sudo netplan apply

管理ノードでの作業

  1. DHCPサーバーの立ち上げに必要なパッケージをインストールします
    $ sudo apt install isc-dhcp-server
  2. どのポートがDHCPサーバとして働くか指定します。enp1s0f1 のポートをプライベートLAN側につなげています
    $ sudo vi /etc/default/isc-dhcp-server
    isc-dhcp-server
    (略)
    INTERFACESv4 = "enp1s0f1"
    INTERFACESv6 = "enp1s0f1"
    (略)
  3. DHCPサーバーの設定ファイルを編集します
    $ sudo vi /etc/dhcp/dhcpd.conf
    dhcpd.conf
    (略)
    # ドメイン名
    option domain-name "toaru.daigaku.ac.jp";
    # DNSサーバー
    option domain-name-servers aaa.aaa.aaa.aaa, bbb.bbb.bbb.bbb;
    
    # IPアドレスのデフォルト・リース(貸与)期間。単位は秒。
    #  計算ノードからリース時間の指定がない場合、この時間だけIPアドレスを計算ノードに貸与する
    #  リース期間が終了しても計算ノードがつながったままの場合は、再びIPアドレスの貸与が行われる
    default-lease-time 600;
    # IPアドレスの最大リース期間。単位は秒。
    #  計算ノードからリース期間の指定があった場合、この時間を超えない範囲でIPアドレスを貸与する
    max-lease-time 7200;
    (略)
    # authoritativeがコメントアウトされているので削除
    authoritative;
    (略)
    プライベートLANのネットワークアドレスとネットマスク
    subnet 192.168.0.0 netmask 255.255.255.0 {
        # ルーターのプライベートLAN側のIPアドレス
        option routers 192.168.0.1;
        # ブロードキャストアドレス
        option broadcast-address 192.168.0.255;
        
        # 計算ノードの台数分だけホスト名を定義し、対応するMACアドレスと割り当てたいプライベートIPアドレスを入力
            host keisan11{
            hardware ethernet ac:1f:6b:bc:93:8a;
            fixed-address 192.168.0.11;
            }
            host keisan12{
            hardware ethernet ac:1f:6b:bc:91:96;
            fixed-address 192.168.0.12;
            }
        # 以下同様
    }
    • option domain-name はクライアント(計算ノード)が使うドメイン名を入力します。今回のクラスタ計算機の場合は、このオプションを指定しなくても特に問題ないので、コメントアウトしても構いません
    • プラーベートLAN内にDHCPサーバーが複数あるとき、authoritativeが有効になっているDHCPサーバーの指示が優先されます
    • ルーターとは、プライベートLANとインターネットを仲介するサーバーのことです。今回は管理ノードがDHCPとルーターの役割を担います。
    • ブロードキャストアドレスは、プライベートLAN内のすべてのコンピュータと通信するためのIPアドレスです。
  4. 設定が終わったらsystemctlコマンドを使ってDHCPサーバーを再起動します
    $ sudo systemctl restart isc-dhcp-server
  5. 管理ノードで
    $ ping 192.168.0.11

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

  6. 管理ノードを再起動した時、isc-dhcp-serverは自動的に起動してくれません。systemctlコマンドで自動起動を有効にします
    $ sudo systemctl enable isc-dhcp-server
自作クラスタ計算機/dhcpの基本設定.txt · Last modified: 2023/07/05 23:36 by koudai