
show ip, show arp это команды виртуальных компьютеров в GNS3. На настоящем Windows используйте ipconfig и arp -a.Полный текст первых минут лекции «Протокол ARP» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Здравствуйте, этот урок посвящается протоколу ARP – Address Resolution Protocol. На предыдущих уроках мы обсудили модель OSI.
Там было семь уровней: четвёртый, третий, второй, первый. Мы говорили про второй уровень, про кабель Ethernet, стандартный сетевой кабель, стандартное устройство сети.
И мы также говорили о третьем уровне, где живёт у нас протокол IP. Вы помните, у компьютера как есть физический адрес, Адрес Ethernet, он же адрес MAC — это адрес, который закреплен физически за каждой сетевой картой.
Ну а также сетевой карте можно выдать логический адрес IP. IP-адрес выдает администратор компьютера, пишет этот адрес вручную.
Или же IP-адрес автоматически выдается службой DHCP. DHCP автоматически раздает всем IP-адреса. Тема же сегодняшней лекции ARP относится с точки зрения уровней куда-то между вторым уровнем и третьим, потому что ARP занимается соотношением адресов MAC и IP-адресов.
Давайте же посмотрим, что это значит. У нас тут есть симуляция компьютерной сети. Эта симуляция совершается с помощью программы под названием GNS3.
GNS3 — это симулятор, который позволяет создать нам сеть с виртуальными членами этой сети и производить всяческие проверки, эксперименты, то есть симуляции.
GNS — это бесплатная программа, которую можно скачать из интернета. Так, что же я тут наворотил в симуляции? Тут у меня 7 компьютеров. Они тут называются от VPC1 до VPC7.
А также я тут поставил два свитча и один роутер. И в нашей симуляции все эти устройства в данный момент как бы работают. Они живут своей жизнью.
То есть я могу зайти сюда в окошко управления. Слева написано, к какому устройству я сейчас обращаюсь. Сейчас там написано VPC4, видите?
Для перехода к другому устройству. Я, например, набираю 1, и я перехожу к первому компьютеру. А также этот как бы CMD может управлять также и свитчами.
Вот смотрите, я перейду на Switch 2. А также я могу отсюда командовать раутерами. Вот он, раутер 1. Все эти устройства как бы существуют сейчас в нашей виртуальной сети.
Тут также можно производить капчеры, захваты пакетов, запускать как бы сниффер. Я буду использовать Wireshark, чтобы подглядывать в пакеты, которые передаются по сети.
Итак, протокол ARP. Как я уже говорил, он относится к промежутку между вторым и третьим уровнем модели OSI. Между вторым и третьим уровнем у нас располагается протокол ARP.
И если хотите, относится ли он к третьему уровню или ко второму — это спорно. Можно сказать, что он относится ко второму с половиной уровню. Занимается протокол ARP соотношением между физическими адресами и IP-адресами.
Вот возьмём наш первый компьютер из симуляции. Допустим, мы сидим на нём и хотим что-то послать другому компьютеру из той же сети. Допустим, компьютеру vpc2.
vpc1 хочет отправить какое-то сообщение компьютеру vpc2. Допустим, он хочет сказать ему ping. И, сидя за первым компьютером, мы можем знать, что у того второго компьютера есть IP-адрес.
И чтобы послать второму компьютеру ping, нам нужно написать его IP-адрес. В CMD первого компьютера мы пишем ping1002 ip второго компьютера, и мы там на первом компьютере жмём Enter.
Но ему нужен физический адрес, чтобы что-то отправить, но он только знает, что ему нужен компьютер с IP-адресом 1002, ну мало ли, у которого из устройств в его сети такой адрес IP.
Он может быть у одного из других компьютеров или у раутера. VPC1 даже не знает, кто получил IP-адрес 1002, И он не знает даже, есть ли здесь некто с адресом 10.0.0.2.
То есть он не знает, есть ли некто с нужным ему IP-адресом. Он не знает, у кого этот IP-адрес. И уж тем более он не знает физических адресов ничьих.
Мак-адресов он вообще не знает ничьих. Итак, у первого компьютера есть только IP-адрес цели. Вот этот вот адрес, и по нему нужно что-то найти.
В сетевой карте выдается IP-адрес. Все эти компьютеры в нашем случае находятся в сети Ethernet. А у сетевых карт Ethernet есть еще один адрес.
Физический адрес Mac. У каждого члена сети Ethernet, включая раутер, есть свой MAC-адрес. То есть у компьютеров и у раутера есть и MAC-адреса, и IP-адреса.
Но в отличие от адреса IP, MAC-адрес закреплен навечно в сетевой карте. Он уникален у каждой карты и неизменен. И именно адрес MAC поможет нам в итоге передать информацию, передать пакет между сетевыми картами.
Для этого VPC1 должен узнать у VPC2, каков его адрес MAC. Пока что первому компьютеру известен только IP-адрес, но не адрес MAC. И вот как раз тут нам поможет протокол ARP, или Address Resolution Protocol.
С помощью протокола ARP система, которая собирается отправить этот пинг, выпускает в сеть так называемый ARP-реквест. И этот запрос — это Broadcast, это крик в сети.
Помните, Broadcast — это то, что все в сети слышат, все компьютеры сети и раутер. Это как бы в строчке адресат пишется «все».
Первый компьютер крикнет: «Есть ли здесь некто с IP-адресом 10.0.0.2?» «Если есть, делай одолжение, милый человек, пошли мне свой MAC-адрес!» «Мне нужно тебе что-то передать, и мне нужен твой физический адрес для того, чтобы это доставить!» И этот бродкаст выйдет из первого компьютера и придет всюду,
в каждой из компьютеров этой сети, и в раутер тоже. И когда раутер получит это сообщение, он не пропустит его дальше, в другую сеть.
Раутер не пустит бродкаст дальше. Помните, раутер не пропускает бродкасты через себя. И этот бродкаст будет открыт каждым компьютером, и раутером тоже.
Каждый увидит, что тот компьютер ищет IP-адрес 10.0.0.2 и спросит себя, я ли это? Я ли это? Нет. А второй компьютер подумает: да, это я.
10.0.0.2 — это как раз мой адрес. И второй компьютер послушно отправит свой Mac, ответит сообщением, где будет выслан его Mac.
Допустим, Mac-адрес второго компьютера — это нечто в этом роде. И 1, 2, 7, это шестнадцатеричные цифры, 9, 1, f3, такой, допустим, Mac у второго компьютера, 6 байтов, 12 шестнадцатеричных цифр, или 48 битов, которые удостоверяют мою сетевую карту уникальным образом.
И я отправлю этот Mac адрес компьютера, который запросил у меня его. И теперь, когда первый компьютер вышлет свой пинг, пинг, помните, относится к третьему уровню OSI.
Но чтобы он на втором уровне OSI смог построить фрейм, для этого vpc1 должен указать правильный MAC. И он берёт пакет с правильным IP-адресом и добавляет к этой упаковке ещё и MAC-адрес.
Добавляет адрес MAC, который он получил в результате запроса. И такой пакет уже выкидывает в сеть. Сотрём предыдущий рисунок. И теперь посылка выйдет с адреса MAC, попадёт в Switch.
А Switch как раз пользуется MAC-адресами для того, чтобы направить посылку к нужному компьютеру в сети. Помните, внутри себя Switch помнит MAC-адреса, в нём есть соответствующая таблица, и с помощью MAC-адреса он передаст сообщение второму компьютеру, vpc2.
Вот так вот vpc1 передает информацию компьютеру vpc2, зная IP-адрес адресата, и затем, используя протокол ARP, узнавая нужный MAC, MAC-компьютер vpc2.
А теперь давайте перейдём к практической части, к симуляции, чтобы почувствовать, как это всё происходит в жизни. Мы в программе GNS3.
И тут у нас построена та же модель, что и в теории. И теперь пусть наш VPC1 передаст информацию компьютеру VPC2.
Естественно, во время эксперимента мы поставим Capture, захват, подглядывание во всё, что проходит по сети. С помощью Wireshark мы захватим всю информацию, которая проходит по сети.
Захват пакетов будет справа работать у нас в прямом эфире. И мы пронаблюдаем запрос ARP, ответ на него и сообщение пингов. Приступим же.
Зайдём в командную строку управления виртуальным компьютером vpc1. Выполним у него команду show_ip. И мы видим, что vpc1 получил определённое IP: 10.0.0.1 и 24 бита subnet mask, то есть 3 раза 255 и 0.
Тут у нас его gateway, выход в другую сеть, а вот тут у нас его адрес mac. Кстати, эта команда show_ip — это как ipconfig у компьютера, на котором установлен Windows.
Но в нашей симуляции у нас не настоящие компьютеры, а виртуальные. И там такие маленькие как бы операционные системки стоят, игрушечные. То есть в жизни не пишите show_ip, пишите ipconfig.
И вы сможете увидеть свой IP-адрес, свой subnet mask, свой gateway. А в симуляции у нас занимается этим команда show_ip.
А ещё компьютеру vpc1 я скажу show_arp. Команда show_arp заставит его показать мне его ARP-таблицу. А можно написать просто ARP, и можно увидеть его таблицу ARP.
Таблица, в которой хранится соотношение между адресами IP и MAC. Какому адресу IP соответствует какой адрес MAC у компьютеров в его сети. А в компьютере с Windows надо для этого набрать ARP-A.
И можно видеть таблицу ARP компьютера. И в этой таблице мы видим компьютеры, которые у меня есть в сети, и какие у них IP-адреса, и какие адреса MAC.
Мой компьютер, видимо, беседовал о чём-то с роутером. И это IP-адрес роутера. И он также беседовал с принтером. И тут, соответственно, адрес Mac моего принтера.
А тут адрес, который Broadcast. А также мы видим Mac-адреса мультикастов. В настоящем компьютере мы просматриваем это вот так. А в симуляции всё очень упрощено.
И мы видим это, соответственно, в более упрощённом виде. В ARP-таблице мало информации, а в данном случае она вообще пуста. Наш Capture исправно всё захватывает.
И давайте, наконец, дадим ему работу. Я тут немного подвину. И теперь я пошлю ping. Ping к IP-адресу 10.002. Поймите, изначально мой