- Настройка DHCP-сервера в Linux
- Как работает DHCP?
- Шаг 1: Установка DHCP-сервера
- Шаг 2: Настройка DHCP-сервера
- Шаг 3: Настройка статических IP-адресов для машин клиентов
- Шаг 4: Настройка машин клиентов
- Dhcp клиенты для linux
- Установка DHCP-сервера
- Простая конфигурация DHCP
- Время аренды по-умолчанию и максимальное время аренды в DHCP
- Определение DNS-сервера
- Назначим шлюз по-умолчанию
- Описание конфигурации для отдельных хостов на DHCP-сервере
- Как быстро настроить DHCP-клиент на Ubuntu
- Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)
- Настройка клиента
- Получение клиентского демона ( dhcpcd )
- Slackware
- RedHat 6.x и Mandrake 6.x
- RedHat 5.x
- RedHat 4.x и Caldera OpenLinux 1.1/1.2
- Debian
- LinuxPPC и MkLinux
- Пытаемся все совместить
- Различные заметки
- Поиск неисправностей
- Не правильно настроена Ваша сетевая карта
- Ваш DHCP сервер поддерживает RFC 1541/Мой DHCP сервер ‐ Windows NT
- В процессе загрузки я получаю сообщение Using DHCP for eth0 . failed , но моя система работает нормально
- Моя сеть работает несколько минут, а затем прекращает отвечать
- Моя сетевая ката распознается в процессе загрузки, но в моих регистрационных записях я получаю сообщение NO DHCPOFFER . Моя сетевая карта — PCMCIA
- Мой DHCP клиент посылает широковещательные запросы, но никто не отвечает (Предоставлено Peter Amstutz)
- Я следовал всем шагам, но моя машина все еще не способна соединиться
- У меня есть служба MediaOne Express и я все еще не могу соединиться
- Альтернативный DHCP клиент (ISC dhclient)
Настройка DHCP-сервера в Linux
Протокол динамической конфигурации узлов (Dynamic Host Configuration Protocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.
IP-адрес, выделенный DHCP-клиенту DHCP-сервером, находится в «аренде», время аренды может отличаться в зависимости от того, сколько времени клиенту требуется соединение или конфигурация DHCP.
Как работает DHCP?
- После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
- Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
- Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
- Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.
В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.
Шаг 1: Установка DHCP-сервера
1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:
2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.
Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:
Для этого сетевого интерфейса нужно настроить статический IP-адрес.
Шаг 2: Настройка DHCP-сервера
3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:
- параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
- декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.
4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:
Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.
Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.
5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.
Здесь мы использовали следующие параметры:
routers — IP-адрес маршрутизатора по умолчанию
subnet-mask — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)
Шаг 3: Настройка статических IP-адресов для машин клиентов
6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:
7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:
8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):
Шаг 4: Настройка машин клиентов
9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.
Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):
Укажите следующие опции:
Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:
Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.
Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Dhcp клиенты для linux
Что такое DHCP? Любой, кто имеет базовые знания о компьютерных сетях, знает, что для того, чтобы два хоста могли общаться в одной сети с использованием модели TCP/IP, оба хоста должны иметь уникальный IP-адрес. Существует два способа получения IP-адреса любым хостом в вашей сети.
Один из способов — вручную настроить сетевой интерфейс (назначить IP-адрес вручную). Ручная конфигурация сети называется статической конфигурацией, это означает, что хосты не изменяют свой IP-адрес, если он не был изменен вручную пользователем или системным администратором. Если ваша корпоративная сеть включает более 1000 хостов, то настройка каждого хоста со статическим IP-адресом становится мягко говоря утомительной и, что более важно, крайне неэффективной.
Другой способ назначить вашим сетевым хостам правильный IP-адрес независимо от фактического размера сети — это назначить IP-адрес каждому хосту автоматически. Для выполнения автоматической настройки IP-адреса хоста и нужен DHCP (Dynamic Host Configuration Protocol).
DHCP позволяет клиенту, то есть вашему сетевому хосту, арендовать параметры конфигурации сети, такие как:
— IP-адреса и сетевые маски
— Серверы доменных имен (DNS )
— Шлюз по-умолчанию
— WINS-сервер
— Узлы системного журнала
— Прокси сервера
— сервер NTP
— X серверы шрифтов
— Узлы системного журнала
Каждый сетевой хост, настроенный для получения IP-адреса динамически через DHCP, при загрузке отправит запрос DHCP по сети (по определению это широковещательная передача), чтобы узнать, есть ли где-то в сети DHCP-сервер и, следовательно, запросить конфигурацию сети. Затем DHCP-клиент обязан поддерживать связь с DHCP-сервером и регулярно обновлять свой IP-адрес в соответствии с истечением срока аренды IP-адреса. В случае, если DHCP-клиент не может обновить свой IP-адрес (отключение, хост выключен и т. д. ) его IP-адрес истекает, и DHCP-сервер может свободно выдать этот IP-адрес другому DHCP-клиенту.
DHCP-сервер ведет запись всех арендованных IP-адресов и сохраняет их в файле под названием dhcpd.leases в каталоге /var/lib/dhcp (расположение этого файла может отличаться в зависимости от используемого дистрибутива Linux ). Наличие такого файла позволяет DHCP-серверу отслеживать все арендованные IP-адреса даже после перезагрузки или сбоя питания.
Вот некоторые преимущества использования DHCP-сервера в сети:
— Нет конфликтов IP-адресов. DHCP может гарантировать, что все хосты в сети имеют уникальный IP-адрес. DHCP-сервер хранит запись всех назначенных IP-адресов и перекрестную ссылку на них с MAC-адресами хоста.
— Основываясь на MAC-адресе, DHCP позволяет настроить фиксированный параметр для конкретного хоста
— Минимальная конфигурация локальной клиентской сети, следовательно, повышенная эффективность
Установка DHCP-сервера
Стандартный DHCP-сервер доступен для Linux дистрибутивов от ISC (Internet System Consortium).
Используйте следующую команду для установки DHCP-сервера, в зависимости от вашего дистрибутива Linux.
Debian и Ubuntu
# apt-get install isc-dhcp-server
Redhat и Fedora
# yum install dhcp
Простая конфигурация DHCP
По-умолчанию конфигурация в файле dhcpd.conf не содержит никаких объявленных сетей, а так же в файле /etc/default/isc-dhcp-server нет указанных интерфейсов, по которым будет происходит слушание и раздача параметров. Поэтому при запуске службы вы получите ошибку.
Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. . failed!
Examining log files such as /var/log/syslog reveals more details:
No subnet declaration for eth0 (some IP address).
Your server may be connected to multiple network subnets. To start DHCP server, at least one subnet must be defined within the DHCP configuration file /etc/dhcp/dhcpd.conf.
NOTE: if your server has access to more than one subnet, DHCP requires all subnets to be defined even though there isn’t immediate intention to enable DHCP service on that subnet.
Поэтому для запуска нам потребуется записать в конфигурационный файл простейшее описание сети(ей):
А так же в файле /etc/default/isc-dhcp-server укажем наш интерфейс (или несколько):
Этот файл конфигурации указывает DHCP-серверу прослушивать запросы DHCP-клиента в подсети 10.1.1.0 с маской сети 255.255.255.0 на интерфейсе eth0. Кроме того, он назначит IP адреса в диапазоне 10.1.1.3-10.1.1.254. Он также определяет пустое описание для подсети 192.168.0.0.
Измените приведенный выше код с вашей подсетью и вставьте его в файл /etc/dhcp/dhcpd.conf. После перезагрузите DHCP-сервер с помощью команды:
# service isc-dhcp-server restart
Время аренды по-умолчанию и максимальное время аренды в DHCP
На этом этапе мы можем добавить несколько дополнительных настроек к нашей конфигурации DHCP, а именно срок действия аренды по-умолчанию и максимальное время аренды.
default-lease-time — это значение в секундах, в котором срок действия арендованного IP-адреса будет установлен в том случае, если DHCP-клиент не запрашивает другого конкретного срока действия аренды
max-lease-time — это значение в секундах, которое определяет максимальное время истечения срока действия для IP-адреса, арендуемого DHCP-сервером
Определение DNS-сервера
Другим параметром конфигурации, который может быть задан DHCP-сервером своему клиенту, является определение DNS-сервера. Если вы хотите, чтобы ваши клиенты использовали DNS-сервер с IP-адресом 8.8.8.8 и 10.1.1.1, вы можете сделать это, включив опцию domain-name-servers в конфигурационный файл DHCP.
Назначим шлюз по-умолчанию
DHCP-сервер также позволяет использовать шлюз по-умолчанию для клиента. Например установим шлюз по-умолчанию 10.1.1.1 для клиентов сети 10.1.1.0, добавим строку option routers 10.1.1.1 в dhcpd.conf в соотвествующие секции:
Описание конфигурации для отдельных хостов на DHCP-сервере
Возможно, потребуется установить статический IP-адрес для конкретного хоста в сети, такого как принтер, веб-сервер и т. д. В этом случае возможно изменить конфигурацию DHCP-сервера для аренды выбранного IP-адреса конкретному хосту, определенному его MAC-адресом.
Приведенный выше файл конфигурации DHCP будет постоянно присваивать IP-адрес 10.1.1.100 хосту printer с MAC-адресом 00:16:d3:b7:8f:86 и IP-адрес 10.1.1.200 хосту web-server с MAC-адресом 00:17:a4:c2:44:22.
Как быстро настроить DHCP-клиент на Ubuntu
Чтобы настроить ваш клиент на использование DHCP через сетевой интерфейс eth0 на Ubuntu или Debian подобных, пропишите следующие строки в файле /etc/network/interfaces:
auto eth0
iface eth0 inet dhcp
Конфигурация DHCP-relay (передача полномочий другому DHCP-серверу)
Если ваш DHCP-сервер не имеет доступа к какой-то конкретной подсети, это не значит, что он не может предоставлять там свои услуги. Для выполнения этой работы агент DHCP-relay должен быть настроен в удаленной подсети, которая пересылает все запросы на указанный DHCP-сервер и удаленную подсеть. Сначала установите DHCP-relay:
# apt-get install isc-dhcp-relay
Затем создайте конфигурационный файл /etc/default/isc-dhcp-relay с такими двумя строками:
Приведенный выше конфигурационный файл даст указание агенту DHCP-relay agent прослушивать на интерфейсе eth0 запросы DHCP-клиента и пересылать их на DHCP-сервер по IP-адресу 192.168.5.5.
Источник
Настройка клиента
На данный момент есть три различных клиентских DHCP программы для Linux, dhcpcd , pump и dhclient . Этот mini-HOWTO рассматривает главным образом dhcpcd .
Получение клиентского демона ( dhcpcd )
В зависимости от вашего дистрибутива, возможно, вам придется загрузить клиентский DHCP демон. Если вы хотите скомпилировать его из исходных кодов, необходимый вам пакет называется dhcpcd , его текущая версия 1.3.18. Он поддерживается Sergei Viznyuk и, на сегодняшний день, поставляется в большинстве дистрибутивов в виде бинарного пакета.
Исходный код dhcpcd может быть загружен со следующих мест:
Затем следуйте ниже приведенным инструкциям. Они должны быть таковы.
Slackware
Вы можете загрузить последнюю версию DHCPcd с любого зеркала Metalab или отсюда:
Загрузите последнюю версию dhcpcd.tar.gz .
- Распакуйте его
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
- Войдите в каталог и выполните make dhcpcd
cd dhcpcd-1.3.18pl1
make install
Будет создан каталог /etc/dhcpc , где DHCPcd будет размещать DHCP информацию, а также будет скопирован в /usr/sbin файл dhcpcd .
Для инициализации системы во время загрузки с помощью DHCP наберите:
cd /etc/rc.d
mv rc.inet1 rc.inet1.OLD
Старый скрипт инициализации сети будет перемещен в rc.inet1.OLD . Вам следует создать новый скрипт rc.inet1 , в котором следует поместить следующий код:
#!/bin/sh
#
# rc.inet1 Этот shell скрипт загружает базовую INET систему.
HOSTNAME=`cat /etc/HOSTNAME` #Возможно это не требуется, но я это оставлю
# ак или иначе
# Подключаем устройство loopback.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# ЕСЛИ У ВАС ЕСТЬ ETHERNET СОЕДИНЕНИЕ, для настройки интерфейса eth0
# используйте ниже приведенные строки. Если вы используете только
# loopback или SLIP, не включайте оставшиеся далее строки в этот файл.
Сохраните его и перезагрузите компьютер.
Когда закончите, переходите к следующему шагу.
RedHat 6.x и Mandrake 6.x
Настройка DHCPcd под RedHat 6.0+ достаточно проста. Все что от вас требуется — запустить панель управления, набрав control-panel .
- Выбрать Network Configuration
- Щелкнуть на Interfaces
- Щелкнуть на Add
- Выбрать Ethernet
- В Edit Ethernet/Bus Interface выбрать Activate interface at boot time, а также выбрать DHCP как Interface configuration protocol
Заметьте, что в RedHat 6.x, вместо вышеупомянутого dhcpcd , Redhat по умолчанию включила DHCP клиент называемый pump . Установочный CD-ROM также содержит и dhcpcd RPM, так что если вы не удовлетворены pump , попробуйте вместо него dhcpcd . После установки dhcpcd (т.е. rpm -i dhcpcd-1.3.17pl2-1.i386.rpm ) вам следует сделать несколько изменений.
Дополнительные заметки от Alexander Stevenson :
Я не доволен DHCPcd. Что привело меня к работе с pump , который поставляется с Linux Mandrake 6.0 (и, я полагаю, он также включен в RedHat). Я использую команду:
pump -i eth0 -h hostname
Не имеет значение, какой был указан hostname , но без него сервер не отвечал бы.
Затем, для отражения изменений я меняю строку в моем скрипте /sbin/ifup ; версия по умолчанию не содержит ключ -h , и поэтому она у меня не работала.
По существу, если вы используете linuxconf , и после настройки адаптера на использование DHCP он все еще не работает, попробуйте добавить -h hostname в строку с pump в скрипте /sbin/ifup . Теперь мой скрипт выглядит так:
.
if [ -n «$PUMP» ]; then
echo -n «Determining IP information for $DEVICE. »
if /sbin/pump -i $DEVICE -h hostname; then
echo » done.»
else
echo » failed.»
exit 1
fi
else .
Другой, более элегантный путь добавления поля hostname предоставлен Aad van der Klaauw:
Сейчас дома я настраиваю шлюзовую систему, требуется установить MAC адрес и использовать -h hostname . Поэтому я решил не изменять скрипт, а использовать конфигурационный файл. В моем /etc/sysconfig/network-scripts/ifcfg-eth0 я добавил следующее:
DEVICE=»eth0″
MACADDR=»00:11:22:33:44:55″
DHCP_HOSTNAME=»trigger_for_terayon»
Эти строки пережили обновления системы, и, по моему мнению, это более правильный способ.
Перезагрузите вашу машину или наберите в командной строке /sbin/ifup eth0 .
RedHat 5.x
Настройка DHCPcd под RedHat 5.0+ достаточно проста. Все что вам нужно — запустить панель управления, набрав control-panel :
- Выбрать Network Configuration
- Щелкнуть на Interfaces
- Щелкнуть на Add
- Выбрать Ethernet
- В Edit Ethernet/Bus Interface выбрать Activate interface at boot time, а также выбрать DHCP как Interface configuration protocol
Когда закончите, переходите к следующему шагу.
RedHat 4.x и Caldera OpenLinux 1.1/1.2
DHCPcd включен в дистрибутив RedHat в виде RPM, и вы можете его найти на CD-ROM в каталоге RPMS или скачать его с:
Установите его с помощью rpm -i dhcpcd-0.6-2.i386.rpm .
Или же вы можете скомпилировать вашу собственную версию следуя шагам описанным в Slackware.
Следующая информация поступила ко мне от nothing .
Я удалил мой статический ip и имя из /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 .
Сохраняем файл. Перезагружаем ваш компьютер.
Если вы закончили, переходите к следующему шагу.
Debian
Существует deb пакет DHCPcd (проверьте, чтобы он начинался с dhcpcd ) на:
Либо, следуйте инструкциям по установке Slackware.
Для распаковки deb пакета наберите dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb .
Кажется, что больше не требуется никаких настроек для DHCPcd, потому как:
Пакет dhcpcd устанавливает свой стартовый скрипт как обычно для debian пакетов в /etc/init.d/package_name , то есть /etc/init.d/dhcpcd , и создает ссылки на него из различных /etc/rc?.d/ каталогов.
—From: Heiko Schlittermann
Содержимое каталогов /etc/rc?.d/ в дальнейшем исполняется при загрузке.
Если вы не перегружались после установки, вы можете запустить демон вручную: /etc/init.d/dhcpcd start .
Когда вы закончили переходите к следующему шагу.
LinuxPPC и MkLinux
Следующая секция была написана R. Shapiro
С выпуска «1999» (R5) release, Linuxppc почти полностью совместим с Redhat 6, с одной оговоркой (смотрите ниже). В общем, инструкции точно такие же, как и для текущего выпуска RedHat 6.x и Mandrake 6.x.
Остается та проблема, что Redhat 6 по умолчанию использует pump клиент для dhcp , а pump не надежно работает на Linuxppc. Чтобы это обойти, вам следует установить последнюю версию dhcpcd от Sergei Viznyuk, и отредактировать /sbin/ifup для использования dhcpcd вместо pump .
Измените
if [ «$BOOTPROTO» = bootp -o «$BOOTPROTO» = dhcp ]; then
PUMP=true
fi
if [ -n «$PUMP» ]; then
на
if [ «$BOOTPROTO» = bootp ]; then
echo » done.»
else
echo » failed.»
exit 1
fi
elif [ «$BOOTPROTO» = dhcp ]; then
echo -n «Determining IP information for $DEVICE. »
if /sbin/dhcpcd -d $DEVICE ; then
if [ -f /etc/dhcpc/dhcpcd-$
/etc/dhcpc/dhcpcd-$
fi
и внесите соответствующие изменения для ifdown . Измените
if [ «$BOOTPROTO» = bootp -o «$BOOTPROTO» = dhcp ]; then
.
fi
на
if [ «$BOOTPROTO» = bootp ]; then
fi
if [ «$BOOTPROTO» = dhcp ]; then
if [ -f /var/run/dhcpcd-$
kill `cat /var/run/dhcpcd-$
rm -f /var/run/dhcpcd-$
fi
fi
Работающий ppc rpm для dhcpcd включен в Linuxppc 1999 cd; немного позже rpm стал доступен в каталоге contrib на ftp://ftp.linuxppc.org/. Исходный код, из которого скомпилирован пакет для Linuxppc 1999, доступен по ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz
Пытаемся все совместить
После перезагрузки вашей машины ваш сетевой интерфейс должен быть настроен. Наберите: ifconfig .
Вы должны получить нечто подобное:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:302 errors:0 dropped:0 overruns:0 frame:0
TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0
^^^^^^^^^^^^^^^^^^^^^^^
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
Interrupt:10 Base address:0x300
Если у вас разумные числа в поле inet addr , вы уже настроились. Если вы видите 0.0.0.0 — не отчаивайтесь, это временные настройки, перед тем как dhcpcd получит IP адрес. Если через несколько минут, вы все равно видите 0.0.0.0 , то загляните в Поиск неисправностей. DHCPcd — демон, и должен быть запущен все время, пока работает ваша машина. Каждые три часа он связывается с DHCP сервером и пытается продлить аренду используемого IP адреса. Он регистрирует все сообщения в syslog (в Slackware /var/adm/syslog , в RedHat/OpenLinux /var/log/syslog ).
Еще одно заключение. Вам следует указать ваш сервер имен. Есть два способа это сделать, вы можете либо попросить вашего провайдера дать вам адреса ваших серверов имен и затем поместить их в /etc/resolv.conf , либо DHCPcd будет получать список с DHCP сервера и будет создавать файл resolv.conf в /etc/dhcpc .
Я решаю использовать DHCPcd resolv.conf и выполняю следующее:
Сохраните ваш старый /etc/resolv.conf :
mv /etc/resolv.conf /etc/resolv.conf.OLD
Если каталог /etc/dhcpc не существует — создайте его:
mkdir /etc/dhcpc
Создайте ссылку с /etc/dhcpc/resolv.conf на /etc/resolv.conf :
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
Если это не помогает, попробуйте это (решение предоставлено с небольшими поправками от Henrik Stoerner):
Этот последний шаг я выполнил только из-за того, что мой dhcpcd не создает /etc/dhcpc/resolv.conf . Я сделал следующие изменения в /etc/sysconfig/network-scripts/ifup (это очень грубый взлом, но так у меня все работает):
elif [ «$BOOTPROTO» = dhcp -a «$ISALIAS» = no ]; then
echo -n «Using DHCP for $
/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done $
echo «echo \$$ > /var/run/dhcp-wait-$
if [ -f /var/run/dhcp-wait-$
^^^^
echo «failed.»
exit 1
Я изменил на:
elif [ «$BOOTPROTO» = dhcp -a «$ISALIAS» = no ]; then
echo -n «Using DHCP for $
/sbin/dhcpcd
echo «echo \$$ > /var/run/dhcp-wait-$
if [ ! -f /var/run/dhcp-wait-$
^^^^^^
echo «failed.»
exit 1
Обратите внимание на ! (восклицательный знак) в if [ ! -f /var/run/dhcp-wait-$
Теперь откиньтесь на спинку и наслаждайтесь :-).
Различные заметки
Следующие шаги не необходимы, но могут быть полезны некоторым людям:
- Если сеть вам нужна только время от времени, вы можете запускать dhcpcd из командной строки (для этого вам нужно быть root ) командой: /usr/sbin/dhcpcd .
- Когда вам нужно отключить сеть наберите /usr/sbin/dhcpcd -k .
Поиск неисправностей
Если вы следовали вышеприведенным шагам и не можете получить доступ к вашей сети, этому есть еще несколько возможных объяснений:
Не правильно настроена Ваша сетевая карта
В процессе загрузки ваш Linux будет определять вашу сетевую карту и должен сказать что-то подобное:
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Если подобное этому сообщение не появляется, ваша сетевая карта, возможно, не распознается Linux системой. Если у вас обобщенная сетевая карта (клон NE2000), вы должны получить диск с DOS утилитами, которыми вы сможете настроить вашу карту. Попробуйте поиграть с IRQ, пока Linux не распознает вашу карту (обычно подходят IRQ 9,10,12).
Ваш DHCP сервер поддерживает RFC 1541/Мой DHCP сервер ‐ Windows NT
Попробуйте запустить dhcpcd , набрав dhcpcd -r .
Для проверки настроек вашего сетевого интерфейса используйте ifconfig (подождите несколько секунд для завершения процесса настройки, сначала она выдаст Inet.addr=0.0.0.0 )
Если это решит вашу проблему, добавьте ключ -r в загрузочный скрипт, т.е: вместо /sbin/dhcpcd вы получите /sbin/dhcpcd -r .
Например, под RedHat отредактируйте /etc/sysconfig/network-scripts/ifup и вставьте следующее:
IFNAME=$[
«/sbin/dhcpcd -r -c /etc/»- etc etc.
В процессе загрузки я получаю сообщение Using DHCP for eth0 . failed , но моя система работает нормально
Скорее всего вы используете RedHat и вы не аккуратно следовали инструкциям :-). Вы пропустили ! (восклицательный знак) в одном из выражений if . Сходите сюда и посмотрите как это исправить.
Моя сеть работает несколько минут, а затем прекращает отвечать
Некоторые люди сообщают, что gated (демон маршрутизации) искривляет маршрутизацию на Linux машинах, что приводит к описанной выше проблеме. Проверьте, запущен ли он у вас, запустив:
ps -auxww | grep gate
Если запущен, попробуйте удалить его с помощью RedHat RPM менеджера пакетов или удалить элемент в каталоге /etc/rc.d/ .
Моя сетевая ката распознается в процессе загрузки, но в моих регистрационных записях я получаю сообщение NO DHCPOFFER . Моя сетевая карта — PCMCIA
Вы должны проверить, что на вашей сетевой карте активирован 10BaseT порт (телефонный разъем). Лучше всего это узнать, проверив какой тип соединителя вашей сетевой карты настроен в процессе загрузки, т.е.
eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov
Мне сообщали, что проблема такого рода встречается у пользователей ноутбуков из-за PCMCIA утилит (особенно ifport), которые хотят установить тип соединителя на 10Base2 (тонкий коаксиальный кабель). Вы должны проверить, что для вашего соединения вы используете 10BaseT. Если это не так, перенастройте карту и перезапустите компьютер.
Мой DHCP клиент посылает широковещательные запросы, но никто не отвечает (Предоставлено Peter Amstutz)
На некоторых системах, вам следует включить имя вашего компьютера как часть запроса. У dhcpcd , это делается с помощью dhcpcd -h foohost . Возможно, что требуемое имя компьютера — ваше имя пользователя в сети.
Я следовал всем шагам, но моя машина все еще не способна соединиться
Кабельные модемы обычно запоминают ethernet адрес вашей сетевой карты, так что если вы подключаете новый компьютер или переключаете сетевые карты, вы должны как-то научить ваш кабельный модем распознавать новый компьютер/карту. Обычно вы можете выключить и снова включить ваш модем при включенном компьютере или позвонить в службу технической поддержки и сказать им, что вы заменили сетевую карту в компьютере.
У вас есть правила firewall (правила ipfwadm), которые запрещают трафик по портам 67/68 , которые используются DHCP для распространения информации о настройках. Тщательно проверьте правила вашего firewall.
У меня есть служба MediaOne Express и я все еще не могу соединиться
Кажется, что MediaOne использует некоторые дополнения к DHCP, которых не должно быть. Вероятно, это не должно быть проблемой, но если ваш опыт говорит об обратном, проверьте это. Если вы (не)счастливый обладатель Windows NT, и если, входя в Просмотр Событий(Event Viewer) вы видите такого рода предостережение:
HCP получил неизвестную опцию 067 длиной 005. Необработанные данные опции даны ниже.
(DHCP received an unknown option 067 of length 005. The raw option data is given below.)
0000: 62 61 73 69 63 basic
В этом случае сходите на ftp://vanbuer.ddns.org/pub/ и, либо загрузите бинарный файл, либо возьмите исходный код для замены.
Альтернативный DHCP клиент (ISC dhclient)
Если у вас не получилось успешно запустить dhcpcd на вашей Linux системе, попробуйте ISC dhclient . dhclient поставляется с DHCP дистрибутивом от ISC, который включает как DHCP клиента, так и DHCP сервер. Инструкции по получению и установке дистрибутива DHCP могут быть найдены здесь. Когда вы закончите, пожалуйста, вернитесь к этой секции для настройки клиента.
Следующая информация была предоставлена одним из авторов dhclient — Ted Lemon .
Источник