Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Глава 13. Выход в локальные сети

Предыдущий раздел Оглавление Следующий раздел

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

В данном разделе будут рассмотрены вопросы подключения к уже существующей локальной сети. Вопросы создания сети "на голом месте" выходят за рамки настоящей книги. Впрочем, их будет проще понять (и изложить) после того, как будут рассмотрены вопросы подключения отдельного компьютера в сеть.

Нужно сказать для начала, что на русском языке имеется (по крайней мере в электронном варианте, доступном в Интернете) несколько замечательных руководств, в которых подробно разбираются все аспекты подключения вашего компьютера как к локальной сети, так и к Интернету. Самым лучшим руководством является, безусловно, книга О. Кирха [П1.2]. Приводимое ниже описание действий, выполняемых при подключении к локальной сети, представляет собой конспект этих материалов.

13.1. Подготовка к выходу в сеть

13.1.1 Драйверы сетевых устройств в ядре

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

Заметим, что в каталоге /dev нет специального файла для сетевой карты. В Linux сетевые устройства создаются динамически, и поэтому не требуют наличия соответствующих файлов в каталоге /dev.

Прежде, чем пытаться подключаться к сети, вы должны убедиться, что установленное в вашей системе ядро скомпилировано с поддержкой сетевых возможностей. О. Кирх утверждает, что признаком этого является наличие каталога /proc/net. Но можно посмотреть и протокол загрузки системы (файл /var/log/dmesg), в котором должны найтись примерно такие строки:

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP, IGMP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 8192 bind 8192)

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

NET4: Ethernet Bridge 008 for NET4.0

Далее нужно убедиться, что в состав ядра включен драйвер для вашей сетевой карты. Вообще-то, ядра, включаемые в стандартные дистрибутивы, обеспечивают поддержку большинства распространенных сетевых плат (что, конечно, увеличивает объем ядра). Так что с очень высокой вероятностью нужный драйвер входит в ядро. В процессе загрузки ядра выполняется процедура автоматического обнаружения сетевой карты. Если такое обнаружение было успешным, то в файле /var/log/dmesg вы найдете соответствующие сообщения. У меня они имеют вид:

eth0: 3Com PCI 3c905C Tornado at 0x4000, 00:01:02:b4:6c:65, IRQ 9

product code 'DU' rev 00.11 date 09-02-00

8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.

MII transceiver found at address 24, status 782d.

Enabling bus-master transmits and whole-frame receives.

Если карта не обнаружена, то вам придется перекомпилировать ядро (или поменять карту). Перекомпиляция ядра может иметь смысл и в том случае, если вы хотите удалить из ядра ненужные драйверы устройств, которые вы не используете. Но все же в большинстве случаев стандартное ядро успешно решает задачи поддержки сетевых возможностей, так что на вопросе перекомпиляции ядра сейчас мы останавливаться не будем. Рассмотрим только вопрос о динамическом подключении драйвера сетевой карты.

13.1.2 Динамическое подключение драйверов

Для динамического подключения драйвера надо подгрузить модуль ядра, отвечающий за взаимодействие с данным сетевым устройством (например, сетевой картой) и передать ему параметры устройства. Сделать это можно с помощью команды insmod, вызов которой осуществляется следующим образом:

[root]# /sbin/insmod [-fkmpsxXv] [-o имя_устройства] файл_драйвера

Например, для сетевой карты можно выполнить команду следующего вида:

[root]# /sbin/insmod -o eth0 /lib/modules/2.2.x/net/net.o

Здесь 2.2.х надо заменить на версию установленного у вас ядра, а вместо net.o надо подставить имя модуля, соответствующего вашей сетевой плате. Поскольку у меня была плата 3Com, я выбрал 3с509.o (посмотрите перечень в подкаталоге /lib/modules/2.2.x/net/).

Замечание:

В последних версиях Linux вместо insmod используется modprobe.

Ядро именует драйверы Ethernet как eth0, eth1 и т. д., так что для подключения, например, второй сетевой карты надо в этом примере eth0 заменить на eth1.

Кстати, ядро не может автоматически определить наличие двух сетевых адаптеров. В этом случае вам придется произвести некоторые дополнительные настройки. Однако обсуждение этого вопроса выходит за рамки данной книги, ищите ответы в книге О. Кирха и других источниках.

В некоторых случаях в команде требуется дополнительно задать номер порта и номер используемого прерывания, а также некоторые другие опции, но подробнее об этом см. на странице man insmod.

Аналогично, для подключения модуля, обеспечивающего работу с модемом по протоколу PPP, надо дать команду

[root]# /sbin/insmod /lib/modules/2.2.11/net/ppp.o

(драйвер должен существовать и располагаться в указанном каталоге).

13.1.3 Получение сетевого адреса и установка ПО

Поскольку вы собираетесь устанавливать машину с Linux в уже существующую сеть, то следующим вашим шагом при подключении к сети должно стать обращение к администратору сети за получением сетевого адреса. Точнее, вы должны получить следующую информацию:

  • IP адрес вашего компьютера;
  • IP адрес сети;
  • широковещательный IP-адрес;
  • имя домена, в который будет включен ваш компьютер;
  • маску подсети;
  • IP адрес маршрутизатора (router);
  • IP адрес сервера имен (DNS-сервера).

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

Далее необходимо проверить, что у вас установлено программное обеспечение, необходимое для подключения к сети, а именно, пакет net-tools. Для проверки воспользуйтесь командой

[root]# rpm –qa | grep net

или менеджером пакетов (если вы работаете с KDE). Если пакет не установлен, то необходимо установить его с вашего дистрибутивного диска.


Предыдущий раздел Оглавление Следующий раздел