понедельник, 3 августа 2009 г.

Ping, Tracert и Route.

[Ping|Tracert|Route]

Этот обзор простых команд командной строки для настройки локальной сети написан для ознакомления.

Возьмём для примера персональный компьютер (ПК), имеющий доступ к двум шлюзам (например, локальному IP 192.168.40.30 и внешнему IP 192.168.50.30), для доступа к различным ресурсам сети. Допустим, у нас есть две сетевые программы. После подключения к локальной сети на тестируемом ПК одна из них не нашла свои сетевые ресурсы. Первая подключается к серверу во внешней сети по IP адресу 212.48.ххххх. Вторая - ищет базу данных в локальной сети по IP адресу 192.168.131.xxx.

Команда PING.

Возможные ключи к пингу: ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i ] [-v ] [-r <число>] [-s <число>] [[-j <список узлов>] | [-k <список узлов>]] [-w <тайм-аут>] [-R] [-S <адрес источника>] [-4] [-6]. Применяется для проверки доступности удалённого ПК по IP протоколу. Хелп по Пингу по команде ping/? в командной строке. Пингуем внешний IP адрес. Пишем в командной строке: ping (IP узла), жмём Enter...

Пример 1:




--------------------------------------------------------------
>ping 212.48.ххххх
Обмен пакетами с 212.48.ххх.ххх по с 32 байтами данных:
Ответ от 212.48.ххххх: число байт=32 время=194мс TTL=62
Ответ от 212.48.ххх.ххх: число байт=32 время=299мс TTL=62
Ответ от 212.48.ххх.ххх: число байт=32 время=279мс TTL=62
Ответ от 212.48.ххх.ххх: число байт=32 время=169мс TTL=62

Статистика Ping для 212.48.ххх.ххх:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 169мсек, Максимальное = 299 мсек, Среднее = 235 мсек
>
--------------------------------------------------------------





В указанном примере «пинг» прошёл без потерь пакетов, значит связь с удалённым хостом есть. Однако стоит обратить внимание на большую разницу в скорости прохождения пакетов (235 мсек +/- 64мс). Это может стать причиной медленной работы или ошибок в клиент-серверных программах (из-за долгого ожидания ответа с сервера).

Пример 2:




--------------------------------------------------------------
>ping 192.168.131.xxx

Обмен пакетами с 192.168.131.xxx по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.

Статистика Ping для 192.168.131.xxx:
Пакетов: отправлено = 4, получено = 0, потеряно = 4
(100% потерь)
>
---------------------------------------------------------------



А в данном случае, команда ping не смогла обнаружить указанный сервер. Почему так произошло? Вариантов много, начиная от проблемы с самим сервером (выключен) и заканчивая неправильно заданной маршрутизаций для поиска IP адреса. Проверить маршрутизацию можно с помощью команды tracert.

В показанных вариантах использования команды ping (без дополнительных ключей) - наиболее простой и наиболее употребляемый метод. Дополнительные возможности и ключи их открывающие можно всегда узнать введя в командной строке "ping/?" без кавычек (вывод хелпа по пингу).

Из интересных ключей, на мой взгляд, это -t и -l . Первый заставляет команду ping выполняться бесконечно, пока не нажмут Ctrl+C (полезно при проверки настроек "на лету", во время внесения каких либо изменений в сеть). Второй ключ вводится с числом, указывающим количество отправляемых байт в пакете (Пример: >ping -l 10000 -пингует сервер пакетами по 10000 байт) - это полезно для проверки качества канала связи, на плохом канале пакеты могут перестать проходить или начнутся большие потери пакетов. В таком случае стоит проверить сетевую карту и кабель.

В общем, про пинг Всё!

[
Ping|Tracert|Route]

Команда TRACERT.

[Ping|Tracert|Route]

Применяется для проверки пути прохождения пакетов (маршрутизации) от локального хоста до любого IP. Хелп по Трейсерту по команде tracert/? в командной строке.
Доступные ключи: tracert [-d] [-h макс Число] [-j список Узлов] [-w таймаут] [-R] [-S адрес Источника] [-4] [-6].

В нашем случае пакеты отправляемые по адресу 192.168.131.xxx должны идти через локальный шлюз IP 192.168.40.30, проверим это.
Трассируем хост IP 192.168.131.xxx:

Пример 3:



--------------------------------------------------------------
>tracert 192.168.131.ххх
Трассировка маршрута к 192.168.131.ххх с максимальным числом прыжков 30
1 4 ms <1>
2 1 ms <1>
3 1 ms 1 ms 1 ms 212.120.175.130
4 * * 1 ms 195.5.118.93
5 * * * Превышен интервал ожидания для запроса.
6 * * * Превышен интервал ожидания для запроса.
7 * * * Превышен интервал ожидания для запроса.
8 * * * Превышен интервал ожидания для запроса.
9 * * * Превышен интервал ожидания для запроса.
10 * * * Превышен интервал ожидания для запроса.
11 * * * Превышен интервал ожидания для запроса.
12 * * * Превышен интервал ожидания для запроса.
13 * * * Превышен интервал ожидания для запроса.
14 * * * Превышен интервал ожидания для запроса.
15 * * * Превышен интервал ожидания для запроса.
16 * * * Превышен интервал ожидания для запроса.
17 * * * Превышен интервал ожидания для запроса.
18 * * * Превышен интервал ожидания для запроса.
19 * * * Превышен интервал ожидания для запроса.
20 * * * Превышен интервал ожидания для запроса.
21 * * * Превышен интервал ожидания для запроса.
22 * * * Превышен интервал ожидания для запроса.
23 * * * Превышен интервал ожидания для запроса.
24 * * * Превышен интервал ожидания для запроса.
25 * * * Превышен интервал ожидания для запроса.
26 * * * Превышен интервал ожидания для запроса.
27 * * * Превышен интервал ожидания для запроса.
28 * * * Превышен интервал ожидания для запроса.
29 * * * Превышен интервал ожидания для запроса.
30 * * * Превышен интервал ожидания для запроса.

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



Как видно из листинга трассировки наш пакет пошёл не по тому пути. Он пошёл через внешний шлюз IP 192.168.50.30, хотя должен был пойти через локальный IP 192.168.40.30 . Про tracert, в общем-то всё рассказал.
Чтобы исправить таблицу маршрутизации мы используем команду route.

[Ping|Tracert|Route]

Команда ROUTE.

[Ping|Tracert|Route]

Применяется для настройки и отображения таблицы маршрутизации. Краткая инструкция по команде route вызывается по "Route /?" без кавычек, в командной строке. Возможные ключи и команды:ROUTE [-f] [-p] [-4|-6] command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface].

Команды:
PRINT Печать маршрута
ADD Добавление маршрута
DELETE Удаление маршрута
CHANGE Изменение существующего маршрута.

Нам нужно проверить наши маршруты и добавить новый (или изменить старый) для того, чтобы при обращении к узлу IP 192.168.131.ххх, пакеты бы шли через шлюз IP 192.168.40.30 .

Пишем route print, жмём Enter...

Пример 4:



--------------------------------------------------------------
>route print
=================================================
Список интерфейсов
10 ...00 1a 23 d1 43 83 ...... Intel(R) 82567LM Gigabit Network Connection
1 ........................... Software Loopback Interface 1
16 ...00 00 00 00 00 00 00 e0 isatap.{7C126BFD-41DE-4F3D-9AB0-214535933176}
17 ...00 00 00 00 00 00 00 e0 isatap.{5487FDD4-E480-4755-A3CF-E9E75B60C2EB}
14 ...02 00 51 53 4e 01 ...... Teredo Tunneling Pseudo-Interface
15 ...00 00 00 00 00 00 00 e0 6TO4 Adapter
=================================================

IPv4 таблица маршрута
=================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.50.30 192.168.50.29 25
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.50.0 255.255.255.0 On-link 192.168.50.29 281
192.168.50.30 255.255.255.255 On-link 192.168.50.29 281
192.168.50.255 255.255.255.255 On-link 192.168.50.29 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.50.29 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.50.29 281
=================================================
Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
0.0.0.0 0.0.0.0 192.168.50.30 По умолчанию
=================================================

IPv6 таблица маршрута
=================================================
Активные маршруты:
Метрика Сетевой адрес Шлюз
14 18 ::/0 On-link
1 306 ::1/128 On-link
14 18 2001::/32 On-link
14 266 2001:0:d5а5:a5d7:5cа5:5b55:a5c8:55ca/128
On-link
14 266 fe80::/64 On-link
14 266 fe80::3cd1:2b75:a0c8:94ca/128
On-link
1 306 ff00::/8 On-link
14 266 ff00::/8 On-link
=================================================
Постоянные маршруты:
Отсутствует
>
--------------------------------------------------------------



Примерно такая картина... По протоколу IPv4 виден только один постоянный маршрут и тот с внешним шлюзом, а нам нужен ещё и локальный шлюз IP 192.168.40.30 для доступа к ресурсу в локальной сети по адресу 192.168.131.xxx .
Добавим новый маршрут:

Пример 5:



--------------------------------------------------------------
>route -p ADD 192.168.131.xxx 192.168.40.30
--------------------------------------------------------------



-p При использовании с командой ADD задает сохранение маршрута при перезагрузке системы. По умолчанию маршруты не сохраняются при перезагрузке. Пропускается для остальных команд, изменяющих соответствующие постоянные маршруты. Этот параметр не поддерживается в Windows 95.

192.168.131.xxx - адрес назначения.
192.168.40.30 - шлюз для маршрута.

Сработало? Должно сработать!!!

Для проверки пингуем нужный узел...

Всё!

[Ping|Tracert|Route]

Заглядывай чаще...

Мне помогли эти сайты: