동적 호스트 구성 프로토콜
DHCP 는 동적 호스트 구성 프로토콜의 약어로, 전신은 BOOTP 입니다. BOOTP 는 처음에 디스크 없는 호스트 연결을 위한 네트워크에서 사용되었습니다. 네트워크 호스트는 디스크 대신 부트 ROM 을 사용하여 네트워크를 시작 및 연결하고 BOOTP 는 해당 호스트에 대한 TCP/IP 환경을 자동으로 설정할 수 있습니다. 하지만 BOOTP 는 설정하기 전에 클라이언트의 하드웨어 주소를 미리 받아야 한다는 단점이 있습니다. IP 에 대한 대응은 정적입니다. 즉, BOOTP 는 "동기 부여" 가 매우 부족합니다. 제한된 IP 자원 환경에서 BOOTP 의 일대일 대응은 상당한 낭비를 초래할 수 있습니다. DHCP 는 BOOTP 의 향상된 버전이라고 할 수 있습니다. 하나는 서버이고 일부는 클라이언트입니다. 모든 IP 네트워크 구성 데이터는 DHCP 서버에 의해 중앙에서 관리되며 클라이언트의 DHCP 요구 사항을 처리합니다. 클라이언트는 서버에서 할당된 IP 환경 데이터를 사용합니다. DHCP 는 BOOTP 에 비해 "lease" 라는 개념을 통해 클라이언트의 TCP/IP 설정을 효율적으로 동적으로 할당하며 호환성을 위해 BOOTP 클라이언트의 요구 사항을 충분히 고려합니다. 첫째, 네트워크에서 작동하는 하나 이상의 DHCP 가 있어야 합니다. 네트워크의 DHCP 요청을 수신하고 TCP/IP 설정 환경에 대해 클라이언트와 논의합니다. 세 가지 IP 포지셔닝 방법을 제공합니다.
수동 할당
네트워크 관리자는 몇 개의 특정 호스트에 고정 IP 주소를 바인딩하고 해당 주소가 만료되지 않습니다.
자동 할당
DHCP 클라이언트가 처음으로 DHCP 서버에서 IP 주소를 성공적으로 임대하면 항상 사용되는 자동 할당.
동적 할당
DHCP 가 HDCP 서버에서 처음으로 IP 주소를 대여할 때 영구히 사용되지 않는 동적 할당입니다. 임대가 만료되면 클라이언트는 다른 워크스테이션에서 사용할 수 있도록 IP 주소를 해제해야 합니다. 물론 클라이언트는 임대를 갱신하거나 다른 호스트보다 다른 IP 주소를 대여할 수 있습니다. 동적 할당은 특히 실제 IP 주소가 부족한 경우 자동 할당보다 훨씬 유연합니다. 예를 들어, ISP 인 경우 전화 접속 고객에게 200 개의 IP 주소만 제공할 수 있지만, 고객이 최대 200 개까지만 가질 수 있다는 뜻은 아닙니다. 고객이 동시에 인터넷을 할 수 없다는 것을 알고 있기 때문입니다. 그들의 행동 습관이 다를 뿐만 아니라 전화선의 제한일 수도 있다. 이렇게 하면 이 200 개의 주소를 차례로 전화 접속 고객에게 대여할 수 있습니다. 그렇기 때문에 IP 주소를 확인할 때 전화를 걸 때마다 다릅니다 (고정 IP 를 신청하지 않는 한, 일반적인 ISP 는 이 요구 사항을 충족시킬 수 있으며 추가 요금이 부과될 수 있음). 물론 ISP 는 DHCP 를 사용하여 주소를 할당할 필요는 없지만 이 개념은 IP 풀을 사용하는 것과 동일합니다. DHCP 는 동적으로 IP 주소를 설정할 수 있을 뿐만 아니라 일부 특수 용도의 시스템을 위해 일부 IP 를 예약할 수 있습니다. 하드웨어 주소에 따라 IP 주소를 할당할 수 있어 더 많은 디자인 공간을 제공할 수 있습니다. 또한 DHCP 는 클라이언트가 라우터, 넷마스크, DNS 서버, WINS 서버 등을 지정할 수 있도록 도와줍니다. 클라이언트에서는 DHCP 옵션을 확인하는 것 외에 IP 환경을 설정할 필요가 거의 없습니다.
DHCP 작동 방식은 클라이언트가 네트워크에 처음 로그인했는지 여부에 따라 달라집니다. 처음 로그인할 때:
서버를 찾는 중입니다. DHCP 클라이언트가 네트워크에 처음 로그인했을 때, 즉 클라이언트가 기본으로 설정된 IP 데이터가 없다는 것을 알게 되면 DHCP DISCOVER 패킷이 네트워크로 전송됩니다. 클라이언트는 자신이 속한 네트워크를 모르기 때문에 패킷의 소스 주소는 0.0.0.0, 대상 주소는 255.255.255.255 입니다. 그런 다음 DHCP discover 의 정보를 첨부하여 네트워크에 브로드캐스팅합니다. Windows 에서 DHCP discover 의 대기 시간은 기본적으로 1 초로 사전 설정되어 있습니다. 즉, 클라이언트가 첫 번째 DHCP discover 패키지를 보낸 후 1 초 내에 응답하지 않으면 DHCP discover 가 두 번째로 브로드캐스트됩니다 응답이 없을 경우 클라이언트는 DHCP discover 를 네 번 (첫 번째 포함) 브로드캐스트합니다. 첫 번째를 제외하고 나머지 세 번의 대기 시간은 각각 9, 13, 16 초입니다. DHCP 서버가 응답하지 않으면 클라이언트는 DHCP 검색이 실패했다는 오류 메시지를 표시합니다. 이후 사용자의 선택에 따라 5 분 후에도 DHCP discover 프로세스가 계속 반복됩니다.
IP 리스 주소를 제공합니다. DHCP 서버는 클라이언트가 보낸 DHCP discover 브로드캐스트를 수신하면 대여되지 않은 주소 범위에서 첫 번째 유휴 IP 및 기타 TCP/IP 설정을 선택하고 DHCP OFFER 패킷으로 클라이언트에 응답합니다. 클라이언트에는 처음에 IP 주소가 없으므로 DHCP discover 패킷에는 해당 MAC 주소 정보와 XID 번호가 있어 패킷을 식별하고 DHCP 서버가 응답하는 DHCP offer 패킷은 해당 데이터를 기반으로 임대를 요청하는 클라이언트로 전송됩니다. 서버 구성에 따라 DHCP offer 패킷에는 임대 기간 정보가 포함됩니다.
IP 임대를 받다. 클라이언트가 네트워크의 여러 DHCP 서버에서 응답을 받으면 DHCP offer (일반적으로 가장 먼저 도착하는 것) 하나만 선택하고 DHCP 요청 브로드캐스트 패킷을 네트워크로 전송하여 모든 DHCP 서버에 제공된 IP 주소를 허용할 서버를 지정합니다. 또한 클라이언트는 네트워크의 다른 시스템이 해당 IP 주소를 사용하는지 여부를 쿼리하는 ARP 패킷을 네트워크로 보냅니다. IP 사용이 발견되면 클라이언트는 DHCP 서버에 DHCPDECLINE 패킷을 보내고, DHCP 제공을 거부하고, DHCP discover 정보를 다시 보냅니다. 실제로 모든 DHCP 클라이언트가 DHCP 서버, 특히 다른 TCP/IP 관련 클라이언트 소프트웨어가 설치된 호스트의 제공을 무조건 받아들이는 것은 아닙니다. 클라이언트는 DHCP request 를 사용하여 서버에 DHCP 옵션을 제출할 수도 있습니다. 이 옵션은 DHCP Option 필드를 다른 숫자로 채웁니다.
즉, 클라이언트는 DHCP 서버의 모든 설정을 수락하지 않을 수 있으며 클라이언트는 자체 TCP/IP 설정 중 일부를 유지할 수 있습니다. 주동권은 항상 클라이언트에 있다.
임대 확인. DHCP 서버가 클라이언트로부터 DHCP 요청을 받으면 DHCPACK 응답이 클라이언트에 전송되어 IP 임대가 공식적으로 발효되었음을 확인함으로써 전체 DHCP 작업 프로세스를 종료합니다. 위의 작업 흐름은 다음과 같습니다.
DHCP 게시 프로세스의 첫 로그인 후: DHCP 클라이언트가 서버에서 DHCP 임대를 성공적으로 받은 후에는 임대가 만료되고 IP 주소가 다시 0.0.0.0 으로 재설정되지 않는 한 DHCP discover 정보를 보낼 필요가 없습니다. 대신 임대한 IP 주소를 사용하여 이전 DHCP 서버에 DHCP 요청 정보를 직접 보내고 DHCP 서버는 클라이언트가 원래 IP 주소를 사용하도록 합니다. 문제가 없을 경우 DHC 팩에 직접 응답하여 확인할 수 있습니다. 주소가 잘못되었거나 다른 시스템에서 이미 사용 중인 경우 서버는 클라이언트에 DHCPNACK 패킷에 응답하고 DHCP discover 를 다시 실행하도록 요청합니다. IP 의 임대 기간은 매우 신경을 쓰는 것이지, 집을 빌리는 것만큼 간단하지 않다. NT 의 경우: DHCP 워크스테이션은 부팅 시 DHCP 요청을 발행하고 임대 기간 중간에 DHCP 요청을 발행합니다. 현재 DHCP 서버에 의해 확인되지 않은 경우 워크스테이션은 IP 를 계속 사용할 수 있습니다. 나머지 절반 임대 기간 (즉, 임대 기간의 75%) 동안 확인하지 않으면 워크스테이션이 IP 를 가질 수 없습니다. 임대 기간이 완전히 끝나기 전에 IP 를 포기하지 않는 이유는 무엇입니까? 죄송합니다. 제 동생도 무식한 사람이라 더 이상 깊이 연구하지 않았습니다. 나는 MCSE 의 질문에 대답할 때 NT 가 이렇게 작동한다는 것을 기억해야 한다는 것만 알고 있다. 임대를 취소하려는 경우 임대가 1 초 전에만 제공되더라도 항상 DHCPLEREASE 명령을 보내 임대를 취소할 수 있습니다.
교차 네트워크 DHCP 작업 위에서 설명한 과정에서 DHCDISCOVER 는 브로드캐스트를 통해 수행되며 라우터가 브로드캐스트를 전송하지 않기 때문에 동일한 네트워크 내에서만 수행할 수 있다는 것을 쉽게 알 수 있습니다. 하지만 DHCP 서버가 다른 네트워크에 설치되어 있다면 어떨까요? DHCP 클라이언트가 IP 환경을 설정하지 않았기 때문에 라우터 주소를 모르고 일부 라우터는 DHCP 브로드캐스트 패킷을 전달하지 않기 때문에 DHCP DISCOVER 는 DHCP 서버에 절대 도착하지 않으며 OFFER 와 같은 동작도 없습니다. 이 문제를 해결하기 위해 DHCP 프록시 (또는 DHCP Proxy) 호스트를 사용하여 고객의 DHCP 요청을 접수한 다음 이 요청을 실제 DHCP 서버에 전달하고 서버의 응답을 고객에게 전달할 수 있습니다. 여기서 프록시 호스트는 자체 라우팅 기능이 있어야 하며 서로의 패킷을 서로 전송할 수 있어야 합니다. 프록시를 사용하지 않으면 각 네트워크에 DHCP 서버를 설치할 수도 있지만, 이렇게 하면 장치 비용이 증가하고 관리가 분산됩니다. 물론, 만약 매우 큰 네트워크에 있다면, 이런 균형 구조는 여전히 바람직하다. 이것은 너의 실제 상황에 달려 있다. DHCP 패킷 형식
다음은 각 필드에 대한 간략한 설명입니다. OP
클라이언트가 서버에 패킷을 보내는 경우 1 으로 설정하고 그 반대는 2 로 설정합니다. HTYPE
하드웨어 클래스, 이더넷은 1 입니다.
헬렌
하드웨어 주소 길이, 이더넷은 6 입니다.
맥주꽃
패킷이 라우터를 통해 전송되어야 하는 경우 각 스테이션마다 1 을 추가하고 동일한 네트워크에 있는 경우 0 을 추가합니다.
트랜잭션 ID
DHCP 요청 중 생성된 숫자 값은 DHCPREPLY 의 기준으로 사용됩니다.
초
클라이언트 시작 시간 (초) 입니다.
깃발
0 에서 65438+ 15 *** 16 비트까지 맨 왼쪽 비트가 1 이면 서버가 브로드캐스트를 통해 클라이언트에 패킷을 보내고 나머지는 아직 사용되지 않았음을 의미합니다.
Ciaddr
클라이언트가 이전에 받은 IP 주소를 계속 사용하려는 경우 여기에 나열합니다.
Yiaddr
서버에서 클라이언트로 보낸 DHCP OFFER 및 DHCPACK 패키지의 이 열에 클라이언트에 할당된 IP 주소를 입력합니다.
Siaddr
클라이언트가 네트워크를 통해 부팅해야 하는 경우 부트 코드가 있는 서버의 주소를 서버에서 보낸 DHCP OFFER, DHCP pack 및 DHCPNACK 패키지에 입력합니다.
자델
도메인 간 DHCP 배포가 필요한 경우 트렁킹 에이전트의 주소로 나열됩니다. 그렇지 않으면 0 입니다.
Chaddr
클라이언트의 하드웨어 주소입니다.
Sname
0x00 으로 끝나는 서버의 이름 문자열입니다.
문서
클라이언트가 네트워크를 통해 부팅해야 하는 경우 이 열에 시작프로그램 이름이 표시되며 나중에 TFTP 에 의해 전송됩니다.
선택
공급업체가 공급업체별 영역을 결정하여 넷마스크, 게이트웨이, DNS 등과 같은 추가 구성 정보를 제공할 수 있도록 합니다. ). 길이는 가변적이며 여러 옵션을 동시에 휴대할 수 있습니다. 각 옵션의 첫 번째 바이트는 정보 코드이고, 다음 바이트는 프로젝트의 데이터 길이이며, 마지막으로 프로젝트 내용입니다. CODE LEN VALUE 이 필드는 BOOTP 와 완벽하게 호환되며 더 많은 옵션이 확장되었습니다. 여기서 DHCP 패키지는 0x53 인코딩 옵션을 사용하여 패키지 범주: 항목 값 범주를 설정할 수 있습니다.
1 DHCP 검색
2 DHCP 견적
3 DHCP 요청
4 DHCPDECLINE
5 DHC 팩
6 DHCPNACK
7 DHCP 릴리스 DHCP 에는 여러 가지 옵션이 있습니다. 시간 나면 RFC 나 관련 문헌을 참고하시면 잘 이해하실 수 있습니다. 여기서는 군말을 하지 않습니다.
DHCP 프로토콜에 대한 RFC 문서는 RFC-95 1, RFC- 1084, RFC- 1 123 입니다
DHCP 는 TCP/IP 네트워크에 로그인하는 클라이언트에 자동으로 IP 주소 ("동적 IP 주소" 라고 함) 를 할당하는 소프트웨어입니다. 이 소프트웨어는 일반적으로 라우터 및 기타 네트워크 장치에서 실행됩니다. 기본적으로 GateLock 라우터는 DHCP 를 사용하도록 설정되어 있으므로 네트워크의 각 장치에 영구 IP 주소를 수동으로 할당할 필요가 없습니다. Pc 가 DHCP 서버로 인식되도록 이 설정을 변경하지 않는 것이 좋습니다.
--
& LTA href = "/31045/328811">/31045/
1 DHCPdiscover: 클라이언트가 DHCP 를 시작할 때 첫 번째 요청 메시지입니다.
2 dhcpoffer: dhcpdiscover 메시지에 대한 서버 응답입니다.
3 DHCP 요청: dihcpoffer 메시지에 대한 클라이언트 응답입니다.
4 dhcpdeclient: 클라이언트가 서버에 할당된 IP 주소를 사용할 수 없다는 것을 발견하면 (예: IP 주소 충돌) 이 메시지가 서버에 전송되어 할당된 IP 주소의 사용을 금지합니다.
5 dhcpack: 클라이언트가 실제로 IP 주소 및 관련 구성 정보를 얻을 수 있는 dhcprequst 메시지에 대한 서버의 응답입니다.
6 dhcpnak: 이 메시지는 클라이언트의 DHCP 요청 메시지에 대한 서버의 거부 응답입니다. 이 메시지가 수신되면 클라이언트는 일반적으로 DHCP 프로세스를 다시 시작합니다.
7 DHCP 릴리즈: 이 메시지는 클라이언트가 적극적으로 IP 주소를 해제한다는 것입니다. 서버에서 이 메시지를 받으면 IP 주소를 복구하여 다른 클라이언트에 할당할 수 있습니다.