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


Маршрутизация (routing) – процесс передачи пакетов.

Правила маршрутизации конечных устройств (хостов)

Конечные устройства, при передаче пакетов, полагаются на следующую логику:

  1. Если IP адрес получателя находится в той же самой подсети (т.е. относится к тому же номеру сети и принадлежит тому же диапазону) что и IP адрес отправителя, то устройство отправляет пакет напрямую получателю.
  2. Если IP адрес получателя находится в другой подсети (т.е. относится к другому номеру сети, а значит принадлежит другому диапазону), то устройство отправляет пакет на шлюз по умолчанию (default gateway). Чаще всего это интерфейс маршрутизатора (router).

Очень важная информация!

Рисунок 4.5 Маршрутизация конечных устройств
Рисунок 4.5 Маршрутизация конечных устройств

 

Как видно из “гифки” (Рисунок 4.5), пакет, предназначенный для ПК2, отправляется напрямую (в этом случае коммутатор не рассматривается, это устройство второго уровня модели OSI и никакое отношение к пакетам не имеет), потому что находится в одной сети с ПК1 (1.0.0.0/8), следовательно зеленый пакет ПК1 отправит по первому правилу. А пакет, предназначенный для ПК4 (бирюзового цвета), ПК1 отправит по второму правилу, т.к. ПК4 находится в другой подсети.

Маршрутизация Router (маршрутизатор)

Освежим некоторые моменты


Маршрутизатор (Router) – сетевое устройство, соединяющее части сети для передачи IP-пакетов. Основная функция роутеров – маршрутизация.

Правила группировки адресов:

  • Все IP адреса в одной группе не должны быть разделены маршрутизатором (router).
  • Все IP адреса разделенные маршрутизатором должны быть в разных группах.

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

Прежде чем разобрать большой пример, укажем несколько важных моментов:

  • на протяжении всего пути IP пакет не меняется (очень важно!);
  • при переходе пакета из одной подсети в другую, меняется фрейм, он является транспортом для переноса пакета внутри одного сегмента сети (очень важно!);
  • номера сетей, подключенные к маршрутизатору напрямую, по умолчанию появляются в таблице маршрутизации (очень важно!);
  • так же маршруты бывают либо статические,человек сам прописывает их, либо динамические, появившиеся при помощи протоколов маршрутизации (очень важно!).
Рисунок 4.6 Пример маршрутизации
Рисунок 4.6 Пример маршрутизации

 

Следует пояснить некоторые элементы рисунка 4.6. Я старался максимально поиграть с адресацией и выбрал не стандартные номера сетей. Рядом с маршрутизаторами прописан последний октет IP адреса и номер интерфейса, например, 1.20.20.46 – адрес интерфейса fa0/1, на маршрутизаторе R1. Так же на рисунке не показаны MAC адреса, будем вместо них писать имена устройств, а в случае с роутерами, еще и портов. Теперь пошагово разберем путь пакета от компьютера Андрея к веб-серверу.

Шаг 1.

Компьютер Андрея (PC1) формирует пакет с адресом отправителя 10.20.20.110 и адресом получателя 200.20.20.70 (Рисунок 4.7). На протяжении всего пути этот пакет меняться не будет.

Рисунок 4.6 Пример маршрутизации

Рисунок 4.7 Пакет от ПК Андрея к Веб-серверу

 

На этом же шаге ПК Андрея принимает решение куда пакет смаршрутизировать (передать). Согласно логике описанной выше, пакет будет смаршрутизирован на шлюз по умолчанию (ip адрес получателя принадлежит другому номеру сети). В данном примере шлюзом по умолчанию для ПК Андрея является ip адрес интерфейса fa0/0 (10.20.20.1) принадлежащий R1. Чтобы передать пакет на R1, ПК Андрея будет создавать фрейм указывая свой MAC адрес в качестве отправителя и MAC адрес R1 в качестве получателя. Как и было сказано выше канальный уровень является транспортом для передачи пакета внутри одной подсети (сегмента сети). Вместо MAC адресов используем названия конечных устройств, как было оговорено выше (Рисунок 4.8).

Рисунок 4.8 Фрейм от ПК Андрея к R1
Рисунок 4.8 Фрейм от ПК Андрея к R1

 

Шаг 2.

R1 принимает фрейм, обрабатывает его, т.к. видит свой MAC адрес. Первым делом происходит проверка целостности фрейма (проверяется контрольная сумма – FCS), это часть процесса деинкапсуляции (так же убирается заголовок канального уровня), после которого остается пакет. Из всего пакета маршрутизатору нужен только IP адрес получателя, по нему он ищет маршрут в своей таблице маршрутизации. Рассмотрим таблицу маршрутизации R1.

