2012. 12. 23. 19:48

dhcp server configuration / Fedora 5

[ FC5에서 dhcpd 서버 설정하기 ]
: fc5에서 dhcpd를 설치하는 방법에 대한 설명이다.
: fc5 설치하고 다른 거 Update 안하고 초기상태에서 설치했다.
: dhcpd 서버가 설치되어있지 않으면 설치cd(dvd)의 rpm 디렉토리에 있는 dhcp 패키지를 설치하면 된다. fc5 설치할때 full package로 설치하면 함께 설치되는 듯 하다.

[ 참고문서 ]
http://blog.dreamwiz.com/sdsduck/4896817
- 리눅스/LPIC강좌]DHCP 서버 설치(3.0)
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch08_:_Configuring_the_DHCP_Server#Simple_DHCP_Troubleshooting

[ summary ]
- ifconfig -a로 interface정보에 multicast가 설정되어 있어야 한다.
- /etc/dhcp.conf 설정
- dhcpd 서버 프로그램 실행
: /etc/init.d/dhcpd {start|stop|restart}
: if you have multi-interfaces, run like below
dhcpd eth1
- 할당된 ip 리스트 확인
: /var/lib/dhcpd/dhcpd.leases 파일에 할당된 ip내역 확인 가능하다.
- dhcp 동작하는지 확인 방법
: ps -ef |grep dhcp 로 daemon 실행여부 확인
- /var/log/messages 파일 확인하면 ip 할당 메시지나 dhcpd 시작여부 확인 가능
Jun 30 10:47:58 aptiva dhcpd: Internet Software Consortium DHCP Server V3.0b1pl14
Jun 30 10:47:58 aptiva dhcpd: Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
- 특정 mac address에 고정 ip 할당하기
host bluestar{
hardware ethernet 00:C0:26:DD:9E:B5;
fixed-address 192.168.1.100;
option host-name "bluestar";
}
- route add -net 255.255.255.0 dev eth0
: 이거 설정안 해도 되더라
: interface가 여러개 일때는 해당 인터페이스로 dhcp패킷(255.255.255.255)이 나가도록 꼭 잡아줘야 한다.
- dhcpd 실행방법
: /usr/sbin/dhcpd eth1
: dhcpd 실행 명령을 rc.local 스크립트에 포함해야 부트시 실행된다.

[ detailed ]

1. 참고 자료
1) DHCP-mini-HOWTO
2) http://www.isc.org/products/DHCP/
3) dhcp-3.0b1pl14.tar.gz 패키지 내의 README 및 문서

[출처 : http://www.superuser.co.kr]
[리눅스/LPIC 참고교육사이트 = http://www.lesson-web.com/master/linux_main.htm]


== 설정 파일  ==
dhcpd의 설정 파일은 /etc/dhcpd.conf 이다. 아래는 기본적인 설정 내용 예이다.

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
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.1;
option domain-name-servers 192.168.1.1,168.126.63.1;
option domain-name “linuxlab.co.kr”;}

1) subnet와 netmask는 DHCP 서버에서 IP를 할당하는 클라이언트들의 네트워크 주소와
서브네트 마스크이다. 그 다음의 { }내의 모든 파라메터는 그 서브네트에만 적용된다.
즉, subnet는 선언이다.
dhcpd.conf 에는 여러 개의 subnet를 지정할 수 있고 각 subnet마다 파라메터를 달리 할
수 있다. 예를 들어 피시가 60대인데 192.168.2.0 C 클라스 주소를 8개의 서브 네트로
나눈 192.168.2.0 네트워크와 192.168.2.64 네트워크 두 개를 할당 받아 DHCP 서버에서
윈도우 클라이언트에 할당하려면 subnet 선언은 두 개가 필요하다.
Subnet 192.168.2.0 netmask 255.255.255.224
Subnet 192.168.2.64 netmask 255.255.255.224
이때 각 서브네트 내의 파라메터는 같지 않아도 상관없다. 예를 들어 서브네트마다 별도의
router 명령을 지정해도 된다.(당연히 다를 것이다.)
2) range : dhcp 클라이언트에 할당할 주소이다. 위의 경우는 192.168.1.100부터
192.168.1.200 까지 101개의 IP 주소를 클라이언트에 할당할 수 있다.
range 는 여러 개를 지정할 수 있다. 만약 DHCP를 사용하지 않는 클라이언트가
192.168.1.201 부터 209까지를 사용하고 있고 210부터 250까지의 주소도 dhcp
클라이언트에게 할당하려면 range 192.168.1.210 192.168.1.250 줄을 추가하면 된다.
즉, 그 랜에서 DHCP 서버가 설치되어 있어도 클라이언트에 고정 IP를 지정할 수 있다.
단 그 주소는 DHCP 서버의 range에 지정하지 않아야 한다.
3) default-lease-time : dhcp 클라이언트가 요청을 하지 않는 경우 기본으로 IP를 할당해
주는 시간이다. 이 시간내에 DHCP 클라이언트가 IP 사용을 계속할 것을 요청하면
IP address는 계속 유지된다. (초) 윈98의 경우는 5분 간격으로 DHCP 요청이 들어온다.
따라서 default-lease-time은 400(초) 이상을 지정하는게 좋다. 아래 dhcp.lease 내용이다.

