Материал просмотрен 5,369 раз(а)

Перед началом работы со сниффером WireShark

Перед началом прочтения этого материала рекомендую ознакомиться с материалом 7-иуровневая модель ISO/OSI.

Итак, начнём. Сегодня мы с вами узнаем, как же на самом деле происходит общение компьютера с удалённым сервером на примере обычного ICMP-запроса “эхо”.

Анализируем обычный Ping-запрос

Ну да, набираем в командной строке

C:\>ping mail.ru 

и наш компьютер посылает пакеты … а куда он их посылает? И как узнаёт, куда посылать? Вот на эти вопросы мы и ответим! Для этого установим бесплатный сетевой сниффер WireShark с библиотекой winpcap. Дистрибутив обязательно будет выложен. Итак, первый запуск – выбираем прослушку интерфейсов:

Так как тесты мы проводим на виртуальной машине (рекомендую к ознакомлению процесс создания виртуальной машины), выбираем нужный интерфейс VMware:

К слову, здесь я использую NAT. Мой адрес виртуальной машины: 192.168.0.3/24. Адрес NAT-транслятора 192.168.0.2. Соответственно, адрес шлюза по-умолчанию выбрал тоже 192.168.0.2. DNS сервер выбрал публичный Google-овский: 8.8.8.8.

В реальной машине VMNet8 – NAT имеет такие настройки: IP-адрес 192.168.0.1/24.

Посылаем ICMP-запрос “эхо” на сервер mail.ru, это примечательно. Заодно посмотрим, как происходит преобразование символьного имени в IP-адрес узла. А теперь обратим внимание на окно нашего сниффера:

Начинаем анализ пакетов:

  1. Широковещательный запрос (Broadcast) по протоколу ARP (Adress resolution protocol) с запросом: WHO has 192.168.0.2? Tell 192.168.0.3. Это означает, что в сети рассылается пакет с данным вопросом и тот узел, чей IP 192.168.0.2 отзывается на адрес 192.168.0.3 и посылает ему свой MAC-адрес. Ведь именно на MAC-адрес могут передаваться кадры данных, а куда посылать их – мы пока не знаем. Почему компьютер запрашивает MAC-адрес .2 узла? Потому что это узел – шлюз по умолчанию!
  2. Тут нам по этому же протоколу приходит ответ от узла 192.168.0.2, который сообщает свой MAC-адрес.
  3. Далее мы посылаем DNS запрос на сервер 8.8.8.8 с просьбой разрешить имя mail.ru в IP-адрес.
  4. Нам возвращается ответ от DNS сервера со списоком A-записей (A – это запись, означающая хост), содержащих IP адреса, привязанные к имени mail.ru.
  5. Выбирается первый адрес и посылается ICMP-запрос (4 раза)
  6. После каждого раза возвращается ICMP-ответ.

Вот мы и расписали все пакеты. Правда просто? Надеюсь, было интересно.