Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, напомню, что эти записи основаны на программе Cisco ICND1 и помогут вам подготовиться к экзаменам CCENT/CCNA. Ранее мы разобрались с назначением коммутаторов и хабов, то есть поговорили об устройствах канального и физического уровня соответственно. Теперь же давай разберемся с устройством сетевого уровня — маршрутизатором и посмотрим зачем он нужен.

Роутеры нужны для того чтобы объединить или более канальные среды (подсети) в единую сеть, то есть роутер умеет работать с IP-адресами, а также умеет перекладывать Ethernet кадры из одной сети в другую, как это происходит — тема данной записи.

Перед началом я хотел бы вам напомнить, что ознакомиться с опубликованными материалами первой части нашего курса можно по ссылке: «Основы взаимодействия в компьютерных сетях».

1.19.1 Введение

Перед началом разговора о том как связать две подсети в одну сеть, я бы хотел вам напомнить последний раздел темы, в которой мы говорили о назначении коммутаторов, там мы столкнулись с проблемой: при использовании коммутатора два узла из разных подсетей не могут общаться друг с другом, то есть, например, узел А с IP-адресом 192.168.1.22 не может передать данные узлу Б с IP-адресом 10.12.34.55, тогда я отметил, что эти узлы находятся в разных подсетях (можно сказать в разных канальных средах или разных широковещательных доменах), а классический L2 коммутатор не в состояние работать с IP-адресами, более того, у некоторых L2 свичей вообще нет IP-адресов, так как это устройства канального уровня модели OSI.

Ну а мы помним, что протокол IP работает на сетевом уровне эталонной модели, а устройства третьего уровня модели OSI 7 – это как раз маршрутизаторы или как их еще называют роутеры, именно они отвечают за работу с протоколом IP, именно благодаря им работает сеть Интернет, и именно их мы буквально на пальцах будем разбирать в этой теме, в дальнейшем мы будем знакомиться с работой маршрутизаторов более подробно, сейчас именно на пальцах.

1.19.2 Почему для работы компьютерной сети недостаточно коммутаторов?

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

Во-первых, давайте вспомним схему, в которой мы подключали к коммутатору узлы из разных подсетей, такая схема показана на Рисунке 1.19.1. На этом рисунке стационарные ПК находятся в сети 192.168.2.0/24, «/24» означает маску 255.255.255.0, а ноутбуки находятся в подсети 192.168.1.0/24. На первый взгляд, казалось бы, почему ноутбук не может связаться с компьютером, ведь они подключены к одному коммутатору, значит физическая связь между ними есть, но тут нам нужно вспомнить, что коммутатор – это устройство канального уровня в модели TCP/IP, на канальном уровне устройства работают с физическими, то есть мак-адресами, но компьютерам мы вручную задаем еще и IP-адреса, то есть логическая адреса, с которыми умеют работать маршрутизаторы, то есть устройства, которые относятся к сетевому уровню модели передачи данных, то есть в классическом исполнении коммутаторы не понимают IP адресов (хотя на самом деле это не так, даже простенькие L2+ коммутаторы умеют анализировать IP-адреса и выполнять простенькие операции в зависимости от IP-адреса, указанного в пакете).

Рисунок 1.19.1 Узлы из разных подсетей подключены к одному коммутатору

Рисунок 1.19.1 Узлы из разных подсетей подключены к одному коммутатору

Для понимания того, почему узел с IP-адресом 192.168.1.1 и маской 255.255.255.0 не сможет передавать данные узлу 192.168.2.1 с маской 255.255.255.0, нужно немного понимать, как работает протокол ARP (этот протокол нужен для определения мак-адреса по известному IP-адресу), в дальнейшем мы более подробно изучим работу протокола ARP, сейчас же посмотрим на принцип его работы, но для этого немного модифицируем нашу схему, добавив в каждую подсеть по два устройства, это нужно для наглядности.

Рисунок 1.19.2 Две подсети по четыре узла

Рисунок 1.19.2 Две подсети по четыре узла в каждой

Теперь у нас есть две подсети, в каждой из них по четыре узла, чтобы добавить в верхнюю подсеть узел, мы должны задать ему маску 255.255.255.0 и любой свободный IP-адрес вида 192.168.1.х, где х – это число от 1 до 254, 255 использовать для узла нельзя, так как это широковещательный IP-адрес. Тоже самое касается и нижней подсети, чтобы добавить в нее еще один узел, нужно задать ему маску 255.255.255.0 и любой свободный IP-адрес из диапазона 192.168.2.х. Также стоит отметить, что наша компьютерная сеть имеет топологию звезда, следует добавить следующее: если бы вместо коммутатора мы бы использовали хаб, то такая сеть приняла бы топологию общая шина практически со всеми ее недостатками.

Теперь давайте посмотрим, как работает протокол ARP, но не забывайте, что для работы в канальной среде, то есть, например, для передачи данных от узла 192.168.1.1 к узлу 192.168.1.2, устройства используют MAC-адреса, а нам они неизвестны, у нас есть только IP, тут-то как раз и нужен ARP. Давайте настроим фильтр для режима симуляции Cisco Packet Tracer так, как показано на Рисунке 1.19.3.

Рисунок 1.19.3 Оставляем в фильтре Cisco Packet Tracer только ARP и ICMP

Рисунок 1.19.3 Оставляем в фильтре Cisco Packet Tracer только ARP и ICMP

После того, как настроите фильтр, не выходите из режима симуляции Cisco Packet Tracer, а откройте командую строку ноутбука с адресом 192.168.1.1, и выполните пинг до ноутбука 192.168.1.2.

Рисунок 1.19.4 Ноутбук сфомировал два пакета: один с ICMP вложением, второй с ARP-запросом

Рисунок 1.19.4 Ноутбук сфомировал два пакета: один с ICMP вложением, второй с ARP-запросом

Обратите внимание: как только вы нажмете Enter, ноутбук сформирует два пакета: фиолетовый пакет с ICMP вложением, который он пока не собирается отправлять, потому что не знает MAC-адреса, который принадлежит узлу 192.168.1.2, чтобы выяснить эту информацию, ноутбук формирует пакет с ARP-запросом, в котором он говорит: я узел с IP-адресом 192.168.1.1, у меня есть вот такой мак-адрес: 00D0.5819.42A8, друзья, скажите, пожалуйста, есть ли среди вас узел с IP-адресом 192.168.1.2 и, если такой узел есть, то какой у тебя мак-адрес? Естественно, для отправки такого пакета (он на рисунке обозначен зеленым) используется широковещательный запрос, который будет направлен всем физическим устройствам компьютерной сети, подключенным к коммутатору.

Следующим шагом зеленый пакет будет отправлен на коммутатор, это показано на Рисунке 1.19.5.

Рисунок 1.19.5 Кадр с вложенным ARP-запросом пришел на коммутатор

Рисунок 1.19.5 Кадр с вложенным ARP-запросом пришел на коммутатор

Коммутатор по каким-то, пока не важно каким, критериям понял, что это широковещательный запрос, а раз запрос широковещательный, то его нужно отправить всем участникам, которые подключены к коммутатору, что он и сделал, показано на Рисунке 1.19.6. При этом обратите внимание: все узлы, кроме узла с IP-адресом 192.168.1.2 проигнорировали полученный пакет, так как они видят, что IP-адрес 192.168.1.2 им не принадлежит, это видно по красному крестику на рисунке.

Рисунок 1.19.6 Коммутатор разослал ARP-запрос всем узлам, подключенным к нему

Рисунок 1.19.6 Коммутатор разослал ARP-запрос всем узлам, подключенным к нему

Тут стоит обратить внимание на один минус, связанный с широковещательными запросами: коммутатор рассылает его всем узлам, которые к нему подключены (а это означает, что пропускная способность каналов связи в такой сети используется не очень эффективно), если к коммутатору будет подключен другой коммутатор, то и он получит ARP-запрос и разошлет его всем своим узлам, даже если эти узлы находятся в другой подсети, таким образом мы загружаем наши каналы связи ненужной информацией, а наши узлы из разных подсетей не полностью изолированы друг от друга, этот минус нас будет сопровождать до тех пор, пока мы не познакомимся с технологией VLAN.

Давайте теперь посмотрим на то, как разные конечные узлы обрабатывают полученный кадр с ARP-запросом, сначала посмотрим на то, что сделал с кадром узел из другой подсети, например, узел 192.168.2.1, показано на Рисунке 1.19.7. Обратите внимание: чтобы увидеть текст, выделенный на рисунке синим, нужно сперва нажать на графу с текстом Layer 2 так, чтобы она стала подсвечена желтым цветом, так как в данном случае обработка идет на канальном уровне, до сетевого уровня в данном случае мы даже не добрались.

Рисунок 1.19.7 Что произошло с ARP-запросом, который пришел на узел из другой подсети

Рисунок 1.19.7 Что произошло с ARP-запросом, который пришел на узел из другой подсети

Итак, пункт один из синего списка говорит о том, что MAC-адрес назначения, указанный в кадре, соответствует мак-адресу получателя, широковещательному или мультикаст адресу, пока все ок. Во втором пункте сказано, что узел вытаскивает информацию из Ethernet-кадра (вспоминайте принцип инкапсуляции данных), в данном случае в Ethernet кадре содержится ARP-сообщение, о чем и говорится в третьем пункте. В четвертом пункте сказано, что это не просто ARP-сообщение, а ARP-запрос, узел это понял. Далее узел начинает сравнивать свой IP-адрес с IP-адресом, который находится в ARP-запросе, но при этом сравнение используется не только IP-адреса узла, который принял ARP-запрос, но и маска этого узла, поэтому узел понимает, что этот кадр не просто не предназначен для него, но он еще и из другой подсети, об этом сказано в пункте 5, в шестом пункте говорится, что узел дропнул (откинул) этот арп-запрос и не собирается на него отвечать.

Теперь стоит взглянуть на то, что сделал с полученным кадром узел с адресом 192.168.1.254, этот узел находится в одной подсети с ноутбуком, пославшим ARP-запрос, но его IP-адрес не совпадает с тем адресом, который указан в ARP-запросе. Это показано на Рисунке 1.19.8, и, по сути, ничем, кроме пятого пункта, не отличается от того, что происходило в узле из другой подсети.

Рисунок 1.19.8 Что произошло с ARP-запросом, который пришел на узел из той же подсети, но с другим IP-адресом

Рисунок 1.19.8 Что произошло с ARP-запросом, который пришел на узел из той же подсети, но с другим IP-адресом

В пятом пункте сказано, что IP-адрес, указанный в ARP-запросе, не соответствует IP-адресу узла, который его получил, поэтому шестым пунктом узел его отбрасывает, все просто. Теперь посмотрим, как обрабатывает ARP-запрос узел, которому предназначен этот ARP-запрос, показано на Рисунке 1.19.9.

Рисунок 1.19.9 Что делает с Ethernet-кадром узел, которому предназначен ARP-запрос

Рисунок 1.19.9 Что делает с Ethernet-кадром узел, которому предназначен ARP-запрос

На пятом шаге узел понимает, что ARP-запрос предназначен для него, это он понимает по указанному IP-адресу, а шестым шагом этот узел вносит в свою ARP-таблицу информацию, полученную из ARP-запроса (другими словами делает arp-запись), чтобы потом было проще общаться и не надо было лишний раз делать ARP-запрос, чтобы узнать какой мак-адрес у узла с IP 192.168.1.1. Эту ARP-таблицу можно посмотреть, для этого откроем командую строку ноутбука с IP-адресом 192.168.1.2 и повторим команды из листинга ниже.

[php]
Packet Tracer PC Command Line 1.0
C:\>help
Available Commands:
? Display the list of available commands
arp Display the arp table
cd Displays the name of or changes the current directory.
delete Deletes the specified file from C: directory.
dir Displays the list of files in C: directory.
exit Quits the CMD.EXE program (command interpreter)
ftp Transfers files to and from a computer running an FTP server.
help Display the list of available commands
ide Starts IoX development environment
ioxclient Command line tool to assist in app development for Cisco IOx
platforms
ipconfig Display network configuration for each network adapter
ipv6config Display network configuration for each network adapter
js JavaScript Interactive Interpreter
mkdir Creates a directory.
netsh
netstat Displays protocol statistics and current TCP/IP network
connections
nslookup DNS Lookup
ping Send echo messages
python Python Interactive Interpreter
quit Exit Telnet/SSH
rmdir Removes a directory.
snmpget SNMP GET
snmpgetbulk SNMP GET BULK
snmpset SNMP SET
ssh ssh client
telnet Telnet client
tracert Trace route to destination
C:\>arp
Packet Tracer PC ARP
Display ARP entries: arp -a
Clear ARP table: arp -d

C:\>arp -a
Internet Address Physical Address Type
192.168.1.1 00d0.5819.42a8 dynamic

C:\>

[/php]
Сначала мы выполнили команду «help», чтобы посмотреть список всех доступных команд на компьютере в среде Cisco Packet Tracer, по подсказкам мы поняли, что нам нужна команда «arp», попробовали ее выполнить, но терминал нам сообщил, что команде нужно передавать еще и параметры: «arp -a» — показать arp-таблицу, а «arp -d» очистить arp-таблицу. Нам подходит первый вариант, поэтому мы и выполнили его, и увидели, что IP-адресу 192.168.1.1 соответствует мак-адрес 00d0.5819.42a8.

Если в данный момент посмотреть на arp-таблицу узла 192.168.1.1, то в ней не будет никаких записей, так как ARP-ответ еще не получен, это показано в листинге ниже:

[php]
C:\>arp -a
No ARP Entries Found
C:\>

[/php]
На реальных ПК тоже можно посмотреть ARP-таблицу, той же самой командой, вот, например, ARP-таблица моего ПК с Windows 10:

[php]
C:\Users\Dell>arp -a

Интерфейс: 192.168.0.100 — 0×9
адрес в Интернете Физический адрес Тип
192.168.0.1 a1-2d-39-aa-b8-39 динамический
192.168.0.255 ff-ff-ff-ff-ff-ff статический
224.0.0.22 01-00-5e-00-00-16 статический
224.0.0.251 01-00-5e-00-00-fb статический
224.0.0.252 01-00-5e-00-00-fc статический
255.255.255.255 ff-ff-ff-ff-ff-ff статический

C:\Users\Dell>

[/php]
Давайте посмотрим, что дальше будет происходить с кадрами, которые переносят ARP сообщения, сделаем следующий шаг в режиме симуляции Cisco Packet Tracer. А дальше все очень просто: узел 192.168.1.2 сформирует ARP-ответ, и отправит его уже не на широковещательный IP-адрес, а на юникастовый IP-адрес (не все операционные системы так поступают, когда будет рассматривать ARP более детально, мы об этом поговорим), то есть на адрес конкретного узла, а именно 192.168.1.1, в котором будет примерно следующее: дорогой узел с IP-адресом 192.168.1.1 и мак-адресом 00d0.5819.42a8, я узел с IP-адресом 192.168.1.2, у меня вот такой мак-адрес: 00D0.9741.51D1, я готов с тобой пообщаться

Рисунок 1.19.10 ARP-ответ пришел на узел, который хочет отправить данные

Рисунок 1.19.10 ARP-ответ пришел на узел, который хочет отправить данные

На Рисунке 1.19.10 показано, что происходит на узле, который хотел отправить данные (192.168.1.1), и тут видно, что светло-зелёный пакет с ARP-ответом был успешно получен и обработан, а тёмно-зелёный пакет был сформирован и в нем находится ICMP вложение, так как светлый пакет успешно обработан, это станет понятно, если посмотреть внутрь пакетов. Сначала заглянем в светлый пакет, так как он обрабатывается первым, показано на Рисунке 1.19.11.

Рисунок 1.19.11 Что делает узел после того, как он получил ARP-ответ

Рисунок 1.19.11 Что делает узел после того, как он получил ARP-ответ

Первых четыре пункта ничем не отличаются от того, что мы видели ранее, все по стандартной схеме, а вот на пятом шаге есть изменения: компьютер, получив ARP-ответ, вносит соответствующую запись в свою ARP-таблицу (теперь в этой таблице будет соответствие для узла с IP-адресом 192.168.1.2), а на шестом шаге, узел извлекает кадр с ICMP вложением из своего буфера и отправляет его узлу 192.168.1.2. В этом можно убедиться, посмотрев на темный кадр, он показан на Рисунке 1.19.12.

Рисунок 1.19.12 ICMP запрос извлекается из буфера ПК и инкапсулируется в Ethernet кадр

Рисунок 1.19.12 ICMP запрос извлекается из буфера ПК и инкапсулируется в Ethernet кадр

Подпись к рисунку все хорошо разъясняет, пояснений не требуется. В дальнейшем будет происходит обмен ICMP запросами и ICMP ответами между машинами, а команда Ping будет заполнять командую строку соответствующими записями.

[php]
Packet Tracer PC Command Line 1.0
C:\>ping 192.168.1.2

Pinging 192.168.1.2 with 32 bytes of data:

Reply from 192.168.1.2: bytes=32 time=8ms TTL=128
Reply from 192.168.1.2: bytes=32 time<1ms TTL=128
Reply from 192.168.1.2: bytes=32 time<1ms TTL=128
Reply from 192.168.1.2: bytes=32 time=1ms TTL=128

Ping statistics for 192.168.1.2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 8ms, Average = 2ms

C:\>arp -a
Internet Address Physical Address Type
192.168.1.2 00d0.9741.51d1 dynamic

C:\>

[/php]
Обратите внимание: первый цикл работы команды Ping был самым долгим, так как именно во время него происходило определение мак-адреса удаленного устройства, если повторить команду Ping, то результат будет другим, так как у узла есть уже ARP-запись и он знает мак-адрес, с помощью которого можно отправлять боевые данные.

Давайте теперь попробуем запустить Ping с узла 192.168.1.2 к узлу 192.168.1.1 и посмотрим, что из этого выйдет, конечно, в режиме симуляции.

Рисунок 1.19.13 Теперь узел сформировал только один кадр с ICMP вложением

Рисунок 1.19.13 Теперь узел сформировал только один кадр с ICMP вложением

Обратите внимание: теперь узел сформировал только один кадр с ICMP вложением, у нас нет кадра с ARP-запросом, так как при первом пинге узел 192.168.1.2 узел внес в свою ARP-таблицу информацию про 192.168.1.1 и его мак-адрес. Еще одним интересным моментом здесь будет поведение коммутатора, он уже знает кому направлять кадр с ICMP-запросом, это показано на Рисунке 1.19.14.

Рисунок 1.19.14 Коммутатор уже тоже знает кому направлять ICMP-запрос

Рисунок 1.19.14 Коммутатор уже тоже знает кому направлять ICMP-запрос

Коммутатор уже тоже знает кому направлять ICMP-запрос, так как ранее он внес запись о том, что мак-адрес 00D0.5819.42A8 находится за портом fa0/4, именно к этому порту подключен ноутбук с IP-адресом 192.168.1.1, а также в этой таблице есть информация о том, что за портом fa0/3 находится узел с мак-адресом 00D0.9741.51D1, ему мы присвоили IP-адрес 192.168.1.2. Дальнейшие шаги мы уже видели не раз, поэтому давайте взглянем на таблицу мак-адресов коммутатора, для этого у нас есть команда: show mac address-table, выполним ее, как показано на Рисунке 1.19.15.

Рисунок 1.19.15 Коммутатор уже тоже знает кому направлять ICMP-запрос

Рисунок 1.19.15 Коммутатор уже тоже знает кому направлять ICMP-запрос

Чтобы появилось такое окно, нажмите два раза левой кнопкой мыши по коммутатору, а затем откройте вкладку с названием CLI, таким образом перед вами появится интерфейс управления коммутатором, в который можно вводить различные команды, но особенность оборудования Cisco заключается, в том, что изначально оно предоставляет интерфейс управления с ограниченным набором команд (это видно по приглашению ко вводу, которое выглядит так: «switch>», символ >, как раз и говорит о том, что это ограниченный режим), чтобы перейти в привилегированный режим, в котором доступны все команды, нужно написать команду «enable» или сокращенно «en», а затем уже написать show mac address-table, если вы забыли как пишется команда или не знаете: есть ли вообще нужная вам команда, то можно воспользоваться символом «?», а затем нажать Enter, таким образом вы получите подсказку, всё это показана на рисунке выше, как и сама таблица мак-адресов коммутатора.

А теперь давайте удалим таблицу мак-адресов на коммутаторе, это делается при помощи команды clear mac address-table и показано на Рисунке 1.19.16.

Рисунок 1.19.16 Удалим существующую таблицу мак-адресов на коммутаторе

Рисунок 1.19.16 Удалим существующую таблицу мак-адресов на коммутаторе

Теперь коммутатор не знает: за каким портом какой мак-адрес находится, и мы можем попробовать выполнить Ping с узла 192.168.1.1 до узла 192.168.1.2, посмотрим, что при этом изменится, но не забывайте, что у первого узла уже есть мак-адрес второго узла в ARP таблице, не забудьте в этом убедиться перед тем, как начать пинг, дело в том, что у записей в таблице ARP есть время жизни и через определенный интервал времени они удаляются, в Cisco Packet Tracer этот механизм реализован.

Рисунок 1.19.17 Повторный Ping при условии, что ARP-запись в таблице узла есть

Рисунок 1.19.17 Повторный Ping при условии, что ARP-запись в таблице узла есть

Наш узел сформировал Ethernet-кадр с ICMP вложением и отправил его узлу 192.168.1.2, но делает он это через коммутатор с пустой таблицей мак-адресов. Далее мы увидим, что коммутатор получит этот кадр, тут всё ясно, поэтому я не буду даже показывать этот шаг, гораздо интереснее то, что будет делать коммутатор дальше, ведь его таблица мак-адресов пустая и он не знает в какой порт отсылать полученные кадр. А поступит он просто: просто разошлет полученный кадр с ICMP-запросом во все порты, за которыми подключены другие устройства, а там кто ответит, тот и молодец, этот процесс называется unknown unicast flooding, и это может привести к очень печальным последствиям, если несколько коммутаторов будут включены кольцом, и один из них сделает такую вот штуку, но в нашем случае кольца нет, поэтому бояться нечего.

Рисунок 1.19.18 Коммутатор рассылает полученный кадр во все порты (unknown unicast flooding)

Рисунок 1.19.18 Коммутатор рассылает полученный кадр во все порты (unknown unicast flooding)

На Рисунке 1.19.18 мы видим unknown unicast flooding, а также мы видим, что все узлы, кроме узла назначения, откинули этот кадр, так как он принадлежит не им. Тут стоит добавить, что коммутатор уже внес мак-адрес узла 192.168.1.1 в свою таблицу, а после того, как через него пройдет ответ от узла 192.168.1.2, он внесет и его мак-адрес в таблицу и в дальнейшем, если активность этих узлов будет достаточно высока, то коммутатор при обращении к ним не будет запускать процесс unknown unicast flooding, так как их мак-адреса уже есть в таблице. Ради интереса можете самостоятельно попробовать следующий пример: поменяйте мак-адрес узлу 192.168.1.1 и сделайте пинг с узла 192.168.1.2, посмотрите, что из этого выйдет (арп-таблица второго узла и таблица мак адресов коммутатора должна содержать старый мак-адрес первого узла).

Мы рассмотрели несколько интересных моментов, но пока никак не приблизились к проблеме, которую должны решать маршрутизаторы, скорее наоборот, мы увидели, что кадры (не путать с пакетами) отправленные узлом из одной подсети, могут добраться до другой подсети, правда это была какая-то односторонняя и бесполезная связь. Давайте теперь попробуем с узла 192.168.1.1 запустить пинг до узла 192.168.2.1 и посмотрим, что из этого выйдет.

Начало этого процесса показано на Рисунке 1.19.19, узел 192.168.1.1 формирует Ethernet кадр, в него вкладывает IP-пакет, в этот пакет он аккуратно запаковывает ICMP-вложение, но тут возникает неувязочка: наш компьютер уже сейчас видит IP-адрес 192.168.2.1, он видит, что для этого IP-адреса нет записи в таблице ARP, он даже понимает, что этот IP-адрес находится в другой подсети, так как может сравнить свой IP-адрес и маску с IP-адресом, на который собирается послать ICMP-запрос, но все равно формирует ARP-запрос, чтобы попробовать выяснить мак-адрес удаленного узла, а вдруг тема выгорит, но делает он это по особенному, на IP-адрес 0.0.0.0.

Рисунок 1.19.19 Пробуем выполнить пинг узла из другой подсети без маршрутизатора

Рисунок 1.19.19 Пробуем выполнить пинг узла из другой подсети без маршрутизатора

А теперь давайте заглянем внутрь зеленого пакета, именно он у нас содержит ARP-запрос, внутренности показаны на Рисунке 1.19.20.

Рисунок 1.19.20 ARP-запрос, отправленный по маршруту по умолчанию

Рисунок 1.19.20 ARP-запрос, отправленный по маршруту по умолчанию

Тут стоит обратить внимание на то, что в ARP-запросе содержится как IP-адрес отправителя, так и IP-адрес получателя, в нашем случае IP-адрес получателя находится в другой подсети, а ноутбук отправитель — устройство не очень умное, он не знает, как из своей подсети попасть в другую подсеть, поэтому вместо IP-адреса другой подсети, ноутбук подставляет IP-адрес 0.0.0.0, этот адрес еще иногда называют шаблонным или неопределенным адресом. Этот IP-адрес является зарезервированным и его не стоит задавать своим машинам.

Следующим шагом ARP-запрос будет передан на коммутатор, а затем коммутатор разошлет его всем узлам, которые к нему подключены, понятно, что любой узел, получив такой пакет, просто отбросит его, после того как сравнит шаблонный IP-адрес с тем адресом, который ему задали мы.

Рисунок 1.19.21 Все узлы дропают кадры с арп-запросом, в котором указан неопределенный IP-адрес

Рисунок 1.19.21 Все узлы дропают кадры с арп-запросом, в котором указан неопределенный IP-адрес

На Рисунке 1.19.21 показано, что ни один узел ни в одной подсети не счел нужным отвечать на ARP-запрос, в котором используется в качестве IP-адреса назначения 0.0.0.0, что в принципе логично. При этом, при анализе содержимого ARP-запроса узел, получивший его, определит, что IP-адрес 0.0.0.0 находится в отличной подсети от подсети узла, и поэтому не станет на него отвечать, это можно увидеть, если посмотреть на содержимое пакета.

В общем, мы попали в ситуацию, когда нам необходимо организовать взаимодействие между двумя подсетями, но сделать этого мы не может, так как L2 коммутатор не способен оперировать IP-адресами, он работает с кадрами и мак-адресами. А вот маршрутизатор уже умеет обрабатывать IP-адреса, и он как раз и используется для того, чтобы объединить две подсети в одну сеть, в этой теме мы просто посмотрим, как маршрутизатор это делает, а в дальнейшем мы детально разберемся с этим процессом.

1.19.3 Коротко о назначении маршрутизаторов

Наконец мы осознали, что маршрутизатор штука нужная и очень полезная, пора бы попробовать ее добавить, давайте это сейчас и сделаем, для этого немного модифицируем нашу первоначальную схему, добавив в нее роутер, результат можете увидеть на Рисунке 1.19.22.

Рисунок 1.19.22 Объединяем две подсети при помощи роутера

Рисунок 1.19.22 Объединяем две подсети при помощи роутера

Внимательный читатель сразу заметит, что помимо роутера мы добавили еще и коммутатор, зачем это нужно? Элементарно, так дешевле (ранее мы уже говорили, что стоимость — это одна из основных характеристик компьютерной сети), ну и еще у нас нет других вариантов, обо всем этом мы поговорим в разделе, который у нас будет посвящен маршрутизаторам.

Также стоит обратить внимание на то, что линки, которые соединяют маршрутизатор с коммутатором, горят красным, это еще одно отличие коммутаторов от маршрутизаторов: обычно порты коммутаторов сразу же включены из коробки, то есть коммутатор настроен так, что его порт находится во включенном состояние прямо из коробки, а вот маршрутизаторы по умолчанию имеют выключенные порты и их нужно включать, поэтому линки красные.

Давайте теперь рассмотрим процесс добавления маршрутизатора по шагам, мы не будем привязываться к конкретной модели и выберем пустой безымянный маршрутизатор, как его найти показано на Рисунке 1.19.23, цифрами отмечена последовательность нажатия на иконки, а сам маршрутизатор, который я использовал для этой схемы выделен прямоугольником.

Рисунок 1.19.23 Добавляем роутер в проект Cisco Packet Tracer

Рисунок 1.19.23 Добавляем роутер в проект Cisco Packet Tracer

Когда вы наведете на этот роутер курсор мыши, то в самом низу интерфейса Cisco Packet Tracer прямо по центру вы увидите надпись: Router-PT-Empty, именно он нам и нужен, у этого роутера нет портов и нам их предстоит добавить, перетащите этот роутер в свой проект, а затем кликните на него два раза левой мышкой, вы увидите примерно такое окно, как показано на Рисунке 1.19.24, нас пока интересует вкладка Physical.

Рисунок 1.19.24 Добавляем роутер в проект Cisco Packet Tracer

Рисунок 1.19.24 Роутер без интерфейсов в Cisco Packet Tracer

Это пустой маршрутизатор, у него нет ни одного порта, этот маршрутизатор, как и многие другие промышленные роутеры является модульным, а это означает, что мы в этот маршрутизатор можем добавлять и удалять порты по своему усмотрению, иногда даже не порты, а действительно целые модули, которые состоят из нескольких портов.

Давайте перетащим несколько портов из левого списка, выделенного зеленым, в свободные слоты нашего маршрутизатора, но перед этим не забудьте выключить маршрутизатор тумблером, отмеченным справа, модули можно добавлять только в выключенное устройство.

Я добавил четыре модуля PT-ROUTER-NM-1CFE и у меня получилось так, как показано на Рисунке 1.19.25, эти порты с разъемами для витой пары, способные работать в режиме full duplex на скорости до 100 Мбит/c.

Рисунок 1.19.25 Добавим несколько модулей в наш маршрутизатор

Рисунок 1.19.25 Добавим несколько модулей в наш маршрутизатор

Процесс добавления еще одного коммутатора, а также соединения коммутаторов с роутером я не буду описывать, про это я уже рассказывал ранее, ничего сложного здесь нет, но не забудьте включить маршрутизатор после того, как все модули будут добавлены.

Теперь нам нужно настроить роутер так, чтобы он смог передавать IP-пакеты из одной подсети в другую, а также нам придется немного перенастроить наши хосты, но об этом позже. Для настройки роутера нужно кликнуть по нему два раза левой кнопкой мыши, у вас появится такое окно, как показано на Рисунке 1.19.26.

Рисунок 1.19.26 Интерфейс командной строки маршрутизатора Cisco при первом запуске

Рисунок 1.19.26 Интерфейс командной строки маршрутизатора Cisco при первом запуске

Обратите внимание на еще одно отличие коммутаторов Cisco от маршрутизаторов: при первом запуске интерфейса командной строки, операционная система маршрутизатора предлагает нам выполнить быструю настройку в диалоговом режиме, нам это не нужно, поэтому нужно написать «no» и нажать Enter, а затем повторно нажать Enter, что получить приглашение ко вводу, тогда вы увидите в своем окне примерно то же самое, что и в листинге ниже.

[php]
--- System Configuration Dialog —

Would you like to enter the initial configuration dialog? [yes/no]: no

Press RETURN to get started!

Router>

[/php]
Теперь нам нужно перейти в привилегированный режим роутера, чтобы были доступны все команды, для этого используем команду «enable». Как вы помните, я добавил четыре модуля в свой роутер, давайте посмотрим, увидел ли их наш роутер, для этого можно воспользоваться следующими командами: «show ip interface» или «show ip interface brief», эти команды можно написать сокращенно, Cisco поймет: «sh ip int» и «sh ip int br».

[php]
Router#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down
FastEthernet1/0 unassigned YES unset administratively down down
FastEthernet2/0 unassigned YES unset administratively down down
FastEthernet3/0 unassigned YES unset administratively down down

Router#show ip interface
FastEthernet0/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled
FastEthernet1/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled
FastEthernet2/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled
FastEthernet3/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled

[/php]
Разница между двумя этими командами в том, что «show ip interface brief» предоставляет более ёмкую и сжатую информацию. По выводу этих команд можно понять, что у нашего маршрутизатора четыре порты, способных работах в режиме full duplex на скорости 100 Мбит/c (это понятно из FastEthernet), первый порт имеет номер 0/0, а последний 3/0. Ни одному порту роутера еще не задан IP-адрес, порты находятся в выключенном состояние, причем отключены они административно (надпись administratively down).

Давайте теперь включим порты, дам небольшое пояснение: порт роутера FastEthernet0/0 смотрит в сеть 192.168.2.x/24 (на Рисунке 1.19.22 она выделена оранжевым), а порт FastEthernet1/0 смотрит в сеть 192.168.1.х/24, которая выделена голубым цветом, следовательно, нам нужно включить этих два порта. Тут стоит упомянуть, что операционная система Cisco имеет несколько режимов работы в интерфейсе командной строки, более подробно об этом мы будем говорить чуть позже, сейчас нам нужно просто перейти в режим конфигурации порта FastEthernet0/0 и включить его, как это сделать показано в листинге ниже.

[php]
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router (config)#interface fa0/0
Router (config-if)#no shutdown
Router (config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router (config-if)#

[/php]

Давайте этот листинг разберем построчно:

  1. Сначала мы выполнили «configure terminal», таким образом мы попали в глобальный режим конфигурации всего роутера, это видно по тому, как изменилось приглашение ко вводу: «Router (config)#».
  2. Затем мы выполнили команду «interface fa0/0», эта команда сказала роутеру, что мы хотим конфигурировать порт FastEthernet0/0, кстати, fa0/0 – это сокращение FastEthernet0/0, о том, что мы находимся в режиме конфигурации интерфейса говорит изменившееся приглашение ко вводу: «Router (config-if)#».
  3. Далее мы выполнили команду «no shutdown», таким образом мы включили выбранный порт. Чтобы выключить порт на оборудование Cisco используется команда «shutdown», многие команды имеют приставку no для того, чтобы выполнить обратное действие.
  4. После того как мы включили порт, операционная система нам сообщила, что между нижним коммутатором и роутером появилась физическая связь, об этом говорит сообщение: «%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up», а затем появилась связь на канальном уровне, это видно по сообщению: «%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up».

Если сейчас посмотреть на нашу схему, то будет видно, что линк в сторону нижнего коммутатора стал зеленым, а линк в сторону верхнего все еще красный, так как пока мы включили только один порт, это показано на Рисунке 1.19.27.

Рисунок 1.19.27 В данный момент включен только один порт маршрутизатора

Рисунок 1.19.27 В данный момент включен только один порт маршрутизатора

Обратите внимание: сейчас мы находимся в режиме конфигурации интерфейса FastEthernet0/0, отсюда можно сразу перейти в режим конфигурации интерфейса FastEthernet1/0, достаточно написать: «FastEthernet1/0» или «fa1/0», можно вернуться в режим глобальной конфигурации, выполнив команду «exit» или вовсе выйти из режима конфигурации, написав команду «end». Думаю, вы без труда справитесь и включите интерфейс fa1/0 по аналогии.

Я включил порт fa1/0 и теперь предлагаю посмотреть на вывод команд «sh ip int» и «sh ip int br». Но тут стоит сказать про одну особенность: команды просмотра обычных параметров не работают в режиме конфигурации, чтобы их выполнить, нужно выйти из режима конфигурации, хотя если очень сильно нужно, то перед командой типа show можно использовать ключевое слово «do» в режиме конфигурации, тогда Cisco вас поймет.

[php]

Router#sh ip int br
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset up up
FastEthernet1/0 unassigned YES unset up up
FastEthernet2/0 unassigned YES unset administratively down down
FastEthernet3/0 unassigned YES unset administratively down down

Router#sh ip int
FastEthernet0/0 is up, line protocol is up (connected)
Internet protocol processing disabled
FastEthernet1/0 is up, line protocol is up (connected)
Internet protocol processing disabled
FastEthernet2/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled
FastEthernet3/0 is administratively down, line protocol is down (disabled)
Internet protocol processing disabled

[/php]
Теперь мы видим, что первых два порта маршрутизатора включены, но им не назначены IP-адреса, а это означает, что в данный момент мы еще не сможем пропинговать узел 192.168.2.1 с узла 192.168.1.1, так как наши сети еще не связаны роутером, чтобы их связать, нужно задать IP-адреса на порты маршрутизатора, при этом не просто так, а так, чтобы порт, смотрящий вверх оказался в одной посети с верхними узлами, то есть этому порту нужно задать IP-адрес из диапазона 192.168.1.х/24, а порт, который смотрит вниз, должен быть в одной канальной среде с нижними узлами (192.168.2.х/24).

Таким образом наш маршрутизатор как бы делится на две половинки, одна половинка маршрутизатора находится в одном широковещательном домене, а другая половинка в другом, именно за счет такой особенности маршрутизатор способен передавать кадры из одной подсети в другую и это его главная задача, таким образом осуществляется связь двух подсетей. В дальнейшем мы рассмотрим более детально принципы работы маршрутизатора и разберемся с тем, как происходит перекладывание кадров из одной подсети в другую, но это будет еще не скоро.

Теперь наша задача заключается в том, чтобы задать соответствующие IP-адреса интерфейсам нашего роутер, напомню, что интерфейс fa1/0 смотрит вверх, поэтому я ему задам IP-адрес 192.168.1.25 (вместо 25 можно было бы задать любое свободное число от 1 до 254, которое еще не занято) с маской 255.255.255.0. Интерфейс fa0/0 смотрит вниз, я задам ему IP-адрес 192.168.2.77.

[php]
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router (config)#int fa1/0
Router (config-if)#ip address 192.168.1.25 255.255.255.0
Router (config-if)#int fa0/0
Router (config-if)#ip address 192.168.2.77 255.255.255.0

[/php]
В листинге выше показано, что я задал IP-адреса интерфейсам роутера, для этого я сперва перешел в режим конфигурации и выбрал порт fa1/0, а затем командой «ip address» задал этому порту IP-адрес и маску, затем я переключился на порт fa0/0 командой «int fa0/0» и задал этому порту IP и маску.

Теперь можно попробовать пропинговать узел 192.168.2.1 с узла 192.168.1.1, посмотрим, появилась ли связь между двумя сетями. Как видно по Рисунку 1.19.28, наши сети все еще не связаны, пинг не проходит.

Рисунок 1.19.28 Проверяем связь между подсетями

Рисунок 1.19.28 Проверяем связь между подсетями

Так в чем же проблема? Роутер есть, IP-адреса на его порты мы задали, может, они не применились, давайте выполним команду «sh ip int br», чтобы это проверить, посмотрим, что она нам покажет.

[php]
Router (config-if)#do sh ip int br
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 192.168.2.77 YES manual up up
FastEthernet1/0 192.168.1.25 YES manual up up
FastEthernet2/0 unassigned YES unset administratively down down
FastEthernet3/0 unassigned YES unset administratively down down
Router (config-if)#

[/php]
Как видим, IP-адреса есть, и они заданы верно, но проблема в том, что конечный узел не имеет ни малейшего представления о том, что в сети появился маршрутизатор, более того, конечный узел вообще не имеет представления о том, как выглядит наша сеть, нам нужно сказать конечному узлу, что в сети появился маршрутизатор, через который этот узел сможет попадать в другие сети, делается это путем задания основного шлюза и в качестве основного шлюза узлу задается IP-адрес того интерфейса маршрутизатора, который находится с этим узлом в одной канальной среде, то есть для верхних узлов, чей IP-адрес начинается на 192.168.1. основным шлюзом будет выступать IP-адрес 192.168.1.25, а для нижних узлов основным шлюзом будет 192.168.2.77.

Рисунок 1.19.29 Как задать основной шлюз узлу в Cisco Packet Tracer

Рисунок 1.19.29 Как задать основной шлюз узлу в Cisco Packet Tracer

Обратите внимание: чтобы задать основной шлюз узлу в Cisco Packet Tracer, нужно перейти в раздел IP-конфигураций, а затем вписать соответствующий IP-адрес в поле Default Gateway (шлюз по умолчанию или основной шлюз), итак теперь становится понятно, что Default Gateway – это не что-то мистическое, а просто IP-адрес маршрутизатора, через который конечный узел может попадать в другие сети, важно только, чтобы маршрутизатор и узел находились в одной канальной среде.

В дальнейшем мы поймем, что на самом деле шлюз по умолчанию — это даже не IP-адрес маршрутизатора, а целый маршрут, просто современные операционный системы компьютеров очень дружелюбны и не заставляют рядовых пользователей вникать в такие детали. Далее я задам всем верхним узлам в качестве Default Gateway 192.168.1.25, а нижним узлам 192.168.2.77, вы это можете сделать самостоятельно.

После того, как все будет готово, повторяем пинг, это показано на Рисунке 1.19.30.

Рисунок 1.19.30 Две сети связаны при помощи роутера

Рисунок 1.19.30 Две сети связаны при помощи роутера

Тут стоит обратить внимание на то, что первый кадр с ICMP пакетом потерялся, а дальше на три запроса мы получили три ответа, в дальнейшем мы поймем, почему так произошло, если же вам все-таки интересно понять сейчас, то не спешите лезть в Гугл, лучше переключите Cisco Packet Tracer в режим симуляции и посмотрите, что происходит.

На этом мы закончим первое знакомство с роутерами, осталось только добавить, что после конфигурации любого устройства Cisco нужно сохранять изменения, сами они не сохранятся, если изменения не будут сохранены, то при выключении устройства все ваши настройки будут сброшены, можете это проверить: для этого просто не сохраняйте изменения и воспользуйтесь тумблером питания на вкладке Physical, когда вы включите роутер линки не поднимутся.

Для сохранения изменений в реальной жизни используется команда «write», а на экзаменах Cisco эту команду использовать нельзя, так как Cisco собирается на новых устройствах убрать эту команду, на экзамене для сохранения нужно использовать команду «copy running-config startup-config», смысл этой команды мы поймем, когда будем говорит о том, где устройства Cisco хранит свои конфигурации и чем они отличаются. Сейчас отмечу, что многие команды одинаковы как для роутеров, так и для коммутаторов.

1.19.4 Простой пример настройки и использования домашнего роутера

Мы разобрались с тем, что делает маршрутизатор и зачем он нужен и даже немного познакомились с особенностями маршрутизаторов Cisco и их синтаксисом команд. Сейчас давайте вспомним самый простой и самый распространенный пример использования маршрутизаторов. Это, конечно, же ваш домашний Wi-Fi роутер, через который вы выходите в Интернет, а вы выходите в Интернет, иначе не читали бы этот текст.

Домашний роутер связывает две сети: вашу домашнюю сеть и сеть провайдера, таким образом получается, что ваш домашний роутер одной своей половиной находится в вашей локальной сети, а другой половиной он находится в сети провайдера. А у провайдера тоже стоит роутер, только этот роутер гораздо производительнее и надежнее, а его стоимость в тысячи раз больше домашнего, у больших провайдеров таких роутеров не один, а много и каждый выполняет свои определенные задачи, но в любом случае у вашего провайдера есть маршрутизаторы, которые отвечают за взаимодействия с сетями других провайдеров, но что-то мы увлеклись, вернемся к домашнему роутеру.

Давайте представим простую домашнюю сеть, в которой роутер принимает интернет от провайдера, а затем раздает его двум-трем узлам в локальной сети, для нас сейчас даже не имеет значения как подключены компьютеры к роутеру: по Wi-Fi или проводами, нас больше интересует как компьютер попадает в Интернет через домашний маршрутизатор, для наглядности я нарисовал схему, ее можно посмотреть на Рисунке 1.19.31.

Рисунок 1.19.31 Примерная схема домашней подсети и доступа в Интернет

Рисунок 1.19.31 Примерная схема домашней подсети и доступа в Интернет

Домашний роутер в душе еще немного коммутатор, а также Wi-Fi радиоантенна. Для примера давайте посмотрим на мой домашний роутер: TP-Link Archer C20. У этого роутер на задней панели есть несколько портов: один выделен синим цветом и подписан Internet, этот порт еще иногда называют WAN, именно в этот порт вставляется кабель провайдера, а также есть четыре желтых порта с подписью LAN, в эти порты подключаются витой парой устройства локальной сети.

Рисунок 1.19.32 Домашний роутер TP-Link Archer C20

Рисунок 1.19.32 Домашний роутер TP-Link Archer C20

Синий порт в данном случае является маршрутизируемым портом, то есть он умеет перекладывать пакеты из одной подсети в другую, а желтые порты – это коммутируемые порты, они используются для соединения устройств из одной подсети. Давайте теперь заглянем в настройки этого роутера и немного о них поговорим. Сначала посмотрим на настройки, который используются для выхода во внешний мир, то есть на то, что мне выдает провайдер, они показаны на Рисунке 1.19.33.

Рисунок 1.19.33 Настройки WAN-интерфейса на роутере

Рисунок 1.19.33 Настройки WAN-интерфейса на роутере

Здесь видно, что провайдер выдает мне IP-адрес по протоколу DHCP, то есть по динамике, о том, как работает этот протокол, мы поговорим чуть позже, сейчас прошу обратить внимание на маску: 255.255.255.128, она говорит о том, что со мной в одной подсети может находиться еще до 125 узлов, которые подключены к этому же провайдеру. А также следует сказать следующее: я от провайдера получаю белый IP-адрес по динамике, но это не означает, что при перезагрузке роутера IP-адрес поменяется, есть специальные настройки, которые позволяют выдавать всегда один и тот же IP-адрес по DHCP.

Следующее поле MTU, стандартное значение MTU 1500 байт, про MTU будет отдельная тема, этот параметр этого заслуживает, сейчас я лишь отмечу, что MTU – это количество полезной информации в Ethernet кадре или IP-пакете, а при несовпадении MTU связи может не быть. Почему-то роутер не показывает DNS-сервера, которые я также получаю по динамике, но они есть. Мой роутер получает IP-адреса DNS серверов провайдера, DNS сервер выполняет очень важную задачу: он преобразует IP-адреса в доменные имена сайтов, на которые мы заходим и наоборот, хотя на самом все несколько сложнее и про DNS пишут отдельные книги.

Теперь давайте посмотрим на настройки роутера, которые касаются локальной сети или настройки LAN интерфейса, эти настройки показаны на Рисунке 1.19.34.

Рисунок 1.19.34 Настройки LAN-интерфейса на роутере

Рисунок 1.19.34 Настройки LAN-интерфейса на роутере

Обратите внимание: на рисунке указан IP-адрес 192.168.0.1, этот IP-адрес прописан на роутере, компьютер его использует как шлюз по умолчанию для выхода во внешний мир, так же здесь указана маска подсети, из этой маски следует, что в данный момент в моей домашней сети может быть до 253 узлов, хотя с таким количеством узлов этот маршрутизатор не справится.

Еще обратите внимание на MAC-адрес (B0:4E:26:AA:B8:39), это физический адрес роутера, который видят устройства моей локальной сети, устройства, которые находятся в сети провайдера видят другой MAC, если говорить о домашних роутерах, то обычно этот адрес на единицу больше, то есть в моем случае: B0:4E:26:AA:B8:3A.

Обычно у каждого физического интерфейса роутера свой мак-адрес и каждый из этих мак-адресов находится в своей канальной среде или в своей подсети. Также стоит отметить, что на рисунке выше мы видим настройки, которые прописаны на роутере, но мы не видим настройки, которые должны быть прописаны на узлах локальной сети, давайте на них посмотрим на Рисунке 1.19.35.

Рисунок 1.19.35 DHCP настройки на домашнем роутере

Рисунок 1.19.35 DHCP настройки на домашнем роутере

Из рисунка видно, что домашний роутер работает не только в качестве коммутатора и маршрутизатора, но и в качестве DHCP-сервера, то есть он выдает сетевые настройки машинам, находящимся в локальной сети при этом выдаваемые IP-адреса, находятся в диапазоне: от 192.168.0.100 до 192.168.0.199, и все эти IP-адреса находятся в одной подсети с IP-адресом роутера, прописанном на LAN-интерфейсе, это важно, так как иначе наша сеть бы не работала. Как видно из рисунка, время, на которое устройства моей локальной сети получают настройки от роутера, составляет 120 минут, то есть каждых два часа эти устройства должны продлевать аренду полученных настроек. Помимо самих IP-адресов для узлов локальной сети, роутер выдает этим узлам IP-адрес шлюза, через который эти устройства будут выходить в Интернет.

Также прошу обратить внимание на то, что мой роутер от провайдера получает публичный IP-адрес, то есть адрес, маршрутизируемый в Интернете, а локальные узлы получают частные IP-адреса (разницу мы обсудим, но в другой теме), то есть такие адреса, которые в Интернете не маршрутизируются и их каждый может использовать в своих локальных сетях. При этом не стоит забывать, что к роутеру может быть подключено несколько локальных устройств, которые получают от него приватные адреса, а приватные адреса в Интернете не используются, поэтому роутер должен транслировать данные, отправляемые локальными машинами в Интернет, перебивая частные IP-адреса на публичный, а затем, когда роутер будет получать ответы от устройств из Интернета, он должен не запутаться и послать ответ тому устройству, которое делало запрос, этот механизм реализуется при помощи технологии NAT, подробности будут позже, сейчас мы лишь скажем, что NAT бывает трех видов: статический NAT, динамический NAT, и перегруженный NAT или PAT, в современных компьютерных сетях в основном используется только последний.

Стоит еще отметить, что у домашнего роутера есть таблица маршрутизации, которая для роутера является картой, при помощи нее он определяет: куда направить IP-пакет, пришедший на роутер, в нашем случае таблица очень простая и состоит из трех записей, она показана на Рисунке 1.19.36.

Рисунок 1.19.36 Таблица маршрутизации домашнего роутера

Рисунок 1.19.36 Таблица маршрутизации домашнего роутера

Первая запись в этой таблице – это есть ничто иное, как маршрут до провайдерского роутера, при помощи этой записи домашний роутер понимает, как добраться до роутера, который установлен у провайдера. Вторая запись помогает роутеру отправлять пакеты, приходящие из вне в мою локальную сеть. А третья запись – это маршрут по умолчанию, дефолтный маршрут, восьми нулевый маршрут (так как IP-адрес и маска в этом маршруте суммарно дают восемь нулей), как его не называй, назначение этой записи не изменится и вот какую инструкцию дает эта запись домашнему роутеру: если тебе пришел IP-пакет с IP-адресом назначения, до которого ты не знаешь, как добраться, отправляй этот пакет провайдерскому роутеру с IP-адресом, указанным в колонке шлюз, он разберется. Другими словами: когда машины моей локальной сети обращаются к машинам в сети Интернет, они отправляют на домашний роутер IP-пакеты, в которых указан IP-адрес назначения (то есть IP-адрес устройства, к которому они хотят обратиться) и если у роутера в таблице маршрутизации не будет информации о том, как добраться до этого IP-адреса, он отправит такой пакет провайдерскому роутеру, а тот уже разберется, куда направлять такие пакеты, тут бы можно было немного продолжить и рассказать о том, что такое BGP и full view, но пока слишком рано, кому интересно, можете погуглить.

Про общение с внешним миром сказано уже достаточно, давайте перейдем к локальным проблемам, мы помним, что связь в локальной сети осуществляется на канальном уровне, а на канальном уровне, как мы помним, используются мак-адреса, у каждого сетевого устройства должен быть свой уникальный мак-адрес, как минимум, в пределах канальной среды, а по задумке разработчиков: мак-адрес любого устройства – это уникальная комбинация, по которой можно определить производителя и модель устройства.

Так вот, наш роутер, чтобы не генерировать лишний трафик и не делать широковещательных ARP-запросов при каждом обращении к нему со стороны локальных устройств, тем самым нагружая локальную сеть и уменьшая свою производительность, поступает несколько более хитро, он создает специальную таблицу, которая называется ARP-таблица, в которой ведет учет: какому мак-адресу соответствует тот или иной IP-адрес, пример такой таблицы показана на Рисунке 1.19.37.

Рисунок 1.19.37 ARP-таблица домашнего роутера

Рисунок 1.19.37 ARP-таблица домашнего роутера

Компьютеры также умеют делать ARP-запросы и они тоже понимают, что это не самое эффективное решение и что каждый ARP-запрос – это дополнительная загрузка локальной сети, поэтому они также ведут свою ARP-таблицу, в которую заносят записи о соответствие IP и MAC адресов в своем широковещательном домене, ARP таблица моего компьютера показана на Рисунке 1.19.38.

Рисунок 1.19.38 ARP-таблица компьютера с Windows 10

Рисунок 1.19.38 ARP-таблица компьютера с Windows 10

Как посмотреть ARP-таблицу мы разобрались, но компьютер может дать информацию о том, какие сетевые настройки он использует для работы в локальной сети, для этого в операционных системах Windows есть команда ipconfig, но нас больше интересует результат этой команды с параметром /all, то есть целиком команда будет выглядеть так: ipconfig /all. Таки образом вы сможете посмотреть все сетевые интерфейсы вашего компьютера и их настройки, настройки и параметры Wi-Fi адаптера моего ноутбука, через который идет подключение к роутеру, показаны на Рисунке 1.19.39.

Рисунок 1.19.39 Сетевые конфигурации компьютера с Windows 10

Рисунок 1.19.39 Сетевые конфигурации компьютера с Windows 10

Здесь указана модель адаптера, его мак-адрес, также видно, что компьютер получает настройки от роутера по DHCP, еще указано время, когда IP-адрес был получен, а также когда истечет срок аренды, но обратите внимание: в качестве DNS-сервера используется IP-адрес шлюза, в данном случае это означает, что компьютер будет отправлять DNS запросы домашнему роутеру, а тот в свою очередь будет пересылать запросы DNS-серверам провайдера, адреса которых у него есть. Также у любого компьютера есть своя таблица маршрутов, эту таблицу можно редактировать руками, но нам ее нужно только посмотреть, на компьютерах с ОС Windows это делается командой route print, ее вывод показан на Рисунке 1.19.40.

Рисунок 1.19.40 Таблица маршрутов компьютера

Рисунок 1.19.40 Таблица маршрутов компьютера

Здесь нас интересует первая запись в этой таблице, это маршрут по умолчанию, он здесь нужен по тем же причинам, что и роутеру, ведь наш компьютер ничего не знает о внешнем мире, да ему это и не надо. Стоит обратить внимание на крайний правый столбец, который называется «Метрика». Метрика – это стоимость маршрута, чем ниже метрика, тем лучше или дешевле маршрут, про метрики мы будем подробнее говорить, когда будем разбираться с протоколами динамической маршрутизации.

Завершая разговор, давайте приведем схему, реализованную в Cisco Packet Tracer, которая эмулирует процесс взаимодействия домашней сети с сетью провайдера. Вы ее сможете собрать самостоятельно, а затем в режиме симуляции посмотреть, что и как там происходит, схема показана на Рисунке 1.19.41.

Рисунок 1.19.41 Схема Cisco Packet Tracer моделирующее взаимодействие с провайдером

Рисунок 1.19.41 Схема Cisco Packet Tracer моделирующее взаимодействие с провайдером

Обратите внимание: граница канальных сред проходит ровно по домашнему роутеру, канальные среды обозначены на рисунке разными цветами. Именно ваш домашний маршрутизатор перекладывает IP-пакеты из локальной сети в сеть провайдера. В данном случае у домашнего роутера два интерфейса: один смотрит в сторону провайдера и на нем прописаны настройки, которые выдал провайдер, а второй смотрит в локальную сеть, на нем настройки, который придумали мы самостоятельно, как администраторы локальной сети, у этих интерфейсов разные мак-адреса, хотя принадлежат они одному роутеру. Если вы решите самостоятельно собрать эту схему, то индикатором того, что вы все сделали правильно, будет проходящий пинг с компьютера или ноутбука до маршрутизатора провайдера.

1.19.5 Выводы

Итак, мы с вами разобрались в назначении роутеров и маршрутизаторов и сделали выводы о том, что их главное назначение заключается в перекладывание IP-пакетов из одной сети в другую, мы разобрались с базовыми принципами этого процесса, но более детально разбираться с работой роутеров мы будем в дальнейшем в рамках этих уроков. Также в процессе разговора о роутерах мы обозначили несколько интересных и полезных технологий и протоколов, принцип работы которых нужно понимать, с этими технологиями мы тоже будем разбираться (DHCP, NAT, DNS и другие).

И опять у нас появилось вопрос больше, чем ответов, но в процессе изучения чего-то нового так всегда: чем больше ты узнаешь, тем больше у тебя вопросов, дальнейшие темы позволят нам избавиться от некоторых белых пятен.

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 11 comments

  1. Фёдор Фёдорович Reply

    Очень толковые и полезные для новичка записи примного тебе благодарен, все настолько разжевано и детально, что даже полному нубу в компьютерных сетях будет понятно, жду когда более сложные вещи будут.

    • Кирилл Reply

      Спасибо за отзыв, будем продолжать развивать тему.

      • A1enka Reply

        Спасибо, Кирилл! С нетерпением жду продолжения, хочу когда-нибудь CCNA от Cisco получить, не очень понимаю правда зачем он мне, но очень хочу

  2. Ksyu Reply

    Спасибо вам большое, Кирилл! Очень доступно и понятно написано про назначение роутеров и маршрутизаторов, у нас в универе объяснялось всё гораздо сложнее, было ощущение, что препод сам никогда не видел роутеров и не понимает как они работают. А у вас всё просто, доступно с картинками и схемами, даже становится понятно как работают IP-сети и зачем компьютером основной шлюз и причем тут вообще маршрутизаторы.

    • Кирилл Reply

      Спасибо за отзыв! 🙂 В компьютерных сетях вообще нет ничего сложного, единственное — очень большая терминология и двоякий смысл, например, не всегда основной шлюз — это IP-адрес роутера, функцию маршрутизатора с успехом может выполнять и какой-нибудь сервер, хотя с точки зрения общего принципа работы ничего не изменится.

  3. Константин Reply

    у вас по моему ошибка, вы назначили адреса 192.168.1.25 и 192.168.2.77, пишите что шлюзами для подсетей будут 192.168.1.25 и 192.168.2.1

    • Кирилл Reply

      Да согласен, поправил на 192.168.2.77. Спасибо.

  4. Александр Reply

    Очень все разборчиво написано, спасибо. Как роутер различает, где искать запрошеный ip, внутри локальной сети или снаружи

  5. Михаил Reply

    Сижу уже час думаю что у меня не так со схемой домашней сети, вот не проходит пинг к роутеру провайдера и всё, не могу понять что не так, уже даже поставил такие же настройки на всех устройствах, не понимаю. Пакет доходит до роутера провайдера но тот не принимает а откидывает, пишет что ип пакет не ему, хотя отправляешь ему. Ниче не пойму.

  6. Евгений Reply

    Кирилл, большое спасибо за статью!

    Вы явно обладаете талантом преподавателя. А это подразумевает не только хорошее знание материала, но и умение донести свои знания до других в удобной для понимания форме. Такое сочетание встречается не очень часто.

    Статья читается легко, иллюстрации понятные. Ваша статья — это образец, как нужно писать статьи и учебники.

    Спасибо!

    🙂

    • Кирилл Reply

      Спасибо за отзыв!

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...