Dhcpd

From 탱이의 잡동사니
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Overview

dhcpd 서버 설치 및 설정하기.

dhcp 는 Dynamic Host Configuration Protocol 의 약자로, 네트워크에 새로운 호스트가 추가되었을 때, 할당 가능한 IP 주소를 확인해서 현재 사용중인 IP 주소와의 충돌없이 IP 주소를 사용할 수 있도록 해주는 프로토콜이다. dhcpd 는 이를 관리하는 역할을 하는 데몬(deamon)을 뜻한다.

Installation

  • Ubuntu 사용시, 다음명령어로 간편하게 설치가 가능하다

<source lang=bash> $ sudo apt-get install isc-dhcp-server </source>

Configuration

dhcpd 데몬을 관리하는 설정파일의 위치는 다음과 같다.

/etc/dhcp/dhcpd.conf

dhcpd 사용을 하기 위해서는 위의 파일을 열어 몇가지 수정을 해야 한다.

  • Example
pchero@mytravel:~$ cat /etc/dhcp/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.

#subnet 10.254.239.0 netmask 255.255.255.224 {
#  range 10.254.239.10 10.254.239.20;
#  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
#}

# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

#subnet 10.254.239.32 netmask 255.255.255.224 {
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
#  option broadcast-address 10.254.239.31;
#  option routers rtr-239-32-1.example.org;
#}

# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
#  range 10.5.5.26 10.5.5.30;
#  option domain-name-servers ns1.internal.example.org;
#  option domain-name "internal.example.org";
#  option routers 10.5.5.1;
#  option broadcast-address 10.5.5.31;
#  default-lease-time 600;
#  max-lease-time 7200;
#}

# Hosts which require special configuration options can be listed in
# host statements.   If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.

#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.fugue.com";
#}

# Fixed IP addresses can also be specified for hosts.   These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP.   Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
#  hardware ethernet 08:00:07:26:c0:a5;
#  fixed-address fantasia.fugue.com;
#}

# You can declare a class of clients and then do address allocation
# based on that.   The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.

#class "foo" {
#  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}

#shared-network 224-29 {
#  subnet 10.17.224.0 netmask 255.255.255.0 {
#    option routers rtr-224.example.org;
#  }
#  subnet 10.0.29.0 netmask 255.255.255.0 {
#    option routers rtr-29.example.org;
#  }
#  pool {
#    allow members of "foo";
#    range 10.17.224.10 10.17.224.250;
#  }
#  pool {
#    deny members of "foo";
#    range 10.0.29.10 10.0.29.230;
#  }
#}

subnet 192.168.125.0 netmask 255.255.255.0 {
    option subnet-mask	255.255.255.0;

    range 192.168.125.10 192.168.125.100;
    range 192.168.125.150 192.168.125.200;
} 

제일 아래쪽 subnet 192.168.125.0 부분이 dhcp 설정을 하는 부분이다.

  • subnet 192.168.125.0 netmask 255.255.255.0
관리하고자 하는 네트워크 대역과 넷마크스를 설정한다. 위의 예제에서는 192.168.125.0/24 대역을 관리하는 것으로 설정했다.
  • option subnet-mask
dhcp 서비스를 받는 클라이언트들의 기본 넷마스크를 설정하는 부분이다.
  • range 192.168.125.10 192.168.125.100
관리하는 IP 주소를 지정하는 부분이다. 192.168.125.10 ~ 192.168.125.100 까지의 주소를 할당해준다.
  • range 192.168.125.150 192.168.125.200
관리하는 IP 주소를 지정하는 부분이다. 192.168.125.150 ~ 192.168.125.200 까지의 주소를 할당해준다.

Service

설정이 종료되었으면 서비스를 시작해보자.

<source lang=bash> $ sudo /etc/init.d/isc-dhcp-server start </source>

서비스 종료시, 다음과 같이 입력하면 된다. <source lang=bash> $ sudo /etc/init.d/isc-dhcp-server stop </source>

External links