Linux mini-HOWTO

         

Альтернативный DHCP-клиент (ISC dhclient)


Если вам не удалось добиться успеха с dhcpcd, вы можете попробовать ISC dhclient. Он идет вместе с дистрибутивом ISC DHCP, который включает и DHCP-клиент и DHCP-сервер. Инструкции, как собрать дистрибутив ISC DHCP, могут быть найдены здесь. Когда закончите, вернитесь в этот раздел для настройки клиента.

Следующую информацию предоставил Ted Lemon mellon@isc.org>>, один из авторов dhclient.

В текущей версии DHCP-клиента вам на самом деле не нужен файл dhclient.conf. Все, что вам нужно сделать, это просто запустить dhclient: /sbin/dhclient.

При этом настроятся все возможные интерфейсы. Если этого не произошло или вы хотите настроить только один интерфейс, создайте /etc/dhclient.conf с примерно такой конфигурацией:

interface "eth0" { send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx; send dhcp-lease-time 86400; }

Здесь определяется интерфейс eth0 (если вам нужен другой, то соответственно измените eth0). Замените xx:xx:xx:xx:xx на Ethernet-адрес карты. Это делает dhclient скорее похожим на клиент Win95.



Debian


Готовый deb-пакет DHCPcd находится по адресу:

http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/

Или, можете следовать инструкциям из Slackware.

Чтобы поставить пакет наберите dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb.

Оказывается, что больше ничего настраивать не надо, т.к.:



DHCP mini-HOWTO


Vladimir Vuksan
vuksan@veus.hr
Перевод: Александр Ермолаев, ASPLinux

В этом документе даются ответы на вопросы возникающие при установке DHCP-сервера и DHCP-клиента на Linux.



DHCP-сервер под UNIX


Существует несколько различных DHCP-серверов под Unix и коммерческих, и бесплатных. Наиболее популярным считается Paul Vixie/ISC DHCPd. Последнюю версию 2.0 (для большинства пользователей) или бета-версию 3.0 вы можете взять по адресу

ftp://ftp.isc.org/isc/dhcp/

Некоторые дистрибутивы предоставляют готовый пакет dhcpd, так что вы можете пропустить этот раздел, если он у вас есть.

Скачайте и разархивируйте его. После этого перейдите в каталог с исходными текстами и наберите: ./configure

После того, как закончится настройка на вашу систему, наберите: make и make install.



Другие интересные документы




В апрельском Linux Magazine есть хорошая статья, которая называется Network Nirvana: How to make Network Configuration as easy as DHCP, которая описывает установку DHCP.



Где найти клиент (dhcpcd)


Вы можете скачать DHCP-клиент, предназначенный для вашего дистрибутива. Если вы хотите собрать его из исходных текстов, то вам нужен пакет dhcpcd 1.3.18. Его разработал Sergei Viznyuk sergei@phystech.com>, и в данный момент он идет в готовом виде в большинстве из дистрибутивов.

Исходные тексты dhcpcd могут быть скачаны с

ftp://ftp.phystech.com/pub/ (Основной сайт)

http://www.cps.msu.edu/~dunham/out/

Затем следуйте нижеуказанным инструкциям.



LinuxPPC и MkLinux


Следующий раздел написан R. Shapiro

По данным реализации "1999" (R5), Linuxppc теперь почти полностью совместим с Redhat, только с одним замечанием (см. ниже). В общих чертах, инструкции выглядят точно также, как и в RedHat 6.x и Mandrake 6.x.

Исключение составляет тот факт, что RedHat 6 использует 'pump' в качестве клиента, а 'pump' не очень хорошо работает под Linuxppc.

Чтобы обойти это, вы должны поставить последнюю версию dhcpcd (Sergei Viznyuk) и отредактировать /sbin/ifup

на использование dhcpd вместо pump.

Измените



Настройка DHCP-сервера


После окончания инсталяции наберите ifconfig -a. Вы увидите примерно следующее:



Опции DHCPd


