dhclient(8)

명칭
dhclient - 동적 호스트 설정 프로토콜의 클라이언트

서식
dhclient [ -p port ] [ -D ] [ -d ] [ -q ] [ -1 ] [ -r ] [ -lf lease-file ] [ -pf pid-file ] [ -cf config-file ] [ -sf script-file ] [ -s server ] [ -g relay ] [ -n ] [ -nw ] [ -w ] [ if0 [ ...ifN ] ]

해설
Internet Software Consortium 의 DHCP 클라이언트인 dhclient (은)는 동적 호스트 설정 프로토콜 (DHCP: Dynamic Host Configuration Protocol) 또는 BOOTP 프로토콜을 이용해, 혹은 이러한 프로토콜이 실패했을 경우에는 주소를 정적으로 할당해, 1 개(살) 이상의 네트워크 인터페이스를 설정하는 방법을 제공합니다.

조작

DHCP 프로토콜에서는, 1 개(살) 이상의 서스네트워크에 할당할 수 있다 IP 주소의 리스트를 관리하는 중앙 서버에, 호스트를 액세스 할 수 있습니다. DHCP 클라이언트는 이 리스트로부터 주소를 요구해, 그것을 네트워크 통신의 일시적인 토대에 이용할 수가 있습니다. 또 DHCP 프로토콜은, 디폴트 라우터의 장소나 네임서버의 장소 등, 클라이언트가 접속하고 있는 네트워크에 관한 중요한 정보를 클라이언트에 상세하게 알리는 기구도 제공합니다.

기동시에 dhclient 는 dhclient.conf (으)로부터 설정 지시를 읽어냅니다. 그리고 현재의 시스템에 짜넣어지고 있다 모든 네트워크 인터페이스의 리스트를 취득합니다. 각 인터페이스에 대해 dhclient 는 DHCP 프로토콜을 이용해 설정을 시도합니다.

시스템 리부트나 서버 재기동 시에 리스를 잃지 않게, dhclient 는 할당할 수 있었던 리스의 리스트를 dhclient.leases(5) 파일에 보존합니다. 기동시, dhclient.conf 파일을 읽어낸 후, dhclient 는 dhclient.leases 파일을 읽어들여, 할당할 수 있었던 리스에 관한 메모리를 갱신합니다.

새로운 리스를 취득하면(자), dhclient.leases 파일의 말미에 덧붙일 수 있습니다. 파일이 극단적으로 커지는 것을 막기 위해서(때문에), dhclient 는 때 우리 코어 내부의 리스 데이타베이스로부터 신규에 dhclient.leases 파일을 작성합니다. 낡은 dhclient.leases 파일은, dhclient 가 다음에 데이타베이스를 다시 만들 때까지, dhclient.leases~ (이)라는 이름으로 보존됩니다.

dhclient 가 최초로 기동되었을 때 (일반적으로는 시스템 부트 초기 과정의 사이)에 DHCP 서버를 이용할 수 없으면, 낡은 리스는 남겨집니다. 그 경우, dhclient.leases 파일로부터 아직 기한이 끊어지지 않은 낡은 리스를 검사해, 유효하다라고 판단되면, 그러한 기한이 지날까 또는 DHCP 서버를 이용할 수 있게 될 때까지, 그 리스를 사용합니다.

DHCP 서버가 존재하지 않는 네트워크에 때 우리 액세스 할 필요가 어느 같은 이동 호스트는, 그 네트워크상의 고정 주소의 리스를 미리 읽어들여 둘 수가 있습니다. DHCP 서버에의 액세스가 어느 것도 성공하지 않았던 경우, dhclient 는 그 정적인 리스가 유효한가 검증해, 유효하면 다음에 재기동될 때까지 그 리스를 사용합니다.

또 이동 호스트는, DHCP 는 이용할 수 없지만 BOOTP 라면 이용할 수 있는 것 같은 네트워크에 이동하는 일도 있겠지요. 그러한 경우는, 낡은 리스를 차례차례 시험하는 것보다도, 그 네트워크의 관리자와 상담해 BOOTP 데이타베이스에 엔트리를 작성받아, 그 네트워크상에서 재빠르게 부트 할 수 있도록(듯이) 하면(자) 좋을 것입니다.

명령행

dhclient 가 설정하려고 하는 네트워크 인터페이스의 이름을 명령행으로 지정할 수 있습니다. 명령행으로 인터페이스명이 지정되지 않으면, dhclient 는 모든 네트워크 인터페이스를 식별해, 가능하면 비브로드캐스트 인터페이스는 제외해, 각각의 인터페이스를 설정하려고 합니다.

dhclient.conf(5) 파일중의 이름으로 인터페이스를 지정하는 일도 가능합니다. 이 방법으로 인터페이스를 지정했을 경우, 클라이언트는, 설정 파일중에서 지정한 인터페이스 혹은 명령행으로 지정한 인터페이스의 어느 쪽인지만을 설정하겠지요.

-D 플래그를 지정하면(자), dhclient 하지만 dhclient-script (와)과 조합해 사용하기 위해서 작성한 스크립트를, /tmp 에 보존시킵니다.

DHCP 클라이언트가 표준 포트 (포토 번호 68) 이외의 포토로 대기 및 송신할 필요가 있는 경우에는 -p 플래그를 사용할 수 있습니다. 이 플래그에 이어, dhclient 가 사용하는 udp 포트 번호를 지정합니다. 이것은 주로 디버그 목적에서는 유용합니다. 클라이언트가 대기 및 송신하기 위해서 사용하는 포트에 디폴트와는 다른 포트를 지정하는 경우, 클라이언트는 이제(벌써) 1 개(살)별의 송신지 포트도 사용합니다. 그 송신지 포토는, 지정한 송신지 포트보다 큰 번호를 가진 것입니다.

DHCP 클라이언트는, 통상 IP 주소를 획득하고 있지 않는 동안 임의의 프로토콜 메세지를 리미티드 브로드캐스트 주소인 255.255. 255.255 로 송신합니다. 디버그 목적으로, 서버가 이러한 메세지를 어딘가 다른 주소에 송신하는 것이 편리한 일이 있습니다. -s 플래그의 뒤에 송신지의 IP 주소 혹은 도메인명을 붙여 지정 할 수 있습니다. 테스트 목적으로, DHCP 클라이언트가 송신하는 모든 패킷의 giaddr 필드를 -g 플래그에 송신지의 IP 주소를 계속한 형태를 사용하는 것으로 설정한다 일이 생깁니다. 이것은 테스트 목적때만 유용한 것이며, 견실함이나 편리한 사용을 요구하는 상황으로 동작하는 것을 상정해 안됩니다.

DHCP 클라이언트는, 통상 인터페이스를 설정할 때까지는 foreground로 동작해, 그 후 백그라운드에서 동작 하게 됩니다. dhclient 를 항상 foreground의 프로세스로서 동작시키기 위해서(때문에)는, -d 플래그를 지정할 필요가 있습니다. 이것은, DHCP 클라이언트가 디버거의 아래에서 동작하고 있는 경우나, System V 시스템의 inittab 의 외측에서 동작하고 있는 경우에는 유효한 것입니다.

이 클라이언트는, 통상은 기동 메세지를 표시해, 주소를 획득할 때까지 표준 에러 출력에 프로토콜 순차 순서를 써냅니다. 주소를 획득한 후는 syslog (3) 퍼실리티를 사용해 메세지의 로그를 취하는 만큼 됩니다. -q 플래그를 사용하면(자), 에러 이외의 메세지를 표준 에러 출력에 써내지 않게 됩니다.

클라이언트는, DHCP 프로토콜로 의무 지워지지 않기 때문에, 통상은 현재 취득하고 있는 리스를 해방할 것은 없습니다. 다만, 케이블 ISP 속에는, 클라이언트가 할당할 수 있었던 IP 주소를 해방하고 싶은 경우에는, 서버에 통지하도록(듯이) 의무 부여하고 있는 곳(중)도 있습니다. -r 플래그를 이용하면(자), 명시적으로 현재의 리스를 해방해, 일단 리스를 해방하면(자) 클라이언트는 종료합니다.

-1 플래그를 지정하면(자), dhclient 는 하나의 리스에 대해 1 번밖에 취득을 시도하지 않습니다. 만약 취득에 실패하면 dhclient 는 종료 코드 2 로 종료합니다.

DHCP 클라이언트는, 통상은 설정 정보를 /etc/dhclient.conf (으)로부터, 리스 데이타베이스를 /var/db/dhclient.leases (으)로부터 취득해, 자신의 프로세스 ID 를 /var/run/dhclient.pid (이)라는 이름의 파일에 보존해, 그리고 네트워크 인터페이스를 /sbin/dhclient-script (을)를 사용해 설정합니다. 이러한 파일에 다른 이름을 지정하거나 다른 장소를 지정하거나 하려면 , 각각 -cf, -lf, -pf 및 -sf 플래그를, 뒤로 파일명을 계속하는 형태로 사용해 주세요. 이 방법은, 예를 들면 DHCP 클라이언트가 기동했을 때에 /var/db 혹은 /var/run 하지만 아직 mount되어 있지 않은 경우에는 특히 유용한 것에 될 수 있습니다.

DHCP 클라이언트는, 설정해야 할 네트워크 인터페이스를 분류할 수 없는 경우, 통상은 종료합니다. 랲탑 컴퓨터나 hot swap 가능한 I/O 버스를 가진 컴퓨터에서는, 브로드캐스트 인터페이스가 시스템 기동 후에 추가되는 일이 있습니다. -w 플래그를 이용하면(자), 그러한 인터페이스가 1 개나 발견되지 않을 때에도 클라이언트가 종료하지 않게 할 수 있습니다. 다음에 omshell (8) 프로그램을 사용해, 네트워크 인터페이스가 추가되거나 삭제 되거나 한 것을 클라이언트에 통지할 수가 있어 이것에 의해 클라이언트가 이 인터페이스상의 IP 주소를 설정하도록(듯이) 시도할 수가 있습니다.

