Сетевые средства Linux - страница 23
Если вы считаете, что источником проблем являются опции клиента DHCP, несовместимые с присутствующим в сети сервером DHCP, то для решения этих проблем вам надо отредактировать сценарий запуска. Найдите строку, отвечающую за запуск клиент- программы, и проанализируйте передаваемые ей опции. В этом вам помогут страницы справочной информации, посвященные клиенту DHCP. Удаляя или добавляя опции, постарайтесь добиться желаемого поведения программы. Например, некоторые серверы DHCP требуют, чтобы клиент передавал имя узла; если вы используете программу >dhcpcd
, вам придется добавить опцию >-h имя_узла
. Часто в сценариях используются данные из конфигурационного файла (их расположение также приведено в табл. 2.1), однако чаще всего эти файлы сообщают системе, следует ли использовать статические IP-адреса или надо воспользоваться DHCP.
Таблица 2.1. Информация о клиентах DHCP для наиболее популярных дистрибутивных пакетов Linux
Версия Linux | Клиент DHCP no умолчанию | Альтернативный клиент DHCP | Сценарий запуска клиента DHCP | Дополнительные конфигурационные файлы |
---|---|---|---|---|
Caldera OpenLinux Server 3.1 | >dhclient | Отсутствует | >/etc/sysconfig/network-scripts/ifup-dhcp | >/etc/sysconfig/network , >/etc/sysconfig/network-scripts/ifcfg-eth0 , >/etc/dhcp/dhclient.conf |
Debian GNU/Linux 2.2 | >pump | >dhcpcd | >/sbin/ifup (двоичный файл) | >/etc/network/interfaces |
Linux Mandrake 8.1 | >dhcpcd | >dhclient, dhcpxd | >/sbin/ifup | >/etc/sysconfig/network , >/etc/sysconfig/network-scripts/ifcfg-eth0 |
Red Hat Linux 7.2 | >pump | >dhcpcd | >/sbin/ifup | >/etc/sysconfig/network , >/etc/sysconfig/network-scripts/ifcfg-eth0 |
Slackware Linux 8.0 | >dhcpcd | Отсутствует | >/etc/rc.d/rc.inet1 | Отсутствуют |
SuSE Linux 7.3 | >dhcpcd | >dhclient | >/etc/init.d/dhclient | >/etc/rc.config |
TurboLinux 7 | >dhclient | Отсутствует | >/sbin/ifup | >/etc/sysconfig/network , >/etc/sysconfig/network-scripts/ifcfg-eth0 |
Использование статических IP-адресов
Несмотря на то что система DHCP используется во многих сетях, в ряде случаев приходится выделять IP-адреса другими способами. Некоторым компьютерам (например, на которых выполняются серверы DHCP) чрезвычайно трудно присваивать адреса с помощью DHCP. Кроме того, сервер DHCP попросту может отсутствовать в сети. В подобных случаях приходится распределять IP-адреса вручную. Средства для решения данной задачи рассматриваются в данном разделе. Кроме того, далее в этой главе рассказывается, как настроить систему, чтобы ее конфигурация автоматически устанавливалась при загрузке.
Как правило, компьютерам, на которых выполняются программы-серверы, присваивают статические IP-адреса; при этом адрес не изменяется с течением времени. Кроме того, связывание статических IP-адресов с доменными именами не вызывает трудностей. (Вопросы функционирования серверов DNS и установления соответствия между IP-адресами и доменными именами рассматриваются в главе 18.) Чтобы связать доменное имя с динамическим IP-адресом, вам надо обеспечить, чтобы сервер DHCP выделял компьютеру один и тот же адрес (как это сделать, вы узнаете в главе 5), либо использовать динамические средства DNS.
Настройка сетевых интерфейсов
Загрузка драйвера — это лишь первое действие, которое надо выполнить, чтобы обеспечить доступ к сетевому интерфейсу. Для того чтобы интерфейс можно было использовать, ему необходимо присвоить IP-адрес и выполнить дополнительные настройки, например задать маску подсети. Для решения этой задачи используется утилита >ifconfig
, которая, в зависимости от способа ее вызова, либо отображает информацию об интерфейсе, либо изменяет его конфигурацию.
>ifconfig
Синтаксис >ifconfig
достаточно прост. Для вызова данной утилиты надо задать в командной строке следующее выражение:
>ifconfig [интерфейс] [опции]
Набор передаваемых параметров определяет поведение >ifconfig
. Данная утилита может выполнять следующие действия.
• Если >ifconfig
вызывается без параметров, она возвращает информацию о состоянии всех активных сетевых интерфейсов, т.е. действует как инструмент диагностики.
• Если данной утилите передано только имя интерфейса (например, >eth0
или >tr1
), то она возвращает информацию лишь о состоянии этого интерфейса.