А АSunday, 3 March 2024

Работа с сетью в командной строке Windows, #4.

Всем привет.

Продолжаем рассматривать сетевые утилиты командной строки Windows, сегодня у нас в фокусе NSLOOKUP, PATHPING, PING, ROUTE, TELNET и  TRACERT.

Утилита NSLOOKUP

    Утилита NSLOOKUP присутствует во всех версиях операционных систем Windows и является классическим средством диагностики сетевых проблем, связанных с разрешением доменных имен в IP-адреса. NSLOOKUP предоставляет пользователю возможность просмотра базы данных DNS-сервера и построения определенные запросов, для поиска нужных ресурсов DNS. Практически, утилита выполняет функции службы DNS-клиент в командной строке Windows. 

После запуска, утилита переходит в режим ожидания ввода. Ввод символа ? или команды help позволяет получить подсказку по использованию утилиты.

Примеры использования:

nslookup - запуск утилиты

google.com. - отобразить IP-адрес (а) узла с именем google.com . Точка в конце имени желательна для минимизации числа запросов на разрешение имени к серверу DNS. Если завершающей точки нет, то NSLOOKUP сначала попытается разрешить указанное имя как часть доменного имя компьютера, на котором она запущена. 

server 8.8.4.4 - установить в качестве сервера имен DNS-сервер Google с IP-адресом 8.8.4.4 

google.com. - повторить запрос с использованием разрешения имени DNS-сервером Google.

set type=MX - установить тип записи MX

google.com. - отобразить MX-запись для домена google.com - В примере узел обмена почтой для домена - mx.google.com

mx.google.com. - отобразить информацию по mx.google.com

set type=A - установить тип записи в A 

mx.google.com - получить IP-адреса для mx.google.com .

exit - завершить работу с nslookup


Возможно использование утилиты NSLOOKUP не в интерактивном режиме:

nslookup odnoklassniki.ru - определить IP-адрес узла odnokassniki.ru с использованием сервера DNS, заданного настройками сетевого подключения.

nslookup odnoklassniki.ru 8.8.8.8 - определить IP-адрес узла odnokassniki.ru с использованием DNS-сервера 8.8.8.8 (публичный DNS-сервер Google) 

nslookup 8.8.8.8 - определить имя узла, IP-адрес которого равен 8.8.8.8 с использованием DNS-сервера, заданного настройками сетевого подключения. 


Утилита PATHPING

    Команда PATHPING выполняет трассировку маршрута к конечному узлу аналогично команде TRACERT , но дополнительно, выполняет отправку ICMP-эхо запросов на промежуточные узлы маршрута для сбора информации о задержках и потерях пакетов на каждом из них. 

При запуске PATHPING без параметров, отображается краткая справка:

pathping [-g Список] [-h Число_прыжков] [-i Адрес] [-n] [-p Пауза] [-q Число_запросов] [-w Таймаут] [-P] [-R] [-T] [-4] [-6] узел 

Параметры:

-g Список При прохождении по элементам списка узлов игнорировать предыдущий маршрут. Максимальное число адресов в списке равно 9 . Элементы списка помещаются в специальное поле заголовка отправляемых ICMP-пакетов.

-h Число_прыжков - Максимальное число прыжков при поиске узла. Значение по умолчанию - 30

-i Адрес - Использовать указанный адрес источника в отправляемых ICMP-пакетах. 

-n - Не разрешать адреса в имена узлов.

-p Пауза - Пауза между отправками (мсек) пакетов. Значение по умолчанию - 250.

-q Число_запросов Число запросов для каждого узла. По умолчанию - 100 

-w Таймаут - Время ожидания каждого ответа (мсек). Значение по умолчанию - 3000 

-R - Тестировать возможность использования RSVP ( Reservation Protocol, протокола настройки резервирования ресурсов), который позволяет динамически выделять ресурсы для различных видов трафика.

-T - Тестировать на возможность использования QoS (Quality of Service - качество обслуживания) - системы обслуживания пакетов разного содержания с учетом их приоритетов доставки получателю. 

-4 - Принудительно использовать IPv4.

-6 - Принудительно использовать IPv6. 


Практически, PATHPING, запущенная на выполнение с параметрами по умолчанию, выполняет те же действия, что и команда TRACERT плюс команды PING для каждого промежуточного узла с указанием числа эхо-запросов, равным 100 (ping -n 100 . . . )

Пример результатов выполнения команды pathping google.com :

Трассировка маршрута к google.com [77.88.21.11] с максимальным числом прыжков 30:

1 192.168.1.1 

2 180.84.250.11

3 180.84.250.53 

4 80.184.112.25 

5 msk-ix-m9.yandex.net [193.232.244.93] 

6 l3-s900-dante.yandex.net [213.180.213.70] 

7 s600-s900.yandex.net [213.180.213.54] 

8 google.com [77.88.21.11] 

Подсчет статистики за: 200 сек. . . .

                                    Исходный узел             Маршрутный узел

Прыжок       RTT          Утер./Отпр. %          Утер./Отпр. %                Адрес


1                   1мс              0/ 100 = 0%              0/ 100 = 0%          192.168.1.1

                                                                           0/ 100 = 0%           | 

2                   5мс              0/ 100 = 0%              0/ 100 = 0%          180.84.250.11 

                                                                           0/ 100 = 0%           | 

3                   11мс            0/ 100 = 0%              3/ 100 = 3%          180.84.250.53 

                                                                           8/ 100 = 8%           | 

4                   4мс              0/ 100 = 0%              0/ 100 = 0%          80.184.112.25 

                                                                           0/ 100 = 0%           | 

5                   8мс              0/ 100 = 0%              0/ 100 = 0%          msk-ix-m9.yandex.net [193.232.244.93] 

                                                                           0/ 100 = 0%           | 

6                   12мс            0/ 100 = 0%              0/ 100 = 0%          l3-s900-dante.yandex.net [213.180.213.70] 

                                                                           0/ 100 = 0%           | 

7                   5мс              0/ 100 = 0%              0/ 100 = 0%          s600-s900.yandex.net [213.180.213.54] 

                                                                           0/ 100 = 0%           | 

8                   2мс              0/ 100 = 0%              0/ 100 = 0%          google.com [77.88.21.11] 


В приведенном примере красным цветом выделен проблемный участок маршрута к конечному узлу с потерей 8% пакетов. 

При интерпретации результатов выполнения pathping нужно учитывать тот факт, что некоторые маршрутизаторы могут быть настроены на блокировку icmp-трафика, что не позволяет правильно отработать трассировку, и получить по ним статистические данные. 


Утилита PING

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

Для обмена служебной и диагностической информацией в сети используется специальный протокол управляющих сообщений ICMP (Internet Control Message Protocol). Команда ping позволяет выполнить отправку управляющего сообщения типа Echo Request (тип равен 8 и указывается в заголовке сообщения) адресуемому узлу и интерпретировать полученный от него ответ в удобном для анализа виде. В поле данных отправляемого icmp-пакета обычно содержатся символы английского алфавита. В ответ на такой запрос, опрашиваемый узел дожжен отправить icmp-пакет с теми же данными, которые были приняты, и типом сообщения Echo Reply (код типа в заголовке равен 0) . Если при обмене icmp-сообщениями возникает какая-либо проблема, то утилита ping выведет информацию для ее диагностики.


Формат командной строки:

ping [-t] [-a] [-n число] [-l размер] [-f] [-i TTL] [-v TOS] [-r число] [-s число] [[-j списокУзлов] | [-k списокУзлов]] [-w таймаут] конечноеИмя

Параметры:

-t - Непрерывная отправка пакетов. Для завершения и вывода статистики используются комбинации клавиш Ctrl + Break (вывод статистики), иCtrl + C (вывод статистики и завершение).

-a - Определение адресов по именам узлов. -n число - Число отправляемых эхо-запросов.

-l размер - Размер поля данных в байтах отправляемого запроса.

-f - Установка флага, запрещающего фрагментацию пакета.

-i TTL - Задание срока жизни пакета (поле "Time To Live").

-v TOS - Задание типа службы (поле "Type Of Service").

-r число - Запись маршрута для указанного числа переходов.

-s число - Штамп времени для указанного числа переходов.

-j списокУзлов - Свободный выбор маршрута по списку узлов.

-k списокУзлов - Жесткий выбор маршрута по списку узлов.

-w таймаут - Максимальное время ожидания каждого ответа в миллисекундах.


