dhcp.client

Утилита конфигурирования хоста TCP/IP

Примечание. Эту утилиту может выполнить только пользователь root.

Синтаксис:

dhcp.client [-abdmnr] [-h имя_хоста] [-I число]

[-i интерфейс]

[-P порт] [-p порт] [-s хост]

[-T секуны] [-t число] [-u] &

Поддерживаемые платформы:

Neutrino

Опции:

-a

Применить назначенный IP-адрес как псевдоним вместо перезаписи текущей конфигурации.

-b

Запросить у DHCP-сервера передачу ответных пакетов только в адрес соответствующего клиента (по умолчанию запрашивается широковещательная передача).

-d

Записывать отладочную информацию в системный журнал.

-h имя_хоста

Имя хоста клиента (по умолчанию подставляется сервером (при условии наличия имени хоста)).

-I число

Число попыток опроса при ожидании доступности интерфейса (по умолчанию равно 5). Опрос выполняется каждые 2 секунды.

Например, утилита dhcp.client при указании этой опции будет ожидать доступности того интерфейса, который она должна использовать. Этот вариант оптимален в случае, если в среде загрузки нет точной информации о времени запуска драйвера и его регистрации в стеке TCP/IP. Если интерфейс не найден, работа утилиты завершается со статусом завершения 2.

-i интерфейс

Имя конфигурируемого интерфейса (например, en0, en1). Значение по умолчанию – первый из обнаруженных интерфейсов.

-m

Записывать данные сервера доменов и сервера доменных имен вместо файла /etc/resolv.conf (по умолчанию) в значения _CS_DOMAIN и _CS_RESOLVE памяти переменных конфигурации (см. раздел confstr() в руководстве по библиотекам Neutrino Library Reference):

_CS_DOMAIN

Имя домена.

_CS_RESOLVE


Сервер имен.

Если указаны одновременно ключи -m и -n, то добавляется только домен, серверы имен при этом не добавляются.

-n

Не добавлять серверы имен, сообщенные службой DHCP, в файл /etc/resolv.conf или значение _CS_RESOLVE. Если при этом будет указан ключ -m, то добавляется только домен, серверы имен при этом не добавляются. Если ключ -m не указан, домен и серверы имен не добавляются.

-P порт

Порт сервера DHCP (по умолчанию порт согласно значению dhcp или порт 67).

-p порт

Порт клиента DHCP (по умолчанию порт согласно значению dhcpc или порт 68).

-s хост

Принимать пакеты только от этого сервера; ответы от других серверов при этом игнорируются.

-T секунды

Время в секундах, в течение которого следует ожидать завершения согласования клиента с сервером (ACK-сообщение от сервера). Этот ключ применяется при каждом возврате клиента в состояние инициализации (DISCOVER). В случае таймаута работа утилиты dhcp.client прекращается со статусом завершения 3.

-t число

Попытка установить соединение с сервером определенное число раз перед отменой и завершением работы (по умолчанию – не ограничено, т.е. попытки не прекращаются). Длительность каждой попытки равна 1 минуте.

Эта опция обычно используется в сочетании с опцией -u, т.е. утилита dhcp.client завершает работу по таймауту после определенного количества попыток.

-u

Не переводить утилиту dhcp.client в фоновый режим до успешного завершения конфигурирования интерфейса.

Эта опция полезна для запуска dhcp.client. Процесс не переводится в фоновый режим до тех пор, пока не будет установлена связь с сервером и применена конфигурация TCP/IP. Если сервер не отвечает, работа завершается со статусом завершения 3.

Описание:

Утилита dhcp.client получает параметры конфигурации TCP/IP от сервера DHCP (Dynamic Host Configuration Protocol, протокол динамического конфигурирования хоста) в динамическом режиме и выполняет автоматическое конфигурирование хоста TCP/IP. Благодаря этому не требуется указывать IP-адрес и другие параметры конфигурации, а также запускать утилиты конфигурирования.

Примечание. Для этой утилиты в правах доступа пользователя необходимо установить бит setuid ("set user ID", установить идентификатор пользователя). В случае использования утилит mkefs, mketfs или mkifs на хосте Windows для включения этой утилиты в образ необходимо задать атрибут perms для явного определения полномочий, а также атрибуты uid и gid для корректной настройки принадлежности.

При прекращении работы утилита dhcp.client возвращает серверу адрес DHCP, предоставленный этим сервером. Если работа клиента прекращается по сигналу SIGPWR, то возврат адреса не производится; аренда этого адреса завершается по таймауту или продолжается после перезапуска клиента (в зависимости от политик сервера).

Примечание. Перед запуском утилиты dhcp.client необходимо запустить процесс io-pkt*.

Минимальный набор команд для выполнения в QNX Neutrino:

io-pkt-v4 -dne2000 -ptcpip

if_up -p enx

dhcp.client &

if_up enx

или:

io-pkt-v4 -dne2000 -ptcpip

dhcp.client -Ix -u


Если утилита dhcp.client должна назначать IP-адрес в качестве псевдонима (а не заменять текущий назначенный IP-адрес), необходимо указать опцию -a. Эта опция удобна для присвоения одному интерфейсу нескольких IP-адресов. В частности, опцию -a следует указать в том случае, если на одном и том же интерфейсе необходимо использовать утилиту dhcp.client и утилиту AutoIP (lsm-autoip.so).

