フェイルオーバー、dhcp-relay、および動的ゾーン更新を備えたCentos7上の2つのDHCPサーバー

すべてのhabrayuzerへの挨拶。 Habréに関する記事を書いた最初の経験なので、建設的な批判は大歓迎です。 解決策を見つけることができなかった問題に最近遭遇したため、私は書くことにしました。



問題の本質は、大規模な組織がdhcp-relayと構成を迅速に同期する機能を備えたフェールセーフDHCPサーバーを必要としていたことです。 主なポイントは、私が見つけたほとんどのマニュアルでは、フェイルオーバーまたはdhcp-relayオプションのいずれかが考慮されており、構成同期の便利な方法とともに両方のオプションが考慮されている場所はないということです。 突然、私の記事は少し役立ちますか?



問題の本質は次のとおりです。大企業、1000台以上のコンピューターのネットワーク、単一のVLAN、2つのドメインコントローラーがあり、ネットワークにdhcpがありません(!)。 以前の管理者はこれを行う方法を知っていましたが、これは別の話であり、Habrの話ではありません。



最初のタスクがネットワークの近代化、つまりvlanでのセグメンテーションとdhcpの導入であることは明らかです。 タスクを分析するとき、次の要件が作成されました。





さまざまな記事やマニュアルの長い考えや読み方については説明しませんが、最終的な作業ソリューションを示します。





ネットワーク図:



画像



私たちが持っています:





いくつかの事柄は非常に些細であり、インターネット上で複数回説明されているので、私はそれらを詳細に説明しません。



  1. まず、Windows DNSでは、すべてのVLANに対してすべての逆ゾーンを作成し、ゾーンの安全でない更新を許可します。



  2. 仮想マシンに最小centos 7をインストールし、dhcpパッケージをインストールします。



  3. 管理対象スイッチのインターフェースでDHCPリレーを構成します。 同時に、ストリング「VLAN10」などがcircuit-idとして来ます。



  4. /etc/dhcp/dhcpd.confの編集



    # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page # # ddns-update-style interim; #   ddns-domainname "corp.example.ru"; #    update-static-leases on; #    local-address 10.1.2.4; #   #  ,     DHCP-relay if exists agent.circuit-id { log ( info, concat( " Accepted DHCP RELAY request for ", binary-to-ascii (10, 8, ".", leased-address), " Network segment: ", option agent.circuit-id, " DHCP Agent: ", option agent.remote-id)); } # this DHCP server to be declared valid authoritative; #   failover peer "dhcp-failover" { primary; #    address 10.1.2.4; #   port 519; #   peer address 10.1.2.14; #   DHCP peer port 520; #   DHCP #    max-response-delay 30; max-unacked-updates 10; load balance max seconds 3; mclt 1800; split 128; #       DHCP  #     , #    ""    . auto-partner-down 86400; #    @baf28 } #      option domain-name "corp.example.ru"; # DNS- option domain-name-servers 10.1.2.2, 10.1.2.3; #  DNS-.    Windows- option domain-search "example.lan corp.example.ru"; #    default-lease-time 604800; # 7 days max-lease-time 2419200; # 4 weeks # default netmask /24 option subnet-mask 255.255.255.0; # Servers vlan -  DHCP subnet 10.1.2.0 netmask 255.255.255.0 { } #     VLAN' include "/etc/dhcp/dhcpd.d/vlan10.conf"; include "/etc/dhcp/dhcpd.d/vlan11.conf"; include "/etc/dhcp/dhcpd.d/vlan20.conf"; include "/etc/dhcp/dhcpd.d/vlan21.conf";
          
          





  5. 次に、各VLANの構成ファイルを追加します(たとえば/etc/dhcp/dhcpd.d/vlan10.conf



     #       zone 10.1.10.in-addr.arpa. { primary 10.1.2.2; secondary 10.1.2.3; } #       DHCP-relay class "VLAN10" { match if option agent.circuit-id = "VLAN10"; } #     subnet 10.1.10.0 netmask 255.255.255.0 { option routers 10.1.10.1; pool { failover peer "dhcp-failover"; #   ,  failover  range 10.1.10.51 10.2.56.254; #  allow members of "VLAN10"; #    } # === Static hosts # Admin host admin { hardware ethernet 01:23:45:67:89:ab; fixed-address 10.1.10.20; } # Admin's printer host admin { hardware ethernet cd:ef:01:23:45:67; fixed-address 10.1.10.21; } #        , #           # Insert automatic text above this }
          
          





  6. 2番目のDHCPサーバーについても、同様の構成を作成し、メインファイルでのみ修正します。



     failover peer "dhcp-failover" { secondary; #    address 10.1.2.14; #   port 520; #   peer address 10.1.2.4; #   DHCP peer port 519; #   DHCP #    max-response-delay 30; max-unacked-updates 10; load balance max seconds 3; #       DHCP  #     , #    ""    . auto-partner-down 86400; #    @baf28 }
          
          





2台のdhcpサーバーがあり、そのうちの1台が切断された場合、2台目のサーバーが機能を取得し、両方がdhcpリレーエージェントからの要求に応答し、dhcpオプション82の回線ID文字列(この場合、VLAN名)に基づいて各セグメントを提供その範囲。



サーバーを複製するには、「/ etc / dhcp / dhcpd.d /」ディレクトリ内のファイルを同期し、その後dhcpデーモンを再起動するスクリプトを記述するだけで十分です。 ひざと非常に急いで手に書かれた非常に「松葉杖」のコードのため、スクリプト自体を引用しません。 csync2やrsyncなどのユーティリティを使用して、構成を同期することができます。



静的バインディングを追加するために、別のスクリプトも作成されましたが、同じ理由でここで引用することを恥ずかしく思います。 誰でも自分でこれを楽しんだり、静的バインディング「ハンドル」を追加したりできます。



唯一の「しかし」-新しいVLANを追加するとき、メイン構成ファイル「/etc/dhcp/dhcpd.conf」をハンドルで編集する必要があります。特定のファイルのみにディレクトリ全体を含めることできませんでした。



おそらく、これは二重インクルードによってバイパスできます。最初にメインファイルで補助に、補助で特定のVLANファイルに、次に補助を同期しますが、気にしませんでした。



繰り返しますが、私が説明した情報のほとんどはインターネット上に大量にありますが、フェールオーバー、dhcp-relayを組み合わせて同期に便利にする方法はどこにもありません。 コメントや提案を待っています



All Articles