14.2. DHCP 서버 구성
dhcp 패키지에는ISC( 인터넷 시스템 )
DHCP
서버가 포함되어 있습니다. 패키지를 root
로 설치합니다. :
~]# yum install dhcp
dhcp 패키지를 설치하면 단순히 빈 구성 파일인
/etc/dhcp/dhcpd.conf
파일이 생성됩니다. root로
다음 명령을 실행합니다.
~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
예제 구성 파일은
/usr/share/doc/dhcp-버전;/dhcpd.conf.example
에서 찾을 수 있습니다. 이 파일을 사용하여 아래에 자세히 설명된 /etc/dhcp/dhcpd.conf
를 구성하는 데 도움이 됩니다.
또한
DHCP
는 /var/lib/dhcpd/dhcpd.leases
파일을 사용하여 클라이언트 리스를 저장합니다. 자세한 내용은 14.2.2절. “리스 데이터베이스”을 참조하십시오.
14.2.1. 설정 파일
DHCP
서버 구성의 첫 번째 단계는 클라이언트에 대한 네트워크 정보를 저장하는 구성 파일을 생성하는 것입니다. 이 파일을 사용하여 클라이언트 시스템에 대한 옵션을 선언합니다.
구성 파일에는 더 쉬운 형식을 위해 추가 탭 또는 빈 행이 포함될 수 있습니다. 키워드는 대소문자를 구분하지 않으며 해시 기호(#)로 시작하는 행
은 주석으로
간주됩니다.
구성 파일에는 다음 두 가지 유형의 설명이 있습니다.
- parameters - 작업을 수행하는 방법, 작업 수행 여부 또는 클라이언트에 보낼 네트워크 구성 옵션을 지정합니다.
- 선언 - 네트워크의 토폴로지를 설명하고, 클라이언트를 설명하고, 클라이언트에 주소를 제공하거나, 매개 변수 그룹을 선언 그룹에 적용합니다.
키워드 옵션으로 시작하는 매개 변수를 옵션 이라고 합니다. 이러한 옵션은
DHCP
옵션을 제어합니다. 반면 매개 변수는 선택 사항이 아닌 값을 구성하거나 DHCP
서버가 작동하는 방식을 제어합니다.
중괄호(
{ }
)로 묶은 섹션 앞에 선언된 매개 변수(옵션 포함)는 전역 매개 변수로 간주됩니다. 전역 매개변수는 아래의 모든 섹션에 적용됩니다.
중요
구성 파일이 변경되면 systemctl restart dhcpd 명령으로
DHCP
데몬을 다시 시작할 때까지 변경 사항이 적용되지 않습니다.
참고
DHCP
구성 파일을 변경하고 매번 서비스를 다시 시작하는 대신, omshell 명령을 사용하면 DHCP
서버의 구성을 연결하고 쿼리하고, 변경할 수 있는 대화식 방법을 제공합니다. omshell 을 사용하면 서버가 실행되는 동안 모든 변경을 수행할 수 있습니다. 자세한 내용은 omshell 도움말 페이지를 참조하십시오.
예 14.1. “서브넷 선언” 에서는 아래에 선언된 모든 호스트 문에 라우터,subnet-mask,domain-search, domain -name-servers 및 time-offset 옵션이 사용됩니다.
제공할 모든 서브넷과
DHCP 서버가 연결된 모든 서브넷에 대해 DHCP
데몬에 주소가 해당 서브넷에 있음을 인식하는 방법을 알려주는 하나의 서브넷 선언이 있어야 합니다. 주소를 해당 서브넷에 동적으로 할당하지 않아도 각 서브넷에 서브넷 선언이 필요합니다.
이 예에서는 서브넷의 모든
DHCP
클라이언트와 선언된 범위의 글로벌 옵션이 있습니다. 클라이언트에는 범위 내의 IP
주소가 할당됩니다.
예 14.1. 서브넷 선언
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; }
동적
IP
주소를 서브넷 내의 시스템으로 리스하는 DHCP
서버를 구성하려면 예 14.2. “범위 매개 변수” 에서 예제 값을 수정합니다. 클라이언트에 대한 기본 리스 시간, 최대 리스 시간 및 네트워크 구성 값을 선언합니다. 이 예에서는 192.168.1.10 및 192.168.1.
100
범위의 IP
주소를 클라이언트 시스템에 할당합니다.
예 14.2. 범위 매개 변수
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-search "example.com"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; }
네트워크 인터페이스 카드의 MAC 주소를 기반으로 클라이언트에
IP
주소를 할당하려면 호스트 선언 내에서 hardware ethernet 매개 변수를 사용합니다. 예 14.3. “DHCP를 사용하여 고정 IP 주소” 에서 시연한 대로 호스트 apex 선언은 MAC 주소 00:A0:78:8E:9E:AA
가 항상 IP
주소 192.168.1.4
를 수신하도록 지정합니다.
선택적 매개 변수
host-name
을 사용하여 호스트 이름을 클라이언트에 할당할 수도 있습니다.
예 14.3. DHCP를 사용하여 고정 IP 주소
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; }
Red Hat Enterprise Linux 7은 InfiniBand
IP
oIB 인터페이스에 고정 IP 주소 할당을 지원합니다. 그러나 이러한 인터페이스에는 일반 하드웨어 이더넷 주소가 없으므로 IPoIB 인터페이스의 고유 식별자를 지정하는 다른 방법을 사용해야 합니다. 표준에서는 옵션 dhcp-client-identifier=
construct를 사용하여 IPoIB 인터페이스의 dhcp-client-identifier
필드를 지정하는 것입니다. DHCP
서버 호스트 구성은 최대 하나의 하드웨어 이더넷과 호스트 스탠자당 하나의 dhcp-client-identifier
항목을 지원합니다. 그러나 고정 주소 항목이 두 개 이상 있을 수 있으며 DHCP 서버는 DHCP
요청을 수신한 네트워크에 적합한 주소로 자동으로 응답합니다.
예 14.4. 여러 인터페이스에서 DHCP를 사용하여 고정 IP 주소
컴퓨터에 복잡한 구성(예: InfiniBand 인터페이스 두 개 및 각 물리적 인터페이스 및 이더넷 연결)의
P_Key
인터페이스가 있는 경우 다음 정적 IP
구문을 사용하여 이 구성을 제공할 수 있습니다.
Host apex.0 { option host-name “apex.example.com”; hardware ethernet 00:A0:78:8E:9E:AA; option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:11; fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50; } host apex.1 { option host-name “apex.example.com”; hardware ethernet 00:A0:78:8E:9E:AB; option dhcp-client-identifier=ff:00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:03:00:31:7b:12; fixed-address 172.31.0.50,172.31.2.50,172.31.1.50,172.31.3.50; }
장치에 적합한
dhcp-client-identifier
를 찾으려면 일반적으로 접두사 ff:00:00:00:00:00:00:00:00:02:c9:00
을 사용하여 IPoIB 인터페이스의 InfiniBand 포트 8바이트 GUID로 표시될 수 있습니다. 일부 이전 컨트롤러에서 이 접두사가 올바르지 않습니다. 이 경우 DHCP 서버에서 tcpdump 를 사용하여 들어오는 IPoIB DHCP
요청을 캡처하고 해당 캡처에서 올바른 dhcp-client-identifier
를 수집하는 것이 좋습니다. 예를 들어 다음과 같습니다.
]$ tcpdump -vv -i mlx4_ib0
tcpdump: listening on mlx4_ib0, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:42:44.131447 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request, length 300, htype 32, hlen 0, xid 0x975cb024, Flags [Broadcast] (0x8000)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Hostname Option 12, length 10: "rdma-qe-03"
Parameter-Request Option 55, length 18:
Subnet-Mask, BR, Time-Zone, Classless-Static-Route
Domain-Name, Domain-Name-Server, Hostname, YD
YS, NTP, MTU, Option 119
Default-Gateway, Classless-Static-Route, Classless-Static-Route-Microsoft, Static-Route
Option 252, NTP
Client-ID Option 61, length 20: hardware-type 255, 00:00:00:00:00:02:00:00:02:c9:00:00:02:c9:02:00:21:ac:c1
위의 덤프에는 Client-ID 필드가 표시됩니다. hardware-type 255
는 ID의 initial ff:
에 해당하고 나머지 ID는 DHCP
구성 파일에 표시되어야 하므로 정확히 인용됩니다.
동일한 물리적 네트워크를 공유하는 모든 서브넷은 예 14.5. “공유 네트워크 선언” 에 표시된 대로 공유 네트워크 선언 내에서 선언해야 합니다. shared-network 내의 매개 변수는 묶인 서브넷 선언 외부의 매개 변수는 전역 매개 변수로 간주됩니다. shared-network 에 할당된 이름은 테스트 랩 환경에서 모든 서브넷을 설명하는 “test-lab” 제목과 같이 네트워크에 대한 설명 제목이어야 합니다.
예 14.6. “그룹 선언” 에서 시연한 대로 그룹 선언은 선언 그룹에 전역 매개 변수를 적용하는 데 사용됩니다. 예를 들어 공유 네트워크, 서브넷 및 호스트를 그룹화할 수 있습니다.
예 14.6. 그룹 선언
group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-search "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } }
참고
제공된 예제 구성 파일을 시작점으로 사용하고 사용자 지정 구성 옵션을 추가할 수 있습니다. 이 파일을 적절한 위치에 복사하려면
root
로 다음 명령을 사용합니다.
~]# cp /usr/share/doc/dhcp-version_number/dhcpd.conf.example /etc/dhcp/dhcpd.conf
여기서 version_number 는
DHCP
버전 번호입니다.
전체 옵션 문 목록과 해당 명령문의 내용은
dhcp-options(5) 도움말
페이지를 참조하십시오.