Альтернативный 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 вы можете взять по адресу
Некоторые дистрибутивы предоставляют готовый пакет 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. Чтобы создать его наберите: