previous up down next index index
Previous: 4.6.4 Смарт-карты EMV    UP: 4.5.8 Поиск узлов и людей
Down: 6 Сетевая безопасность
    Next: 5.1 Сетевая диагностика с применением протокола SNMP

5 Диагностика локальных сетей и Интернет
Семенов Ю.А. (ГНЦ ИТЭФ)

Номер раздела Название раздела Объем в страницах Объем в кбайт
5 Диагностика локальных сетей и Интернет

15

91

5.1 Сетевая диагностика с применением протокола SNMP

14

209

5.2 Диагностика на базе ICMP

4

23

5.3 Применение 6-го режима сетевого адаптера для целей диагностики

2

12

5.4 Причины циклов пакетов и осцилляции маршрутов

2

14

5.5 Конфигурирование сетевых систем

3

15

Читатели неизбежно делятся на две категории:

а. Администраторы сети, которые формируют сетевую среду (подавляющее меньшинство).
б. Пользователи сети, кто вынужден эту среду осваивать и в ней жить.

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

"Почему не работает электронная почта?" (хотя известно, что вторые сутки за неуплату обесточен весь вычислительный центр). Бывают и сложные: "Как уменьшить задержку отклика, если канал перегружен?"

Число компьютерных сетей увеличивается лавинообразно, растет число больших (>10 ЭВМ) и многопротокольных сетей (Novell, DECnet, TCP/IP, AppleTalk и т.д.). По мере увеличения сети усложняется ее обслуживание и диагностика, с чем сталкивается администратор при первом же отказе. Наиболее сложно диагностировать многосегментные сети, где ЭВМ разбросаны по большому числу помещений, далеко отстоящих друг от друга. По этой причине сетевой администратор должен начинать изучать особенности своей сети уже на фазе ее формирования и готовить себя и сеть к будущему ремонту. При возникновении нештатной ситуации администратор должен суметь ответить на ряд вопросов:

  • связана проблема с оборудованием или программным обеспечением;
  • отказ вызван повреждением программы, неверным выбором конфигурации или ошибочными действиями оператора.

Начинать надо с исчерпывающего документирования аппаратной и программной части сети. Администратор всегда должен иметь под рукой схему сети, отвечающую реальному положению на текущий момент, и подробное описание конфигурации программного обеспечения с указанием всех параметров (физические и IP-адреса всех интерфейсов, маски, имена ЭВМ, маршрутизаторов, значения MTU, MSS, TTL и других системных переменных, типовые значения RTT и других параметров сети, измеренных в разных режимах.).

В пределах локальной сети поиск неисправности возможен с помощью временного деления ее на части. По мере интеграции сети в Интернет такие простые меры становятся недостаточными или недопустимыми. Но не следует пренебрегать такими простыми средствами, как отсутствие обрыва или закоротки сетевого кабеля. Нужно помнить, что сопротивление сегмента толстого коаксиального кабеля не должно превышать 5 Ом, тонкого - 10 Ом, а скрученные пары не должны иметь сопротивление больше 11,8 Ом (22AWG) и соответственно 18,8 Ом (24AWG) из расчета на 100 м.

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

Ниже будет предполагаться, что сеть на физическом уровне использует стандарт Ethernet, а для межсетевой связи протокол TCP/IP (Интернет). Этим перечнем разнообразие сетевых сред не исчерпывается, но многие приемы и программные диагностические средства с успехом могут использоваться и в других случаях. Большинство из рассматриваемых программ работают в среде UNIX, но существуют их аналоги и для других ОС. Сложные (дорогостоящие, но весьма эффективные) аппаратно-программные диагностические комплексы здесь не рассматриваются. Проблемы маршрутизации и конфигурирования системы также выходят за рамки данного рассмотрения.

В Интернет имеется немало общедоступных специализированных диагностических программных продуктов: Etherfind, Tcpdump (lss:os2warez@merlin.itep.ru ftp.ee.lbl.gov/tcpdump.tar.Z, для SUN или BSD 4.4; ftp.ee.lbl.gov.libpcap.tar.Z), netwatch (windom.ucar.edu), snmpman (http://www.smart.is/pub/mirror-indstate/snmp), netguard (oslo-nntp.eunet.no/pub/msdos/winsock/apps), ws_watch (bwl.bwl.th-harmstadt.de /windows/util). Программа tcpdump создана в университете Калифорнии и доступна по адресу ftp.ee.lbl.gov. Эта программа переводит интерфейс ЭВМ в режим приема всех пакетов, пересылаемых по данному сетевому сегменту. Такой режим доступен и для многих интерфейсов IBM/PC (например, популярный NE2000 Eagle, mode=6), но tcpdump на этих машинах не работает. Tcpdump написана на СИ, она отбирает и отображает на экране пакеты, посылаемые и получаемые данным интерфейсом. Критерии отбора могут варьироваться, что позволяет проанализировать выполнение различных сетевых процедур. В качестве параметров при обращении к программе могут использоваться наименования протоколов, номера портов и т.д., например, tcpdump TCP port 25. Существует довольно большое число модификаторов программы (опций). К сожалению для рядовых пользователей программа не доступна - требуются системные привилегии. Описание применения программы можно найти по указанному выше адресу, а также в [10]. Другой полезной служебной программой является sock (socket или sockio). Эта программа способна посылать TCP и UDP пакеты, она может работать в четырех режимах.

  1. Программа устанавливает канал клиент-сервер и переадресует стандартный ввод серверу, а все полученные пакеты от сервера переправляет на стандартный вывод. Пользователь должен специфицировать имя сервера или его адрес и наименование операции или номер порта, ей соответствующий.

  2. Работа в режиме диалогового сервера (опция -s). В этом режиме параметром операции является ее имя или номер порта (или комбинация IP-адреса и номера порта), например: sock -s 100. После установления связи с клиентом программа переадресовывает весь стандартный ввод клиенту, а все что посылается клиентом, отправляет на стандартный вывод.

  3. Режим клиента-отправителя (опция -i). Программа выдает в сеть заданное число раз (по умолчанию 1024) содержимое буфера с объемом в 1024 байта. Опции -n и -w позволяют изменить число и размер посылок.

  4. Режим приема и игнорирования данных из сети (опция -i и -s).

Такие средства входят также и в комплекты поставки большинства стандартных сетевых пакетов для ОС MS-DOS, UNIX, Windows NT, VMS и других: ping, tracetoute, netstat, arp, snmpi, dig (venera.isi.edu /pub), hosts, nslookup, ifconfig, ripquery. Перечисленные выше диагностические программы являются необходимым инструментом для отладки программ, передающих и принимающих пакеты. Сводный перечень конфигурационных и диагностических команд набора протоколов TCP/IP представлен в таблице 5.1.

Таблица 5.1.

Название команды

Назначение

arp

Отображает или модифицирует таблицу протокола ARP (преобразование IP в MAC-адреса)

chnamsv

Служит для изменения конфигурации службы имен на ЭВМ (для TCP/IP)

chprtsv

Изменяет конфигурацию службы печати на ЭВМ-клиенте или сервере

gettable

Получает таблицы ЭВМ в формате NIC

hostent

Непосредственно манипулирует записями адресного соответствия ЭВМ в конфигурационной базе данных системы

hostid

Устанавливает или отображает идентификатор данной ЭВМ

hostname

Устанавливает или отображает имя данной ЭВМ

htable

Преобразует файлы ЭВМ в формат, используемый программами сетевой библиотеки

ifconfig

Конфигурирует или отображает параметры сетевых интерфейсов ЭВМ (для протоколов TCP/IP)

ipreport

Генерирует сообщение о маршруте пакета на основе специфицированного маршрутного файла

iptrace

Обеспечивает отслеживание маршрута движения пакетов на интерфейсном уровне для протоколов Интернет

lsnamsv

Отображает информацию базы данных DNS

lsprtsv

Отображает информацию из базы данных сетевой службы печати

mkhost

Создает файл таблицы ЭВМ

mknamsv

Конфигурирует службу имен клиента (для TCP/IP)

mkprtsv

Конфигурирует службу печати ЭВМ (для TCP/IP)

mktcpip

Устанавливает требуемые величины для запуска TCP/IP на ЭВМ

namerslv

Непосредственно манипулирует записями сервера имен для локальной программы DNS в базе данных конфигурирования системы

netstat

Отображает состояние сети

no

Конфигурирует сетевые опции

rmnamsv

Удаляет TCP/IP службу имен из ЭВМ

rmprtsv

Удаляет службу печати на машине клиента или сервере

route

Служит для ручного манипулирования маршрутными таблицами

ruptime

Отображает состояние каждой ЭВМ в сети

ruser

Непосредственно манипулирует записями в трех отдельных системных базах данных, которые регулируют доступом внешних ЭВМ к программам

securetcpip

Активизирует сетевую безопасность

setclock

Устанавливает время и дату для ЭВМ в сети

slattach

Подключает последовательные каналы в качестве сетевых интерфейсов

timedc

Присылает информацию о демоне timed

trpt

Выполняет отслеживание реализации протокола для TCP-сокетов

Для того чтобы диагностировать ситуацию в сети, необходимо представлять себе взаимодействие различных ее частей в рамках протоколов TCP/IP и иметь некоторое представление о работе Ethernet [4]. Сети, следующие рекомендациям Интернет, имеют локальный сервер имен (DNS, RFC-1912, -1886, -1713, -1706, -1611-12, -1536-37, -1183, -1101, -1034-35; цифры, напечатанные полужирным шрифтом, соответствуют кодам документов, содержащим описания стандартов), служащий для преобразования символьного имени сетевого объекта в его IP-адрес. Обычно эта машина базируется на ОС UNIX. DNS-сервер обслуживает соответствующую базу данных, которая хранит много другой полезной информации. Многие ЭВМ имеют SNMP-резиденты (RFC-1901-7, -1446-5, -1418-20, -1353, -1270, -1157, -1098), обслуживающие управляющую базу данных MIB (RFC-1792, -1748-49, -1743, -1697, -1573, -1565-66, -1513-14, -1230, -1227, -1212-13), содержимое которой поможет также узнать много интересного о состоянии вашей сети. Сама идеология Интернет предполагает богатую диагностику (протокол ICMP, RFC-1256, 1885, -1788, -792).

Протокол ICMP используется в наиболее популярной диагностической программе ping входит в поставку практически всех сетевых пакетов). Возможная форма вызова этой программы имеет вид:

ping <имя или адрес ЭВМ или другого объекта> [размер пакета] [число посылок]

размер пакета задается в байтах (по умолчанию равно 56). Процедура выполнения ping может быть прервана нажатием клавиш ctrl-C. В различных реализациях программа ping имеет много различных опций, которые позволяют измерять статистические характеристики канала (например, потери), определение задержки в канале (RTT), отображение посылаемых пакетов и получаемых откликов, а также определение маршрута до интересующего объекта. Ping используется для определения доступности сервис-провайдера и т.д. Иногда ping является составной частью более мощной диагностической программы (например, netwatch). Ниже приведен пример использования команды tracetoute, которая во многом эквивалентна ping (но базируется непосредственно на IP, используя соответствующие опции):

traceroute kirk.Bond.edu.au (посмотрим, как идут пакеты до этого сервера в Австралии)

(IP-адрес=131.244.1.1 узнан, зондирование начинается, допустимо не более 30 шагов)

traceroute to kirk.Bond.edu.au (131.244.1.1) 30 hops max, 40 byte packets
1 ITEP-FDDI-BBone (193.124.224.50) 2 ms 2 ms 2 ms
2 MSU-Tower-2.Moscow.RU.Radio-MSU.net (194.67.80.65) 3 ms 3 ms 3 ms
3 NPI-MSU.Moscow.RU.Radio-MSU.net (194.67.80.5) 4 ms 3 ms 3 ms
4 NPI-P.Moscow.RU.Radio-MSU.net (194.67.80.18) 4 ms 5 ms 4 ms
5 DESY-P.Hamburg.DE.Radio-MSU.net (194.67.80.14) 317 ms 310 ms 329 ms
6 DESY.Hamburg.DE.Radio-MSU.net (194.67.82.17) 312ms 320ms 312ms (маршрут через Германию)
7 188.1.56.5 (188.1.56.5) 321 ms 357 ms 327 ms
8 188.1.56.10 (188.1.56.10) 347 ms 467 ms 356 ms
9 DE-f0-0.eurocore.bt.net (194.72.24.193) 331 ms 337 ms 331 ms
10 NL-s1-1.eurocore.bt.net (194.72.24.202) 355 ms 435 ms 343 ms
11 NL-f0.dante.bt.net (194.72.24.2) 367 ms 353 ms 573 ms
12 New-York2.dante.net (194.72.26.10) 497ms 493ms 489ms (пересекли Атлантический океан)
13 f1-0.t32-0.New-York.t3.ans.net (204.149.4.9) 546 ms 501 ms 490 ms
14 h5-0.t36-1.New-York2.t3.ans.net (140.223.33.10) 540 ms 506 ms 571 ms
15 * f2.t36-0.New-York2.t3.ans.net (140.223.36.221) 503 ms 505 ms
16 h13.t40-0.Cleveland.t3.ans.net (140.223.37.10) 802 ms 795 ms 523 ms
17 h14.t24-0.Chicago.t3.ans.net (140.223.25.9) 537 ms 509 ms 526 ms
18 h13.t96-0.Denver.t3.ans.net (140.223.25.18) 545 ms 531 ms 545 ms
19 h12.t8-0.San-Francisco.t3.ans.net (140.223.9.17) 853 ms 584 ms 592 ms
20 border2-fddi1-0.SanFrancisco.mci.net (206.157.77.1) 563 ms 591 ms 753 ms
21 telstra-ds3.SanFrancisco.mci.net (204.70.33.10) 691 ms * 691 ms
22 telstra.SanFrancisco.mci.net (204.70.204.6) 759 ms 815 ms 753 ms (достигли Тихого океана)
23 Fddi0-0.pad-core2.Sydney.telstra.net (139.130.249.227) 766 ms 1054 ms 837 ms (океан позади - Австралия!)
24 Serial4-4.cha-core1.Brisbane.telstra.net (139.130.249.202) 781 ms 776 ms 810 ms
25 qld-new.gw.au (139.130.247.227) 836 ms 917 ms 806 ms
26 139.130.5.2 (139.130.5.2) 816 ms 796 ms 811 ms
27 203.22.86.241 (203.22.86.241) 800 ms 787 ms 838 ms
28 203.22.86.194 (203.22.86.194) 850 ms 790 ms 768 ms
29 kirk.Bond.edu.au (131.244.1.1) 781 ms (ttl=226!) 918 ms (ttl=226!) 799 ms (ttl=226!)

Цель достигнута за 29 шагов! (Путь бывает и длиннее, но редко).

Программа traceroute посылает по три пакета с нарастающими значениями TTL, если отклик на пакет не получен печатается символ *. Большие задержки (RTT) в приведенном примере определяются спутниковыми каналами связи (время распространения сигнала до спутника!).

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

Сетевое оборудование, имеющееся в BSD UNIX-системе, описано в документации intro(4), которая доступна через справочную систему man, например:

man - 4 intro | grep Ether (Выделенная строка представляет собой команду, введенную с клавиатуры, следующий за ней текст - отклик ЭВМ на эту команду)
a network interface for the 10-Megabit Ethernet, along with
SunOS supports the 10-Megabit Ethernet as its primary net-
ie ie(4S) Intel 10 Mb/s Ethernet interface
le le(4S) LANCE 10Mb/s Ethernet interface

Для того чтобы получить дополнительную информацию об этих интерфейсах, можно выдать команду dmesg (или просмотреть файл /usr/adm/messages):

dmesg | grep le0
le0 at SBus slot f 0xc00000 pri 6 (onboard)
le0: AUI Ethernet

Работа сетевого обеспечения базируется на нескольких резидентных программах (демонах): routed и gated (маршрутизация), named (сервер имен), inetd (Интернет услуги). Перечень демонов базовых услуг представлен в таблице 5.2.

Таблица 5.2. Основные TCP/IP демоны

Название демона

Назначение

fingerd

Предоставляет информацию об удаленном пользователе

ftpd

Реализует функции сервера передачи файлов (протокол FTP)

gated

Реализует функции маршрутизации шлюза для протоколов RIP, HELLO, EGP, BGP и SNMP

inetd

Реализует управление сетевыми услугами Интернет

named

Реализует услуги сервера имен (DNS)

rexecd

Реализует серверные функции для команд rexec (удаленное исполнение)

rlogind

Реализует серверные функции для команд rlogin (авторизация)

routed

Управляет сетевыми маршрутными таблицами

rshd

Реализует серверные функции для команд удаленного исполнения

rwhod

Реализует серверные функции для команд rwho и ruptime

syslogd

Читает и записывает в журнал сообщения

talkd

Реализует серверные функции для команд talk

telnetd

Реализует серверные функции для протокола TELNET

tftpd

Реализует серверные функции для протокола TFTP

timed

При загрузке системы устанавливает демон timeserver

Конфигурация inetd определяется содержимым файла /etc/inetd.conf. Для ознакомления с содержимым файла достаточно с клавиатуры ввести команду:

head -16 /etc/inetd.conf
# @(#)inetd.conf 1.24 92/04/14 SMI
# Configuration file for inetd(8). See inetd.conf(5).
# To re-configure the running inetd process, edit this file, then
# send the inetd process a SIGHUP.
# Internet services syntax:
# <service_name> <socket_type> <proto> <flags> <user> <server_pathname> <args>
# Ftp and telnet are standard Internet services.

#ftp

stream

tcp

nowait

root

/usr/etc/in.ftpd

in.ftpd

#ftp

stream

tcp

nowait

root

/usr/etc/wrapper.3.9.4/tcpd

in.ftpd -dl

ftp stream tcp nowait root /usr/etc/wrapper.3.9.4/tcpd /usr/local/etc/ftpd -lio

Строки, начинающиеся с символа #, являются комментариями. В данном примере представлена одна информативная строка (их может быть много больше), характеризующая файловый обмен. Каждая строка в этом файле начинается с имени ресурса (в приведенном примере ftp). Далее следует поле типа соединителя (socket): stream (TCP поток байтов); dgram - передача данных в виде UDP-дейтограмм. Следующее поле характеризует протокол, используемый данным видом сервиса (TCP или UDP). За ним идет поле, которое описывает способ реализации процедуры (wait/nowait; для поточных серверов nowait). Следующее поле представляет собой идентификатор пользователя (UID), но обычно пользователем является системный администратор - root. Встречается два исключения. Процедура finger выполняется с UID=nobody или daemon, а uucp использует реальное имя пользователя. За полем uid следует поле сервера (в примере /usr/etc/wrapper.3.9.4/tcpd /usr/local/etc/ftpd). В это поле заносится полное описание пути к программе-серверу, запускаемой inetd. Завершающим полем является поле аргументы, куда записывается строка, передаваемая программе-серверу. Содержимое файла inetd.conf должно быть предметом особой заботы администратора, так как от содержимого этого файла зависит эффективная работа сети и ее безопасность.

Как уже отмечалось выше, одним из важнейших частей любого узла Интернет является сервер имен (DNS). Конфигурация DNS-сервера определяется тремя файлами: named.boot, named.ca и named.local. Зонная информация содержится в файле named.rev, а данные о локальном домене в файле named.hosts. Отладка, контроль и диагностика DNS-сервера осуществляется с использованием программ nslookup (или dig). Рассмотрим пример использования процедуры nslookup (здесь выполнены запросы по серверам имен, по почтовым серверам и по параметрам зоны ответственности):

Nslookup (запуск сервера)
Default Server: ns.itep.ru
Address: 193.124.224.35
set type=NS (запрос данных о серверах имен)
> > Server: ns.itep.ru
Address: 193.124.224.35

eunet.fi

(определяем имя запрашиваемого узла)

Non-authoritative answer:

eunet.fi

nameserver = ns1.EUNET.FI

eunet.fi

nameserver = ns2.EUNET.FI

eunet.fi

nameserver = ns3.eunet.fi

eunet.fi

nameserver = ns.eu.net

eunet.fi

nameserver = ns0.EUNET.FI

Authoritative answers can be found from (официальные данные могут быть получены от):

eunet.fi

nameserver = ns1.EUNET.FI

set type=ANY (запрос всей информации)
..........................................
Non-authoritative answer:

eunet.fi

nameserver = ns1.EUNET.FI

eunet.fi

nameserver = ns2.EUNET.FI

eunet.fi

nameserver = ns3.eunet.fi

eunet.fi

nameserver = ns.eu.net

 

origin = ns1.eunet.fi

 

mail addr = hostmaster.eunet.fi

 

serial = 199607235

 

refresh = 28800 (8 hours)

 

retry = 7200 (2 hours)

 

expire = 604800 (7 days)

 

minimum ttl = 86400 (1 day)

eunet.fi

preference = 10, mail exchanger = pim.eunet.fi (Основной почтовый сервер)

eunet.fi

preference = 50, mail exchanger = mail.eunet.fi

eunet.fi

nameserver = ns0.EUNET.FI

Authoritative answers can be found from:

eunet.fi

nameserver = ns1.EUNET.FI

eunet.fi

nameserver = ns2.EUNET.FI

eunet.fi

nameserver = ns3.eunet.fi

eunet.fi

nameserver = ns.eu.net

eunet.fi

nameserver = ns0.EUNET.FI

ns1.EUNET.FI

internet address = 192.26.119.7

ns2.EUNET.FI

internet address = 192.26.119.4

ns3.eunet.fi

internet address = 192.26.119.4

ns.eu.net

internet address = 192.16.202.11

pim.eunet.fi

internet address = 193.66.4.30

mail.eunet.fi

internet address = 192.26.119.7

ns0.EUNET.FI

internet address = 192.26.119.1

set type=MX

(запрос информации о почтовых серверах)

...................................
Non-authoritative answer:

eunet.fi

preference = 50, mail exchanger = mail.eunet.fi

(имена почтовых серверов)

eunet.fi

preference = 10, mail exchanger = pim.eunet.fi

 

(Параметр preference характеризует степень предпочтения почтового сервера, чем он ниже - тем выше предпочтение.)

Authoritative answers can be found from:

eunet.fi

nameserver = ns1.EUNET.FI

eunet.fi

nameserver = ns2.EUNET.FI

eunet.fi

nameserver = ns3.eunet.fi

eunet.fi

nameserver = ns.eu.net

eunet.fi

nameserver = ns0.EUNET.FI

mail.eunet.fi

internet address = 192.26.119.7

pim.eunet.fi

internet address = 193.66.4.30

ns1.EUNET.FI

internet address = 192.26.119.7

ns2.EUNET.FI

internet address = 192.26.119.4

ns3.eunet.fi

internet address = 192.26.119.4

ns.eu.net

internet address = 192.16.202.11

ns0.EUNET.FI

internet address = 192.26.119.1

set type=SOA (запрос параметров, зоны сервера имен, см. RFC-1034-35)
.......................................
Non-authoritative answer (см. документы RFC-1034-35):

 

origin = ns1.eunet.fi

 

mail addr = hostmaster.eunet.fi

 

serial = 199607235

 

refresh = 28800 (8 часов)

 

retry = 7200 (2 часа)

 

expire = 604800 (7 дней)

 

minimum ttl = 86400 (1 день)

Authoritative answers can be found from:

eunet.fi

nameserver = ns1.EUNET.FI

eunet.fi

nameserver = ns2.EUNET.FI

eunet.fi

nameserver = ns3.eunet.fi

eunet.fi

nameserver = ns.eu.net

eunet.fi

nameserver = ns0.EUNET.FI

ns1.EUNET.FI

internet address = 192.26.119.7

ns2.EUNET.FI

internet address = 192.26.119.4

ns3.eunet.fi

internet address = 192.26.119.4

ns.eu.net

internet address = 192.16.202.11

ns0.EUNET.FI

internet address = 192.26.119.1

>exit

(команда выхода из nslookup)

Рассмотренный пример показывает, что DNS-сервер весьма важный объект узла, от него зависит скорость обслуживания запросов и надежность системы в целом. Именно по этой причине помимо основного любой узел имеет несколько вторичных DNS-серверов.

Программа dig функционально является аналогом nslookup, но в прикладном плане имеет определенные отличия, она снабжена рядом полезных опций (таблица 5.3):

Таблица 5.3 Опции программы dig

Тип запроса

Запись DNS-сервера

a

Адресная запись

any

Любой тип записи

axfr

Все записи, относящиеся к зоне

hinfo

Записи, характеризующие ЭВМ

mx

Записи, определяющие почтовый обмен

ns

Записи сервера имен

soa

Начало записей для зоны ответственности DNS-сервера

txt

Текстовые записи

Ниже приведен пример использования команды dig для сервера имен узла DESY (Гамбург):

dig @vxdesy.desy.de ns
; <<>> DiG 2.0 <<>> @vxdesy.desy.de ns
; (3 servers found)
;; res options: init recurs defnam dnsrch
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr rd ra; Ques: 1, Ans: 9, Auth: 9, Addit: 9
;; QUESTIONS:
;;., type = NS, class = IN
;; ANSWERS:

.

185470

NS

A.ROOT-SERVERS.NET.

.

185470

NS

H.ROOT-SERVERS.NET.

.

185470

NS

B.ROOT-SERVERS.NET.

.

185470

NS

C.ROOT-SERVERS.NET.

.

185470

NS

D.ROOT-SERVERS.NET.

.

185470

NS

E.ROOT-SERVERS.NET.

.

185470

NS

I.ROOT-SERVERS.NET.

.

185470

NS

F.ROOT-SERVERS.NET.

.

185470

NS

G.ROOT-SERVERS.NET.

;; AUTHORITY RECORDS:

.

185470

NS

A.ROOT-SERVERS.NET.

.

185470

NS

H.ROOT-SERVERS.NET.

.

185470

NS

B.ROOT-SERVERS.NET.

.

185470

NS

C.ROOT-SERVERS.NET.

.

185470

NS

D.ROOT-SERVERS.NET.

.

185470

NS

E.ROOT-SERVERS.NET.

.

185470

NS

I.ROOT-SERVERS.NET.

.

185470

NS

F.ROOT-SERVERS.NET.

.

185470

NS

G.ROOT-SERVERS.NET.

;; ADDITIONAL RECORDS:

A.ROOT-SERVERS.NET.

531366

A

198.41.0.4

H.ROOT-SERVERS.NET

