하나의 네트워크에 여러 개의 DHCP 서버를 가질 수 있습니까?


85

이것은이다 캐 노니 컬 질문 중복 DHCP 서버에 대해.

동일한 LAN에 둘 이상의 DHCP 서버가있을 수 있습니까? 이 작업의 의미는 무엇입니까?

  1. 사용 가능한 DHCP 서버가 둘 이상 있으면 어떻게됩니까? 고객은 어떤 것을 사용해야하는지 어떻게 알 수 있습니까?
  2. DHCP 서버가 둘 이상의 서브넷 / 네트워크 세그먼트에 주소를 제공하도록하려면 어떻게해야합니까?
  3. 동일한 서브넷에 주소를 제공하도록 여러 DHCP 서버를 구성하는 방법

1
이 질문의 기본 개념은 일반 사용자를 미치게 만드는 모든 "하나 이상의 DHCP 서버를 가질 수있는 방법"질문에 대한 명확한 대답을 제공하는 것입니다. 이것은 우리의 정식 답변 중 하나가되기를 바랍니다 ( meta.serverfault.com/questions/1986/… )
Rob Moir

2
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (및 rfc 3074)는 이미이 동작을 정의하고 있으며 Linux dhcpd는 manpages.ubuntu.com/manpages/precise/en/man5/를
Dani_l

2
@Dani_l 아마도 질문의 '정식 질문'링크를 따라 가야하고 RTFM이 필요하다는 것을 말하기 전에 내 질문에 대한 답변의 저자를 검토해야 할 것입니다.
Rob Moir

2
나는 당신에게 매뉴얼을 읽도록 말하지 않습니다. 나는 단지 매뉴얼이 있음을 지적합니다. 질문은 정식이지만 해당되는 경우 "공식적인"절차에 대한 언급이 포함되어야한다고 생각합니다. 이 경우 IETF / RFC가 존재하며 그것이 공식적인 것입니다.
Dani_l

답변:


95

이 답변에서 DHCP의 기능과 선택한 DHCP 서버를 구성하는 방법에 대한 기본 지식을 가정하고 있지만 동일한 네트워크에서 여러 DHCP 서버에 대해 이야기하기 전에 먼저 클라이언트가 IP 주소를 수신하는 방법을 신속하게 다시 살펴 보겠습니다. 가장 기본적인 수준의 DHCP에서.

간단한 네트워크의 DHCP는 DORA 원칙을 사용하여 작동합니다.

  • 검색-클라이언트가 연결된 로컬 네트워크 세그먼트에서 메시지를 브로드 캐스트하여 사용 가능한 DHCP 서버를 검색합니다.

  • 제공-적절하게 구성된 DHCP 서버는 클라이언트로부터 요청을 받고 사용 가능한 주소 풀에서 주소를 제공합니다.

  • 요청-고객이 제안에 응답하여 제안에 수신 된 주소를 요청합니다.

  • 승인-서버는 요청을 확인하여 주소 풀에 사용 된 주소를 표시하고 클라이언트에게 주소 임대 기간과 기타 필요한 정보를 알려줍니다.

네트워크 세그먼트의 모든 장치는 DHCP 서버 일 수 있습니다. 라우터 나 도메인 컨트롤러 또는 네트워크의 다른 "특별한"장치 일 필요는 없습니다.

네트워크의 장치가 처음으로 IP 주소를 요청하거나 임대가 끝날 때까지 (또는 임대가 여전히 유효한지 확인하도록 강제) DHCP 서버에 대한 요청을 브로드 캐스트 하고 첫 번째 제안을 수락합니다. 응답 할 DHCP 서버 . 아래의 여러 DHCP 서버에 대한 옵션을 볼 때 기억해야합니다.

여러 DHCP 서버 PT 1 : 여러 서브넷 스패닝.

여러 서브넷으로 분리 된 여러 VLAN 또는 물리적 네트워크 세그먼트가 있고 모든 해당 서브넷의 장치에 DHCP 서비스를 제공하려는 경우이를 수행하는 두 가지 방법이 있습니다.

  1. 라우터 / 계층 3 스위치를 분리하여 BOOTP / DHCP 릴레이 에이전트로 작동 할 수 있으면 모든 DHCP 서버를 네트워크의 하나 또는 두 개의 중앙 부분에 계속 유지하고 DHCP 서버를 다음과 같이 구성 할 수 있습니다. 여러 범위의 주소를 지원합니다. 이를 지원하려면 라우터 또는 계층 3 스위치가 RFC 1542 섹션 4 에서 다루는 BOOTP 릴레이 에이전트 사양을 지원해야합니다 .

  2. 라우터가 RFC 1542 BOOTP 릴레이 에이전트를 지원하지 않거나 일부 네트워크 세그먼트가 저속 링크를 통해 지리적으로 분산 된 경우 각 서브넷에 하나 이상의 DHCP 서버를 배치해야합니다. 이 '로컬'DHCP 서버는 자체 로컬 세그먼트의 요구 사항 만 제공하며 다른 DHCP 서버와의 상호 작용은 없습니다. 이것이 원하는 경우, 자신의 서브넷에 대한 주소 풀의 세부 사항과 함께 각 DHCP 서버를 독립형 서버로 구성하고 네트워크의 다른 부분에있는 다른 DHCP 서버에 대해 걱정하지 않아도됩니다. 동일한 네트워크에 둘 이상의 DHCP 서버가있는 가장 기본적인 예입니다.

여러 DHCP 서버 PT 2 : 동일한 네트워크 세그먼트를 제공하는 DHCP 서버.

대부분의 사람들이“동일한 네트워크에있는 여러 DHCP 서버”에 대해 질문 할 때 일반적으로 요구하는 것은 이것입니다. 여러 서버간에로드를 분할하거나 한 서버가 오프라인 인 경우 중복성을 제공하기 위해 클라이언트에 동일한 범위의 네트워크 주소를 발행하는 둘 이상의 DHCP 서버를 원합니다.

생각과 계획이 필요하지만 완벽하게 가능합니다.

"네트워크 트래픽"관점에서이 답변의 시작 부분에 요약 된 DORA 프로세스는 네트워크 세그먼트에 둘 이상의 DHCP 서버가 존재할 수있는 방법을 설명합니다. 클라이언트는 단순히 검색 요청을 브로드 캐스트하고 제안에 응답하는 첫 번째 DHCP 서버가 '승자'입니다.

서버의 관점에서 볼 때 각 서버에는 주소 범위로 알려진 클라이언트에 발급 할 수있는 주소 풀이 있습니다. 동일한 서브넷을 제공하는 DHCP 서버는 단일 "공유"범위가 아니라 "분할"범위를 가져야합니다.

즉, 192.168.1.100에서 192.168.1.200까지 클라이언트에 발행 할 DHCP 주소 범위가있는 경우 두 서버 모두 해당 범위의 개별 파트를 제공하도록 구성해야합니다. 따라서 첫 번째 서버는 해당 범위의 일부를 사용할 수 있습니다. 192.168.1.100에서 192.168.1.150으로, 두 번째 서버는 192.168.1.151에서 192.168.1.200을 발행합니다.

제외를 보여주는 분할 DHCP 범위

Microsoft의 최신 DHCP 구현에는 Microsoft DHCP 구현을 사용하지 않더라도 살펴볼 가치가있을 수 있는 Technet 기사에 설명되어있는 것처럼 이와 같이 범위를 쉽게 분할 할 수있는 마법사 가 있습니다. 여기에 아주 훌륭하고이 답변은 이미 충분히 깁니다.

범위 분할 – 모범 사례

가장 좋은 방법은 DHCP 범위를 분할하기위한 80/20 규칙입니다. 즉, 한 서버는 해당 범위의 주소 중 80 %를 제공하고 다른 DHCP 서버는 사실상 '예약'상태입니다. 주소의 20 %를 제공합니다.

주소를 80/20으로 나누는 아이디어는 사용 가능한 주소의 80 %가 서브넷에 필요한 모든 주소에 적합해야하며 DHCP 임대는 일반적으로 며칠 동안 발행되기 때문입니다. 따라서 주 DHCP 서버가 몇 시간 동안 작동 중단되면 해당 서브넷에있는 시스템의 20 % 이상이 가동 중지 시간 동안 주소를 갱신해야 할 가능성이 거의 없으므로 20 % 주소 풀이 충분합니다.

이것은 여전히 ​​합리적인 조언이지만 두 가지를 가정합니다.

  1. 예비 DHCP 서버의 작은 주소 풀을 소모하지 않도록“기본”DHCP 서버의 문제를 신속하게 해결할 수 있습니다.
  2. 로드 밸런싱에 관심이 없습니다.

요즘 (내 예제에서 볼 수 있듯이) 50/50 분할을 선호하는 경향이 있으며, 위의 점에 대한보다 현실적인 대답이라고 생각합니다.

