1 minute read

DHCP 란?

DHCP는 “Dynamic Host Configuration Protocol”의 약어로, 동적 호스트 구성 프로토콜을 나타냅니다. 이 프로토콜은 네트워크에서 컴퓨터나 장치가 IP 주소 및 기타 네트워크 구성 정보를 동적으로 할당받을 수 있게 해주는 표준화된 프로토콜입니다.

일반적으로 네트워크에 연결된 컴퓨터나 기타 장치는 고유한 IP 주소를 가져야 합니다. DHCP는 이러한 IP 주소 할당을 자동화하고 관리하기 위해 사용됩니다.

네트워크에 새로운 장치가 연결되면, DHCP 클라이언트는 네트워크에 있는 DHCP 서버에게 자신에게 할당된 IP 주소 및 다른 구성 정보를 요청합니다. 동적으로 할당해줍니다.

이를 통해 네트워크 관리자는 수동으로 IP 주소를 할당하거나 변경할 필요 없이 자동으로 IP 주소를 관리할 수 있으며, 네트워크에서 장치가 추가되거나 이동할 때 유연하게 대처할 수 있습니다. DHCP는 주로 로컬 네트워크에서 사용되며, 이를 통해 IP 주소 관리가 효율적으로 이루어질 수 있습니다.

DHCP 동작과정

  • DHCP Discover: 클라이언트가 네트워크에 연결되면, DHCP 클라이언트는 DHCP 서버를 찾기 위해 “DHCP Discover” 메시지를 브로드캐스트합니다. 이 메시지에는 클라이언트의 MAC 주소와 기타 정보가 포함됩니다.

  • DHCP Offer: DHCP 서버는 “DHCP Discover” 메시지를 수신하면, 유효한 IP 주소와 기타 구성 정보를 담은 “DHCP Offer” 메시지를 브로드캐스트합니다. 여러 DHCP 서버가 있다면, 클라이언트는 여러 개의 “Offer” 중 하나를 선택할 수 있습니다.

  • DHCP Request: 클라이언트는 여러 “Offer” 중 하나를 선택하면, 해당 DHCP 서버에 대해 “DHCP Request” 메시지를 브로드캐스트합니다. 이 메시지에는 클라이언트가 선택한 DHCP 서버의 IP 주소가 포함됩니다.

  • DHCP Acknowledgment: 선택된 DHCP 서버는 “DHCP Request” 메시지를 수신하면, 클라이언트에게 할당된 IP 주소 및 기타 구성 정보를 담은 “DHCP Acknowledgment” 메시지를 전송합니다. 클라이언트는 이를 수신하고 할당된 IP 주소 및 구성 정보를 사용하여 네트워크를 구성합니다.

DHCP 서버 구성파일 설정

# most common location (redhat): /etc/dhcp/dhcpd.conf

# 서브넷, 마스크 설정
subnet 192.168.1.0 netmask 255.255.255.0 {

  # 범위
  range 192.168.1.100 192.168.1.200;

  
  # 클라이언트가 사용할 게이트웨이 주소
  # 게이트웨이는 네트워크에서 다른 네트워크로 데이터를 전송하는 역할을 하는 장치입니다.
  option routers 192.168.1.1;


  # DHCP 클라이언트에게 사용할 DNS 서버의 IP 주소를 제공합니다.
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

DHCP 클라이언트 설정 (레드햇 기준)

NetworkManager를 사용하는 경우:

NetworkManager는 GUI와 명령행 도구를 통해 간단하게 구성할 수 있습니다.

# 현재 연결된 네트워크 정보 확인
nmcli connection show

# DHCP를 사용하여 네트워크 연결 설정
nmcli connection modify "Wired Connection 1" ipv4.method auto

systemd-networkd를 사용하는 경우:

systemd-networkd는 서버 환경에서 더 자주 사용되며, 설정 파일을 직접 편집하여 구성합니다.

# most common location (redhat): /etc/systemd/network/10-eth0-dhcp.network

# 서브넷, 마스크 설정
[Match]
Name=eth0  # 사용 중인 네트워크 인터페이스 이름에 맞게 변경

[Network]
DHCP=yes

Leave a comment