본문 바로가기

Linux Server 구축/4-1. DHCP Server

DHCP Server


DHCP Server

- DHCP(Dynamic Host Configuration Protocol)는 DHCP서버로 IP주소할당을 요청하는 클라이언트들에게 자동으로 IP주소를 할당해 주는 통신 프로토콜 규약이다.
- DHCP서버를 구성하기 위해서는 리눅스 서버와 네트워크 카드 인터페이스 두개를 준비해야 한다.
즉, 외부의 DHCP서버로부터 공인 IP 를 할당받는 이더넷카드와 내부 클라이언트들에게 IP를 할당하는 이더넷카드가 필요하다.

-------------------------------------------------------------------

1. 설치 확인

[root@server3 ~]# rpm -qa | grep dhcp
dhcpv6-client-1.0.10-4.el5

[root@server3 ~]# system-config-packages
패키지 관리자 -> 서버 -> 네트워크 서버 -> dhcp의 체크를 확인한다.

[root@server3 ~]# yum install dhcp

- 중략

Installed: dhcp.i386 12:3.0.5-13.el5
Complete!
[root@server3 ~]#

[root@server3 ~]# rpm -qa | grep dhcp
dhcp-3.0.5-13.el5
dhcpv6-client-1.0.10-4.el5

[root@server3 ~]# rpm -qi dhcp
Name        : dhcp                         Relocations: (not relocatable)
Version     : 3.0.5                             Vendor: CentOS
Release     : 13.el5                        Build Date:
Install Date:       Build Host: builder16.centos.org
Group       : System Environment/Daemons    Source RPM: dhcp-3.0.5-13.el5.src.rpm
Size        : 2230145                          License: distributable
Signature   : DSA/SHA1, 2008년 06월 15일 (일) 오전 08시 30분 32초, Key ID a8a447dce8562897
URL         : http://isc.org/products/DHCP/
Summary     : DHCP (Dynamic Host Configuration Protocol) 서버와 중계 에이전트.
Description :
DHCP(Dynamic Host Configuration Protocol)는 IP 네트워크 상에서
DHCP 서버로부터 개별 장치들의 네트워크 설정 정보 (IP 주소, 서브넷 마스크,
브로드캐스트 주소 등)을 할당해주는 프로토콜입니다. DHCP를 사용하는 궁극적인
목적은 대규모 네트워크를 보다 쉽게 관리하는 것입니다. dhcp 패키지는 ISC DHCP
서비스와 중계 에이전트를 포함하고 있습니다.

네트워크 상에서 DHCP 서버를 사용하기 위해서는 DHCP 서비스 또는 중계 에이전트를
설치하시고 클라이언트 컴퓨터에서 DHCP 클라이언트 데몬을 실행하셔야 합니다.
dhclient 패키지는 ISC DHCP 서비스와 중계 에이전트를 제공합니다.

[root@server3 ~]# rpm -ql dhcp
/etc/dhcpd.conf
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcrelay

- 중략

/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
[root@server3 ~]#


-------------------------------------------------------------------

2. DHCP 환경 설정

- dhcp 서버는 한 네트워크 대역에 하나만 존재해야 한다.

[root@server3 ~]# vi /etc/dhcpd.conf  
1 #
2 # DHCP Server Configuration file.
3 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample  - 이 파일을 복사해서 쓴다.
4 #

[root@server3 ~]# vi /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample - 실질적인 환경 설정파일

- DHCP의 환경설정 파일은 다른 패키지들과는 달리 .conf파일에 아무 내용이 없다.
- /usr/share/doc/dhcp*/dhcpd.conf.sample 의 파일을 dhcpd.conf파일로 복사해서 설정한다.
 
[root@server3 ~]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cp: overwrite `/etc/dhcpd.conf'? y

[root@server3 ~]# vi /etc/dhcpd.conf
 
1 ddns-update-style interim;
2 ignore client-updates;
3
4 subnet 192.168.0.0 netmask 255.255.255.0 {           - 클라이언트에 할당할 네트워크 주소아 넷마스크를 지정한다. (즉, 내부 IP 범위를 설정한다.) 
5
6 # --- default gateway
7         option routers                  192.168.0.1;  - 클라이언트에게 할당할 게이트웨이 주소를 입력한다.
8         option subnet-mask              255.255.255.0; - 클라이언트에게 할당해줄 네트워크 범위(즉, 서브넷 마스크)를 입력한다.
9
10         option nis-domain               "domain.org";  - nis를 사용할 경우 도메인을 입력한다.
11         option domain-name              "domain.org";  - dhcp 서버의 도메인이 있을 경우 도메인을 입력한다.
12         option domain-name-servers      192.168.1.1;  - 클라이언트가 사용할 DNS 주소를 입력한다. 예) KT DNS주소 : 168.126.63.1
13
14         option time-offset              -18000; # Eastern Standard Time
15 #       option ntp-servers              192.168.1.1;
16 #       option netbios-name-servers     192.168.1.1;
17 # --- Selects point-to-point node (default is hybrid). Don't change this unless
18 # -- you understand Netbios very well
19 #       option netbios-node-type 2;
20
21         range dynamic-bootp 192.168.0.128 192.168.0.254;   - DHCP서버로 접속하는 클라이언트들에게 자동으로 할당할 IP 대역을 설정
22         default-lease-time 21600;                 - 클라이언트가 할당받은 IP주소를 사용할 수 있는 시간         
23         max-lease-time 43200;                   -클라이언트가 할당받은 IP주소를 가지고 있을 최대 IP보유 시간을 설정
24
25         # we want the nameserver to appear at a fixed address - 특정 네트워크 카드 인터페이스에 정적인 고정 IP 할당을 설정
26         host ns {
27                 next-server marvin.redhat.com;
28                 hardware ethernet 12:34:56:78:AB:CD;      - 하드웨어의 MAC 어드레스 입력
29                 fixed-address 207.175.42.254;      - 고정할 클라이언트의 IP 주소 입력
30         }
31 }

[root@server3 ~]# service dhcpd start
dhcpd (을)를 시작 중:                                      [ OK ]

[root@server3 ~]# tail -f /var/lib/dhcpd/dhcpd.leases - 클라이언트들이 IP를 받아가는 것을 확인하는 명령어

lease 10.10.41.29 {   
  starts 1 2008/12/22 02:36:08; 
  ends 1 2008/12/22 08:36:08;
  binding state active;
  next binding state free;
  hardware ethernet 00:16:76:08:b2:8b;
}
lease 10.10.41.25 {
  starts 1 2008/12/22 02:36:10;
  ends 1 2008/12/22 08:36:10;
  binding state active;
  next binding state free;
  hardware ethernet 00:16:76:08:af:55;
}

-------------------------------------------------------------------

3. DHCP 테스트

DHCP 서버
[root@server3 ~]# vi /etc/dhcpd.conf

클라이언트에서 설정
[root@server2 ~]# system-config-network
 
장치 -> 일반 -> IP 주소를 자동으로 받기 : dhcp -> 활성화

or  [root@server2 ~]# service network restart