System/OS

[linux] DHCP(Dynamic Host Configuration Protocol) 서버

by hooni posted Apr 23, 2003
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
가. 리눅스 DHCP 서버

    다운로드:        http://www.isc.org/products/DHCP/dhcp-3.0b1pl13.tar.gz
                ftp://ftp.isc.org/isc/dhcp/dhcp-3.0b1pl13.tar.gz

1. 사전 점검
   $ rpm -qa | grep dhcp        # dhcpd가 없으면 다운로드하여 설치
   $ ifconfig                        # 3번째줄에 Multicast가 없으면 커널 컴파일
                                # networking option에서 multicasting을 선택
     eth0      Link encap:Ethernet  HWaddr 00:50:DA:C5:B5:43
               inet addr:210.219.177.223  Bcast:210.219.177.255  Mask:255.255.255.0
               UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

2. 설치
    $ tar xvzfp dhcp-3.0b1pl13.tar.gz
    $ mv dhcp-3.0b1pl13 /usr/local/dhcpd; cd /usr/local/dhcpd
    $ ./configure
    $ make; make install 

3. 라우팅 조절(브로드케스트 라우터)
   $ route add -host 255.255.255.255 dev eth0                # 랜카드가 두개일때는 eth1
   # 만약, 255.255.255.255: Unknown host 라고 나오면
   # $ vi /etc/hosts
   #   255.255.255.255 all-ones
   # $ route add -host all-ones dev eth0  혹은
   # $ route add -net 255.255.255.0 dev eth0

4. 설정
   $ cp /usr/local/dhcpd/server/dhcpd.conf /etc/dhcpd.conf
   $ vi /etc/dhcpd.conf                
     # 방법 1 (공통적인 것은 밖에, 여기서는 이방법 씀)                
default-lease-time 3600;                        # 기본 임대 시간(초단위 86400 하루)
max-lease-time 7200;                                # 최대 임대 시간
option subnet-mask 255.255.255.0;                # 서브넷마스크
option broadcast-address 192.168.1.255;                # 브로드 캐스트 어드레스
option routers 192.168.1.101;                        # 라우터나 게이트웨이, 내부랜카드 주소
option domain-name-servers 210.117.65.1, 210.117.65.2;                 # 도메인 네임 서버 
option domain-name "toconet.co.kr";                # 도메인 네임
option domain-name "joongang.thrunet.com";

subnet 192.168.1.0 netmask 255.255.255.0 {        # eth1 내부 네트웍
   range 192.168.1.10 192.168.1.100;                # 192.168.1.10에서 192.168.1.100까지 
   range 192.168.1.150 192.168.1.200;                # 192.168.1.150부터 192.168.1.200까지
}
subnet 210.219.177.0 netmask 255.255.255.0 {        # eth0 두번째 랜카드 외부 네트웍
}      

     # 방법 2 (서브넷에 한정된 것은 안에, 권장)
       subnet 192.168.1.0 netmask 255.255.255.0 {
                  range 192.168.1.1 192.168.1.254;
                  default-lease-time 3600;
                  max-lease-time     7200;
                  option subnet-mask  255.255.255.0;
                  option broadcast-address 192.168.1.255;
                  option routers 192.168.1.101;
                  option domain-name-servers 210.117.65.1, 210.117.65.2;
                  option domain-name "toconet.co.kr";
                  option domain-name "joong.thrunet.com";
        }
        subnet 210.219.177.0 netmask 255.255.255.0 {
        } 
                                                       
   # 클라이언트에 고정된 IP 할당하기
   # Ethernet 카드 주소 아는 방법 : arp -a 192.168.1.10
     host pc10.toconet.co.kr {
                hardware ethernet 00:A0:4B:02:E7:04;
                fixed-address 192.168.1.10;
                option host-name "pc10";
     }

5. DHCP 상태현황 파일 만들기
   $ touch /etc/dhcpd.leases        
   혹은 $ mkdir /var/state/dhcp
   $ touch /var/state/dhcp/dhcpd.leases                                
   # 이 빈 파일에는 어떤 컴퓨터에 어떤 IP주소를 부여했는가에 대한 정보가 들어간다.

6. DHCP 시작과 종료
   $ /usr/sbin/dhcpd                                # 시작
   혹은 $ /etc/rc.d/init.d/dhcpd start
   혹은 $ /etc/rc.d/init.d/dhcpd restart
   ...
   Listening on LPF/eth1/00:50:da:c5:b6:cf/192.168.1.0
   Sending on   LPF/eth1/00:50:da:c5:b6:cf/192.168.1.0                # 성공
   Listening on LPF/eth0/00:50:da:c5:b5:43/210.219.177.0
   Sending on   LPF/eth0/00:50:da:c5:b5:43/210.219.177.0        # 성공
   Sending on   Socket/fallback/fallback-net

   $ /usr/sbin/dhcpd stop                        # 종료
   혹은 $ /etc/rc.d/init.d/dhcpd stop                 

   # 점검하려면 디버깅 모드에 포그라운드 모드로
   $ /usr/sbin/dhcpd -d -f

   # 부팅시 자동 스타트
     $ ntsysv
       dhcpd 서비스 체크
     # 없을 때는 $ vi /etc/rc.d/rc.local
     #                      #route add -host 255.255.255.255 dev eth0
     #                      route add -host 255.255.255.255 dev eth1
     #                   /usr/sbin/dhcpd  


나. 윈도우 클라이언트 DHCP 
    네트워크 등록정보에서 호스트 이름만 입력하고 나머지는 아무것도 입력하지 않는다


다. 리눅스 클라이언트 DHCP
    $ netcfg &
      Names, Hosts, Routing 에는 아무것도 입력 하지 않는다
      Interpace -> eth0 -> edit -> IP, Netmask ... 입력 안함                                
                                   Activate Interface at boot time ... 선택                
                                   nterface configuration protocol부분 ... dhcp로 선택        
      -> Done -> Active -> Using DHCP for eth0 ... done 성공
    $ ifconfig