[МУЗЫКА] [МУЗЫКА] Здравствуйте, с вами я, Николай Булахов. В прошлом модуле мы вплотную подошли к очень многогранной и интересной теме «Маршрутизация в 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, то есть откуда и куда пересылается пакет по этой локальной сети. Таким образом, если компьютер столкнулся с тем, что не может доставить сетевой пакет непосредственно получателю, он должен отдать его тому, кто сможет передать его в верном направлении. А эта лекция подошла к концу. На следующей мы будем изучать технологию трансляции сетевых адресов. [МУЗЫКА] [МУЗЫКА]