- PR -

DHCPサーバー 2重化 について

投稿者投稿内容
よしら
会議室デビュー日: 2007/07/23
投稿数: 17
投稿日時: 2008-12-20 10:25
こんにちは。
DHCPサーバーを二重化して可用性を向上したいのですが、いろいろ調べると次のような
ことが判りました。

・リースのアドレスを重複しないように配分する(割り当て可能なアドレスが半減する)
・複数台DHCPサーバーがある場合は一番早くレスポンスしたものがアドレスを提供する

当方の環境ではノードを全てDHCP予約アドレスとして、また、一部固定アドレスとして
提供しています。また余ったアドレスはリースできないように除外しています。

DHCPサーバーを全く同じリース予約の設定で二台DHCPサーバーを設置すれば単純に
二重化できるのではないかと考えました。管理的にはともかく技術的には何も問題が
発生しないと信じておりますが、といいながら不安です、いかがなものでしょうか?

問題ないと考えた理由としては

・全てのノードが予約があるのでどちらのサーバーから取得しても何時も同じIPアドレスが得られる
・全てのノードが予約済みなので重複するアドレスをリースすることはありえない

が理由です。
管理面では変更があったときに二台のDHCPサーバーを正しく変更しないというデメリットはあります。

ここまで書いていてもう一案気づいたのですがそもそも全て予約アドレスならば
全部固定にしたら良いのでは、そしたら余分なDHCPサーバーもいらなくなるし、、、、
とも思いましたが、とりあえずDHCPサーバーを二重化ということで問題点を指摘して
いただければ幸いです。

よろしくお願いします。
BackDoor
ぬし
会議室デビュー日: 2006/02/20
投稿数: 831
投稿日時: 2008-12-22 08:35
こんにちは。

DHCPサーバで固定IPアドレスを割り当てる設定を2台のDHCPサーバに全く同様に
設定したいが問題があるか?」
という質問内容で宜しいでしょうか?

普通、可用性の向上目的ならば、DHCPサーバを冗長構成で運用する方法を用いる
のが普通です。

実際のところ後者の方法では接続クライアント数の2倍のアドレスキープが必要
なのであまり広く用いられていない気がします。
前者の複数設定は確かに上手くいきそうに思えますが、運用が大変そうな気はします。

# 的確なアドバイスはできませんが、人柱覚悟でやってみる価値はあると思いますw
未記入
常連さん
会議室デビュー日: 2007/06/22
投稿数: 44
投稿日時: 2008-12-22 10:50
アプライアンスならこんなのありますよ。
http://www.soliton.co.jp/products/infrastructure/infoblox/feature.html
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-12-22 12:49
2 分の 1 になるのってそんなに問題ですか?

広い範囲が必要であれば、/23 で network 切るとか方法はあるので個人的にはまったく問題ないと思っています。
よしら
会議室デビュー日: 2007/07/23
投稿数: 17
投稿日時: 2008-12-22 13:28
返信ありがとうございます。

このようなやり方が出来るかどうか考える原因として
・DHCPはクライアントの要求で制限をかけていなければ誰にでもリースする。
・従ってクライアントの制限をかけないといけない。
・クライアントに対して何時も同じIPをリース。
・余ったIPのプールはリースから除外することで誰でもリースできるというのを防ぐ。
そして
・二重化しないとDHCPサーバーが落ちる=ネットワークアクセス不可、これは困る。
・二つのDHCPサーバーでそれぞれ違う範囲でIPをリースすることが出来る。
のですが
・ACTIVE-ACTIVEでどちらのIPをリースするか確率50%で違ってくる。
・DNSはどうなるのか私には不明なので同じIPを与えたい。
・なにか美しくない。
などと思っています。
実はIPアドレスのプールも豊富には無いので1/2になるのはあまり好ましくないの
です。

アプライアンスは高価ですので採用できないですがあったら楽ですね。

人柱となるか、固定IPにしてしまうか思案中であります。
t-nakamura
会議室デビュー日: 2008/12/01
投稿数: 9
投稿日時: 2008-12-24 12:27
DHCPサーバを1:1運用待機クラスタ構成とかにするのは駄目なのでしょうか?

> ・全てのノードが予約済みなので重複するアドレスをリースすることはありえない
に関しては、DHCPサーバから見ればその通りだと思います。
とはいえ、悪意のあるユーザが固定IPを使用したり、
別のDHCPサーバをネットワーク上につなげたり、
任意のMACアドレスを使用したりすると……。
そのあたりを気にしないとか、運用でカバーするとか、
検疫用のVLANを用意するとか、そういった事ができるのであれば良いのですが。

なお、DHCPサーバソフトウェアが何かわかりませんが、
RFC2131の3.1.2に記述されている機能が実装されているものであれば、
IPアドレスのリリース前にネットワーク内に同一IPが無いかチェックします。
かなり前にとあるセキュリティアプライアンス内蔵のDHCPサーバーで試したところ、
リースするIPがネットワーク上に存在するかICMPでチェックしていたことを確認できました。
DHCPサーバによってはDHCPプールと同一IPを見つけた際に、
管理者にレポート送信できるものもあると思います。

が、そのネットワーク上で重複チェックに使用するプロトコルが使えるかどうかとか、
ネットワークの一時的な断線などで、上記機能がうまく作動しない可能性もあります。
今回はすべてのノードが予約済みということなので、これらは考慮外だと思いますが、参考までに。
たらお
大ベテラン
会議室デビュー日: 2006/12/25
投稿数: 206
お住まい・勤務地: 東京・永代通り
投稿日時: 2008-12-24 13:35
可能です。

DHCPサーバをVRRPなどで冗長して、クライアントと別セグメントに設置し、
中間のルータで、ブロードキャスト←→ユニキャスト変換を行います。
Bootpリレー、DHCPリレー機能という名称でほとんどのルータに実装されています。
Ciscoでは、IPHelper機能などと呼ばれていましたね。

コード:


 ┌DHCP2 172.16.2.3
 ├DHCP1 172.16.2.2
 |
 |↑Unicast:VIP 172.16.0.100:68
[Router]
 |↑Bcast:255.255.255.255:68(だったか?)
 |
 ├Client
 └Client




リーステーブルの同期を取るとかの要件が出てくると、専用機の出番ですね。
InfoBoxとかありましたね。


_________________
_福田太郎_
よしら
会議室デビュー日: 2007/07/23
投稿数: 17
投稿日時: 2008-12-24 17:01
お返事ありがとうございます。

今更ですがDHCPサーバーはWindows2003のドメインコントローラに含まれるものを
利用しています。ルータなどのネットワーク機器やDHCP専用サーバーではありません。
後先で申し訳ありませんでした。

VRRPを使ってユニキャストで狙うというのはバーチャル環境で素敵な手法ですね。

また、ACTIVE-ACTIVEではなくACTIVE-STANDBYだとどうか?というのは私もそうしたら
どうかと考えていました。PHPのスクリプトでDHCPServerサービスを1分置きくらいで
モニタリングして死んでたらもう一方のサービスを起動できないか考えていました。
こちらなら出来そうということが見えてきました。

現在私の中で一番有力な方法は後ろ向きかもしれませんが全てのクライアントを
固定IPの設定をしてDHCPを使わないとしたい。これのメリットは、

・技術的な問題はなさそうだ
・DHCPサーバーが停止してもIPアドレスは取得できる
・このままのIT資産で可能である

デメリットは、

・IPアドレス等管理面で工数が掛かる
・特にGWなどの変更があったり、アドレス体系の変更で大変な思いをする

ほかにも、

・適当なIPアドレスを使ってアクセスする輩がいると困る、が、DHCPでも条件は同じか

ただ、そもそもDHCPなのに予約アドレスにしたのは「iPOD」なんてホスト名の怪しいノードがIPアドレスをリースしていたのでこれをなくしたいというのが動機でした。
固定IPにすると無くなるかというとそれは判りませんし、ある程度知識があれば空いているアドレスを見つけて接続するなんて簡単そうです。DHCPではなくてスイッチかルーターに何がしかのアクセス制限をかければ何とかなると思っています。

スキルアップ/キャリアアップ(JOB@IT)