본문 바로가기
CS

DHCP

by 몰라몰라개복치 2021. 8. 4.

DHCP (Dynamic Host Configuration Protocol)

 

호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜

 

DHCP에 대한 표준은 RFC문서에 정의되어 있으며, DHCP는 네트워크에 사용되는 IP주소를 DHCP서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 된다. DHCP지원 클라이언트는 네트워크 부팅과정에서 DHCP서버에 IP주소를 요청하고 이를 얻을 수 있다.

 

네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜이다.

 

 

 

DHCP 장점

PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능하고, IP를 자동으로 할당해주기 때문에 IP 충돌을 막을 수 있다.

 

 

DHCP 단점

DHCP 서버에 의존되기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않는다.

 

 

DHCP의 구성

1) DHCP 서버 : DHCP서버는 네트워크 인터페이스를 위해서 IP주소를 가지고 있는 서버에서 실행되는 프로그램으로 일정한 범위의 IP주소를 다른 클라이언트에게 할당하여 자동으로 설정하게 해주는 역할을 합니. DHCP서버는 클라이언트에게 할당된 IP주소를 변경없이 유지해 줄 수 있습니다.

 

클라이언트에게 IP 할당 요청이 들어오면 IP를 부여해주고 할당 가능한 IP들을 관리해주게 됩니.

 

2) DHCP 클라이언트 : 클라이언트들은 시스템이 시작하면 DHCP서버에 자신의 시스템을 위한 IP주소를 요청하고, DHCP 서버로부터 IP주소를 부여받으면 TCP/IP 설정은 초기화되고 다른 호스트와 TCP/IP를 사용해서 통신을 할 수 있게 됩니다.

, 서버에게 IP를 할당받으면 TCP/IP 통신을 할 수 있습니다.

 

 

 

 

 

 

DHCP 프로토콜의 원리

DHCP를 통한 IP 주소 할당은 임대라는 개념을 가지고 있는데 이는 DHCP 서버가 IP 주소를 영구적으로 단말에 할당하는 것이 아니고 임대기간(IP Lease Time)을 명시하여 그 기간 동안만 단말이 IP 주소를 사용하도록 하는 것이다. 

 

단말은 임대기간 이후에도 계속 해당 IP 주소를 사용하고자 한다면 IP 주소 임대기간 연장(IP Address Renewal) DHCP 서버에 요청해야 하고 또한 단말은 임대 받은 IP 주소가 더 이상 필요치 않게 되면 IP 주소 반납 절차(IP Address Release)를 수행하게 된다.

 

이번 시간에는 단말(DHCP client) DHCP 서버로 부터 IP 주소를 할당(임대) 받는 절차에 대해서 알아 보도록 하자.

IP 주소 할당(임대) 절차에 사용되는 DHCP 메시지는 아래 그림과 같이 4개의 메시지로 구성된다.

 

 

1) DHCP Discover

메시지 방향: 단말 -> DHCP 서버

브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)

의미: 단말이 DHCP 서버를 찾기 위한 메시지다. 그래서 LAN상에(동일 subent상에) 브로드캐스팅을 하여 "거기 혹시 DHCP 서버 있으면 내게 응답 좀 해 주세요"라고 단말이 외친다.

 

[주요 파라미터]

- Client MAC: 단말의 MAC 주소

  

2) DHCP Offer

메시지 방향: DHCP 서버 -> 단말

브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)이거나 유니캐스트일수 있다. 이는 단말이 보낸 DHCP Discover 메시지 내의 Broadcast Flag의 값에 따라 달라지는데,  Flag=1이면 DHCP 서버는 DHCP Offer 메시지를 Broadcast, Flag=0이면 Unicast로 보내게 된다.

의미: DHCP 서버가 "저 여기 있어요~"라고 응답하는 메시지다. 단순히 DHCP 서버의 존재만을 알리지 않고, 단말에 할당할 IP 주소 정보를 포함한 다양한 "네트워크 정보"를 함께 실어서 단말에 전달한다.

 

[주요 파라미터]

- Client MAC: 단말의 MAC 주소

- Your IP: 단말에 할당(임대) IP 주소

- Subnet Mask (Option 1)

- Router (Option 3): 단말의 Default Gateway IP 주소

- DNS (Option 6): DNS 서버 IP 주소

- IP Lease Time (Option 51): 단말이 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)

- DHCP Server Identifier (Option 54): 본 메시지(DHCP Offer)를 보낸 DHCP 서버의 주소. 2개 이상의 DHCP 서버가 DHCP Offer를 보낼 수 있으므로 각 DHCP 서버는 자신의 IP 주소를 본 필드에 넣어서 단말에 보냄

 

3) DHCP Request

메시지 방향: 단말 -> DHCP 서버

브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF)

의미: 단말은 DHCP 서버()의 존재를 알았고, DHCP 서버가 단말에 제공할 네트워크 정보(IP 주소, subnet mask, default gateway)를 알았다. 이제 단말은 DHCP Request 메시지를 통해 하나의 DHCP 서버를 선택하고 해당 서버에게 "단말이 사용할 네트워크 정보"를 요청한다.

 

[주요 파라미터]

- Client MAC: 단말의 MAC 주소

- Requested IP Address (Option 50): 난 이 IP 주소를 사용하겠다. (DHCP Offer Your IP 주소가 여기에 들어감)

- DHCP Server Identifier (Option 54): 2대 이상의 DHCP 서버가 DHCP Offer를 보낸 경우, 단말은 이 중에 마음에 드는 DHCP 서버 하나를 고르게 되고, 그 서버의 IP 주소가 여기에 들어감. , DHCP Server Identifier에 명시된 DHCP 서버에게 "DHCP Request" 메시지를 보내어 단말 IP 주소를 포함한 네트워크 정보를 얻는 것

 

4) DHCP Ack

메시지 방향: DHCP 서버 -> 단말

브로드캐스트 메시지 (Destination MAC = FF:FF:FF:FF:FF:FF) 혹은 유니캐스트일수 있으며 이는 단말이 보낸 DHCP Request 메시지 내의 Broadcast Flag=1이면 DHCP 서버는 DHCP Ack 메시지를 Broadcast, Flag=0이면 Unicast로 보내게 됩니다.

의미: DHCP 절차의 마지막 메시지로, DHCP 서버가 단말에게 "네트워크 정보"를 전달해 주는 메시지입니다. 앞서 설명드린 DHCP Offer '네트워크 정보"와 동일한 파라미터가 포함됩니다.

 

[주요 파라미터]

- Client MAC: 단말의 MAC 주소

- Your IP: 단말에 할당(임대) IP 주소

- Subnet Mask (Option 1)

- Router (Option 3): 단말의 Default Gateway IP 주소

- DNS (Option 6): DNS 서버 IP 주소

- IP Lease Time (Option 51): 단말이 본 IP 주소(Your IP)를 사용(임대)할 수 있는 기간(시간)

- DHCP Server Identifier (Option 54): 본 메시지(DHCP Ack)를 보낸 DHCP 서버의 주소

 

이렇게 DHCP Ack를 수신한 단말은 이제 IP 주소를 포함한 네트워크 정보를 획득(임대)하였고, 이제 인터넷 사용이 가능하게 된다.

 

 



출처: https://jwprogramming.tistory.com/35 [개발자를 꿈꾸는 프로그래머]

 

DHCP란?

DHCP (Dynamic Host Configuration Protocol) - DHCP는 Dynamic Host Configuration Protocol의 약자입니다. DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주..

jwprogramming.tistory.com

 

'CS' 카테고리의 다른 글

네트워크 연결과 구성 요소  (2) 2024.03.14
네트워크 시작하기  (0) 2024.03.14
DNS, DDNS 정리  (0) 2021.08.04
VPN  (0) 2021.08.04
DMZ, 포트 포워딩  (0) 2021.08.04