524. DHCP Relay Agent (DHCP 릴레이)

핵심 인사이트: 건물에 층마다 부서(서브넷)가 다른데, 층마다 신발장(DHCP 서버)을 따로 둘 수는 없다. 릴레이 에이전트는 각 층의 손님(PC)이 "신발장 어딨어요!"라고 소리치면(브로드캐스트), 그걸 몰래 듣고 1층 중앙 신발장으로 뛰어가서(유니캐스트) 열쇠를 받아다 주는 훌륭한 심부름꾼이다.

Ⅰ. DHCP Relay Agent의 도입 배경

DHCP 클라이언트는 처음에 IP가 없으므로 무조건 브로드캐스트(Broadcast, 255.255.255.255) 를 쏴서 DHCP 서버를 찾습니다. 하지만 라우터(Router)는 네트워크 과부하를 막기 위해 브로드캐스트 패킷을 절대 다른 네트워크로 넘겨주지 않고 버려버립니다(Drop). 따라서 원칙적으로 DHCP 서버와 클라이언트는 동일한 서브넷(Subnet) 내에 있어야만 합니다.

만약 회사에 서브넷이 100개라면 DHCP 서버도 100대가 필요할까요? 이 낭비를 막기 위해 DHCP Relay Agent가 등장합니다.

Ⅱ. DHCP Relay Agent의 개념과 역할

DHCP Relay Agent는 클라이언트의 브로드캐스트 DHCP 요청을 가로채서, 라우터 너머에 있는 (다른 네트워크 대역의) 중앙 DHCP 서버에게 유니캐스트(Unicast, 1:1 통신) 로 변환하여 대신 전달해 주는 중계기입니다. 주로 라우터나 L3 스위치의 특정 인터페이스에 소프트웨어적으로 설정됩니다. (Cisco 명령어: ip helper-address)

Ⅲ. 동작 과정 (중계 과정)

[ Subnet A (192.168.1.0) ]       [ Router / L3 Switch ]         [ Subnet B (10.0.0.0) ]
        Client ────────────▶ (DHCP Relay Agent 설정됨) ──────────▶ DHCP Server
  (1) "IP 주세요!"           (2) 브로드캐스트를 유니캐스트로       (3) "아~ Subnet A에서
      (Broadcast)                변환 (도착지: 10.0.0.100)              왔구나? 192.168.1.10 줄게"
  1. 가로채기: 클라이언트가 쏜 DHCP Discover(Broadcast) 패킷을 라우터(Relay Agent)가 수신합니다.
  2. 유니캐스트 변환: 패킷의 출발지 IP를 라우터 자신의 IP(게이트웨이 IP)로, 도착지 IP를 사전에 설정된 중앙 DHCP 서버의 IP로 덮어쓰고 유니캐스트 패킷으로 라우팅합니다.
  3. 서버의 인지 (GIADDR): 패킷을 받은 DHCP 서버는 헤더의 GIADDR (Gateway IP Address) 필드를 보고 "아, 이 요청은 192.168.1.0 대역에서 왔구나!"라고 판단하여, 해당 대역의 IP 풀(Pool)에서 주소를 꺼내어 라우터에게 응답합니다.
  4. 최종 전달: 라우터는 받은 IP를 클라이언트에게 전달합니다.

Ⅳ. DHCP Relay의 장점

전사적으로 흩어져 있는 수십 개의 서브넷에 IP를 할당하기 위해 단 1~2대의 고성능 중앙 집중형 DHCP 서버만 두면 되므로, 서버 관리 및 IP 주소 풀(Pool) 관리가 극도로 단순해집니다.

📢 섹션 요약 비유: 동사무소(라우터) 민원 창구 직원이 DHCP Relay입니다. 동네 주민(클라이언트)이 "대통령님(서버) 도와주세요!" 하고 소리치면, 창구 직원이 그걸 잘 포장해서 "청와대 주소"를 적은 등기 우편(유니캐스트)으로 바꿔서 대신 보내주고, 답장을 받아 주민에게 건네주는 역할입니다.