Первая часть статьи доступна по ссылке.

1. Маршрутизаторы

Рисунок 1 – Маршрутизатор Cisco 2811
Рисунок 1 – Маршрутизатор Cisco 2811

На рис. 1 показан маршрутизатор Cisco 2811, имеющий два маршрутизирующих порта и несколько пустых слотов, в которые можно вставлять различные модули.

Маршрутизаторы могут выполнять следующие функции:

  • коммутацию пакетов: маршрутизаторы, как и коммутаторы могут коммутировать пакеты (при наличии соответствующих модулей или если в качестве маршрутизатора используются коммутаторы с поддержкой 3 уровня модели OSI);

  • передачу данных в другие сети;

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

  • фильтрацию пакетов: маршрутизаторы могут отбрасывать или транслировать пакеты на основе различных критериев, например, данных об Отправителе или Получателе пакетов.

2. IP-пакеты

Рисунок 2 – Структура IP-пакета
Рисунок 2 – Структура IP-пакета

На третьем уровне модели OSI передача данных осуществляется в IP-пакетах (рис. 2), которые инкапсулируются в кадры Ethernet на втором уровне модели OSI. IP-пакет содержит следующие данные:

  • Version — четырехбитное поле версии, к которой принадлежит протокол (для IPv4 значение равно 4);

  • Header Length — содержит длину заголовка (в нем указано число 32 ‑разрядных слов) и, следовательно, указывает на начало данных; минимальное значение длины равно 5, максимальное — 15, что соответствует заголовку длиной 60 байт;

  • Type of Service — 8-битное поле, долгое время не использовавшееся; в последнее время первые 6 бит задают класс обслуживания (DSCP), а в последние 2 бита помещаются явные уведомления о перегруженности (ECN);

  • Datagram length (bytes) — полная длина дейтаграммы, включая как заголовок, так и данные (минимальная длина равна 20 байтам; максимальная допустимая длина равна 65 535 байт);

  • 16-bit Identifier — идентификатор пакета, позволяющий хосту‑Получателю определить какому из пакетов принадлежат полученные им фрагменты, поскольку все фрагменты одного пакета содержат одно и то же значение идентификатора;

  • Flags — флаги, 3 бита:

    • 0 — резервный бит (значение должно быть равно 0);

    • 1 — бит DF (Don»t Fragment): 0 — пакет можно фрагментировать, 1 — нельзя;

    • 2 — бит MF (More Fragments, Продолжение следует): 0 — последний фрагмент, 1 — не последний фрагмент;

  • 13-bit Fragmentation Offset — 13-битное поле смещение фрагмента, указывающее положение фрагмента в пакете (длина всех пакетов кроме последнего должна быть кратна восьми байтам, возможно 65 528 байт смещения);

  • Time‑to‑Live — счетчик, ограничивающий время жизни пакета и отсчитывающий время в секундах, допуская максимальное время жизни пакета в 255 сек, после чего отправителю отсылается сообщение ICMP Time Exceeded, что предотвращает вечное странствование пакетов;

  • Upper Layer Protocol — поле, указывающее какому протоколу транспортного уровня следует передать этот пакет, например, TCP, UDP, ICMP;

  • Header Checksum — 16-битное поле, хранящее только контрольную сумму заголовка IP‑пакета;

  • 32-bit Source IP address — IP‑адрес Отправителя;

  • 32-bit Destination address — IP‑адрес Получателя;

  • Options (if any) — поле опций (при их наличии) переменной длины;

  • Data — поле данных.

3. Адресация в сети на третьем уровне модели OSI

На рисунке представлен пример вида адресов IPv4 и IPv6. IPv4-адрес состоит из четырёх октетов, в каждом из которых максимально возможное число равно 255. Всего в Интернете возможны 232 или 4 294 967 296 уникальных адресов. В Интернете у каждого хоста и маршрутизатора имеется IP-адрес. Но этот адрес имеет отношение не к хосту или маршрутизатору, а к их сетевым интерфейсам. Поэтому хост или маршрутизатор могут иногда иметь несколько IP‑адресов.

Рисунок 3 – Пример вида IP-адресов различных форматов
Рисунок 3 – Пример вида IP-адресов различных форматов

