네트워크

12. DHCP

YJH3968 2021. 7. 4. 17:26
728x90
  • TCP/IP을 기반으로 하는 네트워크에서 모든 개별 컴퓨터는 적어도 4가지의 구성 요소를 가져야 한다.
  • IP 주소, local network에 대한 서브넷 마스크, primary gateway, 그리고 name server
  • IP 주소를 제외하고는 네트워크의 모든 node가 동일한 값을 가진다.
  • 그러나 IP 주소는 모든 node가 다른 값을 가져야 하는데, 이를 일일히 구성하는 것은 비효율적이다. 그래서 DHCP가 등장한다.

1. DHCP

  • Dynamic Host Configuration Protocol
  • application layer protocol로 네트워크 상의 호스트를 구성하는 과정을 자동화한다.
  • 네트워크에 연결할 때 DHCP 서버로 쿼리를 보내고 한번에 모든 네트워크 구성을 받는다.
  • 하나의 네트워크에 많은 네트워크 장치들에게 구성 요소를 부여해야 하는 관리 overhead를 줄이고, 각 컴퓨터에 IP를 할당하는 문제를 해결한다.
  • gateway router와 같은, 서버나 네트워크 장치의 경우 정적이고 알려진 IP 주소를 사용해야 한다. 네트워크 상의 장치들은 gateway의 IP를 항상 알고 있어야 하기 때문이다. 만약 DNS 서버에 정적인 IP가 구성되지 않는다면, 오류 발생 시 다시 연결하기가 어려울 수 있다.
  • 그러나 많은 클라이언트 장치들은 단지 네트워크에 대해 적절한 IP를 가지고 있기만 하면 되고, IP가 정확히 무엇인지는 중요하지 않다.
  • DHCP가 동작하는 여러 방법들이 있다.
  • 1. dynamic allocation
    • 가장 흔한 방법으로 IP 주소들이 클라이언트 장치에 필요할 때마다 하나씩 지정된다.
    • 네트워크에 연결할 때마다 하나의 컴퓨터가 계속해서 다른 IP 주소를 할당받는다.
  • 2. automatic allocation
    • dynamic allocation과 유사하지만 하나의 컴퓨터가 네트워크에 연결할 때마다 같은 IP 주소를 할당받는다.
  • 3. fixed allocation
    • 수동으로 만든 MAC 주소 리스트와 이에 대응하는 IP들이 필요하다. 컴퓨터가 IP를 요청하면 DHCP 서버가 컴퓨터의 MAC 주소를 표에서 찾고 MAC 주소에 대응하는 IP를 할당한다.
    • 만약 MAC 주소가 없으면 dynamic allocation이나 automatic allocation을 하거나, IP 할당을 거절한다. 
    • 이는 보안 수단으로 사용할 수 있다.
  • DHCP를 NTP 서버와 같은 것들을 할당하는데 사용할 수 있다.
    NTP : Network Time Protocol로 모든 네트워크의 컴퓨터가 시간 동기화가 되도록 한다.

2. DHCP in Action

  • DHCP는 application layer protocol이기에 transport, network, data link, 그리고 physical layer에 의존한다. 그러나 DHCP는 network layer를 구성하는 것을 돕는 게 전부다.
  • DHCP discovery : DHCP를 이용해 구성할 클라이언트가 네트워크 구성 정보를 얻는 과정
  • 1. server discovery step
    • DHCP 클라이언트는 DHCP discover 메세지를 네트워크에 보낸다. 컴퓨터는 자신의 IP와 DHCP 서버의 IP를 모르므로, broadcast 메세지가 형성된다. DHCP는 UDP port 67에서 수신 대기 중이고 DHCP discovery 메세지는 UDP port 68로부터 보내진다.
    • DHCPDISCOVER 메세지가 source port 68에서 목적 port 67로 UDP datagram에 캡슐화된다.
    • IP datagram에서는 목적 IP가 255.255.255.255로, source IP로 0.0.0.0으로 캡슐화된다.
    • 이 broadcast 메세지는 local area network 전 node에 보내진다.
    • 만약 DHCP 서버가 있다면, 이 메세지를 받을 것이다.
  • 2. offer step
    • DHCP 서버가 그 클라이언트의 구성을 조사하고 클라이언트에게 어떤 IP 주소를 보낼지 결정한다. 이는 DHCP가 dynamic, automatic, 또는 fixed address allocation을 실행하는지에 따라 다르다. 응답은 DHCPOFFER 메세지를 보내는데, source port는 67, 목적 port는 68, source IP는 서버의 IP, destination IP는 broadcast IP인 255.255.255.255를 포함한다.
    • DHCP offer도 broadcast이므로 모든 장치에 전달될 것이고, 원래 클라이언트도 이 메세지를 받고 자신을 위한 메세지임을 인지한다. 이는 DHCPOFFER가 DHCPDISCOVER 메세지를 보냈던 클라이언트의 MAC 주소를 가지고 있기 때문이다.
    • 이제 이 클라이언트 장치는 DHCPOFFER를 통해 자신에게 어떤 IP가 주어졌는지 확인한다.
    • * DHCP가 이를 거절할 수도 있다. 이는 여러 DHCP 서버가 같은 네트워크에서 작동 중이고 DHCP 클라이언트가 특정 구간의 IP에만 응답하도록 구성된 경우이다. 그러나 이는 흔치 않은 일이다.
  • 3. request step
    • DHCP 클라이언트는 DHCPOFFER 메세지에 DHCPREQUEST 메세지로 응답한다. 이 메세지는 서버가 자신에게 준 IP를 사용하겠다는 의미를 담고 있다. IP가 아직 할당된 건 아니라 0.0.0.0이라는 IP에서 broadcast IP인 255.255.255.255로 보낸다.
  • 4. acknowledgement step
    • DHCP 서버가 DHCPREQUEST 메세지를 받고 DHCPACK 또는 DHCP 확인 메세지로 응답한다.
    • 이 메세지는 다시 source IP는 자신의 IP, 목적 IP는 broadcast IP 255.255.255.255로 보낸다.
    • 다시 DHCP 클라이언트는 MAC 주소를 통해 메세지를 자신에게 보냈음을 알게 된다.
    • 이제 클라이언트 컴퓨터의 networking stack은 DHCP로부터 받은 구성 정보를 자신의 network layer를 구성하는데 사용한다.
    • 이 단계에서 DHCP 클라이언트로서 작동하는 컴퓨터는 그것과 연결된 네트워크에서 완전한 방식으로 작동하는데 필요한 모든 구성 정보가 있어야 한다.
  • DHCP lease : 위의 네트워크 구성에 포함된 만료 시간
    보통 며칠 혹은 짧은 기간으로, lease가 만료가 되면 DHCP 클라이언트는 전체 DHCP discovery process를 다시 수행해 새 lease를 얻어야 한다. 클라이언트는 네트워크와의 연결을 끊음으로써 DHCP 서버의 lease를 해제할 수도 있다. 이를 통해 DHCP 서버에 가능한 IP 주소 pool에 할당된 IP 주소를 반납할 수 있다.
728x90