DHCP 프로토콜
동적 호스트 설정 프로토콜(Dynamic Host Configuration Protocol)로서 해당 호스트에게 IP주소, 서브넷 마스크, 기본 게이트웨이 IP주소, DNS서버 IP주소
를 자동으로 일정 시간 할당해주는 인터넷 프로토콜
DHCP를 통한 IP 주소 할당은 임대(Lease)라는 개념을 가지고 있는데 이는 DHCP 서버가 IP주소를 영구적으로 단말에 할당하는 것이 아니고 임대기간(IP Lease Time)을 명시하여 그 기간동안만 단말이 IP 주소를 사용하도록 하는 것이다. 단말은 임대기간 이후에도 계속 해당 IP 주소를 사용하고자 한다면 IP 주소 임대기간 갱신(IP Address Renewal)을 DHCP 서버에 요청해야 하고 또한 단말은 임대 받은 IP 주소가 더 이상 필요치 않게 되면 IP 주소 반납 절차(IP Adress Release)를 수행하게 된다.
유동 IP를 할당한다. == DHCP서버로부터 IP를 DHCP서버에서 설정해 놓은 사용시간 만큼 임대해온다.
DHCP의 구성
DHCP 서버
DHCP 서버는 인터넷을 제공해주는 곳의 서버에서 실행되는 프로그램으로 일정한 범위의 IP주소를 다른 클라이언트에게 할당하여 자동으로 설정하게 해주는 역할을 한다. DHCP 서버는 클라이언트에게 할당된 IP주소를 변경없이 유지해 줄 수 있다. DHCP가 설정해주는 주소 정보들은 아래와 같다.
DHCP 클라이언트
클라이언트들은 시스템이 시작하면 DHCP서버에 자신의 시스템을 위한 IP주소를 요청하고, DHCP 서버로부터 IP주소를 부여받으면 TCP/IP 설정은 초기화되고 다른 호스트와 TCP/IP를 사용해서 통신을 할 수 있게 된다.
즉, 서버에게 IP를 할당받으면 TCP/IP 통신을 할 수 있다.
DHCP 임대 절차
IP 주소 할당(임대) 절차에 사용되는 DHCP 메세지는 아래 그림과 같이 4개의 메시지로 구성되어 있다.
1. DHCP Discover
- 패킷 방향: 클라이언트 -> DHCP 서버
- 브로드캐스트 패킷: Destination MAC = FF:FF:FF:FF:FF:FF
- 의미: 클라이언트가 DHCP 서버를 찾기 위한 메시지. 그래서 LAN상에 (동일 subnet상에) 브로드캐스팅을 하여 "거기 혹시 DHCP 서버 있으면 내게 응답 좀 해주세요"라고 단말이 메세지를 보낸다. 이 Discover 패킷에는 IP 주소가 필요한 호스트의 MAC 주소가 담겨져 있어서 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의 네트워크 정보와 동일한 파라미터가 포함된다.
- 주요 파라미터(패킷 내용): DHCP Request 패킷의 파라미터와 동일
DNS 프로토콜
도메인 네임과 IP주소의 대응 관계를 데이터베이스로 구축해 사용하는 인터넷 프로토콜
위에서 배웠듯 클라이언트에게 DNS(Domain Name System)를 제공하는 것은 DHCP 서버의 책임이다.
인터넷에 연결된 모든 네트워크 또는 컴퓨터 서버에는 고유한 IP 주소가 있다. 그러나 모든 서버의 IP주소를 기억하는 것은 불가능하다. 그래서 IP주소를 알아보고 기억하기 쉽게 도메인 이름으로 바꿔서 사용한다. 이 때 도메인 주소를 IP 주소로 변환해주는 일을 DNS가 수행한다. DNS를 운영하는 서버를 네임서버(Name Server)라고 한다.
DNS 절차
- 특정 사이트를 방문하기 위해 사용자가 브라우저에 URL을 입력한다.
- 그러면 브라우저는 DNS에 접속하여 입력한 도메인 이름과 관련된 IP 주소를 요청한다.
- 획득한 IP 주소를 사용하여 브라우저는 그 컴퓨터와 통신하고 사용자로부터 요청된 특정 페이지를 요청할 수 있다.
출처