탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 관리: IP 서비스 Oracle Solaris 10 1/13 Information Library (한국어) |
1. Oracle Solaris TCP/IP 프로토콜 제품군(개요)
5. TCP/IP 네트워크 서비스 구성 및 IPv4 주소 지정(작업)
10. TCP/IP 및 IPv4에 대한 자세한 정보(참조)
DHCP 클라이언트 프로토콜이 네트워크 구성 정보를 관리하는 방법
DHCPv4 클라이언트가 네트워크 구성 정보를 관리하는 방법
DHCPv6 클라이언트가 네트워크 구성 정보를 관리하는 방법
DHCP 클라이언트에서 사용되는 ifconfig 명령 옵션
DHCPv4 클라이언트가 특정 호스트 이름을 요청하도록 설정하는 방법
DHCP 클라이언트를 NIS+ 클라이언트로 설정하는 방법
DHCP 클라이언트를 설정하여 클라이언트 시스템에 적절한 동작을 수행할 수 있는 실행 파일 프로그램 또는 스크립트를 실행할 수 있습니다. 프로그램 또는 스크립트는 이벤트 스크립트라고 하며, 특정 DHCP 임대 이벤트가 발생한 후 자동으로 실행됩니다. 이벤트 스크립트를 사용하여 특정 임대 이벤트에 대한 응답으로 다른 명령, 프로그램 또는 스크립트를 실행할 수 있습니다. 이 기능을 사용하려면 고유의 이벤트 스크립트를 제공해야 합니다.
다음 이벤트 키워드가 dhcpagent에서 DHCP 임대 이벤트를 구별하는 데 사용됩니다.
설명
DHCP용으로 인터페이스가 구성됩니다. 클라이언트가 DHCP 서버에서 확인 메시지(DHCPv4 ACK 또는 DHCPv6 Reply)를 수신하여 IP 주소에 대한 임대 요청을 부여합니다. 인터페이스를 성공적으로 구성한 후에 즉시 이벤트 스크립트가 호출됩니다.
클라이언트가 임대를 성공적으로 연장합니다. 클라이언트가 DHCP 서버에서 갱신 요청에 대한 확인 메시지를 수신한 후에 즉시 이벤트 스크립트가 호출됩니다.
임대 시간이 다 되었을 때 임대가 만료됩니다. DHCPv4의 경우, 임대된 주소가 인터페이스에서 제거되고 인터페이스가 작동 중지로 표시되기 전에 즉시 이벤트 스크립트가 호출됩니다. DHCPv6의 경우, 마지막 남은 임대된 주소가 인터페이스에서 제거되기 전에 바로 이벤트 스크립트가 호출됩니다.
클라이언트가 임대를 취소하여 DHCP 컨트롤에서 인터페이스를 제거합니다. 인터페이스를 DHCP 제어에서 제거한 후에 즉시 이벤트 스크립트가 호출됩니다.
클라이언트가 IP 주소를 양도합니다. 클라이언트가 인터페이스에서 주소를 해제하고 DHCPv4 RELEASE 또는 DHCPv6 Release 패킷을 DHCP 서버로 보내기 전에 즉시 이벤트 스크립트가 호출됩니다.
인터페이스가 DHCPv4 INFORM 또는 DHCPv6 Information-Request 메시지를 통해 DHCP 서버에서 신규 또는 업데이트된 구성 정보를 획득합니다. 이러한 이벤트는 DHCP 클라이언트가 서버에서 구성 매개변수만 얻고 IP 주소 임대를 얻지 않을 때 발생합니다.
임대 만료 중 하나 이상의 유효한 임대가 계속 남아 있으면 만료된 주소가 제거되기 전에 바로 이벤트 스크립트가 호출됩니다. 이러한 제거 예정 항목은 IFF_DEPRECATED 플래그로 표시됩니다.
이러한 이벤트를 사용하여 dhcpagent는 다음 명령을 호출합니다.
/etc/dhcp/eventhook interface event
여기서 interface는 DHCP를 사용 중인 인터페이스이고 event는 이전에 설명된 이벤트 키워드 중 하나입니다. 예를 들어, ce0 인터페이스가 DHCP용으로 처음 구성될 때 다음과 같이 dhcpagent가 이벤트 스크립트를 호출합니다.
/etc/dhcp/eventhook net0 BOUND
이벤트 스크립트 기능을 사용하려면 다음을 수행해야 합니다.
실행 파일 이름을 /etc/dhcp/eventhook로 지정합니다.
root가 될 파일의 소유자를 설정합니다.
사용 권한을 755(rwxr-xr-x )로 설정합니다.
스크립트 또는 프로그램을 작성하여 문서화된 이벤트의 응답으로 동작 순서를 수행합니다. Sun이 새 이벤트를 추가할 수 있으므로 인식할 수 없거나 조치가 필요하지 않은 이벤트를 프로그램이 자동으로 무시해야 합니다. 예를 들어, 프로그램 또는 스크립트는 이벤트가 RELEASE일 때 로그 파일에 작성하고 다른 모든 이벤트를 무시할 수 있습니다.
스크립트 또는 프로그램을 비대화식으로 만듭니다. 이벤트 스크립트를 호출하기 전에 stdin, stdout, stderr이 /dev/null에 연결됩니다. 출력 또는 오류를 보려면 파일로 재지정해야 합니다.
이벤트 스크립트가 dhcpagent로부터 프로그램 환경을 상속받고 root 권한으로 실행합니다. 스크립트가 dhcpinfo 유틸리티를 사용하여 필요한 경우 인터페이스에 대한 추가 정보를 얻을 수 있습니다. 자세한 내용은 dhcpinfo(1) 매뉴얼 페이지를 참조하십시오.
dhcpagent 데몬이 이벤트 스크립트가 모든 이벤트에서 종료되기를 기다립니다. 이벤트 스크립트가 55초 후에 종료되지 않으면 dhcpagent가 SIGTERM 신호를 스크립트 프로세스로 보냅니다. 추가 3초 후에도 여전히 프로세스가 종료되지 않으면 데몬이 프로세스를 종료하기 위해 SIGKILL 신호를 보냅니다.
dhcpagent(1M) 매뉴얼 페이지에 이벤트 스크립트의 예가 포함됩니다.
예 16-3은 DHCP 이벤트 스크립트를 사용하여 /etc/resolv.conf 파일의 내용을 최신 상태로 유지하는 방법을 보여줍니다. BOUND 및 EXTEND 이벤트가 발생하면 스크립트는 도메인 서버 및 이름 서버의 이름을 바꿉니다. EXPIRE, DROP 및 RELEASE 이벤트가 발생하면 스크립트는 파일에서 도메인 서버 및 이름 서버의 이름을 제거합니다.
주 - 스크립트 예에서는 DHCP가 도메인 서버 및 이름 서버의 이름에 대한 권한 있는 소스라고 가정합니다. 또한 이 스크립트에서는 DHCP의 제어를 받는 모든 인터페이스가 일관성있는 현재 정보를 반환한다고 가정합니다. 이러한 가정은 사용자 시스템의 조건을 반영하지 않을 수 있습니다.
예 16-3 /etc/resolv.conf 파일을 업데이트하는 이벤트 스크립트
#!/bin/ksh -p PATH=/bin:/sbin export PATH umask 0222 # Refresh the domain and name servers on /etc/resolv.conf insert () { dnsservers=`dhcpinfo -i $1 DNSserv` if [ -n "$dnsservers" ]; then # remove the old domain and name servers if [ -f /etc/resolv.conf ]; then rm -f /tmp/resolv.conf.$$ sed -e '/^domain/d' -e '/^nameserver/d' \ /etc/resolv.conf > /tmp/resolv.conf.$$ fi # add the new domain dnsdomain=`dhcpinfo -i $1 DNSdmain` if [ -n "$dnsdomain" ]; then echo "domain $dnsdomain" >> /tmp/resolv.conf.$$ fi # add new name servers for name in $dnsservers; do echo nameserver $name >> /tmp/resolv.conf.$$ done mv -f /tmp/resolv.conf.$$ /etc/resolv.conf fi } # Remove the domain and name servers from /etc/resolv.conf remove () { if [ -f /etc/resolv.conf ]; then rm -f /tmp/resolv.conf.$$ sed -e '/^domain/d' -e '/^nameserver/d' \ /etc/resolv.conf > /tmp/resolv.conf.$$ mv -f /tmp/resolv.conf.$$ /etc/resolv.conf fi } case $2 in BOUND | EXTEND) insert $1 exit 0 ;; EXPIRE | DROP | RELEASE) remove exit 0 ;; *) exit 0 ;; esac