— 이강우 2017/01/13 13:06
[root@pxe ~]# yum install dhcp dhcp-common
[root@pxe ~]# yum install dhcp-common dhcp-server dhcp-client
[root@pxe ~]# yum install dhcp dhcp-common
/etc/dhcp/dhcpd.conf
# dhcpd.conf # allow booting; allow bootp; option option-128 code 128 = string; option option-129 code 129 = text; option domain-name-servers 8.8.8.8, 168.126.63.1; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.222.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.222.101 192.168.222.200; next-server 192.168.222.254; filename "pxelinux.0"; }
ddns-update-style none ; // DDNS 설정시 DHCP의 실행 방법 명시 // ad-hoc : DHCP의 Failover를 사용 하지 않고 DDNS을 실행 // DHCP 2.x의 경우 ad-hoc 옵션을 명시 하여 DDNS을 설정 // // interim : DHCP의 Failover를 포함한 모든 기능을 사용 하여 DDNS을 실행 // DHCP 3.x의 경우 interim 옵션을 명시 하여 DDNS을 설정 // // none : DHCP를 DNS와 함께 사용 하지 않고 Only DHCP 만을 실행 default-lease-time 10800 ; //DHCP의 IP 주소 대여 기본 시간 max-lease-time 32400 ; //DHCP의 IP 주소 대여 최대 시간 authoritative ; // IP 대여 시 정상적인 DHCP Server에서 대여 받은 IP 주소 인지를 확인할 수 있도록 // DHCP Server의 DHCPNAK Message를 전송 log-facility local7 ; //syslogd를 이용하여 log 기록 (Man Page 참고) shared-network "NDOCS-NET" { // shared-network 옵션은 DHCP에서 하나 이상의 다른 Subnet을 사용 하는 IP 주소를 할당할 // 경우 단일의 물리적인 Interface[NIC]에서 하나 이상의 Subnet를 사용할 수 있도록 공유 영역을 // 정의 하는 옵션 :: 현재의 shared-network "NDOCS-NET" { 설정은 DHCP에서 하나 이상의 // 다른 Subnet을 사용할 수 있도록 “NDOCS-NET” 이름의 공유 영역을 명시한 설정으로 // shared-network [“공유 영역 이름”]과 같이 설정 // DHCP의 실행 환경 설정 시 { 로 시작 하여 }로 종료 되어야 함 dhcpd_interface = "hme0" ; // DHCP에서 사용할 NIC를 명시 하는 옵션 :: 현재의 // dhcpd_interface = "hme0" ; 설정은 DHCP에서 사용할 NIC가 hme0 이름의 NIC라는 // 것을 명시한 설정으로 dhcpd_interface = [ NIC ]와 같이 설정 // DHCP에서 사용할 NIC가 하나일 경우 생략 하여도 됨 subnet 58.72.95.128 netmask 255.255.255.128 { range 58.72.95.210 58.72.95.220 ; option domain-name "ndocs.com" ; option domain-name-servers 58.92.95.222 ; option routers 58.72.95.129 ; option broadcast-address 58.72.95.255 ; } subnet 61.40.66.64 netmask 255.255.255.192 { range dynamic-bootp 61.40.66.77 61.40.66.87 ; option domain-name-servers ns.ndocs.com ; option routers 61.40.66.100 ; option broadcast-address 61.40.66.127 ; } // DHCP에서 61.40.65.64 / 255.255.255.192 Subnet의 // 61.40.65.77 ~ 87 IP 주소를 BOOTP 프로토콜로 대여 하도록 명시한 설정 // DHCP에서 BOOTP를 사용할 경우 DHCP를 설치한 시스템의 inetd에서 bootp를 // 사용 하도록 활성화 subnet 192.168.102.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.102.2 192.168.102.100 ; option domain-name-servers 203.248.252.2 ; option routers 192.168.102.254 ; option broadcast-address 192.168.102.255 ; } // DHCP에서 192.168.102.0 / 255.255.255.0 Subnet의 192.168.102.2~ 100 // IP 주소를 BOOTP 프로토콜로 대여 하도록 명시한 설정 subnet 203.248.252.0 netmask 255.255.255.128 { range 203.248.252.10 203.248.252.120 ; option domain-name-servers 203.248.252.70 ; option routers 203.248.252.100 ; option broadcast-address 203.248.252.127 ; default-lease-time 600 ; max-lease-time 7200 ; } // DHCP에서 203.248.252.0 / 255.255.255.128 Subnet의 // 203.248.252.10 ~ 120 IP 주소를 대여 하도록 명시한 설정 class "foo" { match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; } subnet 10.17.224.0 netmask 255.255.255.0 { option routers gw.ndocs.com ; } subnet 10.0.29.0 netmask 255.255.255.0 { option routers gw1.ndocs.com ; } 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 ; } // DHCP에서 “SUNW” 문자열을 포함 하는 Hardware의 DHCP // 클라이언트 시스템의 IP 주소를 10.12.224.10 ~ 250 IP 주소를 사용 하는 “foo” Class로 사용 // 하도록 “SUNW” 문자열을 포함 하지 않는 DHCP 클라이언트 시스템의 IP 주소를 // 10.0.25.10 ~ 230 IP 주소를 사용 하도록 명시한 설정 // class 옵션은 DHCP에서 IP 주소를 대여받는 DHCP 클라이언트의 Class와 조건을 명시하는 옵션 // 현재의 class "foo" { match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; } // 설정은 DHCP에서 “SUNW” 문자열이 포함 된 Hardware의 DHCP 클라이언트 시스템을 “foo” // Class로 정의 하도록 명시한 설정으로 // class "[Class]" {match if substring (option vendor-class-identifier,[문자수])="[문자열]";}과 // 같이 설정 // pool 옵션은 class에서 정의한 조건의 실행 값을 명시 하는 옵션 :: // pool { allow members of "foo" ; range 10.17.224.10 10.17.224.250 ; } 설정은 앞서 Class로 // 정의한 foo class에서 정의한 조건과 부합 될 경우 DHCP 클라이언트의 IP 주소를 // 10.17.224.10 ~ 250 IP 주소로 할당 하도록 명시한 설정으로 // pool { allow members of "[Class]" ; range [IP 대역 주소] ; }와 같이 설정 // pool { deny members of "foo" ; range 10.0.29.10 10.0.29.230 ; } 설정은 앞서 Class로 // 정의한 foo class에서 정의한 조건과 부합 되지 DHCP 클라이언트의 IP 주소를 10.0.29.10 ~ // 230 IP 주소로 할당 하도록 명시한 설정으로 pool { deny members of "[Class]" ; range [IP // 대여 주소] ; }와 같이 설정 // DHCP Server에서 Class를 정의할 경우 DHCP Client 또한 현재 DHCP Server를 구성한 // ISC-DHCP를 사용 하여야 한다. 만약 DHCP Client의 DHCP Agent를 ISC-DHCP의 DHCP // Agent가 아닌 다른 DHCP Agent를 사용할 경우 DHCP Server에서 Class가 정의 되지 않는다 . group “one” { subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.110 192.168.1.250 ; option routers 192.168.1.254 ; option subnet-mask 255.255.255.0 ; option domain-name "blanco.net" ; option domain-name-servers 192.168.1.1 ; option broadcast-address 192.168.1.255 ; } } // group 옵션은 DHCP에서 IP 주소를 대여 받는 DHCP 클라이언트의 그룹 명시 하는 옵션 :: // 현재의 group "one" { subnet , netmask, range, option routers, option subnet-mask, .. } // 설정은 DHCP에서 IP 주소를 대여 받는 DHCP 클라이언트 중 192.168.1.110 ~ 250 IP 주소를 // 사용 하는 DHCP 클라이언트를 “one” 이름의 그룹으로 사용 한다는 것을 명시한 설정으로 // group "[그룹명]" { subnet , netmask, range, option routers, .. }과 같이 설정 host windowsxp { <-- 클라이언트의 이름을 명시 hardware ethernet 00:07:e9:06:85:07 ; fixed-address 192.168.102.50 ; option host-name "windowsxp.ndocs.com" ; } host linuxboot { hardware ethernet 0:0:c0:5d:bd:95 ; server-name "linux.ndocs.com" ; filename "/tmp/vmunix.boot" ; } } // BOOTP를 사용 하여 /tmp 디렉터리에 존재 하는 vmunix.boot Kernel로 // Booting 하도록 명시 하도록 설정 // DHCP의 BOOTP를 사용 하여 DHCP의 클라이언트를 // Booing 하고자 한다면 Disk 없는 시스템에서 Booting 가능한 Kernel과 BOOTP를 사용할 수 // 있도록 tftp Daemon이 활성화 되어야 함 } //설정종료