いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.080 / 読者数:934名

こんばんは、うすだです。

相変わらず、右の肩と首あたりがとても凝っていて、 動かしにくかったり動かすと痛かったりしています。
去年、この時期にひどくなって、接骨院に通いましたが、 今年もこの時期にひどくなってきました。今、がまんのぎりぎりのところにいます。

ネックウォーマーっぽいものを首に巻いてみたり、 肩を鍛えるといいよという話を聞いて鉄アレイを持って鍛えてみたり、 有酸素運動をしてみたりなど、いろいろやってはいるのですが、 よくなる兆しが見えません。

ですが、最近、原因っぽいものの候補を、見つけました。
それは、ずばり、コーヒーです。
コーヒーは体を冷やすって、よく言いますよね。コーヒーを飲むことで、 体が冷やされ、首や肩の凝りを助長しているのではないかということに、 ふと気づいた次第です。

わたしは、年中、ホットコーヒーを飲むひとなのですが、さすがに、 夏は冬ほどに消費しません。
つまり、秋にかけて、だんだん気温が下がってきて、 コーヒーがおいしい季節になったなあなどと言って、飲む量が増えると、 その分体が冷えますので、それが首や肩の凝りをひどくしているのではないか、 と思ったわけなのです。

とはいえ、あくまでもそんな気がするだけです。証拠はありません。
ここは、実証するため、コーヒーの量を減らして…と言いたいところなのですが、 気分転換や眠気さましのためには欠かせないため、相変わらず、 コーヒーをがぶがぶ飲んでいます。

…とここまで書いたところで、それよりも、 気温の影響のほうが大きいんじゃなかろうか、ということに、 たった今気づいてしまいました。

というわけで、情報量のまったくない話で始まってしまいましたが、 めげずに、今週も、はりきってまいりますよ!

今週のお題 - DHCP サーバを動かす

会社が大きかろうが小さかろうが、DHCP を使ってないネットワークは、 ほとんどないんじゃないかと思えるくらい、 DHCP はあちこちで使われているように思います。

「IPアドレスを自動的に取得する」とかなんとかいうところにチェックを入れておけば、 ネットワークをつないだときに、 勝手に設定をしてくれて使える状態にしてくれるのですから、 よほどのことがない限り、ばんばん使うべきだと思います。

今どきですと、安価なルータにも DHCP サーバの機能があり、 それを使用しているところもあるのではないかと思います。
それはそれで楽なのですが、なにか凝ったことをしたいときや、 個別設定をしたいときなどには、ちゃんとした DHCP サーバが必要になります。

しかし、そういったニーズがあるかどうかに関わらず、 せっかく Linux をサーバとして使っているのですから、 DHCP も Linux にやらせるべきではないでしょうか。ええ、やらせるべきですよ。はい。

というわけで、今週は、DHCP サーバを動かしてみたいと思います。


以降では、DHCP サーバのデファクトスタンダートだと言っても過言ではない、 ISC の DHCP サーバを対象に、話を進めます。

主要なディストリビューションの DHCP サーバのパッケージ名は、以下の通りです。 入っていない場合は、yum や apt などで入手してください。

ディストリビューションパッケージ名
Fedora Core 5, VineLinux 3.2dhcp
Debian 3.1, Ubuntu 6.10dhcp3-server

また、以下を試すときは、そのサブネット上で、 DHCP サーバが動作していないことを確認してください。 もしすでに動作していたら、お試し環境を別に構築し、そこでこっそり試してください。


では、いきなりですが、設定ファイルの記述から入ります。

設定ファイルのありかは、/etc/dhcpd.conf です。
(Debian 系の場合は、/etc/dhcp3/dhcpd.conf です。)
このファイルに記述する、最低限的に必要な設定は、以下の通りです。

  ddns-update-style ad-hoc;
  subnet ネットワークアドレス netmask ネットマスク {
      range リースするIPアドレスの最初 リースするIPアドレスの最後;
      option routers デフォルトルータのIPアドレス;
      option domain-name-servers DNSサーバのIPアドレス;
  }

