すべてのhabrayuzerへの挨拶。 Habréに関する記事を書いた最初の経験なので、建設的な批判は大歓迎です。 解決策を見つけることができなかった問題に最近遭遇したため、私は書くことにしました。
問題の本質は、大規模な組織がdhcp-relayと構成を迅速に同期する機能を備えたフェールセーフDHCPサーバーを必要としていたことです。 主なポイントは、私が見つけたほとんどのマニュアルでは、フェイルオーバーまたはdhcp-relayオプションのいずれかが考慮されており、構成同期の便利な方法とともに両方のオプションが考慮されている場所はないということです。 突然、私の記事は少し役立ちますか?
問題の本質は次のとおりです。大企業、1000台以上のコンピューターのネットワーク、単一のVLAN、2つのドメインコントローラーがあり、ネットワークにdhcpがありません(!)。 以前の管理者はこれを行う方法を知っていましたが、これは別の話であり、Habrの話ではありません。
最初のタスクがネットワークの近代化、つまりvlanでのセグメンテーションとdhcpの導入であることは明らかです。 タスクを分析するとき、次の要件が作成されました。
- 耐障害性-鉄からの独立性
- ネットワークセグメンテーションの計画を考えると、サーバーはどのVLANをどのアドレッシングに提供するかを知っている必要があります。
- 「レプリケーション」-dhcpの「バインディング」をMACで広く使用する予定の場合、これらの「バインディング」が常に機能する必要があります(ネットワークプリンタなど)
- 逆引きDNSゾーンの自動メンテナンス
さまざまな記事やマニュアルの長い考えや読み方については説明しませんが、最終的な作業ソリューションを示します。
- 2つの異なるハイパーバイザー上の2つの仮想マシン
- マシンではcentos7およびisc-dhcpdです
- DHCPで、フェールオーバー、動的ゾーン更新、およびオプション82認識が構成されます
- 要求の送信元であるVLANのラベルが付いたオプション82、サーバーにはすべてのVLANが解決されるL3 +中央スイッチが与えられます
- ほとんどの管理者はlinuxとvimの指向が不十分であるため、静的バインディングと構成複製メカニズムを追加するプロセスの自動化が必要です。
ネットワーク図:

私たちが持っています:
- DNSサーバーが構成されたDC0およびDC1、10.1.2.2および10.1.2.3
- DHCP0およびDHCP1、10.1.2.4および10.1.2.14
- ユーザーVLAN:10、11、20、21
- ドメインcorp.example.ru
- 追加のDNSゾーン(Linuxサーバー用) -example.lan
- dhcpオプション82をサポートするL3ベースのルーター。 すべてのVLANに、OSPF経由で接続された最初のIPアドレスがあります
いくつかの事柄は非常に些細であり、インターネット上で複数回説明されているので、私はそれらを詳細に説明しません。
- まず、Windows DNSでは、すべてのVLANに対してすべての逆ゾーンを作成し、ゾーンの安全でない更新を許可します。
- 仮想マシンに最小centos 7をインストールし、dhcpパッケージをインストールします。
- 管理対象スイッチのインターフェースでDHCPリレーを構成します。 同時に、ストリング「VLAN10」などがcircuit-idとして来ます。
- /etc/dhcp/dhcpd.confの編集
- 次に、各VLANの構成ファイルを追加します(たとえば/etc/dhcp/dhcpd.d/vlan10.conf )
- 2番目のDHCPサーバーについても、同様の構成を作成し、メインファイルでのみ修正します。
failover peer "dhcp-failover" { secondary;
2台のdhcpサーバーがあり、そのうちの1台が切断された場合、2台目のサーバーが機能を取得し、両方がdhcpリレーエージェントからの要求に応答し、dhcpオプション82の回線ID文字列(この場合、VLAN名)に基づいて各セグメントを提供その範囲。
サーバーを複製するには、「/ etc / dhcp / dhcpd.d /」ディレクトリ内のファイルを同期し、その後dhcpデーモンを再起動するスクリプトを記述するだけで十分です。 ひざと非常に急いで手に書かれた非常に「松葉杖」のコードのため、スクリプト自体を引用しません。 csync2やrsyncなどのユーティリティを使用して、構成を同期することができます。
静的バインディングを追加するために、別のスクリプトも作成されましたが、同じ理由でここで引用することを恥ずかしく思います。 誰でも自分でこれを楽しんだり、静的バインディング「ハンドル」を追加したりできます。
唯一の「しかし」-新しいVLANを追加するとき、メイン構成ファイル
「/etc/dhcp/dhcpd.conf」をハンドルで編集する必要があります。特定のファイルのみにディレクトリ全体を
含めること
はできませんでした。
おそらく、これは二重インクルードによってバイパスできます。最初にメインファイルで補助に、補助で特定のVLANファイルに、次に補助を同期しますが、気にしませんでした。
繰り返しますが、私が説明した情報のほとんどはインターネット上に大量にありますが、フェールオーバー、dhcp-relayを組み合わせて同期に便利にする方法はどこにもありません。 コメントや提案を待っています