Linux в Сети. Сага четвертая
Контроль состояния сети:
утилиты 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) |
состояние соединения с удаленной хост-машиной: |
|
Гнезда домена UNIX | |
|
Proto |
протокол, используемый для данного гнезда (обычно unix) |
|
RefCnt |
количество процессов, обслуживаемых гнездом на текущий момент |
|
Tape |
тип доступа к гнезду |
|
State |
состояние гнезда: |
|
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 |
задает последовательность методов преобразования имен |
|
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.
http://pc-inform.ru/articles/Linux_v_Seti_Saga_chetvertaya.html
X-Stranger