Примеры использования:

ping 8.8.8.8 - выполнить опрос узла с IP-адресом 8.8.8.8 с параметрами по умолчанию.

ping -t google.com - выполнять ping до нажатия комбинации CTRL+C, При нажатии CTRL+Break - выдается статистика и опрос узла продолжается

ping -n 1000 -l 500 192.168.1.1 - выполнить ping 1000 раз с использованием сообщений, длиной 500 байт.

ping -a -n 1 -r 9 -w 1000 google.com - выполнить ping 1 раз (ключ -n 1), определять адрес по имени (ключ -a), выдавать маршрут для первых 9 переходов (-r 9), ожидать ответ 1 секунду (1000мсек) 

Использование ключа -r позволяет получить трассировку маршрута, аналогичную получаемой с помощью команды tracert, но число промежуточных узлов не может превышать 9 . 


Утилита ROUTE

    Утилита ROUTE.EXE используется для просмотра и модификации таблицы маршрутов на локальном компьютере. При запуске без параметров, на экран выводится подсказка по использованию route:

route [-f] [-p] [команда [конечная_точка] [mask маска_сети] [шлюз] [metric метрика]] [if интерфейс]] 

-f - используется для сброса таблицы маршрутизации. При выполнении команды route -f из таблицы удаляются все маршруты, которые не относятся к петлевому интерфейсу (IP 127.0.0.1 маска -255.0.0.0), не являются маршрутами для многоадресной (multicast) рассылки (IP 224.0.0.1 маска 255.0.0.0) и не являются узловыми маршрутами (маска равна 255.255.255.255) . 

-p - используется для добавления в таблицу постоянного маршрута. Если маршрут добавлен без использования параметра -p то он сохраняется только до перезагрузки системы (до перезапуска сетевого системного программного обеспечения). Если же, при добавлении маршрута искользовался данный параметр, то информация о маршруте записывается в реестр Windows (раздел HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes ) и будет использоваться постоянно при активации сетевых интерфейсов.

команда - козможно использование команд add - добавление маршрута, change - изменение существующего маршрута, delete - удаление маршрута или маршрутов, print - отображение текущей таблицы маршрутов

конечная_точка - IP-адрес, адрес сети или адрес 0.0.0.0 для шлюза по умолчанию. 

mask маска_сети - маска сети. 

шлюз - IP-адрес шлюза, через который будет выполняться отправка пакета для достижения конечной точки. 

metric число - значение метрики (1-9999). Метрика представляет собой числовое значение, позволяющее оптимизировать доставку пакета получателю, если конечная точка маршрута может быть достижима по нескольким разным маршрутам. Чем меньше значение метрики, тем выше приоритет маршрута. 

if интерфейс - идентификатор сетевого интерфейса. Может задаваться в виде десятичного или шестнадцатеричного числа. Посмотреть идентификаторы можно с помщью команды route print 


Примеры : 

route print - отобразить текущую таблицу маршрутов

route print 192.* - отобразить таблицу маршрутов только для адресов, начинающихся с 192. 

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 - установить в качестве шлюза по умолчанию (основного шлюза) адрес 192.168.1.1

route -p add 10.0.0.0 mask 255.0.0.0 10.0.0.1 - добавить маршрут для подсети 10.0.0.0/255.0.0.0 и запомнить его в реестре . Постоянный статический маршрут.

route delete 10.0.0.0 mask 255.0.0.0 - удалить маршрут для подсети 10.0.0.0/255.0.0.0 .

route add 10.10.10.10 192.168.1.158 - добавить маршрут для узла с IP-адресом 10.10.10.10 . Если маска в команде не задана, то подразумевается ее значение равное 255.255.255.255 , т.е конечная точка назначения является одиночным IP-адресом узла.

route delete 10.10.10.10 - удалить маршрут созданный предыдущей командой 

route change 10.0.0.0 mask 255.0.0.0 10.10.10.1 - изменить адрес перехода для существующего маршрута к сети 10.0.0.0/255.0.0.0 на значение 10.10.10.1

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