531366

A

128.63.2.53

B.ROOT-SERVERS.NET.

531366

A

128.9.0.107

C.ROOT-SERVERS.NET.

578733

A

192.33.4.12

D.ROOT-SERVERS.NET.

578733

A

128.8.10.90

E.ROOT-SERVERS.NET.

547664

A

192.203.230.10

I.ROOT-SERVERS.NET.

578733

A

192.36.148.17

F.ROOT-SERVERS.NET.

531366

A

192.5.5.241

G.ROOT-SERVERS.NET.

531366

A

192.112.36.4

;; FROM: ns.itep.ru to SERVER: vxdesy.desy.de 131.169.30.46
;; WHEN: Thu Jul 25 12:07:54 1996
;; MSG SIZE sent: 17 rcvd: 429

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

ifconfig le0

le0: flags=863<UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST>
inet 193.124.224.35 netmask ffffffe0 broadcast 193.124.224.32

Флаг UP означает, что интерфейс готов к использованию, DOWN указывает на необходимость перевода интерфейса в состояние UP с помощью команды ifconfig le0 up. Если эта команда не проходит, следует проверить соединительный кабель или сам интерфейс. Флаг RUNNING говорит о том, что интерфейс работает. При отсутствии этого флага следует проверить правильность инсталляции. Флаг BROADCAST указывает на то, что интерфейс поддерживает широковещательный режим адресации (MULTICAST - допускает многоадресное обращение). Флаг NOTRAILERS - показывает, что интерфейс не поддерживает trailer-инкапсуляцию (Ethernet). Вторая строка отклика на команду начинается с ключевого слова inet (Интернет) и содержит IP-адрес, маску субсети и широковещательный адрес. На ошибку в задании маски субсети указывает факт доступности удаленных ЭВМ и машин локальной субсети при недоступности ЭВМ соседних субсетей. При неверном задании IP-адреса возможны самые разные ошибки. При неверной сетевой части адреса команда Ping будет вызывать ошибку типа "no answer". Ошибка же в части адреса, характеризующей ЭВМ, может быть не замечена в течение длительного времени, если носителем ошибочного адреса является персональная ЭВМ, обращений к которой извне не происходит. Определенное время можно использовать и чужой IP-адрес. Такого рода ошибки не могут быть выявлены с помощью ifconfig, здесь хорошую службу может оказать программа arp (см. описание протокола в RFC-826). Эта программа позволяет анализировать преобразование IP-адресов в физические (Ethernet). Она имеет несколько полезных опций (возможны вариации для разных реализаций и ОС):

-a

отображает содержимое всей ARP-таблицы

-d <имя ЭВМ>

удаляет запись из ARP-таблицы

-s <имя ЭВМ> <Ethernet-адрес>

добавляет новую запись в таблицу

Ниже приведен пример исполнения команды arp, которая печатает имя объекта, его IP- и физический адреса (следует иметь в виду, что содержимое ARP-таблиц изменяется со временем, время хранения записи задается администратором сети):

arp -a

itepgw.itep.ru

(193.124.224.33) at 0:0:c:2:3a:49

ITEP-FDDI-BBone.ITEP.RU

(193.124.224.50) at 0:0:c:2:fb:c5

RosNET-Gw.ITEP.Ru

(193.124.224.37) at 0:c0:14:10:1:cd

nb.itep.ru

(193.124.224.60) at 0:80:ad:2:24:b7

Указанием на наличие ошибки в ARP-таблице может служить сообщение о недоступности или неизвестности ЭВМ при выполнении команд типа FTP или telnet. Такие сообщения возможны, например, при использовании одного и того же IP-адреса двумя ЭВМ. Все зависит от того, какая из машин успела "прописаться" в ARP-таблице раньше. Просматривая таблицу, администратор может заметить, что одному и тому же IP-адресу временами соответствуют разные физические адреса. Легальность адреса может быть проверена с помощью содержимого файла /etc/ethers. Первые три байта физического адреса характеризуют производителя интерфейса (см. Assigned Numbers, RFC-1700), что может помочь найти "IP-двойника". Если анализ ARP-таблицы не помог, попробуйте войти в ЭВМ, соответствующую подозрительному адресу, с помощью команды telnet. Если ЭВМ допускает удаленный доступ, характер входного сообщения поможет разобраться, что это за машина.

Одной из наиболее информативных команд является netstat (за исчерпывающим описанием опций и методов применения отсылаю к документации на ваше сетевое программное обеспечение). Эта команда может вам дать информацию о состоянии интерфейсов на ЭВМ, где она исполнена:

netstat -i

Name

Mtu

Net/Dest

Address

Ipkts

Ierrs

Opkts

Oerrs

Collis

Queue

le0

1500

193.124.224.32

ns

966204

0

584033

0

846

0

lo0

1536

127.0.0.0

127.0.0.1

4191

0

4191

0

0

0

Name - имя интерфейса, если в этом поле стоит *, это означает, что интерфейс в состоянии down; Net/Dest - показывает IP-адрес сети или ЭВМ, куда интерфейс осуществляет доступ; Address - IP-адрес интерфейса; Ipkt - число принятых пакетов; Ierr - число ошибок при приеме пакетов; Opkts - число отправленных пакетов через данный интерфейс, Oerrs - число ошибок при отправке; Collis - число столкновений в сегменте Ethernet, зафиксированных интерфейсом; Queue - длина очереди пакетов, ждущих отправки. Программа nrtstat позволяет ознакомиться и с маршрутной таблицей:

netstat -nr

Маршрутная таблица

Место назначения

Маршрутизатор

Флаги

Refcnt

Use

Интерфейс

192.148.166.185

193.124.224.33

UGHD

0

0

le0

192.148.166.161

193.124.224.33

UGHD

0

0

le0

192.148.166.97

193.124.224.33

UGHD

0

0

le0

192.148.166.177

193.124.224.33

UGHD

0

0

le0

192.148.166.129

193.124.224.33

UGHD

1

192

le0

192.148.166.145

193.124.224.33

UGHD

0

72

le0

192.148.166.170

193.124.224.33

UGHD

0

4

le0

192.148.166.26

193.124.224.60

UGHD

0

19

le0

192.148.166.131

193.124.224.33

UGHD

0

0

le0

192.148.166.140

193.124.224.33

UGHD

0

0

le0

192.148.166.173

193.124.224.33

UGHD

0

2

le0

192.148.166.182

193.124.224.33

UGHD

0

20

le0

192.148.166.142

193.124.224.33

UGHD

0

300

le0

Колонка место назначения указывает на конечную точку маршрута, колонка маршрутизатор - имя маршрутизатора, через который достижим адресат. Флаг "U" (Up) свидетельствует о том, что канал в рабочем состоянии. Флаг "G" указывает на то, что маршрут проходит через маршрутизатор (gateway). При этом вторая колонка таблицы содержит имя этого маршрутизатора или его адрес. Если флаг "G" отсутствует, ЭВМ непосредственно связана с указанной сетью. Флаг "D" указывает на то, что маршрут был добавлен динамически. Если маршрут связан только с конкретной ЭВМ, а не с сетью, он помечается флагом "H" (host), при этом первая колонка таблицы содержит его IP-адрес. Флаг "M" указывает на то, что маршрут был изменен с помощью сообщения о переадресации. Флаг <null> говорит о том, что адресат достижим непосредственно.

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

netstat -r 194.85.112.34

input packets

(le0) errs

output packets

errs

colls

input packets

Total errs

Output packets

errs

colls

7636610

0

4578719

0

5918

7674851

0

4616960

0

5918

Это может быть полезно при экспресс диагностике внешних каналов связи, когда простого ping или traceroute оказалось недостаточно. Если возникло подозрение относительно маршрутизации пакетов, можно сначала проверить работает ли программа gated, для этого выдайте команду:

ps 'cat /etc/gated.pid'

после чего обратитесь к системному администратору :-).

Если нужно получить информацию о смонтированных файловых системах, вы можете воспользоваться командой:

showmount -e ns (ns - имя ЭВМ)
export list for ns.itep.ru:
/u1/SunITEP saturn.itep.ru,suncom.itep.ru

Крайне полезна для контроля конфигурации системы команда host, она имеет много опций и с ее помощью можно узнать о доступных типах услуг, об именах и IP-адресах почтовых серверов и серверов имен, о кодах их предпочтения и т.д..

host -a vitep5
Trying domain "itep.ru"
rcode = 3 (Non-existent domain), ancount=0
Trying null domain
rcode = 0 (Success), ancount=6

vitep5.itep.ru

86400

IN

WKS

192.148.166.198 tcp ftp telnet

 

vitep5.itep.ru

86400

IN

HINFO

VAX-8530

VMS 5.3

vitep5.itep.ru

86400

IN

MX

15

mx.itep.ru

vitep5.itep.ru

86400

IN

MX

200

relay1.kiae.su

vitep5.itep.ru

86400

IN

MX

210

relay2.kiae.su

vitep5.itep.ru

86400

IN

A

192.148.166.198

 

Additional information:

relay1.kiae.su

18938 IN

A

193.125.152.6

relay1.kiae.su

18938 IN

A

193.125.152.1

relay2.kiae.su

18938 IN

A

193.125.152.1

Во второй колонке данной выдачи указано время жизни пакетов (TTL) в секундах. Значение TTL в первых строках соответствует суткам (24x60x60=86400). IN в следующей колонке указывает на принадлежность к классу Интернет. В четвертой колонке проставлены указатели типов запроса. В пятой колонке идут названия серверов, IP-адреса ЭВМ и коды предпочтения (15, 200 и 210). Более подробно о возможностях этой команды можно ознакомиться в [11].