По умолчанию утилита dhcp.client выполняет поиск не сконфигурированного интерфейса для применения соответствующей службы. В случае применения AutoIP все интерфейсы будут заведомо сконфигурированными, поэтому работа утилиты dhcp.client завершится. В случае, если утилита dhcp.client применяется к интерфейсу, уже имеющему IP-адрес, следует указать опцию -i (в сочетании с опцией -a); тогда этому интерфейсу одновременно будут присвоены IP-адреса DHCP и AutoIP.

Данная утилита получает от сервера DHCP и применяет следующую информацию:

* Широковещательный адрес (для малого стека не устанавливается).

* Домен

* Шлюз (маршрут по умолчанию)

* Имя хоста

* IP-адрес

* Сервер доменных имен

* Сетевая маска

/etc/dhcp/dhcp-up

Если этот файл существует, он запускается после установления соединения с сервером DHCP и применения вышеописанных конфигурационных опций. Этот файл может представлять собой двоичную программу или сценарий, и должен быть исполняемым (см. chmod). Если файл является сценарием, то в его первой строке должен быть указан интерпретатор команд. Пример.

#!/bin/sh

Переменные среды, содержащие полученную от сервера конфигурацию, передаются этому файлу. При запуске этого файла им наследуется не вся среда. Например, переменная среды PATH оказывается недоступной. Для определения доступных переменных можно создать сценарий dhcp-up, например, следующего вида:

#!/bin/sh

env > /tmp/config

Определения среды:

INTERFACE

Сконфигурированный интерфейс (например, INTERFACE=en0).

IPADDRESS

IP-адрес клиента, полученный от сервера (например, IPADDRESS=10.0.0.1).

NETMASK

Сетевая маска клиента, полученная от сервера (например, NETMASK=255.0.0.0).

HOSTNAME

Имя хоста клиента (например, HOSTNAME=node1).

BROADCAST

Широковещательный адрес клиента, полученный от сервера (например, BROADCAST=10.255.255.255).

GATEWAY

Шлюз, который должен использовать клиент (например, GATEWAY=10.0.0.2).

SERVER

Идентификатор (IP-адрес) сервера DHCP (например, SERVER=10.0.0.3).

NAMESERVER1,

NAMESERVER2

Сервер имен, который должен использовать клиент (например, NAMESERVER1=10.0.0.4).

LEASEOBTAINED

Время начала аренды (например, LEASEOBTAINED=Mon Oct 30 16:46:10 2000).

LEASEEXPIRES

Время окончания аренды (например, LEASEEXPIRES=Mon Oct 31 16:46:10 2000).

RELAYAGENT

Агент ретрансляции DHCP обеспечивает пересылку пакетов между утилитой dhcp.client и сервером DHCP, если они находятся в разных сетях. Переменная представляет собой IP-адрес агента ретрансляции, если он существует.

SERVERNAME

Имя хоста сервера DHCP.

DOMAIN

Домен, предоставленный сервером DHCP, для добавления в файл /etc/resolv.conf или в CS_DOMAIN (конфигурационная строка).

SIADDR

Следующий сервер для использования при начальной настройке. Если было указано имя файла (FILENAME), это значение будет получено от сервера.

Ниже перечислены опции, которые доступны для использования, но не применяются процессом dhcp.client:

FILENAME


Имя файла в ответе сервера (например, FILENAME=/bootimg).

Любые другие опции определяются как переменные среды OPTIONx, где x – номер параметра. Если опция известна, утилита dhcp.client пытается привести ее в читабельный вид. Если опция неизвестна, утилита dhcp.client отображает ее по октетам в шестнадцатеричном виде (например, OPTION200= F1 AA 56 42).

В настоящее время утилите dhcp.client известны опции от 1 до 61.

/etc/dhcp/dhcp-options

В этом файле определяются опции DHCP, которые требуется получать от сервера DHCP. Этот файл необходим только в том случае, если в файл /etc/dhcp/dhcp-up добавляется пользовательская опция DHCP. Если в сценарий dhcp-up добавляется код обработки какой-либо опции, этот параметр необходимо также добавить в файл /etc/dhcp/dhcp-options. Опции, перечисленные в файле dhcp-options, передаются серверу в дополнение к следующим:

* 1 – маска подсети

* 6 – серверы доменных имен

* 12 – имя хоста

* 15 – имя домена

* 3 – шлюз

* 28 – широковещательный адрес

которые включают в себя сам процесс dhcp.client.

Пример файла dhcp-options:

200

150

#Комментарий

90

Каждая опция указывается в отдельной строке в порядке приоритета. Комментарии также должны располагаться в отдельных строках; максимальная длина комментария равна 80 символам.

Файлы:

Для работы утилиты dhcp.client требуется разделяемая библиотека libsocket.so.

Статус завершения:

0

Успешно.

1

Возникла ошибка.

2

Интерфейс не найден.

3

Сервер не отвечает.

Ошибки:

Ошибки, возникающие в процессе конфигурирования, сохраняются в системном журнале.