====== 概要 ======
管理ノードをルータ兼DHCPサーバーにして、スイッチングハブを介したプライベートLANを構成します。
* ルータは、インターネットとプライベートLANを仲介する役割をします。
* DHCPサーバーは、プライベートLAN内のコンピュータにプライベートIPアドレスを割り振るサーバーのことです
* 計算ノードのMACアドレスをもとに、固定のプライベートIPアドレスを割り振るようにします
* DHCPを使わなくてもプライベートネットワークを構成できますが、それぞれの計算ノードに個別に設定を入力しないといけなくなるので、計算ノードのOS入れ替え時やネットワーク設定の変更時に不便です
* 作業の前に、管理ノードと計算ノードをそれぞれLANケーブルを使ってスイッチングハブに接続してください
* **(追記)このページで紹介しているISC DHCPは開発が終了する予定です(クライアント版などは2021年に開発が終了しています)。後継であるKea DHCPを使用してください**
* https://kledgeb.blogspot.com/2022/05/ubuntu-2210-9-isc-dhcp.html
* **(追記2)ISC DHCPは2022年をもって開発が終了しました**
以下では計算ノードが使用するDNSサーバのIPアドレスを次のものにします。
具体的なDNSサーバのIPアドレスは、研究室設置であれば大学のネットワーク管理者に問い合わせる、自宅設置であればインターネットサービスプロバイダの契約書を見る、などして確認してください。
* DNSサーバ ... aaa.aaa.aaa.aaa および bbb.bbb.bbb.bbb
====== 設定手順 ======
==== 計算ノードでの作業 ====
- 計算ノードのLANケーブルがささっているポートのデバイス名とMACアドレスを調べて記録しておきます
$ ip link
1: lo: 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: 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: 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
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
(略)
INTERFACESv4 = "enp1s0f1"
INTERFACESv6 = "enp1s0f1"
(略)
- DHCPサーバーの設定ファイルを編集します
$ sudo vi /etc/dhcp/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