DHCP (Dynamic Host Configuration Protocol) 개요
DHCP란?
DHCP는 네트워크 상의 클라이언트에 IP주소, 서브넷 마스크, 게이트웨이, DNS 서버 등 네트워크 설정 정보를 자동으로 할당해주는 프로토콜이다. 즉, 네트워크 장비들이 수동으로 설정하지 않아도 자동으로 네트워크에 붙어 있을 수 있도록 도와주는 시스템이다. 기존에는 수동으로 IP를 지정해서 사용했었는데 네트워크 장치가 많아질수록 관리도 어렵고 IP 충돌 위험이 존재했다. DHCP 서버를 관리하면 IP 주소 관리를 자동으로 할 수 있을 뿐 아니라 중앙 집중 관리가 가능해진다. 하지만 중앙 집중 관리 시스템의 고질적인 문제점인 고립성의 부재 즉, 해당 서버에 장애가 발생하면 네트워크 전체가 불능에 빠질 수 있다.
DHCP 동작 과정 (DORA Process)
단계 | 설명 |
D – Discover | 클라이언트 → 브로드캐스트로 “DHCP 서버 있나요?” 요청 |
O – Offer | DHCP 서버 → IP 주소 제안 |
R – Request | 클라이언트 → “저 이 IP 쓸게요” 요청 |
A – Acknowledge | DHCP 서버 → “승인 완료” 응답 |
마치 호텔 프런트를 찾아가서 방을 배정받고 수락하고 사용하는 모습과 많이 닮아있다.
DHCP 구성 요소
구성 요소 | 설명 |
DHCP 서버 | IP 주소 풀(범위)를 관리하고 클라이언트에 할당 |
DHCP 클라이언트 | 네트워크에 접속하여 DHCP 서버에서 IP 정보를 요청하는 장치 |
DHCP 릴레이 | 다른 서브넷의 DHCP 서버까지 요청을 전달하는 중계 장치 |
설치
$ dnf install -y dhcp-server
설정
dhcpd는 /etc/dhcp/dhcpd.conf를 설정 파일로 사용한다. 세미콜론을 사용한다는 점을 유의하자.
man dhcpd.conf
example이 잘 작성되어 있으니 한 번 읽어보자! (블록 형태 참조)EXAMPLES A typical dhcpd.conf file will look something like this: global parameters... subnet 204.254.239.0 netmask 255.255.255.224 { subnet-specific parameters... range 204.254.239.10 204.254.239.30; } ...
man dhcp-options
options 값들에 대한 정의가 잘되어 있으니 한 번 읽어보자! (옵션 값 참조)
$ man dhcp-options | grep -E "^ option .*;$" option root-path "10.0.1.4:/var/tmp/rootfs"; option all-subnets-local flag; option arp-cache-timeout uint32; option associated-ip ip-address [, ip-address... ]; option bcms-controller-address ip-address [, ip-address... ]; option bcms-controller-names domain-list; option bootfile-name text; option boot-size uint16; option broadcast-address ip-address; ...
dhcpd.conf
option domain-name "example.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
authoritative;
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;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
}
host printer1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.150;
}
dhcpd.conf는 글로벌 옵션과 서브넷/호스트 블록으로 구성되어 있다.
글로벌 옵션
option domain-name "example.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
authoritative;
옵션 | 의미 |
option domain-name "example.com"; | 클라이언트가 DHCP를 통해 IP를 받을 때, DNS 검색 도메인을 example.com으로 설정 |
option domain-name-servers 8.8.8.8, 8.8.4.4; | 클라이언트에 DNS 서버 주소 제공 |
default-lease-time 600; | IP 임대 기본 시간 600초 |
max-lease-time 7200; | IP 임대 최대 시간 7200초 |
authoritative; | 이 DHCP 서버가 권한 있는 서버임을 명시 (클라이언트가 빠르게 응답받게 함) |
서브넷 블록
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;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
}
옵션 | 의미 |
subnet 192.168.1.0 netmask 255.255.255.0 | 192.168.1.0/24 네트워크에 대한 설정 시작 |
range 192.168.1.100 192.168.1.200; | 클라이언트에 임대할 IP 범위 설정 (192.168.1.100~192.168.1.200) |
option routers 192.168.1.1; | 기본 게이트웨이 주소 설정 (라우터) |
option broadcast-address 192.168.1.255; | 브로드캐스트 주소 설정 |
option subnet-mask 255.255.255.0; | 서브넷 마스크 설정 |
호스트 블록
host printer1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.150;
}
옵션 | 의미 |
host printer1 | 고정 IP 예약 이름 (식별용) |
hardware ethernet 00:11:22:33:44:55; | MAC 주소가 00:11:22:33:44:55인 장치 지정 |
fixed-address 192.168.1.150; | 항상 192.168.1.150 IP 할당 |
Options
옵션 | 설명 |
option domain-name | 클라이언트에 전달할 기본 도메인 이름 |
option domain-name-servers | 클라이언트에 전달할 DNS 서버 주소 |
default-lease-time | 임대 시간 기본값 (초 단위) |
max-lease-time | 임대 시간 최대값 (초 단위) |
authoritative | 이 서버가 권한 있는 DHCP 서버임을 명시 (다른 서버 무시) |
subnet | 서브넷 설정 시작 (IP 대역과 서브넷 마스크) |
range | 클라이언트에 할당할 IP 주소 범위 |
option routers | 기본 게이트웨이 (라우터 주소) |
option broadcast-address | 브로드캐스트 주소 |
option subnet-mask | 서브넷 마스크 |
문제
다음 조건에 맞는 DHCP 설정 값을 작성하세요.
1) 게이트웨이 주소는 192.168.10.1으로 설정한다.
2) DNS 서버의 IP 주소는 192.168.10.2으로 설정한다.
3) 도메인 이름은 example.com으로 설정한다.
4) 기본 임대 시간은 7200초로 설정한다.
5) 브로드캐스트 IP 주소는 192.168.10.255로 설정한다.
6) 할당할 IP 주소 대역을 192.168.10.1부터 192.168.10.200으로 지정하고 DHCP 클라이언트 뿐만 아니라 BOOTP 클라이언트도 함께 할당한다.
더보기
1) option routers 192.168.10.1;
2) option domain-name-servers 192.168.10.2;
3) option domain-name example.com;
4) default-lease-time 7200;
5) option broadcast-address 192.168.10.255;
6) range dynamic-bootp 192.168.10.1 192.168.10.200;
특정 클라이언트에 고정 주소를 할당하기 위한 전체 설정을 작성하세요.
① ② {
③ 00:16:3E:5A:1B:9C;
④ 192.168.10.2;
}
[조건]
1) MAC 주소가 00:16:3E:5A:1B:9C인 경우 고정적으로 192.168.10.2 IP 주소를 할당한다.
2) 호스트명은 example_dhcp으로 관리한다.
더보기
1) host
2) example_dhcp
3) hardware ethernet
4) fixed-address
'자격증' 카테고리의 다른 글
[리눅스마스터 1급] 18. 방화벽 설정 (iptables) (0) | 2025.05.05 |
---|---|
[리눅스마스터 1급] 17. 슈퍼 데몬 (0) | 2025.05.05 |
[리눅스마스터 1급] 15. 프록시 서비스 (Squid) (0) | 2025.05.05 |
[리눅스마스터 1급] 14. 인증 서비스 (NIS) (0) | 2025.05.05 |
[리눅스마스터 1급] 13. DNS 서비스 (bind) (0) | 2025.05.05 |