2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

IPアドレス管理の基礎!

ここでは、ドメインネームサービスというネットワーク上の巨大な住所録の概要及びDHCPサービスという動的にホスト情報を割当てるためのサービスの概要と簡単な設定方法を説明する。


1.DHCPサービス

1.1  固定IPとBOOTP

● 固定IPとは?
固定IPは、ネットワーク上にあるコンピュータに、ネットワークアドレスに該当するIPアドレスを固定的に割り振ることである。したがって、手動でホストに設定する。

● BOOTPとは?
BOOTPは、起動時にブート情報をサーバに対して要求し、ブート情報を転送するという難しい局面で使用する。さらに、BOOTPは通信にUDPを使用している。
BOOTPは、次のような手順でやり取りが行われる。

① クライアントマシンに電源が投入されると、ローカルに持つROMからUDP手順がロードされる
② UDPを通じてサーバにブート情報を要求する
③ サーバ側は、ブート情報をTFTPを利用して転送する

1.2 DHCPサービスの概要

DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上のコンピュータに動的にホスト情報(IPアドレス、ネットマスク、デフォルトルート、DNSサーバアドレスなど)を割り当てるプロトコルである。

● DHCPはいつ必要か?
DHCPは、ネットワークに以下のような事情がある場合に有効といえる。
★ クライアントコンピュータが多い
★ 使用可能なIPアドレスが少ない
★ 接続するネットワークが一定でない
★ ネットワークの設定に関する知識がない

● DHCPとは?
DHCPは、ブロードキャスト型のプロトコルである。DHCPサーバは、このブロードキャストを監視しており、リクエストを受けてホスト情報格納したリプライを、ブロードキャストを発行したクライアントに返す。

1.3 ISC DHCPの概要

● ISC DHCPの説明
RedHat系には、ISC(Internet Software Consortium)の配布するDHCPサーバソフトウェア(ISC DHCP)が採用されている。ISC DHCPは、DHCPサーバとして機能するほか、BOOTPサーバとしても機能する。
DHCPサーバのデーモンはdhcpdである。

1.4 dhcpdの設定

dhcpdの動作設定は、コマンドラインと設定ファイルで行う。

● dhcpdのコマンドラインにおける設定

# dhcpd [オプション] [インターフェース]

[インターフェース]には、リクエストをListenするネットワークインターフェース名を使用する。省略時は、全ての起動中のネットワークインターフェーズが対象となる。
[オプション]には、dhcpdの動作を決めるいくつかのオプションが指定できる。それを、以下に示す。

オプション機 能
-pListenするUDPポート番号。省略時は、BOOTP/DHCPのWell-known portsである67。応答を返すポート番号はここに+1したもの。よって、省略時は68。
-fフォアグラウンドで動作する。動作検証時に有用。
-dログを標準エラー出力へ書き出す。
-q起動時のメッセージ出力を抑止。
-cf<filename> 設定ファイル名を指定。省略時は/etc/dhcpd.conf
-lf<filename> リースファイル名を指定。省略時は/etc/state/dhcp/dhcpd.leass

● /etc/dhcpd.confによる設定
dhcpdの設定は、/etc/dhcpd.confファイルによって行う。
しかし、RedHat系では標準設定で/etc/dhcpd.confが存在しない。そのため、1から作っても良いが/usr/doc/dhcp-2.0/dhcpd.conf.sampleファイルを利用しても良い。
以下に、設定方法を説明する。

subnet 192,168.0.0 netmask 255.255.255.0 {          ←①
option routers           192.168.0.1;           ←②
option subnet-mask        255.255.255.0;
option nis-domain        ”domain.org”;
option domein-name       ”domain.org”
option domain-name-server  192.168.1.1;
option time-offset        -5;
# Eastern Standard Time

中略

range dynamic-bootp 192.168.0.128 192.168.0.255;      ←③
default-lease-time 21600;                      ←④
# we want the nameserver to appear at a fixed address
host ns {                                ←⑤
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
        }
}

① subnetブロックの開始
② オプションの設定

オプション意  味
routers<router address>デフォルトのルートアドレス
subnet-mask<subnet mask>サブネットワークのマスク。
nis-domain<domain name>NIS(YP)ドメイン名。
domain-name<domain name>インターネットドメイン名。
domain-name-server<address>DNSサーバアドレス。
time offset <hour>GMTに対する時差。日本標準時(JST)では+9。

③ リース領域の指定
④ リース時間の指定
⑤ ホスト情報の指定

1.5 DHCPリレーエージェント

● DHCPリレーエージェントとは?
DHCPリレーエージェントとは、異なるネットワーク間でDHCPのサービスが可能なように、DHCPリクエストとリプライを中継するプログラムを言う。

1.6 リースファイル

● リースファイルとは?
リースファイルとは、クライアントへのリース状況を記録したデータベースファイルのことを言う。デフォルトのリースファイルは、/var/state/dhcp/dhcp.leasesファイルである。

1.7 DHCPのログ

● DHCPのログの取り方
dhcpdは、syslog経由でログを作成する。参照ファイルは/var/log/messagesである。
# tail /var/log/messagesファイルの最後の方のログを表示
上記のコマンドにより参照する。

1.8 DHCPサーバにおけるセキュリティ

● セキュリティをかける
DHCPは、ブロードキャスト型のサービスなのでネットワーク上にリクエストを流せるクライアントなら誰でもDHCPによりホスト情報の取得が行える。
そこで、以下のセキュリティをかけることをおすすめする。
★ BOOTPを無効にする
★ ネットワークインターフェースを制限する


2.DNSサービス

DNS(Domain Name System)は、世界をカバーする巨大な電話帳のようなものである。
別の講座で詳しいDNSサーバの構築を学習するので、この章ではDNSの簡単な概要を学ぶ。

2.1 DNSの概要

DNSは、世界規模で名前解決を行うための巨大なディレクトリサービスである。
サービスとしてのDNSを理解するには、システムとしてのDNSを理解しておかなければならない。

● DNSが目的とするもの
DNSは、ホスト名とIPアドレスの関連付けをスムースに行うために考案された。

● DNSの専門用語
★ ドメイン
 DNSでは、その名の通りドメイン(domain)が重要な役割を果たしている。ドメインとは、簡単に言うとホストの集合体を言う。
★ ルートドメイン
 親ドメインの頂点は、ルート(root)と呼ばれている。ルートドメインは、全てのドメインの親ドメインを言う。
★ ドメイン名
 ドメインツリーにおける枝分かれの部分は、ノード(node)と呼ばれている。ノードには名前が付けられており、それはそのままドメインに対応するのでドメイン名(domain name)と呼ばれる。
★ TLD
 TLD(Top Level Domain)は、ルートのすぐ下のドメインを言う。
★ サブドメイン
 トップレベルドメインの下の子ドメインは、それを管理する組織がさらにドメインを作成しても良いことになっている。日本を表すccTLDはJPだが、この下にCOやNEがあるのはご存じだと思う。このとき、COやNEはJPのサブドメインという。
★ FQDN
 FQDN(Fully Qualified Domain Name)は、完全修飾ドメイン名と呼ばれインターネット上のホストを単一的に定義する名前である。

2.2 DNSサービスの概要

この章では、サービスについてのDNSを簡単に説明する。

● ゾーン
ゾーン(ZONE)とは、ドメイン名空間の一部である。名前空間の中にあるノードのみか、それ以下のノードを全部あるいは一部を含む部分を言う。

● マスターサーバとスレーブサーバ
1個のゾーンにおいては、信頼性を確保するために同一のデータベースを持った少なくとも2台のDNSサーバを設置する必要がある。これはそれぞれ、マスターサーバ、スレーブサーバと呼ばれている。

● リソースレコード
リソースレコード(RR)は、ゾーンデータベースでデータの集合体である。DNSサーバの設定のほとんどは、このリソースレコードの記述になる。

● DNSにおける名前解決
クライアントがDNSサーバを使ってホスト名からIPアドレスを得ようとするとき、それは名前解決(name resolution)と言う。
以下に名前解決の流れを説明する。(www.hoge.co.jpのIPアドレスを取得する場合)
① ルートに相当するゾーンを管理するDNSサーバ(ルートサーバ)に、トップドメインjpを管理するDNSサーバの名前を問い合わせる。DNSサーバは一般に複数のルートサーバの名前を知っているので、そのいずれかに問い合わせる。
② ルートサーバが、トップレベルドメインjpを管理するDNSサーバ名を返す。
③ ②で与えられたDNSサーバに対し、今度はサブドメインであるco.jpを管理するDNSサーバの名前を問い合わせる。
④ DNSサーバがco.jpを管理するDNSサーバ名を返す。
⑤ ④で得られたDNSサーバに対し、hoge.co.jpを管理するDNSサーバの名前を問い合わせる。
⑥ DNSサーバがhoge.co.jpを管理するDNSサーバ名を返す。
⑦ ⑥で得られたDNSサーバに対し、www.hoge.co.jpのIPアドレスを問い合わせる。
⑧ DNSサーバがwww.hoge.co.jpのIPアドレスを返す。

2.3 BINDの概要

● BINDとは?
BINDは、Linuxで標準的に使用されているDNSサーバソフトウェアである。
元々、BINDはUnixにおける完全なDNSソフトウェアとして機能し、マスターサーバ、スレーブサーバのいずれも動作する。
BIND本体のデーモンは、namedである。

● 標準の設定
RedHat系では、BINDの標準設定は一切のゾーンデータベースを持たないキャッシュオンリーサーバとして動作するように設定されている。

2.4  BINDにおける基本的な設定

以下に、DNSサーバに必要な設定ファイルを簡単に説明する。
★ /etc/named.confファイル
 namedデーモンのための設定ファイルで初期設定ファイルと呼ばれている。
★ /var/named/named.ca
 ヒント情報としてのゾーンデータベースを格納したマスターファイルである。
★ /var/named/named.local
 ローカルホストのループバック逆引きを行うためのゾーンデータベースを格納したマスターファイルである。
★ 正引きゾーンマスターファイル(/var/named/*****.***)
 ドメイン名(ゾーン)に対する名前解決を行うためのマスターファイルである。
★ 逆引きゾーンマスターファイル(/var/named/*****.***)
 IPアドレスから名前を解決するためのマスターファイルである。

2.5 BINDの制御

namedは、サービス制御スクリプトnamedとBINDに含まれるndcと言うプログラム双方で制御できる。

2.6 BINDのログ

BINDは、syslogを使って作成したり、独自のファイルに作成する事が出来る。

2.7 BINDにおけるセキュリティ

BINDにおけるセキュリティを強化するためには。
★ バージョンに注意する
★ ゾーン転送を制限する
★ クエリーを制限する

以上

コメント