-n 플래그를 이용하는 것으로, 어느 인터페이스도 설정하려고 하지 않게 DHCP 클라이언트를 지시할 수가 있습니다. 이 플래그는, 반드시 -w 플래그와 함께 사용하면(자) 유용하겠지요.

IP 주소를 획득할 때까지 기다리는 것이 아니라, 즉석에서 demon와 되도록(듯이) 클라이언트를 지시할 수도 있습니다. -nw 플래그를 주면(자) 가능합니다.

설정
dhclient.conf(5) 파일의 서식은 별도로 해설되고 있습니다.

OMAPI
이 DHCP 클라이언트는, 동작중에 그 동작을 정지시킨다 무사히 자기 자신을 제어할 수 있도록(듯이)하기 위한 기능을 제공하고 있습니다. 이 기능은, 리모트 오브젝트 조작 API 인 OMAPI 를 이용해 제공되고 있습니다. OMAPI 클라이언트는, TCP/IP 를 사용해 이 DHCP 클라이언트에 접속합니다. 그리고, DHCP 클라이언트의 현재 상태를 검사할 수 있어 그 상태를 변경하는 것이 할 수 있습니다.

유저 프로그램에서는, 기초에 있는 OMAPI 프로토콜을 직접 실장한다 것은 아니고, dhcpctl API 혹은 OMAPI 그 자체를 사용해야 합니다. dhcpctl 는, OMAPI 가 자동으로 가 주지 않는 잡무의 몇개인가를 취급한다 나팔입니다. dhcpctl 및 OMAPI 에 대해서는 dhcpctl(3) 및 omapi(3) 에 기술되고 있습니다. 클라이언트를 이용해 주고 싶은 것의 대부분은, 특별한 프로그램을 쓰지 않아도 omshell(1) 명령을 사용해 직접 실현될 수 있다 물건입니다.

제어 오브젝트
제어 오브젝트를 사용하면(자), DHCP 클라이언트를 종료시켜, 보관 유지하고 있는 리스를 모두 해방해, 클라이언트가 추가했다 DNS 레코드를 모두 소거할 수가 있게 됩니다. 또, 클라이언트를 일시정지시켜, 클라이언트가 사용하고 있다 인터페이스의 설정을 제외할 수가 있도록(듯이)도 됩니다. 그 후로, DHCP 클라이언트를 재기동시킬 수가 있어 인터페이스를 재설정할 수가 있습니다. 통상, 하이버네이션에 들어가기 전이나 랲탑 컴퓨터에서는 sleeve 하기 전에 DHCP 클라이언트를 일시정지시키겠지요. 그리고, 전원이 돌아온 다음에 DHCP 클라이언트를 회복시킨다 그렇지. 이렇게 하는 것으로, 컴퓨터가 하이버네이션이나 sleeve중에는 PC 카드를 정지 하게 해, 컴퓨터가 하이버네이션이나 sleeve로부터 복귀하면(자) 이전 상태에 재차 초기화할 수가 있게 됩니다.

제어 오브젝트에는 속성이 1 개 있습니다. 그것은 상태 속성입니다. 클라이언트를 종료시키려면 , 클라이언트 상태 속성을 2 에 설정합니다. 클라이언트는 자동적으로 DHCPRELEASE 를 실시하겠지요. 클라이언트를 일시정지시키려면 , 클라이언트 상태 속성을 3 으로 설정합니다. 클라이언트를 복귀시키려면 , 클라이언트의 상태 속성을 4 로 설정합니다.

관련 파일
/sbin/dhclient-script, /etc/dhclient.conf, /var/db/dhclient.leases, /var/run/dhclient.pid, /var/db/dhclient.leases~

관련 항목
dhclient.conf(5), dhclient.leases(5), dhclient-script(8)

저자
dhclient(8) (은)는 Ted Lemon 가 Vixie Enterprises 와 협력해 Internet Software Consortium 를 위해서(때문에) 썼습니다. Internet Software Consortium 에 대해보다 자세하게는, http://www.isc.org (을)를 봐 주세요. Vixie Enterprises 에 대해보다 자세하게는, http://www.vix.com (을)를 봐 주세요.

본클라이언트는, Elliot Poger 가 Stanford 대학의 MosquitoNet 프로젝트에 참가하고 있는 동안에, Linux 에서의 이용에 즈음해 큰폭으로 수정, 개량을 실시했습니다.

현재의 버젼은, Elliot 에 의한 Linux 에서의 개량에 지는 곳(중)이 큽니다만, Internet Software Consortium 의 DHCP 서버가 사용하는 것과 같다 네트워킹 체제를 이용하도록(듯이), Ted Lemon 가 대폭적인 재편성이나 부분적인 개서를 실시했습니다. 시스템 특유의 설정 코드의 대부분은 셸 스크립트에 옮겨졌으므로, 보다 많은 operating system의 서포트가 더해지는 것에 따라, 시스템 특유의 설정 코드를 그 operating system에 이식하거나 관리하거나 할 필요는 없어지겠지요. 대신에, 셸 스크립트가 환경에 맞은 툴을 호출해 그 목적을 이루어 줍니다.