| ■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜
|
第25日目:Coffee Break? 〜Sam社長からの贈り物(その3)〜
|
どうも、('A`)です。
データーセンター(PIE)が入っているビルでネットワーク障害が発生し、その対応で
日記を2日間お休みしました。
(詳細は弊社HPの障害報告ページ(こちら)をご覧下さい。)
David社長以下PIEの技術スタッフと上流回線のネットワーク技術者による復旧作業を
現在も実施中ですが、当初発生していた障害も収束しつつあります。
(まだ幾つか工事や作業の必要があるので、弊社スタッフも含め対応を続けております。
対応状況につきましては先程の障害報告ページで随時ご案内致します。)
ひと段落着きましたので、いよいよ社内でpxebootの環境を構築します。
なお今回環境構築の為に確保した資源は以下の通りです。
・社内サーバ(pxeboot用サーバ) 1台
・スイッチングハブ 1台
・ネットワークケーブル 2本
・Sam社長からのマシン(Samサーバ) 1台
上記機器を使ってクローズドしたネットワーク空間を作ろうと思い、準備を進めていると
root兄(・∀・)が来ました。障害対応でちょっとヘロヘロな様子です・・・
(・∀・):「お、('A`)。何をしているんだい?」
('A`):「えーと、DHCPサーバとか構築して独立したネットワーク環境を作ろうかと。
あ、Sam社長からもらったこのマシンをインストールする為に、ね。」
(・∀・):「ん、このサーバはNICが1つしかついていないぞ。。。」
('A`):「え、それってまずいのかなあ・・・」
(・∀・):「1つだけでもいけるかもしれないけど、外部と接続できる様にするなら、
もう1つNICを付けてそれぞれにIPを与えてあげればいいよ。サーバの
ネットワーク部分の設定修正が必要最小限で済むから。SSHでサーバの
設定をいじったりしながら自席で調べ事したりも同時にする事あるだろ?」
('A`):「うん、、、その方がいいかな。」
(・∀・):「じゃあ、NIC取り付けとか手伝うよ」
('A`):「あー、助かるよ。じゃあさっそくNICを探そう!」
|
という事で以下の構成となりました。
NICはroot弟(´・ω・`)が持っていたのを拝借して、社内サーバに取り付けました。
(ちゃんと後で返すから、ね。)

では、社内サーバに以下のソフトウェアを動かしてみます。
1)DHCPサーバ
DHCPサーバはFreeBSDのPortsにあるisc-dhcp3-server-3.0.5.r2をpkg_addコマンドで
インストールしました。
( pkg_add -r isc-dhcp3-server-3.0.5.r2 ですね。)
インストールが終わると /usr/local/etc/ に dhcpd.conf.sample というファイルが
作成されます。このファイルはDHCPサーバの設定ファイルの雛型です。
これを dhcpd.conf というファイルにコピーして、設定を行ないます。
root兄(・∀・)と('A`)の2人がかりで今回設定した内容は以下の通りです。
(余分な設定も入っているかもしれませんが、、、スルーして下さい。)
[dhcpd.conf の内容]
ddns-update-style none; ← [1]
option domain-name "maido3.cc"; ← [2]
option domain-name-servers 219.166.251.56;
subnet 192.168.1.0 netmask 255.255.255.0 { ← [3]
range 192.168.1.100 192.168.1.150;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option netbios-name-servers 192.168.1.1;
option netbios-dd-server 192.168.1.1;
option netbios-node-type 8;
default-lease-time 600;
max-lease-time 7200;
}
host pxeboot{ ← [4]
hardware ethernet 00:30:18:ac:b1:cf;
fixed-address 192.168.1.110;
option dhcp-client-identifier "pxeboot";
filename "pxeboot";
option root-path "192.168.1.1:/nfs";
}
|
設定について簡単に解説します。
[1]はDDNS(DynamicDNS)を更新する方法を指定しています。
今回インストールしたバージョンではこの設定の記述が必須になっています。
(DDNSを使用しない場合には、noneと書きます。)
[2]ではDHCPサーバと同じローカルネットワークに接続するSamサーバ等が
DNSを使ってホスト名を解決する時に利用するドメイン名を指定します。
(社内には219.166.251.56でDNSサーバを動かしています。)
[3]ではDHCPサーバが管理・提供するIPサブネットの情報を指定します。
今回は 192.168.1.100 〜 192.168.1.150 までの範囲でネットワークに
接続するPCやサーバにIPを割り当てます。
なおルーターはDHCPサーバが稼働しているpxeboot用サーバ(192.168.1.1)が
兼務します。
なお default-lease-time 600 とは「DHCPから割り当てたIPの貸出時間の基準値」、
max-lease-time 7200 とは 「DHCPから割り当てたIPの貸出時間の最大値」を
示しています。
(接続しに来たPCやサーバが特に断らなければ600秒の間IPを貸しますよ。
「できるだけ長く使いたいんだけど」と接続時に聞いてきた時には最大7200秒だけ
貸し出しますよ、という意味です。)
[4]では特定のPCやサーバに対してDHCPサーバが処理する内容を指定します。
今回はSamサーバ(MACアドレスは 00:30:18:ac:b1:cf)に対してIPアドレスを
192.168.1.110と割り当て、接続時にroot-pathで指定した場所(これは後述の
NFSサーバで公開しているディレクトリ)をデフォルトルートとして参照する
様に指示しています。
また filename "pxeboot" で接続した際にローディングさせるブートイメージの
名前を宣言します。
最後にサーバ起動時にDHCPサーバが稼働する様に /etc/rc.conf に以下の行を
追加します。
dhcpd_enable="YES"
dhcpd_chuser_enable="NO"
|
後はサーバを再起動すれば良いのですが、まだNFSとTFPTの2つーバを設定する
必要があるので、次に進みます。
2)NFSサーバ
NFSサーバを動かす前に、FreeBSDのインストールCDのイメージ(.iso)をサーバに
設置する準備を行ないます。
まずは mkdir /nfs でディレクトリを作り、その中にfetchコマンド等で外部から
CDイメージを持ってきます。
次に、このCDイメージをNFSで外部から参照できる様にマウントします。
マウントする為にCDイメージを mdconfig コマンドで仮想ディスクとします。
mdconfig -a -t vnode -f /nfs/6.2-RELEASE-i386-disc1.iso -u 0
|
すると /dev/md0 という仮想ディスクが出来上がるので、これをmountコマンドで
/nfs にマウントします。
(CDイメージとして「読み出しのみ」のモードでマウントします。
mount -t cd9660 -o ro /dev/md0 /nfs
|
マウントできたら ls -l /nfs と打って中身を確認します。
(.isoの中に収められている各ディレクトリが表示されます。)
そうしたら mkdir /pxeboot を実行しブートイメージを格納するディレクトリを
作成します。それから /nfs/boot にある pxeboot というファイルをそこにコピーします。
(このファイルは後述のTFTPサーバで必要となるので、ここで作業しておきます。)
以上の事が終了したら、NFSサーバ起動の為の設定に進みます。
まずは /etc/exports というファイルを作成し、以下の内容を記述します。
/nfs -network 192.168.1.1 -mask 255.255.255.0
|
これでサーバ(192.168.1.1)内のエントリポイント /nfs が公開対象となります。
次にNFSサーバ起動の為、/etc/rc.conf に以下の3行を設定します。
|
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_enable="YES"
|
最後にCDイメージがサーバ再起動時でもマウントされる様に /etc/rc.local に
先ほど記述した2つのコマンドを追記しておきます。
mdconfig -a -t vnode -f /nfs/6.2-RELEASE-i386-disc1.iso -u 0
mount -t cd9660 -o ro /dev/md0 /nfs
|
これでNFSサーバの設定が終わりました。最後にTFTPサーバです。
3)TFTPサーバ
実はTFTPサーバは標準でインストールされています。コマンドプロンプトから
tftp と打つと
tftp>
と応答が帰ってきます。(終了するときは quit を入力して下さい。またどんな
コマンドが使えるのかは ? を入力すると表示されます。)
ただし「外部からのアクセスが来た時に自動的に稼働する」状態ではないので、
/etc/inetd.conf に以下の行を登録し、inetdを再起動する必要があります。
[/etc/inetd.conf に追加する内容]
|
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /pxeboot
|
上記内容で注意するのは 最後の方に /pxeboot と記述されている事です。
これは「TFTPサーバのカレントディレクトリ」を示しています。
言い換えると「要求が来たら相手に転送するデータが入ったディレクトリ」の場所を
示しています。
/pxeboot と書く事によって、先ほどの 2) でディレクトリ /pxebootにコピーした
ブートイメージ(pxeboot)が結果的に相手に送信される事になります。
ここまで設定できたら、サーバを1度再起動します。
再起動が終わった後で、3つのサーバが正常に稼働しているか確認します。
スイッチングハブに社内のノートPCを取り付けてみます。
コマンドプロンプトを起動して、 ipconfig /renew を実行します。
どうやらIPが割り当てられた様なので、詳細を ipconfig /all で確認します。

192.168.1.150がIPとして割り当てられました。
「ちゃんとIP振ってもらえたんだ」と('A`)は感動してたのですが、root兄(・∀・)は
「何で192.168.1.100から割り当てられないんだろう。うーん。」と納得いかない様子です。
まあ、でもネットワークに接続できた事で良し、としました。。。
次にブラウザから 192.168.1.1 にある /nfs の内容が表示できるか確認します。
(ブラウザからアクセスする際に認証要求が出ますが、FTPアカウントを既に設置
していたので、それでログイン処理を行いました。)

.isoに入っているファイルやディレクトリが表示されました。
最後にTFTPの確認です。
コマンドプロンプトから以下のコマンドを実行します。
tftp 192.168.1.1 GET pxeboot
|
このコマンドは「192.168.1.1にあるTFPTサーバからファイル pxeboot を取得する」という
意味になります。実行するとファイルが取得できました。
このファイルはTFPTサーバのカレントディレクトリ /pxeboot 内に設置しておいたファイル
pxeboot (紛らわしかったかなあ・・・)です。

という事は、後はSamサーバのBIOS設定を「LANから起動する」に変更して電源を
入れれば、ネットワーク越しにブートされるはず、です。
ワクワクするroot兄(・∀・)を横目で見ながらSamサーバの電源を入れてBIOS画面を
呼び出します。
(ちなみにBananaサーバと同じPhoenix Award BIOSの画面が表示されます。)
メニューから「Advanced BIOS Features」を選択すると、以下の画面が表示されるので、

「First Boot Device」を「LAN」に、「Second 〜」と「Third〜」を「Disabled」に
それぞれ変更します。

F10キーを押してBIOS更新した後、再起動されて。。。
何故か動きません。画面に「RPL-ROM-ADR: 00:30:18:AC:B1:CF」とMACアドレスが
表示され、その下で何かカウントされていますが、やがて止まりました。
(・∀・):「何で接続しないんだ・・・ケーブルは繋がってる?」
('A`):「うん、この通り繋がってるよ。」
(・∀・):「・・・って、おい!」
('A`):「うわっ、びっくりした。どうしたの?」
(・∀・):「どうしたのじゃないよ。これ、クロスケーブルじゃないか!」
('A`):「へ?」
(・∀・):「ココに小さいけど「cross」って書いてるだろ。このケーブルじゃダメ。
別のストレートケーブル持ってきて!」
('A`):「はわわ・・・」
ケーブルを大急ぎで取り換えて、もう一度Samサーバを再起動しました。
でも繋がらない・・・
(・∀・):「あれー?MACアドレスはあってるのになあ・・・」
('A`):「うーん、なんでだろう?」
(・∀・):「DHCPサーバの設定も間違っていなさそうだしなあ。」
('A`):「あっ、もしかして・・・」
(・∀・):「ん、どうした?」
('A`):「あのね、、、RPLって表示があるけど、俺らはPXEbootでマシンを
動かそうとしていたよね。」
(・∀・):「そうだけど・・・・って、あーーーー」
('A`):「NICも何か設定変更しないといけない、って事か。。。」
|
もしやと思いNIC(搭載されていたのはRealteK RTL8139)の設定を呼び出してみました。
(マザーボードのBIOS画面起動終了後にShiftキー+F10キーで呼び出せます。)

えーと、「Network Boot Protocol」が RPL になっているので、試しにSPACEキーを
押してみると・・・

うわーん、ここだったのか・・・
root兄(・∀・)は「これで大丈夫だよなっ、なっ」と言ってくれたので、気を取り直して
再起動しました。
今度は成功。FreeBSDのメニュー画面が表示され、やがてOSインストール時に聞かれる
言語指定の画面が表示されました。

その後いつもの様にOSのインストールに必要な設定を行なって、メディア指定の
画面に出てきました。

この時に「6.NFS」を選択すると、NFSサーバのパスを聞かれますので、今回は
「192.168.1.1:/nfs」と入力します。
あと、この時ネットワーク(NIC)の設定も要求されるので、以下の様に設定します。
・ゲートウェイ : 192.168.1.1
・IPアドレス : 192.168.1.110
・ネットマスク : 255.255.255.0
・DNSサーバ : 219.166.251.56
・ホスト名 : w46
・ドメイン名 : maido3.cc
(ホスト名とドメイン名は弊社社内の限定です。)
以上の設定が完了し、「OK」を叩くとNFS経由でOSがインストールされます。
(・∀・):「本当にできちゃった・・・」
('A`):「うん、本当にできた。ってかDHCPの動きが少し判った気がする。」
( ,_ノ` )y━・~~~:「よかったじゃないですか。」
('A`):「うわっ!びっくりした。」
( ,_ノ` )y━・~~~:「障害対応やりつつ無事インストールできましたね。流石です。」
('A`):「あ、いや、そんな・・・」
( ,_ノ` )y━・~~~:「という事で、日記早くアップして下さいよ。待ってます。」
('A`):「・・・orz」
|
予定より長い時間がかかりましたが、無事Samサーバをインストールできました。
まだ十分理解しているとは言い難いですが、DHCPサーバの動きなどに少し触れる
事ができたようです。
ちょっとストップ状態となっている「ロードバランサー」の方も進めないと、と思いますが、
今日はもう時間切れです。。。
次回までお待ちください。
それでは、また
|
|
|
|
|
24日目に戻る。 26日目に続く。
解析
|