====== 概要 ====== 管理ノードをルータ兼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