Утилита TELNET

    На заре развития сети Интернет, сервис TELNET был основным средством удаленной работы пользователей, реализующим взаимодействие терминала с процессом на удаленном компьютере. На сегодняшний день, TELNET, в основном, используется как средство удаленного администрирования специализированных сетевых устройств. Сервис TELNET входит в состав практически всех сетевых операционных систем и реализован в виде программного обеспечения сервера Telnet и клиентской оболочки с текстовым или графическим интерфейсом. Подключившись к серверу, удаленный пользователь получает доступ к командной строке, поддерживаемой сервером, таким же образом, как если-бы он работал с локальным терминалом. Утилита TELNET работает поверх протокола TCP и позволяет пользователю подключиться к удаленному узлу не только на стандартный порт 23, но и на любой другой TCP-порт, тем самым, позволяя взаимодействовать с любым приложением, управляемым командной строкой. Так, например, с использованием утилиты telnet можно подключиться к серверам, поддерживающим текстовый (telnet-like) ввод команд и данных - SMTP, POP3, IMAP и т.п. Кроме этого, утилиту можно использовать в качестве средства грубой проверки возможности подключения на любой TCP-порт (проверки слушается ли определенный порт TCP). 

При запуске TELNET.EXE без параметров, программа переходит в интерактивный режим, ожидая ввода команд пользователем. Для получения списка доступных команд используется ввод знака вопроса или /h . Набор доступных команд может отличаться для разных версий telnet, но всегда будут присутствовать команды подключения к удаленному узлу (open ), закрытия существующего подключения (close ), установки (set ) и сброса (unset параметров. 

set ? - отобразить текущие параметры сессии. Отображаются параметры, связанные с эмуляцией терминала, режима отображения вводимых символов (локального эха), интерпретацией управляющих последовательностей символов, способа аутентификации. 

open 192.168.1.1 - подключиться к серверу TELNET узла 192.168.1.1

open 192.168.1.1 25 - подключиться к серверу, слушающему порт 25/TCP узла 192.168.1.1

После подключения к удаленному серверу, вводимые с клавиатуры символы будут передаваться на обработку удаленной системе и, для возврата в командную строку telnet , требуется ввод специальной комбинации клавиш переключения режима (Escape character) - по умолчанию это CTRL-] . Для выхода из telnet используется команда quit. 

На практике, как правило, используется запуск telnet с параметрами по умолчанию и с указанием имени или IP-адреса и номера порта TCP удаленной системы.

telnet 192.168.1.1 - подключиться к серверу telnet узла 192.168.1.1 

telnet google.com 80 - подключиться к серверу HTTP (TCP порт 80) узла google.com 

Если подключение невозможно, то утилита telnet завершится сообщением:

Не удалось открыть подключение к этому узлу на порт . . . Сбой подключения. 

Если имя или IP-адрес в командной строке достижимы, то такое сообщение говорит о том, что заданный порт не слушается удаленной системой ( или закрыт брандмауэром) . Если же удаленная система не поддерживает текстовое (telnet-like) управление, то, как правило, соединение устанавливается, экран терминала остается пустым, и после нажатия любой клавиши, сессия может завершиться, но сообщения о сбое соединения не будет. В некоторых случаях, удаленный сервер, не поддерживающий телнетоподобный протокол может выдать баннер, отображая информацию о себе, как например, это делают серверы VNC, отбражая версию протокола RFB. Примеры использования telnet для отправки простого e-mail сообщения имеются в этой статье 

В операционных системах Windows 7, Windows Server 2008,Windows Server 2008 R2, для управления службой TELNET на локальном или удаленном компьютере можно воспользоваться специальной утилитой tlntadmn, позволяющей запустить, приостановить, остановить или продолжить работу сервера TELNET, а также настроить некоторые параметры его конфигурации. 

В Windows 7 и более поздних версиях, сервер и клиент telnet при установке системы не инсталлируются. Для того, чтобы воспользоваться утилитой telnet.exe, нужно добавить ее в систему используя “Панель управления” – “Программы и компоненты” – “Включение или отключение компонентов Windows” – установить галочку на “Клиент Telnet”. При необходимости, можно таким же образом установить и сервер Telnet. 

