ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 생각보다 다재다능한 DHCP - DNS도 부탁해
    IT 생활/네트워크 2024. 3. 18. 10:02

    안녕하세요 류똥구입니다.
    오랜만에 네트워크에 대해서 포스팅입니다.

    네트워크 설정을 하다가 갑자기 의문이 들었습니다. 저는 KT 유선망을 가입해서 쓰고 있습니다. 처음에 기사님이 방문해서 모뎀설치하고 간 뒤에 인터넷을 사용하고 있었습니다. 자연스럽게 인터넷을 쓰고 있지만 내 컴퓨터에 아무런 설정을 하지 않았는데 어떻게 인터넷을 쓸 수 있는지 궁금하지 않았나요?

    윈도우의 네트워크 설정을 보면 IP와 DNS 둘다 자동으로 받아오도록 설정이 되어 있습니다.

    윈도우 TCP/IPv4 기본 설정

    사용자가 해야할 설정을 알아서 해줘서 통신이 가능해진 겁니다. 인터넷은 TCP/IP 프로토콜로 동작을 합니다. TCP/IP에 대해서는 다음에 자세하게 다루고 본 글에서는 IP 주소에 대해서만 이야기 하겠습니다.

    IP주소는 이름대로 IP 프로토콜에서 사용하는 주소 입니다. 현실 세상에서도 주소를 사용하여 우편이나 택배를 보내고 또는 받기도 합니다. 주소로 사람이 살고 있는 장소를 체계적으로 정리해 놓고, 주소로 위치를 찾는 것처럼 2진수로 이루어진 컴퓨터 세상 (인터넷)에서 컴퓨터의 위치를 IP주소로 찾아가게 됩니다.

    IP 주소는 컴퓨터가 알기 쉽게 숫자로 표기되고 각각 지정된 IP주소를 사용해야 제대로 목적지를 찾을 수 있습니다. 숫자로 표기가 되다보니 사람이 기억하기 어려울 수 있습니다. 그리고 IP주소도 한정된 자원이라서 효율적으로 사용해야 합니다. 동일한 주소를 여러명한테 할당해서 통신이 안될수도 있고, 안쓰고 놀고 있는 IP가 있을 수 있습니다. 게다가 인터넷 통신사들이 가입 고객마다 IP를 설정해주고 가입을 해지 할 때는 IP 설정을 빼는 건 너무 비효율적입니다.

    이런 문제를 쉽게 처리하기 위해서 DHCP(Dynamic Host Configuration Protocol)를 사용합니다. DHCP는 IP네트워크에서 필요한 설정을 해주는 프로토콜로 사용자가 직접 설정하지 않아도 알아서 설정이 되개 해줍니다.

    DHCP의 가장 주요한 기능이 IP할당입니다. 윈도우의 IP주소 설정은 기본으로 자동으로 받아오게 되어 있고 이는 DHCP를 사용한다는 말과 동일합니다.

    DHCP는 DORA (Discovery, Offer, Request, Ack) 네 단계를 통해서 설정을 하게 됩니다.

    Discovery 단계는 설정이 필요한 단말이 설정을 제공해 줄 DHCP서버를 찾는 과정입니다.

    DHCP discovery

    위 그림의 PC A를 새로 산 또는 OS를 새로 설치한 컴퓨터라고 해봅시다. 자동으로 설정을 가져 오도록 되어 있는 PC A는 네트워크 전체를 대상으로 DHCP 서버를 찾는다는 메시지를 보냅니다 (L2 브로드캐스트).

    Flooding을 통해 네트워크로 퍼져 나가는 DHCP discvery 메시지는 DHCP 서버가 네트워크에 존재한다면 언젠가는 도달하게 됩니다. DHCP 서버가 아닌 PC B는 메시지를 버리게 됩니다. DHCP 서버는 수신한 Discovery 메시지에 응답으로 Offer 메시지를 보내줍니다.

    DHCP offer

    DHCP서버는 네트워크 사용에 필요한 정보를 (IP주소, netmask, Gateway IP, DNS IP 등) offer 메시지에 포함시켜서 네트워크 전체에 뿌려줍니다(L2 브로드캐스팅). PC A에는 설정(IP 주소 등)이 없기 때문에 DHCP 서버에서는 어쩔수 없이 전체 네트워크를 대상으로 보내는 겁니다. 그렇다 보니 설정이 필요없는 PC B도 메시지를 계속 받게됩니다. PC A는 이제 DHCP서버에게 Request 메시지를 보내게 됩니다.

    DHCP request

    PC A는 받은 설정을 사용한다는 확인을 위해서 request 메시지를 보냅니다. offer메시지로 받은 설정을 그냥 쓰면 될것 같은데 왜 번거롭게 다시 확인하는 과정이 있을까요? 그건 설정이 필요한 단말이 복수개 이거나 DHCP서버가 복수개 존재할 때 설정이 잘못적용되지 않도록 하기 위해서 입니다.

    Request없이 offer로 받은대로 사용하면 위 그림처럼 단말들에 동일한 설정이 적용이 되서 문제가 될 수 있습니다.

    DHCP서버가 네트워크에 여러개 일때도 문제입니다. DHCP서버 입장에서는 단말이 어떤 설정을 쓰고 있는지 모르기 때문입니다.

    이런 문제로 인해 DHCP에서는 단말이 사용할 설정을 DHCP서버에 알리기 위해서 request를 하게 됩니다. Request도 역시나 올바른 DHCP가 받아야 되므로 DHCP서버 ID를 사용합니다. DHCP서버의 IP주소를 ID로 하게 되고 offer 메시지에 포함되서 보내줍니다. 그러면 단말은 사용할 설정을 보내준 DHCP서버의 ID를 request 메시지에 포함시킵니다. 그러면 DHCP서버는 어떤 설정이 사용되는지 알 수 있게 되는 겁니다.

    DHCP ack

    DHCP서버는 offer 보내준 설정값이 아직 유효한지 확인후 단말이 사용해도 되면 ack(acknowledge) 메시지로 응답합니다. ack을 받은 단말은 이제 설정을 적용하고 네트워크 사용을 할 수 있게 됩니다.

    DHCP를 사용하면 네트워크 설정을 따로 안해줘도 되서 편리합니다. 그렇기레 다수의 컴퓨터를 설정해야 한다면 DHCP만큼 좋은게 없습니다. 위에서 설명한 IP 주소, gateway 주소, DNS 주소 말고도 NTP서버 주소나 시스템 부팅 정보 게다가 TCP TTL같은 네트워크 설정도 제공하고 있습니다.

    IP주소와 같이 한정된 자원을 필요한 사람에게만 할당하고 사용하지 않을 때는 회수하여 IP를 효율적으로 쓸 수 있고 수동 설정으로 발생할 수 있는 문제들도 예방할 수 있게됩니다.

    다만, 네트워크 설정에 대해서 DHCP 서버에 의존하게 되므로 DHCP서버에 장애가 오면 네트워크 장애로 번질 수 있는 점에 유의해야 합니다.

    추가적으로 DHCP서버로 제공받을수 있는 값(option)은 다음 링크에서 자세히 확인할 수 있습니다.

    https://help.sonicwall.com/help/sw/eng/6800/26/2/3/content/Network_DHCP_Server.042.12.htm

    DHCP Option Numbers

    help.sonicwall.com


    이상으로 이번 포스팅을 마치도록 하고 다음에도 도움이 될만한 내용으로 찾아오겠습니다.

    'IT 생활 > 네트워크' 카테고리의 다른 글

    무선랜 (WiFi)의 WIPS를 알아보자  (0) 2024.05.15
    네트워크 기초 - 컴퓨터 통신이란?  (0) 2021.06.07

    댓글

Designed by Tistory.