IP адресами могут быть:

  • адрес IP-сети (группа IP устройств, имеющих доступ к общей среде передаче - например, все устройства в сегменте Ethernet). Если сеть не разбита на подсети, то сетевой адрес всегда имеет биты интерфейса адресного пространства установленными в 0;

  • широковещательный адрес IP-сети (адрес для 'разговора' со всеми устройствами в IP сети), имеющий интерфейсные (хостовые) биты адресного пространства установленными в 1 (если сеть не разбита на подсети);

  • адрес сетевого интерфейса (например, Ethernet-адаптер или PPP интерфейс хоста, маршрутизатора, сервера печати и т.д). Эти адреса могут иметь любые значения хостовых битов, исключая все нули или все единицы - чтобы не путать их с адресами сетей и широковещательными адресами.

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

Изначально в сети использовалась так называемая «классовая адресация», при которой все сети разбивались на классы А, В, С, D и Е:

  • сети класса A имели диапазон публичных адресов от 1.0.0.0 до 127.255.255.255 и маску 255.0.0.0;

  • сети класса B имели диапазон публичных адресов от 128.0.0.0 до 191.255.255.255 и маску 255.255.0.0;

  • сети класса С имели диапазон публичных адресов от 192.0.0.0 до 223.255.255.255 и маску 255.255.255.0;

  • сети класса D имели диапазон адресов от 224.0.0.0 до 239.255.255.255 и используются для широковещательной передачи данных;

  • сети класса Е имели диапазон адресов от 240.0.0.0 до 255.255.255.255, который был зарезервирован для дальнейшего использования.

В этих диапазонах адресов были выделены так называемые «приватные адреса» (рис 4).

Рисунок 4 – Диапазоны приватных адресов
Рисунок 4 – Диапазоны приватных адресов

В связи с бурным развитием Интернета в последнее десятилетие имеется острая нехватка публичных адресов, в связи с чем происходит переход на адреса IPv6, но происходит он не очень активно из-за неудобства их использования.

С приватными адресами проблем никаких нет, и любая компания может в своей сети использовать адреса из любых приватных диапазонов. При передаче данных за пределы сети они сначала поступают на шлюз компании, на котором работает протокол NAT (Network Address Translation), преобразующий приватные IP-адреса в уникальный публичный адрес сети компании. Обратный процесс происходит при приёме данных из Интернета в сеть компании. Шлюз содержит соответствующую таблицу преобразований, как маршрутизатор – таблицу маршрутизации, а коммутатор – таблицу МАС-адресов.

Пример приватного IP-адреса показан на рис. 5.

Рисунок 5 – Пример приватного IP-адреса
Рисунок 5 – Пример приватного IP-адреса

4. Маршрутизация

Под маршрутизацией понимается процесс определения оптимального маршрута данных в сетях связи. Различают два вида маршрутизации – статическую и динамическую.

Статические маршруты могут задаваться административно (маршрут в маршрутизаторе прописывается вручную). Такими маршрутами могут быть:

  • маршруты, не изменяющиеся во времени;

  • маршруты, изменяющиеся по расписанию.

Преимуществами статической маршрутизации являются:

  • простота внедрения в небольшой сети;

  • высокая безопасность сети, поскольку в этом случае от маршрутизатора не требуется отправки никаких сообщений;

  • маршрут к месту назначения всегда остаётся неизменным;

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

Недостатками статической маршрутизации являются:

  • она подходит только для простых топологий (небольших по размеру сетей) или специальных задач, например, задания статического маршрута по умолчанию;

  • сложность настройки сети существенно возрастает по мере её роста;

  • при необходимости изменения маршрутов все действия требуется осуществлять вручную на всех маршрутизаторах сети.

Пример статической маршрутизации представлен на рис 6.

Рисунок 6 – Статическая маршрутизация
Рисунок 6 – Статическая маршрутизация

В данном случае серийный интерфейс маршрутизатора А (IP-адрес 172.16.1.2) соединён с серийным интерфейсом маршрутизатора В (IP-адрес 172.16.1.1). Статический маршрут от В к сети 172.16.1.0 можно прописать способом 1 (рис. 6), а маршрут от А к В – способом 2 (рис. 6).

Пример применения маршрута по умолчанию представлен на рис. 7.

Рисунок 7 – Пример использования маршрута по умолчанию
Рисунок 7 – Пример использования маршрута по умолчанию

Маршрутизатор В сети 172.16.1.0соединён с маршрутизатором А провайдера единственным соединением. Поэтому для передачи данных из В в А можно использовать статическую маршрутизацию по умолчанию. Данные передаются в сеть 0.0.0.0 с маской 0.0.0.0, что означает всем другим сетям, находящимся за маршрутизатором А. С помощью такого маршрута в данном случае можно достучаться до любой сети, находящейся за маршрутизатором А, например, до сети 10.0.0.0.

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

Преимуществами динамической маршрутизации являются:

  • она подходит для работы во всех топологиях, в которых есть несколько маршрутизаторов;

  • она обычно не зависит от размера сети;

  • автоматическое изменение (при наличии возможности) таблиц маршрутизации при изменении топологии.

Недостатками динамической маршрутизации являются:

  • реализация её может предполагать высокий уровень сложности;

  • она менее безопасна, и для повышения безопасности требуются дополнительные настройки;

  • маршруты зависят от текущей топологии сети;

  • требует дополнительных ресурсов процессора, памяти и пропускной способности каналов.

В Интернете маршрутизаторы поделены на группы, называемые Автономными системами (далее — АС), то есть некоторые совокупности маршрутизаторов, находящихся под единым административным управлением. Эти маршрутизаторы могут находиться где угодно: в квартирах, в офисах, у провайдера — главное, что ими управляет одна и та же команда специалистов. Публичные АС регистрируются в организации‑регистраторе (в Европе, например, это RIPE NCC) и получают номер АС и публичные IP-адреса.

По отношению к АС динамическая маршрутизация может быть внешней и внутренней (рис. 8). Внутренняя маршрутизация используется внутри АС и за протоколы, используемые в ней отвечает провайдер. Для маршрутизации между АС используются только протоколы внешней маршрутизации. К протоколам маршрутизации между АС относится BGP (Border Gateway Protocol). К протоколам внутренней маршрутизации относятся: RIP, IGRP, EIGRP, OSPF, IS-IS.

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

Рисунок 8 – Внутренняя и внешняя динамическая маршрутизация
Рисунок 8 – Внутренняя и внешняя динамическая маршрутизация
Рисунок 9 – Эволюция протоколов динамической маршрутизации
Рисунок 9 – Эволюция протоколов динамической маршрутизации
  • Interior Gateway Protocols — протоколы внутренней динамической маршрутизации;

  • Exterior Gateway Protocols — протоколы внешней динамической маршрутизации;

  • Distance Vector Routing Protocols — протоколы, основанные на дистанционно‑векторной маршрутизации (определении минимальной длины пути);

  • Link State Routing Protocols — протоколы, основанные на определении состояния связей;

  • Path Vector — протоколы, основанные на определении пути;

  • Classful — протоколы, зависящие от классов сетей;

  • Classless — протоколы, не зависящие от классов сетей;

  • Ipv6 — протоколы, применяемые для маршрутизации в сетях с Ipv6.

Протоколы динамической маршрутизации предназначены для:

  • получения данных о сетях, удалённых от маршрутизатора;

  • обновления данных в таблицах маршрутизации;

  • выбора оптимального маршрута до сети Получателя;

  • возможности определения нового маршрута до сети получателя при недоступности текущего маршрута.

Пример вида таблицы маршрутизации на одном из маршрутизаторов компании Cisco представлен на рис. 10.

Рисунок 10 – Таблица маршрутизации
Рисунок 10 – Таблица маршрутизации

В крайне левом столбце таблицы буквами указаны протоколы, использованные для получения маршрутов. Здесь O — это протокол OSPF, C — сеть, непосредственно подключенная к интерфейсу маршрутизатора, S — маршрут по умолчанию. Маска сети может записываться в виде четырёх октетов или через «/», после которого указывается количество единиц. В крайне правом столбце указан интерфейс, через который идёт маршрут к сети, указанной во втором справа столбце.

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

Продолжение следует...

Комментарии (3)


  1. pae174
    28.10.2024 13:48

    Классы сетей вместо CIDR в 2024 году, серьезно?! А потом удивляемся, что вайтишник-сетевик на собесе не может посчитать адрес броадкаста по маске сети.

    Time-to-Live - счетчик, ограничивающий время жизни пакета и отсчитывающий время в секундах, допуская максимальное время жизни пакета в 255 сек

    Где вы берете такую траву?

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

    Если TTL обнулился то пакет дропается.

    Разные перационные системы делают разный стартовый TTL, обычно там 64 или 128.


  1. ESelin
    28.10.2024 13:48

    Да... Странная статья. Многое намешано в кучу и с глупыми ошибками...

    Про TTL выше уже сказали.

    Те же диапазоны приватных сетей - 172.16.0.0/12, а не /16.

    Статью писал "великий и могучий ИИ"?


    1. Nauka_Blog Автор
      28.10.2024 13:48

      Спасибо за грамотные замечания и внимание к статье! Надеемся, что наши следующие материалы также вызовут ваш интерес). И будем рады видеть вас в наших кругах: https://spb.hh.ru/employer/469282