自作クラスタ計算機: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
設定手順
計算ノードでの作業
- 計算ノードの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 vi /etc/netplan/99-netcfg.yaml
- 99-netcfg.yaml
network: version: 2 ethernets: enp96s0f0: dhcp4: yes dhcp6: yes
- Netplanの設定ファイルを読み込みます
$ sudo netplan apply
管理ノードでの作業
- DHCPサーバーの立ち上げに必要なパッケージをインストールします
$ sudo apt install isc-dhcp-server
- どのポートがDHCPサーバとして働くか指定します。enp1s0f1 のポートをプライベートLAN側につなげています
$ sudo vi /etc/default/isc-dhcp-server
- isc-dhcp-server
(略) INTERFACESv4 = "enp1s0f1" INTERFACESv6 = "enp1s0f1" (略)
- 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アドレスです。
- 設定が終わったらsystemctlコマンドを使ってDHCPサーバーを再起動します
$ sudo systemctl restart isc-dhcp-server
- 管理ノードで
$ ping 192.168.0.11
などとして、計算ノードがネットワークにつながったかどうかを確認します
- 管理ノードを再起動した時、isc-dhcp-serverは自動的に起動してくれません。systemctlコマンドで自動起動を有効にします
$ sudo systemctl enable isc-dhcp-server
自作クラスタ計算機/dhcpの基本設定.txt · Last modified: 2023/07/05 23:36 by koudai