В последнее время появилось несколько комплексных (общедоступных) пакетов диагностики (NetWatch, WS_watch, SNMPMAN, Netguard и др.). Некоторые из этих пакетов позволяют построить графическую модель тестируемой сети, выделяя цветом или с помощью вариации картинок работающие ЭВМ. Программы, использующие протокол SNMP, проверяют наличие посредством специального запроса доступность SNMP-демона, с помощью ICMP-протокола определяют работоспособность ЭВМ, после чего отображают переменные и массивы данных из управляющей базы данных MIB (если эта база имеет уровень доступа public). Это может делаться автоматически или по запросу оператора. SNMP-протокол позволяет мониторировать вариации загрузки отдельных сегментов сети пакетами UDP, TCP, ICMP и т.д., регистрируя количество ошибок по каждому из активных интерфейсов. Для решения этой задачи можно использовать соответствующую программу, которая регулярно опрашивает MIB интересующих вас ЭВМ, а полученные числа заносятся в соответствующий банк данных. При возникновении нештатной ситуации администратор сети может просмотреть вариации потоков в сегментах сети и выявить время и причину сбоя в системе. Аналогичные данные можно получить с помощью программы, переводящей интерфейс Ethernet в режим приема всех пакетов (mode=6). Такая программа допускает получение данных по всем типам пакетов, циркулирующих в данном кабельном сегменте. Введя в программу определенные фильтры (отбор по IP-адресам отправителей, получателей, по широковещательным запросам или определенным протоколам) можно узнать много полезного о своей сети. К сожалению, этот метод пригоден только в отношении логического сегмента, к которому подключена ваша ЭВМ. Такие программы могут использоваться для контроля сетевых ресурсов, если ЭВМ размещена на соответствующем сегменте, что может оказаться актуально в связи с коммерциализацией сетевых услуг. По этой причине метод диагностики через SNMP-резидентов более универсален. Упомянутые в начале программы Tcpdump и Etherfind крайне полезны для отладки программ, работающих с сетевыми пакетами. Они позволяют отображать все входящие и посылаемые пакеты. Следует иметь в виду, что эти программы потенциально опасны с точки зрения несанкционированного доступа и, поэтому их применение часто возможно только для привилегированных пользователей. Работа интерфейса в режиме перехвата всех пакетов также представляет угрозу безопасности сети (возможность получения чужих паролей). С учетом этого обстоятельства должно приветствоваться использование программного обеспечения, где содержимое пакетов терминального обмена подвергается шифрованию-дешифрованию.

Определенный интерес может представлять диагностическая программа ttcp, которая позволяет измерять некоторые характеристики TCP- или UDP-обменов между двумя узлами (ftp.sgi.com, каталог sgi/src/ttcp или vgr.brl.mil ftp/pub/ttcp.c).

Перечисленные режимы работают в рамках протокола TCP, для исследования процессов, требующих UDP, следует использовать опцию -u. Существует множество других опций, обеспечивающих реализацию самых разнообразных режимов работы (см. [10] и справочные руководства на вашей ЭВМ).

Конфигурация сети и режимы ее работы определяются системными переменными, которые задаются администратором сети. Имена этих сетевых переменных для разных ЭВМ и программных пакетов варьируются. Ниже будут перечислены основные переменные, определяющие работу TCP/IP протоколов для SunOS 4.1.3.

IPFORWARDING - значение этой константы инициализирует системную переменную ip_forwarding. Если она равна -1, IP-дейтограммы никогда не переадресуются, а переменная уже никогда не меняется. Если же она равна 0 (значение по умолчанию), IP-дейтограммы не переадресуются. Переменная принимает значение 1, когда доступны несколько интерфейсов. При значении константы, равном 1, переадресация всегда разрешена.

SUBNETSARELOCAL - константа, определяющая начальное значение переменной ip_subnetsarelocal. Если она равна 1 (по умолчанию), то IP-адрес места назначения с идентификатором сети, идентичным с тем, что имеет ЭВМ- отправитель, считается локальным вне зависимости от идентификатора субсети. Если константа равна нулю, то локальным будет считаться только адрес, принадлежащий данной субсети (при совпадении идентификаторов сети и субсети).

IPSENDREDIRECTS - константа, используемая для определения стартового значения переменной ip_sendredirects. Если константа равна 1, (по умолчанию) ЭВМ при выполнении процедуры forward посылает ICMP-сообщения о переадресации. При равенстве нулю ICMP-сообщения не посылаются.

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

Ряд системных переменных содержится в файле in_proto каталога /usr/kvm/sys/netinet. При изменении этих переменных система должна быть перезагружена.

tcp_default_mss значение MSS протокола TCP для нелокальных адресатов, по умолчанию равна 512.

tcp_keepidle определяет число 500 мс тактов между посылками запросов о работоспособности. По умолчанию равна 14400 (2 час.).

tcp_keepintvl определяет число 500 мс тактов между посылками запросов о работоспособности, когда не получено никакого отклика. По умолчанию эта переменная равна 150 (75сек).

tcp_keeplen используется для обеспечения совместимости с ранними версиями (4.2BSD), должна равняться 1.

tcp_nodelack при неравенстве нулю требует отправки немедленного отклика (ACK), по умолчанию равна нулю.

tcp_recvspace определяет размер входного TCP-буфера и влияет на величину окна. По умолчанию эта переменная равна 4096.

tcp_sendspace определяет размер выходного TCP-буфера, по умолчанию равна 4096.

tcp_ttl задает значение поля TTL в TCP-сегменте, по умолчанию имеет значение 60.

udp_cksum при неравенстве нулю требует вычисления контрольной суммы для отправляемых UDP-дейтограмм и проверки контрольных сумм для получаемых UDP-дейтограмм, если поле контрольной суммы не равно нулю. По умолчанию переменная равна нулю.

udp_recvspace определяет размер входного UDP-буфера, по умолчанию равна 18000, что соответствует двум 9000-байтным дейтограммам.

udp_sendspace задает объем выходного UDP-буфера, ограничивая предельную длину посылаемой дейтограммы. По умолчанию переменная равна 9000.

udp_ttl определяет значение поля TTL для UDP-дейтограмм, значение по умолчанию - 60.

Для изменения значений этих переменных необходимо иметь системные привилегии.

Previous: 4.6.4 Смарт-карты EMV    UP: 4.5.8 Поиск узлов и людей
Down: 6 Сетевая безопасность    Next: 5.1 Сетевая диагностика с применением протокола SNMP