Linux в Сети. Сага четвертая

Linux в Сети. Сага четвертая

В продолжение темы "Linux в Сети" наш рассказ о контроле состояния сети и службе DNS. Итак, Сага четвертая, служебная.

Контроль состояния сети: утилиты ping и netstat
Программа ping позволяет проверить наличие доступа к другому компьютеру сети. Она посылает в указанный компьютер запрос и ожидает отклика. Если ответ приходит, то результаты запроса выводятся на консоль, один за другим. Запросы посылаются непрерывно до тех пор, пока пользователь не остановит утилиту нажатием клавиш Ctrl+С. Если ping не может связаться с указанной машиной, она выдает сообщение о том, что машина недоступна. Такой результат свидетельствует о том, что сетевого соединения нет или оно не работает. Причиной может быть конкретный интерфейс, проблема в конфигурации или просто плохой контакт разъемов. Запускается утилита ping командой ping с именем компьютера:

ping linux.hitech.by

Утилита netstat позволяет получить в режиме реального времени информацию о состоянии сетевых соединений, а также статистические данные и таблицу маршрутизации. У этой программы есть несколько опций, с помощью которых можно задавать вид получаемой информации.


Опции утилиты netstat


-a
выдать информацию обо всех гнездах включая гнезда, работающие только на прием

-i
выдать статистическую информацию обо всех сетевых устройствах

-c
непрерывно выдавать информацию о состоянии сети до тех пор, пока работа программы не будет прервана

-n
выдать IP-адреса удаленной и локальной систем

-o
выдать информацию о количестве повторно переданных байтов и состоянии таймера (on/off)

-r
выдать хранящуюся в ядре таблицу маршрутизации

-t
выдать информацию только о TCP-гнездах включая работающие на прием

-u
выдать информацию только об UDP-гнездах

-v
выдать информацию о версии netstat

-w
выдать информацию только о raw-гнездах

-x
выдать информацию о доменных гнездах типа Unix
Запуск netstat без опций позволяет увидеть список сетевых соединений данной системы. Cначала перечисляются активные TCP-соединения, а затем активные гнезда домена типа UNIX. Гнезда (порты) этого домена заняты процессами, обеспечивающими установление соединения данной системы с другими системами. Поля перечислены в следующей таблице.


Поле

Описание
Proto протокол, используемый для данного соединения: TCP, UDP
Recv-Q количество байт, полученных, но еще не скопированных программой пользователя
Send-Q количество байт, посланных в удаленную систему, получение которых еще не подтверждено
Local Address локальное хост-имя и номер порта
Foreign Address удаленное хост-имя и номер порта, назначенный соединению; номер порта может указываться как тип соединения, например, telnet или ftp
(State) состояние соединения с удаленной хост-машиной:
ESTABLISHED — соединение установлено
SYN_SENT — производится попытка установления соединения
SYN_REC — соединение устанавливается
FIN_WAIT1 — соединение прерывается
CLOSED — соединение прервано
LISTEN — режим ожидания соединения с удаленной машиной
UNKNOWN — состояние неизвестно


Гнезда домена UNIX
Proto протокол, используемый для данного гнезда (обычно unix)
RefCnt количество процессов, обслуживаемых гнездом на текущий момент
Tape тип доступа к гнезду
State состояние гнезда:
FREE — гнездо не используется
LISTENING — ожидание соединения
UNCONNECTED — соединения нет
CONNECTING — производится попытка установления соединения
CONNECTED — соединение есть
DISCONNECTING — прерывание соединения
Prth путевое имя, используемое процессами для доступа к гнезду
Запустив netstat с опцией -r, можно вывести на экран таблицу маршрутизации, а опция -i позволяет получить информацию об использовании различных сетевых интерфейсов. Содержание полей:
— MTU — максимальное число байтов в пакете;
— RX-OK — пакеты, принятые без ошибок;
— RX-ERR — пакеты, принятые с ошибками;
— RX-DRR — пропавшие пакеты;
— RX-OVR — ошибки из-за превышения скорости;
— TX-OK — пакеты, переданные без ошибок;
— TX-ERR — пакеты, переданные с ошибками;
— TZ-DRR — пакеты, потерянные при передаче;
— TX-OVR — пакеты, которые не смогли передать;
— Flags — характеристики интерфейса:
A — принимает пакеты в случае многоадресной передачи;
B — принимает широковещательные пакеты;
D — отладка включена;
L — закольцовывающий интерфейс;
M — изменяется динамически (переадресация);
N — без обработки завершителей пакетов;
O — протокол преобразования адресов выключен;
P — интерфейс "точка-точка";
R — интерфейс работает;
U — интерфейс активизирован.

Служба доменных имен (DNS)
Каждый компьютер, подключенный к сети, работающей по протоколу TCP/IP (в т.ч. и Интернет), идентифицируется своим IP-адресом. IP-aдрес представляет собой комбинацию четырех чисел, определяющих конкретную сеть и конкретный хост-компьютер в этой сети. IP-адреса очень трудно запоминать, поэтому для идентификации хост-компьютера вместо его IР-адрреса можно пользоваться доменным именем. Доменное имя состоит из двух частей: хост-имени и имени домена. Хост-имя — это собственно имя компьютера, а домен обозначает сеть, частью которой этот компьютер является. Домены, используемые в США, обычно имеют расширения, обозначающие тип сети. Например, для учебных заведений используют расширение .edu, а для коммерческих организаций — расширение .com. Международные домены обычно имеют расширения, которые обозначают страну, в которой они расположены — например, .by для Беларуси. Комбинация хост-имени, имени домена и расширения представляет собой уникальное имя, по которому можно обращаться к компьютеру. Домен, в свою очередь, может разбиваться на поддомены.

Известно, что компьютер в сети можно идентифицировать только по его IP-адресу, даже если он имеет доменное имя. Обратиться к компьютеру в сети по доменному имени можно, но это предполагает поиск соответствующего IP-адреса в базе данных. Сеть использует для доступа к компьютеру не доменное имя, а IP-адрес. До появления очень больших сетей с протоколами TCP/IP, в частности, Internet, каждый компьютер сети мог вести файл-список доменных имен и IP-адресов всех компьютеров, включенных в эту сеть. В случае обращения по доменному имени компьютер искал его в этом файле и находил соответствующий IP-адрес. Так можно поступать и сейчас в отношении удаленных систем, соединения с которыми устанавливаются чаще всего.

Но по мере роста сетей ситуация изменилась. Ведение отдельного списка всех доменных имен и IP-адресов на каждом компьютере стало непрактичным, а в случае с Интернетом — просто невозможным. Чтобы обеспечивать преобразование доменных адресов в IP-адреса, были разработаны и установлены на особые серверы базы данных, содержащие доменные имена и соответствующие им IP-адреса. Для того чтобы найти IP-адрес доменного имени, на сервер имен посылается соответствующий запрос. Сервер имен ищет IP-адрес и посылает его обратно. В крупной сети может быть несколько серверов имен, обслуживающих различные части сети. Если какой-либо сервер имен не может найти необходимый IP-адрес, он посылает запрос на другой сервер. Серверы имен могут предоставлять и такую информацию, как наименование предприятия, на котором находится искомый компьютер, его адрес и даже фамилию лица, обслуживающего этот компьютер.
Запросы на серверы имен посылают особые программы, которые называют резолверами, или определителями. Это программа, предназначенная для получения адресов с серверов имен. Чтобы пользоваться у себя в системе доменными именами, нам придется сконфигурировать свой собственный определитель. Конфигурация задается файлами /etc/host.conf и /etc/resolv.conf.
В файле host.conf содержатся опции программы-определителя (см. таблицу):