Теперь вам надо настроить DHCPd. Чтобы это сделать, вам нужно создать или отредактировать файл /etc/dhcpd.conf. Существует также графический интерфейс kcmdhcpd для dhcpd под KDE ( http://www.kde.org/ ), который аналогичен конфигуратору DHCP под Windows NT. Когда выйдет KDE 2.0, оно должно идти вместе с kcmdhcpd, или вы можете качать его непосредственно с:

ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/

Если вы хотите настроить его вручную, следуйте нижеуказанным инструкциям.

В большинстве случаев вам нужно назначать случайные IP адреса. Это может быть сделано при помощи следующих установок:



Основные проблемы и их решения


Если вы выполнили вышеуказанные шаги, а доступ к сети так и не заработал, то далее приводятся различные объяснения этому:


У вас не настроена сетевая карта

Во время процесса загрузки Linux пытается определить тип вашей карты и выводит что-то вроде этого:



Протокол DHCP


DHCP - это Dynamic Host Configuration Protocol (протокол динамической конфигурации машин). Он используется для настройки часто изменяемых сетевых параметров машин (клиентов) с помощью сервера. DHCP полностью совместим с BOOTP. Для дополнительной информации см. RFC 2131 (RFC 1541) и др. (см. раздел "Ресурсы Internet" в конце этого документа). Можете также почитать http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html.

Этот мини-HOWTO описывает использование как DHCP-СЕРВЕРА, так и DHCP-КЛИЕНТА. Большинству людей нужен DHCP-клиент, который необходим на рабочих станциях для получения информации c сервера. DHCP-сервер необходим администраторам сети для передачи информации DHCP-клиентам. Так что, если вы обычный пользователь, то вам нужен DHCP-клиент.



в стандартный дистрибутив RedHat как


DHCPcd включается в стандартный дистрибутив RedHat как RPM-пакет, так что вы можете найти в вашем дистрибутиве в каталоге RPMS или по адресу:

ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm

Установите его командой - rpm -i dhcpcd-0.6-2.i386.rpm.

Кроме того, вы можете сами скомпилировать его, следуя шагам, описанным в Slackware.

Следующую информацию мне предоставил nothing@cc.gatech.edu>.



Из файла /etc/resolv.conf я убрал мой статический адрес и имя машины. Однако, оставил строку с "search" и обе строки с "nameserver" (по какой то причине dhcpcd не создает файл /etc/dhcpc/resolv.conf, так что я использую постоянный файл /etc/resolv.conf).

В /etc/sysconfig/network я удалил настройку HOSTNAME и GATEWAY, а другие оставил как есть (NETWORKING, DOMAINNAME, GATEWAYDEV).

В /etc/sysconfig/network-scripts/ifcfg-eth0 я убрал IPADDR, NETMASK, NETWORK, и BROADCAST, а DEVICE и ONBOOT оставил как есть. Строку с BOOTPROTO изменил на BOOTPROTO=dhcp.

Сохранил файл. И перезапустил компьютер.

Когда закончите, переходите к заключительному шагу.


RedHat 5.x


Под RedHat 5.0+ настроить DHCPcd очень просто. Все что вам нужно, это запустить Панель Управления, набрав control-panel.

Выберите "Network Configuration" (Конфигурация Сети)

Нажмите на "Interfaces" (Интерфейсы)

Нажмите "Add" (Добавить)

Выберите Ethernet

В "Edit Ethernet/Bus Interface" выберите "Activate interface at boot time" (Активировать интерфейс во время загрузки) и выберите "DHCP" в качестве "Interface configuration protocol" (Протокол конфигурации интерфейса).

When you are finished go the last step.



RedHat 6.x и Mandrake 6.x


Под RedHat 6.0+ настроить DHCPcd очень просто. Все что вам нужно, это запустить Панель Управления, набрав control-panel.

Выберите "Network Configuration" (Конфигурация Сети)

Нажмите на "Interfaces" (Интерфейсы)

Нажмите "Add" (Добавить)

Выберите Ethernet

В "Edit Ethernet/Bus Interface" выберите "Activate interface at boot time" (Активировать интерфейс во время загрузки) и выберите "DHCP" в качестве "Interface configuration protocol" (Протокол конфигурации интерфейса).

Заметим, что в RedHat 6.x вместо dhcpcd по умолчанию устанавливается DHCP-клиент pump. CD-ROM включает RPM-пакет dhcpcd, так что если вам не удалось настроить pump, вы можете попробовать установить dhcpcd (напр. через rpm -i dhcpcd-1.3.17pl2-1.i386.rpm) и внести некоторые изменения.

Alexander Stevenson alexander.stevenson@home.com>

дополнительно отметил:

У меня не получилось с DHCPcd. То, что в конце концов заработало, был "pump", который поставляется вместе с Linux Mandrake 6.0 (я думаю, что с RedHat тоже). Я использовал команду:

pump -i eth0 -h hostname

Где "hostname" не имеет значения, однако без него сервер не отвечает.

Затем я соответственно изменил строчку в скрипте /sbin/ifup, т.к. она не содержала опцию -h и тоже не работала.

Обычно, если вы используете linuxconf, и настраиваете адаптер на "DHCP", это тоже не работает. Попробуйте добавить -h hostname к строке с pump в скрипте /sbin/ifup. Теперь мой скрипт содержит:



Slackware


Вы можете скачать последнюю версию DHCPcd с любого сервера Metalab:

ftp://metalab.unc.edu/pub/Linux/system/network/daemons

ftp://ftp.phystech.com/pub/ (Основной сайт)

Скачайте последнюю версию dhcpcd.tar.gz.

Разархивируйте ее

tar -zxvf dhcpcd-1.3.18pl1.tar.gz

войдите в каталог и соберите dhcpcd

cd dhcpcd-1.3.18pl1

make

Инсталлируйте (вы должны выполнить следующую команду, будучи root-ом)

make install

Она создаст каталог /etc/dhcpc, в котором DHCPcd хранит информацию, а файл dhcpcd будет скопирован в /usr/sbin.

Если вы хотите инициализировать систему, используя DHCP во время загрузки, наберите:

cd /etc/rc.d

mv rc.inet1 rc.inet1.OLD

Это переименует старый файл инициализации сети в rc.inet1.OLD. Вам нужно создать новый скрипт rc.inet1. Следующий код - то, что вам нужно:



Установка клиента


В настоящий момент существует три различных DHCP-клиента под Linux: dhcpcd, pump и dhclient. Этот мини-HOWTO описывает работу с dhcpcd.



Заключительный шаг


После того как вы перезапустили машину, вам нужно настроить сетевой интерфейс. Наберите: ifconfig.

Вы получите приблизительно следующее:



можно пропустить, но он может


Следующий шаг(и) можно пропустить, но он может понадобиться только некоторым:

Если вы хотите иметь временный доступ к сети, запустите dhcpcd из командной строки (для этого нужно быть root): /usr/sbin/dhcpcd.
Для отключения от сети, наберите /usr/sbin/dhcpcd -k.


Запуск сервера


Перед запуском сервера вам нужно сделать только одну вещь. В большинстве случаев при инсталляции не создается файл dhcpd.leases. Он нужен DHCPd для хранения информации о текущих выделенных адресах и представляет из себя обычный текстовый файл, который можно посмотреть во время работы DHCPd. Чтобы создать его наберите: