Пред. Начало След.
Наверх
Сведения о документе

Настройка сети


В системе Linux полностью реализован протокол TCP/IP (Transport Control Protocol/Internet Protocol). Протокол TCP/IP оказался наиболее успешным средством объединения компьютеров всего мира в единую сеть. Имея компьютер с системой Linux и адаптер Ethernet (сетевую карту), можно подключить компьютер к локальной сети или (при наличии соответствующего подключения) к сети Интернет, являющейся всемирной сетью, где обмен данными происходит по протоколу TCP/IP.

В системе Linux можно использовать протокол TCP/IP без каких-либо сетевых устройств, поскольку даже на компьютере, лишённом сетевых адаптеров (аппаратных сетевых интерфейсов), всегда имеется виртуальный интерфейс — сетевая «заглушка» (или «петля», loopback interface) по имени lo0. Сетевая заглушка позволяет компьютеру вести диалог с самим собой, используя сетевые протоколы. Это необходимо для некоторых программ и игр, в которых используется сетевые соединения.

Прежде чем настраивать TCP/IP, нужно узнать определённую информацию о параметрах сети. Потребуются следующие параметры.

IP-адрес

Это уникальный адрес компьютера в формате четырёх трёхзначных десятичных чисел, разделённых точками, например, 128.253.153.54. Как правило каждый сетевой интерфейс имеет не менее одного IP-адреса. Адрес 127.0.0.1, присваиваемый интерфейсу lo0, сетевой заглушке, одинаков на всех компьютерах. Поэтому для подключения к компьютеру в нашем примере можно использовать адрес 127.0.0.1, если вы подключаетесь с того же самого компьютера, и 128.253.153.54, если подключаетесь с других компьютеров сети.

Сетевая маска (netmask)

Формат маски аналогичен формату IP-адреса. Маска определяет, какая часть IP-адреса соответствует номеру локальной (под)сети (subnetwork number), а какая═ — номеру компьютера в сети. Маска представляет собой битовый шаблон. При наложении этого шаблона на адрес компьютера (хоста) можно узнать номер того участка сети, к которому относится этот адрес. Это очень важно для рассылки сообщений, поэтому если вдруг окажется, например, что можно установить связь с кем-либо вне локальной сети, а внутри сети такая связь не устанавливается, то может оказаться, что маска указана неверно.

Маска выбиралась администратором сети при её проектировании, поэтому он должен её точно знать. Большинство локальных сетей имеют класс C и используют маску 255.255.255.0. Сети класса B имеют маску 255.255.0.0. Программы настройки сети выбирают маску автоматически, предполагая по умолчанию, что подсети отсутствуют, если они не указаны.

То же относится и к адресу заглушки. Поскольку адрес в этом случае всегда 127.0.0.1, то и маска всегда 255.0.0.0. Это можно указать явно или положиться на маску, выданную по умолчанию.

Адрес сети (network address)

Это адрес является результатом побитовой операции И двух аргументов: IP-адреса компьютера и маски. Например, если маска имеет вид 255.255.255.0, IP-адрес равняется 128.253.154.32, то адрес сети будет 128.253.154.0. Если маска равняется 255.255.0.0, то адрес сети будет равняться 128.253.0.0.

Если используется только заглушка, сетевой адрес отсутствует.

Широковещательный адрес (broadcast address)

Этот адрес используется для трансляции пакетов сообщений по всем компьютерам, объединённым в (под)сеть. Следовательно, если IP-адрес компьютера в сети определяется последним байтом (иными словами, если маска равна 255.255.255.0), то широковещательный адрес является результатом побитовой операции ИЛИ выражения 0.0.0.255 с IP-адресом компьютера. Например, если IP-адрес компьютера 128.253.154.32, а маска 255.255.255.0, то широковещательный адрес будет равен 128.253.154.255.

Если используется только заглушка, широковещательный адрес отсутствует.

Адрес маршрутизатора (gateway address)

Это адрес компьютера, который является «шлюзом» во внешний мир (т. е. к компьютерам вне локальной сети). Принято проектировать сети так, чтобы адрес маршрутизатора получался из IP-адреса компьютера заменой последних групп цифр на .1. Например, если IP-адрес компьютера равняется 128.253.154.32, то адрес маршрутизатора может иметь значение 128.253.154.1. Эта рекомендация не является обязательной, так всю правду обычно знает только системный администратор.

Маршрутизаторов может быть несколько. В действительности маршрутизатор═ — это компьютер, который находится в двух различных сетях (т. е. имеет IP-адреса в различных подсетях). Маршрутизатор занимается тем, что пересылает пакеты сообщений между этими двумя сетями. Многие сети имеют единственный шлюз во «внешний мир» (который представляет собой непосредственно примыкающую сеть). Однако в некоторых случаях к локальной сети примыкает несколько других сетей, и для каждой из них имеется свой маршрутизатор.

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

Адрес сервера имён (name server address)

Для большинства компьютеров в сети имеется сервер, который преобразует имя компьютера в IP-адрес (Domain Name Server, сокращённо DNS). Сервер устанавливает соответствие доменного имени, отражающего административную принадлежность компьютера, и IP-адреса, отражающего место компьютера в сети Интернет. Любое обращение по сети с использованием доменного имени требует преобразования его в IP-адрес (возможно, при помощи сервера). Адрес этого сервера должен сообщить администратор сети или провайдер, предоставляющий доступ в Интернет.

Такой сервер можно также запустить на собственном компьютере (программа называется named); в этом случае адрес сервера имён в сети равняется 127.0.0.1. Кроме тех случаев, когда абсолютно необходимо иметь собственный сервер имён, лучше воспользоваться тем, который имеется (если имеется).

Если используется только заглушка, адрес сервера имён отсутствует. Более подробно про организацию адресации в TCP/IP можно прочесть по адресу http://citforum.ru/nets/tcp/adres_inter.shtml или в HOWTO[1]

Наиболее распространённые варианты настройки сети в Junior можно произвести с помощью утилиты draknet — поэтому рекомендуется сначала попробовать воспользоваться ей, а если функциональности этой утилиты вам будет недостаточно, попробовать произвести требуемые настройки вручную.

Сразу после запуска draknet предлагает попробовать определить автоматически сетевые устройства, установленные на вашем компьютере. После этого вам будет предложено настроить один из сетевых адаптеров, причём устройства, найденные автоматически, будут отмечены особо; далее необходимо ответить на вопросы (указать требуемые параметры), после чего ваша сеть будет настроена.

Если автоматическая настройка сети, сделанная draknet, вас почему-либо не устраивает или неработоспособна, вы можете настроить работу с сетью, вручную проделав необходимые операции. Стоит иметь в виду, что утилиты, работающие с сетевыми настройками, такие как ifconfig, ip или route, изменяют их на время, до перезагрузки системы. Для постоянной настройки сетевых подключений необходимо изменять соответствующие конфигурационные файлы. Содержимое этих файлов используется системной службой network, которая и запускает при старте системы эти и другие утилиты.

Настройка сети происходит в несколько этапов.

  1. Определение сетевых устройств (network interface)

    Для того, чтобы система работала с сетью, необходимо в файл /etc/sysconfig/network вписать строку NETWORKING=yes (обычно это делается при установке). Сетевые устройства, найденные системой при загрузке, могут участвовать, а могут и не участвовать в работе сети.

  2. Привязка устройств к IP-сетям

    Если устройство используется системой, оно должно быть зарегистрировано: в каталоге /etc/sysconfig/network-scripts/ должен быть файл ifcfg-имя_устройства (как правило ifcfg-eth0, ifcfg-eth1 и т. д.). В этом файле указываются построчно сетевые настройки устройства. Параметры IPADDR, NETWORK и NETMASK отвечают за адрес компьютера, адрес сети и сетевую маску соответственно. Если эти параметры система получает автоматически, вместо них указывается строка BOOTPROTO=способ_получения ( =dhcp для автоматической настройки по DHCP). Строка ONBOOT=yes означает, что настройка должна происходить при старте системы (это обычный способ работы с сетями Ethernet).

    Обратите внимание, что в файле /etc/sysconfig/network-scripts/ifcfg-имя_устройства обязательно присутствует строка DEVICE=имя_устройства. Дело в том, что содержимое этого файла служит параметрами для утилиты настройки сетевых устройств ifconfig. Среди параметров этой утилиты, конечно, должно быть и наименование устройства.

  3. Настройка IP (маршрутизация)

    Для того, чтобы передавать информацию за пределы локальных сетей, доступных с компьютера, необходимо настроить маршрутизацию. Маршрутизация в Linux устроена таблично: любому IP-адресу и любому адресу подсети адресата может соответствовать адрес компьютера-маршрутизатора, который должен пересылать этому адресату данные. Чем больше единиц в сетевой маске, тем выше приоритет записи в таблице маршрутизации.

    Таким образом, при определении маршрутизатора для очередного пакета, адресат которого находится за пределами локальной сети, система сначала будет искать его среди записей вида компьютер — компьютер (сетевая маска 255.255.255.255), затем среди записей вида подсеть — компьютер (в порядке уменьшения сетевой маски), и, наконец в записи вида 0.0.0.0 компьютер (сетевая маска 0.0.0.0 означает всю сеть). Проще говоря, если вывести таблицу маршрутизации командой route -n или netstat -rn, то маршрутизатор при принятии решения о том, куда отправить пакет, просматривает эту таблицу сверху вниз.

    В этой таблице, кроме того, каждой локальной сети соответствует имя подключённого к ней сетевого устройства. В самом простом виде такая таблица должна содержать по одной записи вида подсеть — устройство на каждую локальную сеть (обычно для lo0 и eth0) и одну запись вида 0.0.0.0 — компьютер для указания маршрутизатора по умолчанию.

    Адрес маршрутизатора по умолчанию указывается в файле /etc/sysconfig/network строкой GATEWAY=адрес.

    Для того, чтобы настройки в файлах интерфейсов вступили в силу, выполните команду service network restart.

    Более полную документацию по организации статической маршрутизации и работе IP-сетей можно найти по следующим ссылкам: http://citforum.ru/nets/tcp/iproutng.shtml и http://citforum.ru/nets/ip/contents.shtml.

    Кроме рассматриваемого здесь варианта статической маршрутизации, Linux также поддерживает работу с протоколами динамической маршрутизации, наиболее распространёнными из которых являются протоколы OSPF и BGP. Для настройки протоколов динамической маршрутизации, установите пакет zebra. Zebra частично эмулирует консоль Cisco IOS, и поддерживает удалённое управление.

    Linux поддерживает возможность многотабличной маршрутизации, возможность классификации трафика по типам сервиса и протоколам, и перенаправления такого трафика в различные интерфейсы. Например, можно сделать так, чтобы почтовый трафик уходил в медленный и недорогой коммутируемый доступ (модемный канал), а остальной трафик ходил по быстрому xDSL. Такой функционал называется Advanced routing. Техника настройки многотабличной маршрутизации подробно рассмотрена в документе Advanced routing and QoS. Основным инструментом при этом является утилита ip из пакета iproute2. Она же, кстати, в дистрибутиве ALT Linux 2.3 положена в основу управляющих скриптов из /etc/sysconfig/network-scripts вместо уже устаревшей (но ещё используемой) утилиты route.

  4. Настройка DNS

    Компьютер, подключённый к сети Интернет, может воспользоваться службой доменных имён (DNS) для преобразования символьных IP-адресов (доменных имён) в числовые IP-адреса и обратно. Например, доменному имени www.ru соответствует адрес 194.87.0.50, что можно узнать, выполнив команду host www.ru. Адрес используемого для этой операции DNS-сервера указывается в файле /etc/resolv.conf в строке вида nameserver адрес (таких строк может быть несколько). В виде domain=имя_домена или search=имя_домена1 имя_домена2 ... в этом же файле указываются имена доменов, в которых будет производиться поиск символьного IP-адреса. Например, если в /etc/resolv.conf указано search=school.altlinux.ru, команда host student2 будет сначала пытаться определить адрес student2, а затем — адрес student2.school.altlinux.ru.

    Внимание

    После изменения файла /etc/resolv.conf, для того чтобы изменения вступили в силу, необходимо дать команду update_chrooted all.

    Преобразование IP-адресов необходимо доже если ни один DNS-сервер не доступен. Вместо того, чтобы вызывать службу DNS, система может обратиться к файлу /etc/hosts, строки которого (вида IP-адрес имя1 имя2 ...) как раз и задают соответствие символьных и числовых IP. Файл /etc/hosts можно использовать для автономной локальной сети. В файле /etc/nsswitch.conf, среди прочих записей, есть строчка, начинающаяся на hosts:, например, такая hosts: files dns. Она означает, что для превращения одного вида IP-адреса в другой система сначала попытается обратиться к файлу /etc/hosts, а если соответствующей записи там не найдётся, отправит DNS-запрос.

  5. Настройка имеющихся сетевых служб

    Как правило, настройка определённой сетевой службы (почты, www-сервера и т. п.) описывается в документации этой службы. Однако «лёгкие» сетевые службы (такие как cups-lpd или tftpd) могут не разбираться в тонкостях сетевой настройки, а запускаться посредством сетевого метадемона inetd (xinetd). Метадемон устроен так, что он принимает сетевой запрос на соединение, предназначенный для любой из этих служб, настраивает соединение и запускает службу, которая только принимает и передаёт данные. Для работы таких служб необходимо, чтобы метадемон запускался при старте системы и в файле настройки службы /etc/xinetd.d/имя_службы было указано disable=no. Кроме того, возможностью доступа к сервису из внешней сети управляет строка only_from=адрес_сети в этом файле и в /etc/xinetd.conf (общие настройки xinetd).

  6. Проверка работоспособности сети

    Для проверки работоспособности сети TCP/IP можно воспользоваться следующей схемой.

    Для начала убедитесь в работоспособности только что настроенного вами интерфейса при помощи команды ping ip_адрес_интерфейса. При получении ответов от него можно проверить командой ping адрес_соседа доступность любого компьютера из той же подсети, что и только что настроенный. После этого необходимо проверить работоспособность серверов DNS с помощью команды host имя_хоста имя_сервера_DNS. Наконец, для проверки возможности доступа к Интернету необходимо дать команду ping интернет_сервер, например, ping www.ru.

    Для просмотра трассы прохождения пакетов в сети используйте утилиту tracepath или traceroute, если настройки control это позволяют.



[1] Все документы HOWTO находятся в пакете howto-html-ru, если он ещё не установлен в вашей системе, установите его.

Пред. Начало След.
Наверх
Сведения о документе