order задает последовательность методов преобразования имен
hosts — проверяется наличие имени в локальном файле /etc/host
bind — запрашивается адрес у сервера имен DNS
nis — для получения адреса используется база данных центра сетевой информации
alert — проверяет наличие в локальной системе адресов удаленных узлов, пытающихся получить к ней доступ; устанавливается и отменяется ключевыми словами on и off

nospoof подтверждает правильность адресов удаленных узлов, пытающихся получить доступ к локальной системе
trim удаляет имя домена из полного имени и проверяет наличие только хост-имени; позволяет использовать вместо IP-адреса не полное имя хост.домен.расширение, а просто хост-имя, указанное в файле hosts
multi позволяет хост-машине иметь несколько IP-адресов в локальном файле hosts; включается и выключается ключевыми словами on и off
Каждая опция может иметь несколько полей, отделенных друг от друга пробелами или знаками табуляции. Для ввода комментария в начале строки нужно ставить знак #. Опции указывают определителю, каким сервисом пользоваться. Важное значение имеет порядок следования опций. Определитель начинает обработку с первой из указанных опций и переходит по очереди к следующим. Файл host.conf находится в каталоге /etc вместе с другими файлами конфигурации.
В примере опция order дает программе-определителю указание искать имена в локальном файле /etc/hosts, а в случае неудачи направлять запрос на сервер имен:

# host.conf file
# Lookup names in host file and then check DNS
order bind host
# There are no multiple addresses
multi off

Для того чтобы программа-определитель могла выполнять свою задачу, ей должен быть предоставлен доступ к серверам доменных имен. В файле resolv.conf содержатся адреса серверов имен, к которым имеет доступ данная система. В этом файле можно создавать три типа записей, каждая из которых предваряется одним из трех ключевых слов: domain, nameserver, search. В записи domain вводится доменное имя локальной системы. В записи search приводится список доменов на тот случай, если задается только хост-имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя ее домена в запись search, а затем использовать в качестве адреса только хост-имя. Определитель попытается найти полное доменное имя по имени домена, указанному в записи search.

После записей search идут записи nameserver, если таковые имеются. Для каждого сервера имен, к которому имеет доступ данная система, вводится ключевое слово nameserver и IP-адрес. Таких серверов может быть несколько, и порядок их следования в списке очень важен. Во многих сетях имеется основной сервер имен и несколько вспомогательных. Основной сервер должен запрашиваться первым. Для этого его IP-адрес должен быть введен в первую запись nameserver.
Пример файла resolv.conf. Домен хост-компьютера hitech.by. IP-адреса серверов имен этого домена указаны в записях name server. Запись search позволяет использовать в качестве адреса только xocт-имя для компьютеров в домене list.by. Например, чтобы обратиться к системе you.list.by, пользователь должен ввести в качестве адреса только хост-имя you.

# resolv.conf file
domain hitech.by
search list.by
nameserver 80.168.115.2
nameserver 80.168.115.3

Если вы администратор сети и решили организовать в ней сервер имен, то в качестве такого сервера можно использовать любую Linux-систему. Для этого необходимо запустить демон named. Этот демон запускается одновременно с системой и ожидает запросов о доменных именах. Демон named пользуется несколькими файлами конфигурации, которые позволяют ему отвечать на запросы. В файле named.boot указывается домен, который обслуживает данный сервер, и имя каталога, предназначенного для его рабочих файлов. В файле named.hosts хранится информация об этом домене. Она состоит из записей, содержащих сведения о хост-компьютерах, находящихся в данном домене. Файл named.rev содержит данные о соответствии между IP-адресами и хост-именами. Файл named.ca организует кэширование для сервера имен. Процесс организации собственного сервера имен довольно сложен. Следует обратиться к документам HOW-TO.

Подготовил X-Stranger,
linux@hitech.by,
http://linux.hitech.by



Компьютерная газета. Статья была опубликована в номере 06 за 2003 год в рубрике soft :: linux

©1997-2024 Компьютерная газета