DHCP

Sirius·2023년 2월 17일

DHCP

1) 개요

DHCP는 IP 주소를 네트워크에 연결된 장치에 자동으로 할당한다.
-> 가정용 네트워크에서는 라우터가 IP 주소를 장치에 할당하는 DHCP서버역할을 함.
UDP기반 프로토콜, 서버가 클라이언트에게 IP주소를 실시간으로 부여할 수 있도록 함
정적IP주소는 IP주소가 수동으로 설정되지만, DHCP는 사용 가능한 IP주소를 자동으로 확인하고 클라이언트에게 IP주소를 부여한다.
DHCP는 응용계층의 프로그램으로 TCP/IP의 네트워크 계층(IP 프로토콜)을 보조한다.

장점

  1. DHCP 서버에서만 네트워크 정보를 변경해주면 되므로 네트워크 구성변경이 용이함
  2. 실제로 호스트를 사용하는 경우에만 IP가 할당되므로 IP 절약가능
  3. 사용자가 TCP/IP 설정 따로 안해줘도 됨

단점

  1. DHCP 클라이언트는 부팅 시 브로드캐스트 방식으로 트래픽을 전송하므로 네트워크의 성능저하를 발생시킨다.(나한테 주소 줄 사람?)
  2. 호스트 전원만 켜 있어도 IP할당됨
  3. 호스트에 일단 IP할당하면 해당 IP는 임대기간이 생긴다. 즉 호스트 전원을 꺼도 그 IP는 다른 단말에 할당되지 못한다.(IP 주소 낭비 발생)
  4. 호스트 수가 많아지면 서버의 과부하가 발생함

2) DHCP ip 할당 과정

  1. 클라이언트가 DHCP서버를 찾는다.
    사용자의 데이터그램은 근윈지 주소가 0.0.0.0(자기도 모름), 목적지 주소가 255.255.255.255로 브로드 캐스트 메시지를 날린다.

  2. DHCP 서버는 해당 클라이언트에게 IP주소를 제공한다.
    DHCP서버(브로드캐스트를 갈겼기 때문에 복수의 서버일수도 있음)는 your-IP-address필드를 제안된 IP주소로 지정하고 클라이언트에게 DHCPOFFER메시지로 응답한다.

  3. 클라이언트는 가장 좋은제안을 한 DHCP서버에게 해당 IP를 사용하겠다고 한다.
    클라이언트는 하나 혹은 그 이상의 제안을 받고(브로드 캐스트한 서버들의 응답) 그 중 가장 좋은 것을 고른다. 그리고 DHCPREQUEST메시지를 가장 좋은 제안을 보내온 서버로 전송한다.

  4. DHCP서버는 클라이언트에게 IP주소를 할당한다.
    선택된 서버는 클라이언트가 요청한 IP주소가 유효한 경우 DHCPPACK메시지로 클라이언트에게 응답한다.
    만약 서버가 그 주소를 줄수 없다면(동시에 다른 호스트에게 제안되었고, 그 호스트가 먼저 할당받음) 서버는 DHCPNACK메시지를 전송한다.(거절) 클라이언트가 처음과정부터 IP를 찾게 됨.

문제점: 만약에 1,2,3번까지만 하면 DHCP starvation이 발생한다.

*DHCP Starvation 공격
DHCP 서버의 할당 가능한 IP를 모두 소진하게 만들어 IP할당이 불가능하게 하는 공격
ex> discover메시지를 서로 다른 MAC주소로(IP=0.0.0.0) 대량으로 보내게 되면 이에 대한 제안이 올것이고 여기서 request 메시지까지 보내고 실제로는 할당하지 않는다.

3) DHCP ip주소 임대기간 연장 과정

  1. 클라이언트의 Request
    request메시지를 ip할당해준 DHCP서버에 유니캐스트로 보냄.
    "임대기간 연장시켜줘잉~~"
    (근원지 주소: 할당받은 ip, 목적지 주소: ip할당해준 DHCP서버)
  1. DHCP서버의 ACK
    "OK" 3시간만 더 써!
    유니캐스트로 보냄

4) DHCP ip주소 반납 과정

PC를 로그오프하거나 ipconfig/release를 하면 할당받은 IP주소를 다시 DHCP서버에 반납한다.

  1. DHCP Release
    유니캐스트로 "반납하겠습니다" 전송

0개의 댓글