Таблица 4.4 Таблица маршрутизации R1

Номер сети/префикс Исходящий интерфейс IP адрес следующего маршрутизатора
10.20.20.0/24 Fa0/0 N/A
1.20.20.44/30 Fa0/1 N/A
130.21.21.24/29 Fa0/1 1.20.20.45
200.20.20.64/27 Fa0/1 1.20.20.45

Первые два маршрута это номера сетей подключенные напрямую к R1, одна подключена к Fa0/0 (10.20.20.0/24), другая к Fa0/1 (1.20.20.44/30). Эти маршруты появляются сами, как только мы назначили адреса на интерфейсы. Остальные два маршрута добавлены статически, т.е. кто-то их туда внес. Третий и четвертый маршруты проходят через R2, именно поэтому мы указываем Fa0/1, как исходящий интерфейс (откуда будет вылетать пакет), и в третьей колонке указываем IP адрес Fa 0/3 на R2. R1 определит, что адрес 200.20.20.70 принадлежит номеру сети 200.20.20.64/27 (четвертая строчка в таблице маршрутизации R1), следовательно надо отправить этот пакет через Fa0/1 на IP адрес 1.20.20.45 ( этот адрес он использует для нахождения MAC адреса следующего маршрутизатора). И так, после того как маршрутизатор определился с маршрутом, он инкапсулирует пакет в новый фрейм (добавляет к пакету новый заголовок и новую контрольную сумму).

Рисунок 4.9 Фрейм от R1 к R2

Рисунок 4.9 Фрейм от R1 к R2

 

Шаг 3.

R2 принимает фрейм, обрабатывает его, т.к. видит свой MAC адрес. Далее аналогично шагу 2 происходит деинкапсуляция, после которой остается пакет. R2 ищет маршрут соответствующий адресу получателя пакета, рассмотрим его таблицу маршрутизации.

Таблица 4.5 Таблица маршрутизации R2

Номер сети/префикс Исходящий интерфейс IP адрес следующего маршрутизатора
1.20.20.44/30 Fa0/3 N/A
130.21.21.24/29 Fa0/1 N/A
10.20.20.0/24 Fa0/3 1.20.20.46
200.20.20.64/27 Fa0/1 130.21.21.25

Опять же первые два маршрута это номера сетей подключенные напрямую. Третий маршрут проходит через R1, соответственно указывается интерфейс маршрутизатора R2, который смотрит в сторону R1 (Fa0/3) и указывается адрес R1. Четвертый маршрут, именно этот подходит для продвижения нашего пакета дальше, указывает что адрес 200.20.20.70 принадлежит номеру сети 200.20.20.64/27, следовательно надо отправить этот пакет через Fa0/1 используя IP адрес 130.21.21.25 (IP адрес интерфейса fa 0/2 на R3). После того как маршрутизатор определился с маршрутом, он инкапсулирует пакет в новый фрейм (добавляет к пакету новый заголовок и новую контрольную сумму).

Рисунок 4.10 Фрейм от R2 к R3

Рисунок 4.10 Фрейм от R2 к R3

 

Шаг 4.

R3 принимает фрейм и обрабатывает его. Далее аналогично шагам 2 и 3 происходит деинкапсуляция, после которой остается пакет. R3 ищет маршрут соответствующий адресу получателя пакета, рассмотрим его таблицу маршрутизации.

Таблица 4.6 Таблица маршрутизации R3

Номер сети/префикс Исходящий интерфейс IP адрес следующего маршрутизатора
200.20.20.64/27 Fa0/0 N/A
130.21.21.24/29 Fa0/2 N/A
10.20.20.0/24 Fa0/2 130.21.21.28
1.20.20.44/30 Fa0/2 130.21.21.28

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


Очень важно понимать и представлять взаимодействие канального и сетевого уровней, поэтому ниже добавлено две “гифки”, первая от ПК1 к ПК2, вторая от ПК2 к ПК1. Обратите внимание на то как меняется фрейм, а пакет остается неизменным.
Рисунок 4.11 Передача данных от ПК1 к ПК2

Рисунок 4.11 Передача данных от ПК1 к ПК2

 

Рисунок 4.12 Передача данных от ПК2 к ПК1
Рисунок 4.12 Передача данных от ПК2 к ПК1

 

Итоги примера

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

  1. Процесс маршрутизации передает пакеты (L3 пакеты или единицы данных сетевого уровня), основываясь на адресе получателя этого пакета.
  2. Процесс маршрутизации использует канальный уровень, чтобы инкапсулировать пакеты в фреймы и передать их по физической среде.

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



ID: 94 Created: Oct 19, 2016 Modified Jan 17, 2019