Profile picture

[Linux] DHCP 서버 구축 중 Not configured to listen on any interfaces 에러 발생.

JaehyoJJAng2025년 10월 08일

문제 상황

Rocky Linux 8.10 서버에 dhcp-server를 설치하고 systemctl restart dhcpd 실행 시 다음과 같은 에러가 발생함.

No subnet declaration for br-85feebdcdb4e (172.18.0.1).
** Ignoring requests on br-85feebdcdb4e. If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface br-85feebdcdb4e is attached. **

No subnet declaration for virbr0 (192.168.122.1).
** Ignoring requests on virbr0. If this is not what...

No subnet declaration for eno2 (10.10.10.1).
** Ignoring requests on eno2. If this is not what...

No subnet declaration for eno1 (192.168.49.152).
** Ignoring requests on eno1. If this is not what...

Not configured to listen on any interfaces!
exiting.

여기서 핵심 에러 메시지는 마지막 줄의 Not configured to listen on any interfaces! 입니다.


원인 분석

ISC DHCP 서버는 기본적으로 시스템의 모든 활성 네트워크 인터페이스를 스캔한다고 합니다.


각 인터페이스에 할당된 IP 주소에 대응하는 subnet 선언이 /etc/dhcp/dhcpd.conf 파일에 없으면 해당 인터페이스를 무시하게 되죠.


현재 서버의 인터페이스 상태를 보면 다음과 같습니다.

  • br-85feebdcdb4e: Docker가 생성한 브릿지 인터페이스입니다.
  • virbr0: libvirt의 기본 가상 브릿지입니다.
  • eno1: 서버의 물리 네트워크 인터페이스입니다.
  • eno2: 또 다른 물리 네트워크 인터페이스입니다.

모든 인터페이스에 대한 subnet 선언이 /etc/dhcp/dhcp.conf 파일에 없기때문에, dhcpd가 어떤 인터페이스에서도 동작하지 못하고 종료된 것으로 예상됩니다.


해결 방법

특정 인터페이스(eno2)에서만 DHCP 서버를 동작시키는 것이 가장 깔끔한 해결책일 것 같네요.

eno2 인터페이스만 DHCP 동작하도록 설정해주겠습니다.


이를 위해서는 두 가지 설정이 필요합니다.


1단계: 현재 네트워크 상태 확인

먼저 서버의 네트워크 인터페이스 정보를 확인하겠습니다.

$ ip addr show eno2

3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.1/24 brd 10.10.10.255 scope global eno2

이 정보를 바탕으로 eno2 인터펭,스가 10.10.10.0/24 네트워크에 속해 있음을 알 수 있죠?


2단계: DHCP 서버가 사용할 인터페이스 지정

/etc/sysconfig/dhcpd 파일을 편집하여 dhcpdeno2 인터페이스에서만 동작하도록 설정해야 합니다.

$ vim /etc/sysconfig/dhcpd

# 파일 내용에 다음 줄 추가
# DHCP 서버가 리스닝할 인터페이스 지정
DHCPDARGS="eno2"

3단계: DHCP 설정 파일 작성

이제 /etc/dhcp/dhcpd.conf 파일에 eno2 네트워크에 대한 DHCP 설정을 추가합니다.

$ vim /etc/dhcp/dhcpd.conf

### eno2 인터페이스용 DHCP 설정을 작성해줍시다.
# 전역 설정
default-lease-time 600;           # 기본 임대 시간 (초)
max-lease-time 7200;              # 최대 임대 시간 (초)
authoritative;                    # 이 서버가 네트워크의 권한 있는 DHCP 서버임을 선언

# 로그 설정
log-facility local7;

# eno2 인터페이스용 subnet 선언
subnet 10.10.10.0 netmask 255.255.255.0 {
    # DHCP로 할당할 IP 주소 범위
    range 10.10.10.100 10.10.10.200;

    # 게이트웨이 주소
    option routers 10.10.10.1;

    # DNS 서버 주소
    option domain-name-servers 8.8.8.8, 8.8.4.4;

    # 도메인 이름
    option domain-name "idc.local";

    # 브로드캐스트 주소
    option broadcast-address 10.10.10.255;
}

4단계: 설정 파일 문법 검사

$ dhcpd -t -cf /etc/dhcp/dhcpd.conf

# 정상이면 다음 메시지 출력됨.
Internet Systems Consortium DHCP Server 4.3.6
Copyright 2004-2017 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcpd/dhcpd.leases
PID file: /var/run/dhcpd.pid
    Tag -

Loading script...