[МУЗЫКА] [МУЗЫКА]
Здравствуйте, с вами я, Николай Булахов.
В прошлом модуле мы вплотную подошли к очень многогранной и интересной теме
«Маршрутизация в IP-сетях».
Что ж, продолжим.
Запустите компьютеры PC1, PC2, PC3, PC4 и маршрутизатор.
Давайте посмотрим, что происходит при пересылке пакетов из одной
локальной сети в другую, но при этом запустим анализатор пакетов Wireshark
и восстановим хронологию событий, разобрав, что и как передается по сети.
При помощи утилиты ping мы пошлем один эхо-запрос с
компьютера PC1 в LAN1 на компьютер PC4 в LAN2.
Он должен будет преодолеть маршрутизатор,
а при получении этого запроса PC4 отошлет ответ в сторону PC1.
Перед запуском Wireshark чуть донастроим системы,
чтобы перехватывать сетевой трафик смог и наш непривилегированный пользователь,
от имени которого мы сейчас действуем.
Запустите терминал и наберите три команды,
заменив my username на имя вашего пользователя.
Если вы забыли, то оно пишется в самом начале командной строки до символа @.
Итак, команды — sudo пробел chgrp
пробел имя вашего пользователя пробел
/usr/bin/dumpcap.
Следующая команда — sudo пробел chmod
пробел 750 пробел /usr/bin/dumpcap.
Следующая команда — sudo пробел setcap
пробел cap_net_raw,
cap_net_ admin+eip
пробел /usr/bin/dumpcap.
Если вы сделали все правильно,
то никаких сообщений об ошибке на экране быть не должно.
[БЕЗ_ЗВУКА]
[БЕЗ_ЗВУКА]
[БЕЗ_ЗВУКА] [БЕЗ_ЗВУКА]
Запустите Wireshark на компьютерах PC1 и PC4.
В терминале посмотрите имя вашего сетевого интерфейса.
Напоминаю, это команда ifconfig.
У меня это — enp0s3.
Выберите этот интерфейс в Wireshark и нажмите Start capturing
packets на обоих компьютерах.
В терминале PC1 выполните команду ping с ключом -c 1,
чтобы отослать один пакет, и укажите IP-адрес компьютера PC4.
Для меня эта команда примет вид — ping пробел -c пробел
1 пробел 192.168.2.4.
Если вы забыли указать ключ -c 1, пакеты будут отсылаться до тех пор,
пока вы не прервете процесс одновременным нажатием клавиш Ctrl и C.
Если все правильно, в терминале вы увидите сообщение о том,
что один пакет отправлен, один принят и потеряно 0 %.
В Wireshark вы увидите четыре пойманных пакета.
Остановите дальнейший мониторинг сети, и давайте разберем, что произошло.
Если вы выполняете вторую попытку наблюдения передачи данных, то,
возможно, у вас поймано только два пакета.
Не беда.
Мы сейчас разберем, почему так.
Когда вы запустили утилиту ping с аргументом
-c 1 и адресом 192.168.2.4,
она попросила операционную систему отослать эхо-запрос по протоколу ICMP
на адрес 192.168.2.4.
Операционная система сопоставила сетевые настройки своего интерфейса,
откуда будет отослано сообщение, то есть в нашем случае
192.168.1.1 с маской /24, с указанным вами адресом.
Увидев, что IP-адреса расположены в разных сетях,
операционная система решила переслать пакет маршрутизатору.
Если мы еще не направляли маршрутизатору сообщений,
то операционная система знает только его IP-адрес — 192.168.1.5.
Но пересылка локальной сети происходит исключительно по MAC-адресам,
поэтому операционная система посылает широковещательный запрос по протоколу ARP,
спрашивая, какой MAC-адрес соответствует IP-адресу 192.168.1.5.
В этом запросе MAC-адрес источника — адрес PC1,
MAC-адрес получателя — широковещательный,
который вы видите как ff:ff:ff:ff:ff:ff, то есть всем.
В теле запроса еще раз сообщается свой MAC-адрес,
свой IP-адрес и IP-адрес интересующего компьютера.
Маршрутизатор, получив такой запрос, отправляет ответ тоже по протоколу ARP.
MAC-адрес источника в данном случае — адрес интерфейса маршрутизатора,
который присоединен к LAN1.
MAC-адрес получателя — адрес PC1.
В теле ответа две пары адресов MAC,
IP для 192.168.1.5 и 192.168.1.1.
Если вы уже посылали сообщения маршрутизатору, то эта процедура уже была
проделана, а соответствие адресов уже записано в специальную таблицу.
И некоторое время этот процесс не будет повторяться, пока операционная система не
решит, что это соответствие уже устарело и его пора обновить.
Итак, вернемся к последовательности пакетов.
Теперь операционная система знает MAC-адрес маршрутизатора.
Она отправит ICMP их запрос, в котором IP-адрес отправителя будет 192.168.1.1,
то есть адрес компьютера PC1, а IP получателя будет IP-адрес компьютера PC4,
то есть изначальный и конечный пункты пересылки адреса.
А вот MAC-адреса отправителя и получателя будут изначальными и конечными пунктами,
но только для данной локальной сети, то есть адрес отправителя будет
MAC-адрес PC1, MAC-адрес получателя будет MAC-адрес маршрутизатора,
который у нас соответствует интерфейсу, присоединенному к LAN1, то есть фактически
откуда и куда пересылается пакет конкретно в этой локальной сети.
Маршрутизатор получит этот пакет.
Так как в качестве MAC-адреса получателя указан адрес его интерфейса,
он будет извлечен из сети.
Однако маршрутизатор поймет, что этот пакет надо передать далее,
так как в качестве IP-адреса получателя указан не его адрес, то есть адрес,
который не принадлежит ни одному из его интерфейсов.
Сопоставив имеющиеся у него данные о локальных сетях LAN1 и LAN2,
которые вы сейчас видите на экране, маршрутизатор поймет,
что адрес расположен в сети LAN2,
но он не знает MAC-адрес компьютера, которому соответствует этот IP-адрес.
В пакетах, пойманных Wireshark на PC4, мы видим, что маршрутизатор
высылает широковещательный запрос по все тому же протоколу ARP, спрашивая,
какой MAC-адрес соответствует IP-адресу 192.168.2.4.
В этом запросе MAC-адрес источника — это адрес интерфейса маршрутизатора,
который расположен в LAN2.
MAC-адрес получателя широковещательный — те самые ff:ff:ff:ff:ff:ff, то есть всем.
В теле запроса еще раз маршрутизатор сообщает свой MAC-адрес,
свой IP-адрес и IP-адрес интересующего компьютера.
PC4, получив такой запрос, отправит ответ тоже по протоколу ARP.
В этом ответе будет
содержаться MAC-адрес источника, то есть адрес PC4,
MAC-адрес получателя — адрес интерфейса маршрутизатора в сети LAN2,
в теле ответа две пары адресов — MAC и IP для IP-адресов
192.168.2.4 и адресов 192.168.2.5.
Теперь маршрутизатор знает MAC-адрес получателя.
Он отправит ICMP эхо-запрос, в котором IP отправителя будет
по-прежнему адрес компьютера PC1, то есть 192.168.1.1,
IP получателя будет конечная точка — адрес PC4 — 192.168.2.4.
А вот MAC-адреса уже будут другими.
MAC-адрес отправителя будет интерфейс маршрутизатора, расположенный в сети LAN2,
а MAC-адрес получателя будет MAC-адрес сетевой карты PC4,
то есть по-прежнему по тому же принципу — откуда и
куда пересылаются пакеты конкретно по этой локальной сети.
PC4 вышлет ответное сообщение по протоколу ICMP,
в котором IP отправителя будет теперь уже 192.168.2.4,
то есть это IP-адрес PC4, а IP получателя, соответственно,
— 192.168.1.1, то есть это IP-адрес компьютера PC1.
Также начальный и конечный пункты пересылки пакета.
MAC-адрес отправителя будет MAC-адрес сетевой карты PC4,
MAC-адрес получателя — MAC-адрес нашего маршрутизатора в сети LAN2,
то есть откуда и куда пересылается пакет по этой локальной сети.
Соответствия IP и MAC-адресов уже записаны во
все таблицы у всех участников пересылки,
поэтому разрешение IP-адресов в MAC-адреса по протоколу ARP уже не будет происходить.
Маршрутизатор получит этот пакет,
так как в качестве MAC-адреса получателя указан адрес его интерфейса.
Однако он также поймет, что этот пакет надо передать далее,
так как в качестве IP-адреса получателя указан адрес,
не принадлежащий ни одному из его интерфейсов.
Опять сопоставив имеющиеся у него данные о локальных сетях LAN1 и LAN, которые вы
сейчас видите на экране, маршрутизатор поймет, что адресат расположен в LAN1.
Соответственно, он отправит ICMP эхо-ответ,
который вы можете увидеть в Wireshark на PC1,
в котором IP-адрес отправителя будет все тот же 192.168.2.4,
то есть адрес PC4, IP получателя будет IP-адрес PC1,
IP получателя будет IP-адрес PC1 — 192.168.1.1.
По-прежнему это изначальный и конечный пункты пересылки пакета.
MAC-адрес отправителя на сей раз будет MAC-адрес сетевого интерфейса
маршрутизатора, который присоединен к LAN1, а MAC-адрес получателя будет
MAC-адрес PC1, то есть откуда и куда пересылается пакет по этой локальной сети.
Таким образом, если компьютер столкнулся с тем,
что не может доставить сетевой пакет непосредственно получателю,
он должен отдать его тому, кто сможет передать его в верном направлении.
А эта лекция подошла к концу.
На следующей мы будем изучать технологию трансляции сетевых адресов.
[МУЗЫКА]
[МУЗЫКА]