このエントリーをはてなブックマークに追加
スポンサーリンク

DHCPの設定

DHCPとは

DHCPとは化粧品のメーカーではなく(それはDHC)、ネットワーク内で他と重複する事のないユニークなIPアドレスを自動的に発行してくれるサーバーの事です。IPアドレスは、ローカルエリアではそのLAN内で、また、グローバルアドレスでは、世界で中で他とバッティングする事のない、ユニークなIPアドレスが必要となります。

グローバルアドレスは、プロバイダーから与えられたアドレスを、サーバー機1台1台に固定で割り当てれば良いでしょう。しかし、LAN内のパソコンで、いちいち誰がどのIPアドレスを使うのかを、固定しなければならないのは、非常に不便です。とくに、中規模〜大規模の社内で、ローカルアドレスを固定しようとすると、新人が増えたり、人がやめたり、新しいパソコンを設置したり、また、普段は外出が多い社員がノートパソコンをつないだり、とにかく、そのつど他とバッティングしないIPアドレスを割り振る必要があります。

もし、それをネットワーク管理者が管理していたのでは大変です。今どのIPアドレスが空いているかどうか調べ、空いているIPアドレスを間違いなく与えなければなりません。そのために、部署ごとに桁をわけて、各デスクごと、あるいは、HUBのポートごとにIPアドレスを決めたりもしている所もあるようです。

ここでは、IPアドレスを自動的にルーター機に管理させるために、DCHPサーバーという機能をルーター機に導入します。

DHCPサーバーはIPアドレスを管理していて、端末から要求があると現在空いているIPアドレスを自動的に貸与します。このサーバーを起動させておけば、LAN内で(LANでなくても良いのですが)IPアドレスがバッティングする事を防ぐ事ができます。

市販のルーターを買えば、ほぼDHCPの機能はついてくるでしょう。しかし、ここではLinuxを使ってルーターを自作しますので、DHCPも自分でインストールして設定します。

DCHPのインストール

DHCPDはこの辺からソースを持ってきてコンパイルしても良いのですが、今回はRedHatのパッケージを使う事にします。

mount /mnt/cd-rom
cd /mnt/cd-rom/RedHat/RPMS
rpm -ivh dhcp-2.0pl5-8.i386.rpm

/etc/dhcpd.confファイルを作る

dchpサーバーを起動するために、設定ファイルを作成します。
/etc/dhcpd.conf
option domain-name "(自ドメイン名)";
option domain-name-servers (ネームサーバーのアドレス);

shared-network ネットワーク名 {
    subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.254;
        option routers 192.168.0.1;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
    }
}
※意味
192.168.0.0/255.255.255.0のネットワークに対して、192.168.0.100〜192.168.0.254のアドレスを与える。
デフォルトのゲートウェイは、192.168.0.1ネットマスクは255.255.255.0ブロードキャストアドレスは192.168.0.255。

これは例です。ご自身のネットワークに合わせて設定を変更してください。複数のネットワークに対してDHCPサーバーを起動させたい時は、subne { } をその分だけ記述してください。

空のファイルを作る

dhcpd.leasesという空のファイルを作っておきます。

touch /var/state/dhcp/dhcpd.leases

dhcpdが起動するネットワークカードを指定する

WAN側にもDHCPが起動してしまうと、上位回線に迷惑がかかってしまいます。WAN側は動的IP契約ならばプロバイダ側にDHCPがあるでしょうし、固定IP契約だったとしても、こちらからプロバイダに対してDHCPを提供したりはしません。また、ローカルエリア同士を結ぶゲートサーバーに導入する場合、すべてのゲートサーバーでネットワークカード両方にDHCPを導入してしまうと、1つのネットワークに複数のDHCPが起動する事になってしまいます。

1つのネットワークに複数のDHCPが起動してはいけません。船頭多くして船山に登るというように、1つのネットワーク内にIPアドレスを管理するサーバーが複数あると、端末がIPアドレスを要求した際にたまたまつ先にながった方のDHCPからIPアドレスを取得してしまいます。例えるなら、会社にネットワーク管理者が2人いて、双方がお互いに連絡を取り合う事なく勝手にIPアドレスを貸し与えているような状態になり、社内の端末がユニークなIPアドレスになりません。

それなので、片側のLANカードに対してのみ、DHCPを起動するようにします。
/etc/sysconfig/dhcpd
DHCPDARGS=eth1
デフォルトでは、DHCPDARGS= となっていますので、=の後にDHCPを使う側のNICのデバイス名を書いてください。この設定をしておかないと、DHCPDは双方のネットワークカードに対して起動を試み、subset宣言がないという旨のエラーを出力して起動しなくなってしまいます。

dhcpサーバーの起動

RedHat系(EnterpriseやCentOS)でRPMでインストールした場合は簡単です。起動スクリプト
/etc/rc.d/init.d/dhcpd start
で起動できます。

また、サーバー起動時にスタートするようにするために、
chkconfig dhcpd on

としておきます。
スポンサーリンク