안녕하세여..
dhcp 를 설정하는데 어려움이 있어서 글 올립니다.
먼저, 제 서버환경은
HancomLinux release 2.2
Kernel 2.4.13-1hl on an i686
dhcp 버전은 3.0 입니다.
그리고, 네트웍 환경 그림은 아래와 같습니다.
[인터넷 전용선] - [eth 0] - [Linux 서버] - [eth 1] - [Dynamic IP 컴터들]
현 상태에서, 리눅스 서버 자체는 인터넷 연결이 정상적으로 잘 됩니다.
그리고, 로컬 ping (ping 192.168.0.1) 도 잘 되구요..
그럼.. 제가 설정했던 과정을 말씀드릴께여..
(참고로, 이전에 누가 dhcp 설명하면서 올렸던 글과 거의 비슷합니다.)
(xxx 부분은 실제 도메인이 들어가는 부분이구요.)
먼저,
# ntsysv 실행해서.. 서비스 항목 확인해보면..
dhcpd, dhcp-relay, iptables 항목은 체크되어 있구요, ipchains 항목은 체크되어 있지 않습니다.
(dhcp 서버를 가동하기 위한 서비스 환경이 맞게 되었나요?)
다음,
/etc/sysconfig/network 파일을 다음과 같이 편집
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=xxx.com
DOMAINNAME=
GATEWAY=xxx.xxx.xxx.xx ## 게이트 웨이 제대로 넣었슴다..
GATEWAYDEV=eth0
다음..
/etc/sysctl.conf 파일을 다음과 같이 편집
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 0
net.ipv4.ip_always_defrag = 1
다음..
/etc/sysconfig/network-scripts/ifcfg-eth1 파일을 다음과 같이 편집
DEVICE=eth1
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
BOOTPROTO=dhcp
다음..
# /etc/rc.d/init.d/network restart 실행
다음..
/etc/dhcpd.conf 파일을 다음과 같이 편집
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.254;
default-lease-time 84600;
max-lease-time 2592000;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option domain-name "xxx.com";
option domain-name-servers 168.126.63.1, 210.104.1.3;
}
ddns-update-style ad-hoc;
다음..
/etc/rc.d/init.d/dhcpd 파일을 다음과 같이 편집
#!/bin/sh
# DHCP Server
#
# chkconfig: 345 80 20
# description: DHCP Server
# Source function library
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
# Get service config
[ -f /etc/sysconfig/dhcpd ] && . /etc/sysconfig/dhcpd
# Check that networking is up.
if is_no "${NETWORKING}"; then
msg_Network_Down DHCPD
exit 1
fi
/sbin/route add -host 255.255.255.255 dev eth1 ## 이 부분이 좀 걸리는 부분이구요..
daemon /usr/sbin/dhcpd eth1 ## 이 부분도 좀 걸리는 부분이구요..
# See how we were called.
case "$1" in
start)
# Check if the service is already running?
if [ ! -f /var/lock/subsys/dhcpd ]; then
msg_starting "DHCP Server"
daemon dhcpd $DHCPD_INTERFACES
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd
else
msg_Already_Running DHCPD
exit 1
fi
;;
stop)
msg_stopping "DHCP Server"
killproc dhcpd
rm -f /var/run/dhcpd.pid
rm -f /var/lock/subsys/dhcpd
;;
restart|reload)
$0 stop
$0 start
;;
status)
status dhcpd
;;
*)
msg_Usage "$0 {start|stop|restart|reload|status}"
exit 1
esac
exit $RETVAL
다음..
# touch /var/lib/dhcp/dhcpd.leases 실행
마지막으로..
# /etc/rc.d/init.d/dhcpd start 실행
위 명령어 실행하면 아래와 같은 메시지가 나옵니다.
/etc/rc.d/init.d/dhcpd: is_no: command not found
SIOCADDRT:파일이 존재합니다
/etc/rc.d/init.d/dhcpd: msg_starting: command not found [ 확인 ]
위 메시지 중에서 command not found 가 왜 나오는지 모르겠습니다.
암튼.. 제가 한 과정이 맞는지 봐주시구요.. 틀린 부분 있으면 지적해주세여..
그럼.. 부탁드리면서..
참, 어떤 설명에는 아래와 같은 명령어를 실행하는 부분이 있던데여.. (해주어야 되나요?)
/ipchains -M -S 7200 10 60
(참고로, 윈도 NT 에서는 dhcp 서버 동작이 제대로 됩니다.)