Использование сети при работе UNIX-системы (8 глава дипломной работы), страница 4

            Простейшим способом задания соответствия между именами и IP-адресами в UNIX является использование файла /etc/hosts. Этот файл текстового формата содержит список известных системе IP-адресов и соответствующие им имена:

127.0.0.1      localhost

192.168.50.200  orto

192.168.50.7  pe2100

149.76.12.1     phys phys.unc.edu

Редактирование файла /etc/hosts обычно производится вручную средствами произвольного текстового редактора.

            В более масштабных сетях (прежде всего речь идет об Internet) разрешение имен строится на глобальной распределенной базе данных DNS. Каждый узел сети Internet для корректной работы ресолвера должен иметь доступ по крайней мере к одному серверу DNS, который обеспечивает разрешение имен в масштабах всей сети. Для повышения производительности системы рекомендуется указывать в качестве сервера DNS ближайший доступный сервер, т.е. сервер, обращение к которому происходит с минимальной временной задержкой.

            Обычно IP-адрес DNS-сервера, который используется для разрешения имен, может быть задан администратором при помощи стандартных графических утилит настройки сети, в разделе параметров стека TCP/IP.

            В ряде вариантов UNIX присутствует текстовый файл /etc/resolv.conf, в котором определяются параметры процедуры разрешения имен.

8.5 Тестирование и отладка подсистемы TCP/IP

            В системах UNIX существует набор средств, предназначенных для тестирования сетевого комплекса. Многие из этих средств были практически без изменений заимствованы другими операционными системами.

            Простейшей утилитой для проверки доступности некоторого узла сети является утилита ping. Эта команда посылает заданному узлу сети последовательность ICMP-пакетов «эхо-запрос», на которые узел должен ответить пакетами «эхо-ответ». Единственным обязательным параметром команды является IP-адрес или символическое имя хоста, связь с которым подвергается проверке:

            ping 192.168.10.1

     ping orto

     ping aec.neic.nsk.su

Если в качестве параметра указано символическое имя, перед началом генерации последовательности пакетов выполняется стандартная процедура разрешения имени путем обращения к DNS или к файлу /etc/hosts.

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

PING orto (192.168.50.200): 56 data bytes

64 bytes from 192.168.50.200: icmp_seq=0 ttl=255 time=0.7 ms

64 bytes from 192.168.50.200: icmp_seq=1 ttl=255 time=0.4 ms

64 bytes from 192.168.50.200: icmp_seq=2 ttl=255 time=0.5 ms

64 bytes from 192.168.50.200: icmp_seq=3 ttl=255 time=0.4 ms

...

            Прервать генерацию запросов можно комбинацией клавиш <Ctrl>-<C>. После такого завершения выдается краткая статистическая информация о полученных ответах: долю потерянных пакетов, а также минимальное, среднее и максимальное значение задержки:

--- orto ping statistics ---

7 packets transmitted, 7 packets received, 0% packet loss

round-trip min/avg/max = 0.4/0.5/0.7 ms

            Если строки об ответах не выдаются, это означает, что все пакеты «эхо-запрос» теряются. Ситуация может возникнуть в случае, если указанный хост отключен от сети, выключен или иным образом физически недоступен. Если же не отвечает заведомо доступный и работоспособный хост, это может быть симптомом проблемы с подключением к сети того компьютера, на котором запущена утилита ping – неисправности сетевого адаптера, повреждения кабеля, отключения концентратора и т.п.

            Выдача утилитой ping сообщений о недоступности IP-сети получателя обычно свидетельствует о неправильном заполнении маршрутной таблицы.

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

            Кроме того, удаленный хост может оказаться недоступным и по другим причинам – некорректная настройка стека TCP/IP или маршрутной таблицы на самом удаленном узле, на промежуточных узлах (шлюзах) и т.п.

            Конкретная реализация утилиты ping в различных операционных системах может несколько отличаться. В частности, некоторые UNIX-системы (напр., SCO UnixWare) вместо последовательности ответов выдают краткое сообщение о доступности  узла:

            #ping orto

     orto is alive

     #

или его недоступности.

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

            Более детальный анализ доступности хоста можно произвести с помощью утилиты трассировки маршрута - traceroute. Основной формат команды traceroute совпадает с форматом команды ping:

            traceroute 192.168.10.1

     traceroute orto

     traceroute aec.neic.nsk.su

Данная команда также генерирует последовательность ICMP-пакетов «эхо-запрос», но отображает ответы от каждого шлюза, через который проходит маршрут к исследуемому узлу сети. По результатам выполнения команды traceroute можно отследить маршрут, а в случае проблем выявить участок, на котором происходит потеря пакетов или возникает недопустимо большая задержка.

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

            Утилита telnet позволяет установить ТСР-соединение с произвольным ТСР-портом указанного хоста. При этом информация со стандартного ввода (набираемая с клавитатуры) передается в установленное ТСР-соединение, а принимаемые из него данные выдаются на стандартный вывод (отображаются на экране).

            В качестве параметров команды telnet указываются IP-адрес или символическое имя хоста и номер порта:

            telnet 192.168.50.200 25

Если номер порта не указан, подразумевается порт сервиса telnet (23). Вместо номера порта может быть указано символическое обозначение соответствующего сервиса, описанное в конфигурационном файле /etc/services:

            telnet 192.168.50.200 smtp