| Главная -> Операционные системы -> 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 "Компьютерная газета"
|