DHCP 서버에서 범위를 만들 때 고려해야 할 또 다른 사항은 각 서버에 전체 범위를 구성하고 다른 DHCP 서버가 제공 한 범위를 제외하는 것입니다. 이는 각 DHCP 서버의 전체 서브넷에 대한 DHCP 정보를 "자체 문서화"하는 이점을 통해 어떤 일이 일어나고 있는지 이해하려는 다른 사람의 DHCP 서버 중 하나가 오프라인 상태 인 경우 명확성을 향상시킵니다. 언젠가 다른 서버에서 제외 범위를 선택할 수 있도록 제외 범위를 일시적으로 재구성 할 수 있습니다.

이 아이디어를 결합

마지막으로 위에서 설명한 원칙을 결합 할 수 있다는 점을 기억하십시오. 모든 DHCP 서버를 하나 이상의 "중앙 서버"VLAN에 배치하고 모든 라우터에서 BOOTP 릴레이 에이전트를 사용하여 매우 크고 세분화 된 모든 DHCP 요청을 보낼 수 있습니다 네트워크를 중앙 집중식 DHCP 서비스에 연결합니다 (아래의 내용 참조). 또는 로컬 서브넷에 "기본"DHCP 서버와 "가까운"네트워크 세그먼트에 "예약"DHCP 서버를 사용하여 네트워크 전체에 DHCP 서버를 분산시켜 백업으로 소량의 주소를 제공 할 수 있습니다. 자체 네트워크 세그먼트에있는 두 개의 DHCP 서버가 서로 80/20 범위의 주소를 제공하도록 구성되어 있습니다. 가장 합리적인 선택은 물리적 네트워크와 논리적 네트워크가 서로 매핑되는 방법에 따라 다릅니다.

분할 범위를 여러 서브넷으로 제공하는 DHCP 서버


3
범위가 분리 된 경우 : DHCP 예약은 양쪽에 설정되어야합니다. 자주 업데이트해야하는 경우 동기화 상태를 유지하는 것은 매우 번거로울 수 있습니다.
Tonny

4
기본 DHCP 서버가 실행되는 한 예비 DHCP 서버에 도달하지 않도록하는 기술을 자세히 설명 할 수 있습니까? 내가 읽을 수 있듯이 두 서버 중 하나에서 응답을받을 확률이 동일하면 총 임대 수가 예약 풀 크기의 두 배를 초과하면 예비 서버에 통계적으로 부족합니다. 이것은 아마도 메인 DHCP 서버가 다운되었을 때 새로운 클라이언트에게 예비 서버를 쓸모 없게 만든다.
Niels B.

3
@NielsB. 80/20 분할과 같은 작업을 수행하는 경우 예약 서버 ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/… ) 의 응답으로 지연을 설정할 수 있습니다 . 50/50 분할을 직접 사용할 때 이것을 귀찮게하지 않지만 작동합니다.
Rob Moir 2014

13

몇 년 전이 방법을 중소 규모 (500 명의 사용자) 네트워크에 적용하여 상당한 이점을 얻었습니다. DHCP는 단일 장애 지점으로 중단되었습니다. MAC과 IP 주소를 영구적으로 연결함으로써 두 DHCP 서버가 각 DHCP 요청에 대해 동일한 응답을하도록합니다. 모든 네트워크 자산의 IP 주소를 알면 네트워크 관리가 간소화되고 DNS가 동일한 데이터베이스를 실행할 수 있습니다. 시스템은 Internet Software Corporation BIND 및 DNS를 사용했으며 관련 스크립트는 https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/download/25- 에서 다운로드 할 수 있습니다. dns-dhcp-download .

대안은 진정한 ISC DHCPD 장애 조치를 사용하는 것입니다 : https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html


2
OP는 구체적으로이 질문에 대한 설명을 요구했습니다. 답변을 수정하여 확대 할 수 있습니다.
브렌트 파스트

3
fwiw,이 답변은 짧고 정식 질문 및 답변 세트에서 더 자세하게 설명하지는 않지만 DHCP 중복을 수행하는 약간 다른 방법을 언급하므로 상당히 좋았습니다.
Rob Moir 2016 년

1
@DJ Pon3 동의합니다 : 큰 다중 사이트 DHCP (VLAN은 적음)와 비슷한 설정을 실행하고 해당 VLAN의 3/4에 대해 Peter Talbot과 동일한 접근 방식을 사용합니다.
Tonny

1
링크가 끊어졌습니다 :(
Sergey Vlasov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.