lease 192.168.1.100 {
starts 5 2000/06/30 03:16:19;
ends 5 2000/06/30 03:26:19;
hardware ethernet 00:01:02:3d:a8:32;
uid 01:00:01:02:3d:a8:32;
client-hostname “hansol”;

}
lease 192.168.1.100 {
starts 5 2000/06/30 03:21:19;
ends 5 2000/06/30 03:31:19;
hardware ethernet 00:01:02:3d:a8:32;
uid 01:00:01:02:3d:a8:32;
client-hostname “hansol”;

4) max-lease-time : DHCP 클라이언트에게 최대로 IP를 할당해 주는 시간이다.
이 시간이 경과하면 기존 할당된 IP 주소는 소멸한다.

6. /var/state/dhcp 디렉토리에 내용이 없는 dhcpd.lease 파일을 만든다.
** fc5 에서는 /var/lib/dhcpd/dhcpd.leases 파일이다.
1) mkdir /var/state
2) mkdir /var/state/dhcp
3) cd /var/state/dhcp
4) touch dhcpd.leases
6-1. dhcpd.leases 파일의 용도
: dhcpd.leases 파일에는 아래처럼 해당 IP 할당 내역을 저장해 놓는다.
lease 150.150.133.172 {
starts 1 2009/05/11 06:02:52;
ends 1 2009/05/11 12:02:52;
binding state active;
next binding state free;
hardware ethernet 00:22:15:a5:00:8b;
uid "\001\000\"\025\245\000\213";
option agent.unknown-6 "12myid@mynet.net";
client-hostname "user-048ow2qsht";
}
1) binding state 가 active, free 로 해당 상태를 나타낸다
2) dhcp IP release 메시지가 정상적으로 오지 않으면 해당 IP는 계속 사용중인 것으로 알고 있다.
3) dhdpd나 서버를 재시동 한다고 해당 내역이 지워지지 않는다.
- dhcpd.lease 내용을 지우고 dhcpd를 재시동하면 초기화 시킬수 있다.

6-2. 이 파일이 없으면 dhcpd 실행시 아래 에러가 뜬다.
Can’t open lease database /var/state/dhcp/dhcpd.leases: No such file or directory -- check for failed database rewrite attempt! Please read the dhcpd.leases manual page if you don’t know what to do about this. exiting.

8. dhcpd 실행 확인
1) ps ax 명령을 주면 아래 라인이 나온다.
541 S 0:00 dhcpd eth1
2) /var/log/messages 파일에 아래처럼 나온다.
Jun 30 10:47:58 aptiva dhcpd: Internet Software Consortium DHCP Server V3.0b1pl14
Jun 30 10:47:58 aptiva dhcpd: Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
Jun 30 10:47:58 aptiva dhcpd: All rights reserved.
Jun 30 10:47:58 aptiva dhcpd: Please contribute if you find this software useful.
Jun 30 10:47:58 aptiva dhcpd: For info, please visit http://www.isc.org/dhcp-contrib.html
Jun 30 10:47:58 aptiva dhcpd: Listening on LPF/eth1/00:01:02:36:87:76/192.168.1.0
Jun 30 10:47:58 aptiva dhcpd: Sending on LPF/eth1/00:01:02:36:87:76/192.168.1.0
Jun 30 10:47:58 aptiva dhcpd: Sending on Socket/fallback/fallback-net
3) /var/state/dhcp 디렉토리의 dhcpd.lease 파일에 DHCP 서버에서 할당하는 내역이 나온다.
(1) DHCP 클라이언트에서 연결이 없으면 아래 내용만 들어 있다.
# All times in this file are in UTC (GMT), not your local timezone. This is

# not a bug, so please don’t ask about it. There is no portable way to
# store leases in the local timezone, so please don’t request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don’t ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.

(2) 윈도우 98에서 DHCP서버로부터 IP를 할당 받았을 때는 할당한 IP 내역이 나온다.

9. DHCP 사용을 위한 윈도우 설정
윈도우의 제어판/네트워크/tcpip/등록정보의 설정이다.

10. 연결 테스트
이상과 같이 윈도우의 tcp/ip 등록정보를 설정 후 먼저 리눅스에서 dhcpd를 실행하고 윈도우 피시를 리부팅하면 윈도 피시에 IP 주소가 할당된다. 아래가 할당한 내용이다.
1
이때 dhcpd 서버의 /var/state/dhcp/dhcpd.lease 파일 내용은 아래와 같다.
./lib/dhcpd/dhcpd.leases

lease 192.168.1.100 {
starts 5 2000/06/30 02:06:18;
ends 5 2000/06/30 02:16:18;
hardware ethernet 00:01:02:3d:a8:32;
uid 01:00:01:02:3d:a8:32;
client-hostname “hansol”;
}
lease 192.168.1.100 {
starts 5 2000/06/30 02:11:18;



/var/log/messages 에 아래처럼 할당 내용이 나타난다.

Jun 30 11:06:17 aptiva dhcpd: DHCPDISCOVER from 00:01:02:3d:a8:32 via eth1
Jun 30 11:06:18 aptiva dhcpd: DHCPOFFER on 192.168.1.100 to 00:01:02:3d:a8:32 via eth1
Jun 30 11:06:18 aptiva dhcpd: DHCPREQUEST for 192.168.1.100 from 00:01:02:3d:a8:32 via eth1
Jun 30 11:06:18 aptiva dhcpd: DHCPACK on 192.168.1.100 to 00:01:02:3d:a8:32 via eth1