最初の ddns-update-style は、Dynamic DNS に関する設定項目です。
アドレスを割り当てたとき、 Dynamic DNS の更新を DHCP サーバが代わりにやってくれる…らしいです。 (すみません、試したことがありません。)
バージョンが 3.0b2pl11 以前であれば必要ありませんが、 そうでなければ必ず指定する必要があります。

3.0b2pl11 以前と同じ振る舞いをさせるには、ad-hoc と指定します。
わたしは試したことがありませんが、DHCP サーバに更新してもらうようにするには、 interim と指定します。
逆に、オレは Dynamic DNS なんて全く使わないぜ! といういさぎよい(?)かたは、 none と指定してください。

次の subnet では、DHCP の対象となるサブネットの情報を記述します。
subnet の中に、そのサブネットに関する情報を記述していきます。
3行目の range は、リースするIPアドレスの範囲指定の設定です。 リースする最初のアドレスと、最後のアドレスを記述します。
4行目の option routers には、デフォルトルータのIPアドレスを指定します。 閉じた環境であれば、この行はなくても構いません。
5行目の option domain-name-servers には、DNS サーバのIPアドレスを指定します。 複数ある場合は、, で区切って指定してください。

たとえば、以下のような環境で、DHCP サーバを動かす場合、

条 件
サブネット192.168.1.0/24
リースするIPアドレスの範囲192.168.1.240〜247
デフォルトルータ192.168.1.254
DNS サーバ192.168.1.1

最低限的には、以下のように dhcpd.conf を記述します。

  ddns-update-style ad-hoc;
  subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.240 192.168.1.247;
      option routers 192.168.1.254;
      option domain-name-servers 192.168.1.1;
  }

最低限的設定ファイルが書けましたので、次に動かしてみましょう。

おっとその前に、念のため、/var/lib/dhcp/dhcpd.leases (Debian 系の場合は /var/lib/dhcp3/dhcpd.leases) というファイルがあるかどうか、 確認してください。 パッケージをインストールする際に、作成されているはずですが、 もしなければ、touch コマンドで作成しておきます。

  # touch /var/lib/dhcp/dhcpd.leases

それでは、DHCP サーバを動かしましょう。以下のように実行します。

  # /etc/rc.d/init.d/dhcpd start

おっと、Debian 系の場合は、以下のように実行します。

  # /etc/init.d/dhcp3-server start

ネットワーク・インターフェースが複数ある PC では、エラーになるかもしれません。 そのときは、/etc/sysconfig/dhcpd の DHCPARGS に、 使用するネットワーク・インターフェースを指定してください。

  DHCPARGS="eth0"

Debian 系の場合は、/etc/default/dhcp3-server の INTERFACE です。

  INTERFACE="eth0"

DHCP サーバが動き出したら、クライアントとなる PC を接続してみて、 アドレスが取得できるかどうか、確認してみましょう。
もしうまくいかないときは、/var/log/messages あたりを見ると、 なにかわかるかもしれません。

特に問題なく動いて、 OS 起動時に DHCP サーバが自動的に立ち上がるようにしたい場合は、 chkconfig などを実行してください。このあたりは以前ご紹介しましたので、 ここでは述べません。(詳しくは以下を…。)

Vol.031 - サービスを登録する
http://www.usupi.org/sysad/031.html


とりあえず動いたところで、今度は、リースする時間の指定をしてみたいと思います。 設定は、以下のように subnet の中で行います。

  subnet ネットワークアドレス netmask ネットマスク {
      ...既存の設定...
      default-lease-time 初回割り当て時のリース時間(秒);
      max-lease-time     最大リース時間(秒);
  }

default-lease-time も max-lease-time も、 割り当てたアドレスの使用期間を指定するための設定です。(単位は秒です。)
最初に割り当てると、default-lease-time 秒の間、 そのアドレスを使う権利を与えます。 その後、max-lease-time 秒まで、延長を許します。

割り当てるアドレスに余裕があるなら、 それぞれのリース時間を長くしておけばいいと思います。 逆に、アドレスに余裕がなく、クライアント数のほうが多い場合は、 できるだけアドレスを占有されないよう、 リース時間をある程度短く設定したほうがいいと思います。


以上、DHCP サーバの設定方法のさわりを、ご紹介しました。

思ったより行数を費やしてしまいましたので、 凝ったことや個別設定的なことの説明ができませんでした。申し訳ありません。
というわけで、すみませんが、続きは来週にやらせていただきます。

宿題の答え

先週の宿題は、

  あるコマンドを実行し、標準出力と標準エラー出力に出力されたデータ
  を、それぞれ別のコマンドに渡してください。

でした。

以下のようなシェルスクリプトにしてみました。

  #!/bin/sh
  CMD_OUT=/tmp/cmd_out-$$
  CMD_ERR=/tmp/cmd_err-$$
  trap "rm -f $CMD_OUT $CMD_ERR" 0 1 2 3 9 11 15

  if [ $# -ne 3 ]; then
      echo "Usage: $0 command0 command1 command2"
      exit 1
  fi
  eval $1 2> $CMD_ERR > $CMD_OUT
  eval $2 < $CMD_OUT
  eval $3 < $CMD_ERR

これを、cmd_double.sh というファイル名で保存したなら、以下のように実行します。

  % ./cmd_double.sh 最初のコマンド 標準出力をもらうコマンド \
  標準エラー出力をもらうコマンド

たとえば、ls -1 /etc を実行して、その標準出力を cat -n に渡して、 標準エラー出力を Mail に渡したい場合は、以下のように実行します。

  % ./cmd_double.sh "ls -1 /etc" "cat -n" "Mail -s Error root"

リダイレクトも使えます。

  % ./cmd_double.sh "ls -1 /etc" "cat -n > log-out" \
  "Mail -s Error root"

今週の宿題

今週の宿題は、

  同じサブネット内に複数の DHCP サーバが動作しているとき、DHCP で
  アドレスを取得しようとしたら、どうなるでしょうか?

です。

RFC を読めばちゃんと答えが書いてありますが、あえて読まずに想像してみるのも、 いいかもしれませんね。

あとがき

先週のあとがきで、Ubuntu 6.10 を VMware Player 上で動かした、 という話をしましたが、今週は、SUSE 10.1 を入れてみました。

Ubuntu のときと同様、インストール時に結構なメモリが必要でした。
最初、256MB に設定してインストールを試みましたが、 途中でカーソルが動かなくなってしまいました。 320MB に増やして再度トライしたところ、かなり時間はかかりましたが、 最後まで止まらずに動いてくれました。

Ubuntu と同様に、インストール後は、128MB でも動作しますが、 Ubuntu 以上に遅く感じられました。 耐えがたいほどでしたので、GUI を使わない設定にしていますが、 なにがそんなにメモリを食っているんでしょうね。
今度、追求してみたいと思います。

…という状況ですので、まだ YaST も体験しておりません。ふぅ。

 

そうそう、Ubuntu も SUSE も、BitTorrent という P2P プロトコルで、 CD-ROM のイメージなどを入手できるようになっています。 せっかくですので、今回、BitTorrent を初体験してみました。

Azureus という Java で実装されたソフトを使いましたが、特に理解していなくても、 言われるがままに動かしたら、なんだかよくわからないままに、 ダウンロードできてしまいました。
なにはともあれ、入手する手段がたくさんあるというのは、 よいことではないかと思います。が、技術者のはしくれとして、 きちんと理解しておくべきですよね。Wikipedia の説明でも読んでおこうと思います。

BitTorrent - Wikipedia
http://ja.wikipedia.org/wiki/BitTorrent

 

というわけで、お試し環境が徐々に増えてきました。
あらゆるケースに対応するため、様々な環境を用意しようとしているわけですが、 お試し環境が増えるほど、すべての環境上で確認する時間がなくなる、 というジレンマに陥っている気がします。

まだまだ発展途上で、カイゼンの余地がありそうですね。がんばります。

 

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−ぎゃらりーにはひとが来ているのだろうか…不安です。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本