Утилита TRACERT

    Не смотря на появление утилиты PATHPIG, классическая утилита трассировки маршрута до заданного узла TRACERT , по-прежнему остается наиболее часто используемым инструментом сетевой диагностики. Утилита позволяет получить цепочку узлов, через которые проходит IP-пакет, адресованный конечному узлу. В основе трассировки заложен метод анализа ответов при последоательной отправке ICMP-пакетов на указанный адрес с увеличивающимся на 1 полем TTL. ("Время жизни" - Time To Live). На самом деле это поле не имеет отношения к времени, а является счетчиком числа возможных переходов при передаче маршрутизируемого пакета. Каждый маршрутизатор, получив пакет, вычитает из этого поля 1 и проверяет значение счетчика TTL. Если значение стало равным нулю, такой пакет отбрасывается и отправителю посылается ICMP-сообщение о превышении времени жизни ("Time Exceeded" - значение 11 в заголовке ICMP). Если бы не было предусмотрено включение поля TTL в IP пакеты, то при ошибках в маршрутах, могда бы возникнуть ситуация, когда пакет будет вечно циркулировать в сети, пересылаемый маршрутизаторами по кругу.     При выполнении команды tracert.exe сначала выполняется отправка ICMP пакета с полем TTL равным 1 и первый в цепочке маршрутизатор (обычно это основной шлюз из настроек сетевого подключения) вычтя единицу из TTL получает его нулевое значение и сообщает о превышении времени жизни. Эта последовательность повторяется трижды, поэтому в строке результата, формируемой tracert.exe, после номера перехода отображаются три значения времени отклика:

1     1 ms     <1     <1     192.168.1.1 

1 - номер перехода (1 - первый маршрутизатор)

1 ms <1 <1 - время его ответа для 3-х попыток (1ms и 2 ответа менее чем 1 ms)

192.168.1.1 - его адрес (или имя)

    Затем процедура повторяется, но TTL устанавливается равным 2 - первый маршрутизатор его уменьшит до 1 и отправит следующему в цепочке, который после вычитания 1 обнулит TTL и сообщит о превышении времени жизни. И так далее, пока не будет достигнут заданный узел, имя или адрес которого заданы в качестве параметра командной строки, например , tracert google.com , или до обнаружения неисправности, не позволяющей доставить пакет узлу google.com.

Пример результатов выполнения tracert google.com 

tracert google.com - трассировка маршрута к узлу google.com

Результат:

Трассировка маршрута к google.com [74.125.45.100] с максимальным числом прыжков 30:

1 1 ms <1 <1 192.168.1.1 

2 498 ms 444 ms 302 ms ppp83-237-220-1.pppoe.mtu-net.ru [83.237.220.1] 

3 * * * .

4 282 ms * * a197-crs-1-be1-53.msk.stream-internet.net [212.188.1.113] 

5 518 ms 344 ms 382 ms ss-crs-1-be5.msk.stream-internet.net [195.34.59.105] 

6 462 ms 440 ms 335 ms m9-cr01-po3.msk.stream-internet.net [195.34.53.85] 

7 323 ms 389 ms 339 ms bor-cr01-po4.spb.stream-internet.net [195.34.53.126] 

8 475 ms 302 ms 420 ms anc-cr01-po3.ff.stream-internet.net [195.34.53.102] 

9 334 ms 408 ms 348 ms 74.125.50.57 

10 451 ms 368 ms 524 ms 209.85.255.178 

11 329 ms 542 ms 451 ms 209.85.250.140 

12 616 ms 480 ms 645 ms 209.85.248.81 

13 656 ms 549 ms 422 ms 216.239.43.192 

14 378 ms 560 ms 534 ms 216.239.43.113 

15 511 ms 566 ms 546 ms 209.85.251.9 

16 543 ms 682 ms 523 ms 72.14.232.213 

17 468 ms 557 ms 486 ms 209.85.253.141 

18 593 ms 589 ms 575 ms yx-in-f100.google.com [74.125.45.100] 

Трассировка завершена.


    В результатах трассировки могут присутствовать строки, где вместо адреса узла отображается звездочка (узел номер 3 в примере). Это не обязательно является признаком неисправности маршрутизатора, и чаще всего, говорит о том, что настройки данного узла запрещают ICMP-протокол из соображений безопасности или уменьшения нагрузки на канал . Подобные же настройки используются в сетях корпорации Microsoft . Для проверки, попробуйте выполнить трассировку маршрута к узлу microsoft.com. 


No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное