Приветствую, коллеги! Меня зовут @ProstoKirReal. Мне бы хотелось с вами обсудить как работает интернет от кабелей на витой паре, соединяющие простые локальные сети до подводных коммуникационных кабелей соединяющие между собой континенты и основные операторские сети.
Поскольку в одной статье невозможно охватить всю тему целиком, я разделю подготовленный материал на несколько частей. Сегодня мы начнем с базовых понятий.
Важно понимать, что разобраться во всех аспектах этой темы сложно, так как существуют узкие специализации и знания, недоступные обычному сетевому инженеру. Я не буду углубляться в историю интернета или рассказывать о классах IP-адресов и других устаревших концепциях. Вместо этого я сосредоточусь на том, как работает интернет в настоящее время.
В этом цикле статей я не стану учить вас настраивать оборудование и проектировать сети. Я расскажу об основных (и не только) принципах построения сети, а также о функционировании сети и сетевых протоколов в стеке TCP/IP.
Я буду часто ссылаться к предыдущим статьям, где уже описывал сетевые протоколы. Это позволит мне сократить объемный текст.
❯ Зачем нужна эта статья?
Данная статья нужна нам для того, чтобы разобраться в базовых знаниях и разобрать:
- что такое коммутатор, маршрутизатор, их основные различия и зачем они нужны;
- примеры работы простых сетей, с помощью сетевых концентраторов (хабов) и коммутаторов.
❯ Что такое коммутатор, маршрутизатор?
Когда мы задаем вопрос в поисковике: «Чем отличается коммутатор от маршрутизатора?», то один из самых распространенных ответов, который можно найти в интернете (например, на Mail.ru), звучит так:
в функционале. маршрутизатор - маршрутизирует, коммутатор - коммутирует. все просто:)))
Это, пожалуй, самый краткий и ёмкий ответ на данный вопрос.
Однако если подойти к вопросу серьезно, необходимо разобраться в понятиях коммутации и маршрутизации.
Коммутация — это процесс перенаправления данных (кадров) в пределах одной сети, основанный на анализе адреса назначения. Она работает на канальном уровне модели OSI (L2), используя MAC-адреса устройств.
Маршрутизация — это процесс определения пути для передачи данных между разными сетями. Работает на сетевом уровне модели OSI (L3), используя IP-адреса.
Коммутаторы (switch) и маршрутизаторы (router) — это два ключевых устройства в сетевых инфраструктурах, которые выполняют разные, хотя и пересекающиеся, задачи. Разберемся в их функциях, особенностях и причинах появления, а также рассмотрим современные реалии, в которых их функциональность все больше пересекается.
Зачем появились маршрутизаторы
Исторически маршрутизаторы появились для соединения сетей с разными технологиями передачи данных. В начале эры сетей существовало множество локальных сетей (LAN) с различными стандартами: Ethernet, Token Ring, модемные пулы и другие. Эти сети были физически и логически разобщены, поскольку каждая из них использовала свои протоколы адресации и методы передачи данных.
Для решения этой проблемы была введена абстракция в виде IP-адреса — универсального протокола, не привязанного к физическому носителю. Маршрутизаторы стали устройствами, способными связывать сети с разными технологиями передачи данных, обеспечивая маршрутизацию на основе IP-адресов.
Основные функции
-
Коммутаторы:
работают преимущественно на уровне 2 модели OSI (канальный уровень);
создают таблицы MAC-адресов, которые определяют, через какой физический порт отправлять трафик;
обеспечивают коммуникацию внутри одной локальной сети (LAN).
-
Маршрутизаторы:
работают на уровне 3 модели OSI (сетевой уровень);
используют таблицы маршрутизации для определения оптимального пути передачи данных;
обеспечивают связь между разными сетями, в том числе с разными технологиями (Ethernet, Frame Relay, ATM, DSL);
используют протоколы маршрутизации, такие как OSPF, BGP, IS-IS.
Совместная работа коммутаторов и маршрутизаторов
Коммутаторы обеспечивают быстрый обмен данными внутри сети.
Маршрутизаторы соединяют локальную сеть с другими сетями, например, с интернетом, обеспечивая связь с серверами.
❯ Современные тенденции
Раньше этих различий хватало для определения работы коммутатора и маршрутизатора, но в современных устройствах все эти функции часто объединяются в L3-коммутаторах, которые совмещают преимущества обоих типов устройств.
На данный момент различия между ними размыто, так как коммутаторы L3 и L3+ (Multiplayer switch) могут выполнять часть функционала маршрутизатора и маршрутизатор может иметь дополнительные физические порты для подключения локальных сетей.
❯ Рассмотрим различия между устройствами
L2-коммутаторы (канальный уровень)
❯ Особенности
Рабочий уровень: работают на 2 уровне модели OSI (канальный уровень).
Функциональность: обеспечивают передачу данных внутри одной локальной сети (LAN), используя таблицу MAC-адресов для маршрутизации кадров Ethernet.
Ограничения: не способны маршрутизировать трафик между разными VLAN или подсетями.
❯ Плюсы
Простая настройка.
Высокая производительность для однорангового (peer-to-peer) соединения.
❯ Минусы
Отсутствие поддержки IP-адресации.
Не подходит для сложных сетевых структур с множеством VLAN.
L3-коммутаторы (сетевой уровень)
❯ Особенности
Рабочий уровень: работают на 3 уровне модели OSI (сетевой уровень).
-
Функциональность:
выполняют функции коммутатора (L2) и маршрутизатора (L3);
поддерживают маршрутизацию между VLAN через интерфейсы SVI (Switch Virtual Interface);
поддерживают IP-адресацию и статическую маршрутизацию.
❯ Плюсы
Универсальность.
Встроенная поддержка маршрутизации.
❯ Минусы
Ограниченные возможности динамической маршрутизации (по сравнению с маршрутизаторами). Обычно используется «межвлановая» маршрутизация, когда ip-адрес назначается на VLAN, а не на саб-интерфейс.
Более сложная настройка по сравнению с L2-коммутаторами.
L3+ коммутаторы (расширенные возможности сетевого уровня)
❯ Особенности
Рабочий уровень: также работают на 3 уровне, но с функциями, приближенными к маршрутизаторам.
-
Функциональность:
полноценная поддержка динамических протоколов маршрутизации (OSPF, BGP, EIGRP);
расширенные функции управления трафиком: ACL, QoS, NAT;
некоторые модели поддерживают MPLS для оптимизации передачи данных.
❯ Плюсы
Возможности динамической маршрутизации.
Более высокий уровень управления сетью.
❯ Минусы
Стоимость.
Сложность настройки.
Маршрутизаторы (Router)
❯ Особенности
Рабочий уровень: работают на 3 уровне модели OSI и выше.
-
Функциональность:
передача данных между разными сетями;
маршрутизация IPv4 и IPv6;
полноценная поддержка динамической маршрутизации (OSPF, BGP, RIP и др.);
поддержка VPN, NAT и часть функций межсетевого экранирования.
❯ Плюсы
Поддержка работы в глобальных сетях (WAN).
Высокий уровень безопасности.
❯ Минусы
Не предназначены для высокоскоростного L2-коммутирования.
Могут вызывать дополнительные задержки в локальных сетях.
❯ Сравнительная таблица
Характеристика |
L2 Switch |
L3 Switch |
L3+ Switch |
Router |
Уровень OSI |
2 |
2 и 3 |
2 и 3 |
3 и выше |
Основная задача |
Коммутация LAN |
Коммутация и маршрутизация VLAN |
Расширенная маршрутизация |
Межсетевое соединение |
Поддержка маршрутизации |
Нет |
В основном статическая |
Динамическая |
Динамическая |
VLAN |
Да |
Да |
Да |
Нет |
QoS |
Ограниченная |
Да |
Да |
Да |
Подключение к интернету |
Нет |
Нет |
Да |
Да |
L2-коммутаторы идеально подходят для небольших сетей, где маршрутизация не требуется.
L3-коммутаторы — оптимальное решение для сетей с VLAN и умеренной сложностью.
L3+ коммутаторы находят применение в крупных и сложных инфраструктурах с необходимостью динамической маршрутизации.
Маршрутизаторы — необходимы для соединения локальных сетей с внешними сетями, но не заменяют коммутаторы внутри LAN.
Каждое устройство имеет свои уникальные сильные стороны и применяется в зависимости от масштабов и требований сети.
Хотя изначально коммутаторы и маршрутизаторы выполняли строго разные задачи, современное развитие сетевых технологий привело к значительному пересечению их функций.
Однако ключевые различия сохраняются: маршрутизаторы лучше подходят для связи между сетями с различными технологиями и для управления сложными топологиями, тогда как коммутаторы оптимизированы для высокой пропускной способности и коммутации в рамках одной сети. Выбор между этими устройствами зависит от конкретных задач и архитектуры сети.
❯ Что такое сеть?
Что же такое сеть? Если соединить два компьютера между собой, назначить им IP-адреса, будет ли это сетью? Ответ прост: да, это уже локальная сеть.
Сеть — это соединение двух и более компьютеров, устройств или других компонентов для обмена информацией.
Как только мы подключаем устройства к домашнему маршрутизатору, они становятся частью локальной сети. Маршрутизатор служит шлюзом по умолчанию для всех подключенных устройств и направляет пакеты данных для выхода в интернет.
Но пока не будем забегать вперед, начнем с самого простого — с двух соединенных между собой компьютеров.
❯ Рассмотрим самую простую сеть
Предположим, у нас есть два компьютера. Компьютер №1 имеет mac-адрес 00:00:00:00:00:0a, а компьютер №2 — 00:00:00:00:00:0b.
Мы назначаем компьютеру №1 IP-адрес 192.168.0.1, а компьютеру №2 — IP-адрес 192.168.0.2. Затем мы соединяем их сетевые карты «напрямую» с помощью витой пары.

Чтобы проверить доступность соседнего компьютера, можно использовать утилиту «ping» и отправить запрос на него.
Однако есть проблема: компьютер №1 не сможет сразу отправить ICMP-запрос компьютеру №2, так как он не знает его mac-адрес. Это можно проверить, введя команду «arp -a» в командной строке (для Windows) и убедившись, что таблица ARP пуста.

Как было сказано в предыдущей статье, ARP (Address Resolution Protocol) — это важнейший протокол в компьютерных сетях, который используется для определения MAC-адреса другого компьютера по известному IP-адресу.
Первым делом компьютер №1 отправит широковещательный запрос в сеть, чтобы узнать, кто такой 192.168.0.2.
Пакет будет выглядеть следующим образом:
src mac-адрес 00:00:00:00:00:0a;
dst mac-адрес ff:ff:ff:ff:ff:ff (широковещательный mac-адрес);
IP-адресов не будет, так как ARP работает на уровне L2;
в теле пакета будет информация: кто такой 192.168.0.2, спрашивает 192.168.0.1.

Подробнее о заголовках L3 уровня (ARP, ICMP и др.) я рассказывал в этой статье.
После того как ARP-ответ будет получен компьютером №2, он сохранит в своей ARP-таблице информацию о IP и mac-адресе компьютера №1.
Теперь компьютеру необходимо отправить ARP-ответ.
Пакет будет выглядеть следующим образом:
src mac-адрес 00:00:00:00:00:0b;
dst mac-адрес 00:00:00:00:00:0a;
IP-адресов не будет, так как ARP работает на уровне L2;
в теле пакета будет информация: у IP-адреса 192.168.0.2 mac-адрес - 00:00:00:00:00:0b.

После того как ARP-ответ поступит к компьютеру №1, он сохранит в своей ARP-таблице информацию о IP и mac-адресе компьютера №2.
Теперь для формирования ICMP-запроса известна вся информация, и от компьютера №1 будет сформирован следующий пакет:
src mac-адрес 00:00:00:00:00:0a;
dst mac-адрес 00:00:00:00:00:0b;
src IP-адрес 192.168.0.1;
dst IP-адрес 192.168.0.2
в теле пакета будет служебная информация для ICMP-протокола (подробнее в этой статье).

После того как ICMP-запрос поступит на компьютер №2, тот отправит ICMP-ответ, так как уже знает mac-адрес соседнего устройства из своей ARP-таблицы.
Ответ будет выглядеть следующим образом:
src mac-адрес 00:00:00:00:00:0b;
dst mac-адрес 00:00:00:00:00:0a;
src-IP-адрес 192.168.0.2;
dst-IP-адрес 192.168.0.1;
в теле пакета будет служебная информация для ICMP-протокола.
После того как все эти пакеты прошли свой не долгий путь, в утилите «ping» появится первое сообщение о доступности соседнего устройства.

❯ Три компьютера и сетевой концентратор (Hub)
❯ Что если нам нужно подключить больше компьютеров к одной сети?
Для этого в простых сетях используют сетевой концентратор, он же hub/хаб.
❯ Как работает хаб?
Хаб передает данные, поступающие на один из его портов, на все остальные порты, что позволяет устройствам в локальной сети обмениваться информацией без сложной настройки. Однако такой подход имеет свои плюсы и минусы.
❯ Плюсы и минусы использования хаба
Хаб — это недорогое сетевое устройство, которое подходит для соединения небольших локальных сетей. Однако, если в сети используется большое количество устройств, возникают проблемы.
Эффективность: хаб работает на уровне L1 модели OSI, что означает, что он не различает адреса. Все пакеты передаются всем устройствам, кроме отправителя, независимо от их назначения.
Конфликт пакетов: поскольку данные передаются одновременно всем устройствам, в сети могут возникать коллизии. Чем больше устройств подключено, тем выше вероятность коллизий.
Пропускная способность: каждый порт хаба делит общую пропускную способность сети, что приводит к её снижению по мере увеличения числа подключений.
Современные сети используют коммутаторы (switch), которые работают на уровне L2, что позволяет им направлять пакеты только устройствам-адресатам.
❯ Пример работы хаба
Предположим, у нас есть хаб и три компьютера с IP-адресами:
компьютер №1: 192.168.0.1;
компьютер №2: 192.168.0.2;
компьютер №3: 192.168.0.3.
Все три компьютера подключены к хабу. Теперь, если мы с компьютера №1 отправим запрос «ping» на компьютер №2, то процесс будет происходить следующим образом.
Шаг 1. ARP-запрос
Компьютер №1 сначала отправит ARP-запрос в сеть, чтобы узнать MAC-адрес компьютера №2. Этот запрос будет выглядеть так:
src MAC-адрес: 00:00:00:00:00:0a;
dst MAC-адрес: ff:ff:ff:ff:ff:ff (широковещательный адрес);
IP-адреса в пакете отсутствуют, так как ARP работает на уровне L2.

Действия хаба
Хаб получит этот пакет через порт, к которому подключен компьютер №1, и передаст его на все остальные порты, кроме порта-отправителя. Таким образом, ARP-запрос поступит как на компьютер №2, так и на компьютер №3. Компьютеры №2 и №3 сохранят в ARP-таблице запись о компьютере №1, так как запрос был широковещательным. Однако ответит на него только компьютер №2, так как IP-адрес в запросе соответствует его собственному.

Ответ от компьютера №2
Компьютер №2 отправит ARP-ответ, который пройдет через хаб и будет доставлен компьютеру №1. Компьютер №3 проигнорирует этот ответ, так как он не предназначен ему.
ARP-ответ будет выглядеть следующим образом:
src MAC-адрес: 00:00:00:00:00:0b;
dst MAC-адрес: 00:00:00:00:00:0a;
IP-адреса в пакете отсутствуют, так как ARP работает на уровне L2.

Шаг 2. ICMP-запрос и ответ
После завершения ARP-обмена компьютер №1 сформирует ICMP-запрос и отправит его на компьютер №2. Запрос и последующий ответ будут переданы аналогичным образом через хаб, но пакеты также дойдут до всех устройств в сети, создавая дополнительную нагрузку.

❯ Особенности работы ARP в сети с хабом
В такой схеме:
Компьютеры №1 и №2 знают о существовании друг друга;
Компьютер №3 знает о компьютере №1, так как получил его ARP-запрос, но не знает о компьютере №2.
Небольшое пояснение почему
Компьютер №3 знает о Компьютере №1 из своей ARP-таблицы, но не знает о Компьютере №2 по следующим причинам:
-
Обработка ARP-запросов.
ARP-запросы обрабатываются операционной системой компьютера, а не сетевой платой. Однако, поскольку ARP-запрос имеет широковещательный MAC-адрес назначения (ff:ff:ff:ff:ff:ff), он достигает всех устройств в локальной сети и принимается сетевой платой;
-
Сохранение записи в ARP-таблице.
Хотя Компьютер №3 получает ARP-запрос, адресованный другому IP-адресу (например, Компьютеру №1), он не отвечает на него. Однако информация из тела пакета (IP-адрес и MAC-адрес Компьютера №1) может быть сохранена в ARP-таблице Компьютера №3 как часть пассивного процесса обучения;
-
Отбрасывание ARP-ответа.
ARP-ответ, отправленный Компьютером №1, также достигает Компьютера №3. Однако, поскольку MAC-адрес назначения в этом пакете не совпадает с MAC-адресом сетевой карты Компьютера №3, пакет отбрасывается сетевой платой на аппаратном уровне. В результате информация о Компьютере №2 не попадает в ARP-таблицу Компьютера №3.
Если мы попытаемся «пингануть» с компьютера №2 компьютер №3, произойдет ARP-обмен, как в примере выше. Однако если мы попытаемся с компьютера №3 «пингануть» компьютер №1, процесс будет следующим:
Компьютер №3, зная MAC-адрес компьютера №1 из своей ARP-таблицы, сразу отправит ICMP-запрос;
Компьютер №1, не имея записи о компьютере №3, отбросит запрос и отправит широковещательный ARP-запрос;
После получения ARP-ответа от компьютера №3 компьютер №1 сможет ответить на ICMP-запрос;
Компьютер №3 отправит новый ICMP-запрос, на который компьютер №1 успешно ответит.
Когда мы запускаем утилиту «ping», некоторые пакеты теряются. Это происходит из-за того, что требуется ARP-обмен данными между всеми промежуточными устройствами. Именно поэтому возникает необходимость в обмене данными с использованием протокола ARP между всеми устройствами, находящимися между источником и получателем данных.

❯ Три компьютера и L2 коммутатор
❯ Как обеспечить стабильность работы сети и исключить коллизии?
Ответ прост: использовать L2-коммутатор.
❯ Принцип работы L2-коммутатора
Коммутатор работает на канальном уровне модели OSI и использует MAC-адреса для пересылки данных. Рассмотрим на примере, как это происходит.
Устройства в сети:
компьютер №1: 192.168.0.1;
компьютер №2: 192.168.0.2;
компьютер №3: 192.168.0.3;
коммутатор №1: MAC-таблица изначально пуста.
Шаг 1. ARP-запрос
Когда компьютер №1 отправляет запрос «ping» на компьютер №2, он сначала формирует ARP-запрос для определения MAC-адреса получателя. Этот запрос поступает на коммутатор, который, не имея записей в MAC-таблице, рассылает его на все активные порты, кроме порта-отправителя.

Действия коммутатора:
Коммутатор добавляет в свою MAC-таблицу запись о компьютере №1, связав его MAC-адрес с портом, через который пришел запрос;
ARP-запрос доставляется компьютерам №2 и №3.

Ответы компьютеров:
Компьютер №2, распознав свой IP-адрес, отправляет ARP-ответ;
Компьютер №3 игнорирует запрос, но сохраняет запись о MAC-адресе компьютера №1 в своей ARP-таблице.
Коммутатор, получив ARP-ответ от компьютера №2, обновляет свою MAC-таблицу, добавляя запись о MAC-адресе компьютера №2.

Шаг 2. ICMP-запрос и ответ
После завершения ARP-обмена компьютер №1 отправляет ICMP-запрос компьютеру №2. Благодаря MAC-таблице, коммутатор направляет пакеты только в порт, подключенный к компьютеру №2, избегая лишней нагрузки на другие устройства.

❯ Особенности работы ARP в сети с коммутатором
Компьютеры №1 и №2 знают о существовании друг друга;
Компьютер №3 знает MAC-адрес компьютера №1, но не знает о существовании компьютера №2;
В MAC-таблице коммутатора нет записи о компьютере №3.
Если компьютер №3 отправит запрос «ping» на компьютер №1, процесс будет следующий:
Компьютер №3 сразу формирует ICMP-запрос, используя MAC-адрес из своей ARP-таблицы;
Коммутатор передает пакет на порт компьютера №1;
компьютер №1, не имея записи о компьютере №3, отправляет ARP-запрос;
после завершения ARP-обмена компьютер №1 отвечает на ICMP-запрос.

❯ Что будет если во время работы коммутатор перезагрузится?
Если коммутатор перезагрузится или его MAC-таблица очистится, он начнет временно работать как хаб, передавая пакеты на все порты, пока MAC-таблица не будет заполнена.

В этой ситуации происходит следующее:
Пакет, адресованный компьютеру №2, поступает на коммутатор. Поскольку MAC-таблица коммутатора пуста, чтобы обеспечить корректную работу сети, коммутатор передает эти пакеты на все порты, кроме того порта, через который они были получены. Затем в MAC-таблицу коммутатора добавляется первая запись о компьютере №1;

Затем коммутатор получит пакет, предназначенный для компьютера №2. Поскольку в MAC-таблице нет записи об этом компьютере, чтобы обеспечить корректную работу сети, коммутатор передаст эти пакеты на все порты, кроме того порта, через который они были получены. После этого в MAC-таблицу коммутатора будет добавлена первая запись о компьютере №2;
Далее сеть будет работать так же, как и до перезагрузки или очистки MAC-таблицы.

Ключевое отличие коммутатора от концентратора (хаба) заключается в следующем: хаб, независимо от обстоятельств, всегда будет пересылать пакеты во все порты, кроме того, из которого этот пакет был получен. В свою очередь, коммутатор передает пакеты на все порты до тех пор, пока в его MAC-таблице не появятся записи. Как только в таблице появляются записи, коммутатор направляет пакеты в соответствующие порты.
❯ Три компьютера и несколько L2 коммутаторов
Рассмотрим, как работает сеть с несколькими коммутаторами.
Устройства в сети:
компьютер №1: 192.168.0.1;
компьютер №2: 192.168.0.2;
компьютер №3: 192.168.0.3;
коммутатор №1 и №2: MAC-таблица изначально пуста.
Все три компьютера подключены к нескольким коммутаторам. Если с компьютера №1 отправить запрос «ping» на компьютер №2, ARP-запрос попадет на коммутатор и будет направлен во все активные порты, поскольку это широковещательный запрос.

Шаг 1. ARP-запрос
Когда компьютер №1 отправляет ARP-запрос компьютеру №2:
-
Коммутатор №1:
передает запрос на все порты, кроме порта-отправителя;
сохраняет в MAC-таблицу запись о компьютере №1.

-
Коммутатор №2:
получает запрос от коммутатора №1 и передает его на свои порты;
добавляет в MAC-таблицу запись о MAC-адресе компьютера №1.
Компьютеры №2 и №3 сохраняют запись о MAC-адресе компьютера №1.

Шаг 2. ICMP-запрос и ответ
Когда компьютеры начинают обмениваться ICMP-пакетами, каждый коммутатор использует свои MAC-таблицы для передачи пакетов только на целевые порты.

Если с компьютера №3 отправить запрос «ping» на компьютер №2, произойдет ARP-обмен данными между устройствами. Коммутаторы сохранят необходимые записи в своих MAC-таблицах, и ICMP-пакеты будут передаваться в соответствии с этими таблицами.

❯ Особенности работы с несколькими коммутаторами
У каждого коммутатора своя уникальная MAC-таблица.
Коммутатор №2 может иметь одну запись для порта с несколькими устройствами, подключенными через другой коммутатор.
Каждый коммутатор формирует свою MAC-таблицу, основываясь на трафике, проходящем через его порты. Чем больше устройств подключено за одним портом, тем больше записей будет ассоциировано с этим портом. Однако даже в сложных сетях коммутаторы эффективно справляются с передачей пакетов, минимизируя нагрузку на сеть.
❯ Заключение
Подводя итоги, мы рассмотрели ключевые устройства и их функции в сетях, такие как коммутаторы и маршрутизаторы, их различия и области применения. Также мы разобрали базовые принципы работы сетей на примере нескольких подключенных устройств, ARP-запросов, ICMP-протокола и их взаимодействия.
Важно отметить, что в этой статье мы не рассматривали работу маршрутизаторов в более сложных сетевых топологиях. В следующей статье мы разберем, как работают маршрутизаторы, как сегментировать сеть, зачем это нужно и как это влияет на масштабируемость и управление.
Эти знания помогут глубже понять основы проектирования сетей и взаимодействия их компонентов.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩

? Читайте также:
Комментарии (69)
Mi11er
13.01.2025 09:17Это же не цикл статей, дубль СДСМ ?
ProstoKirReal Автор
13.01.2025 09:17Сдсм больше для того как это все настроить, я же хочу рассказать как это работает.
Tihron
13.01.2025 09:17А если мы подключим третий коммутатор и, с его помощью, соединим первый и второй?
Tihron
13.01.2025 09:17По-сути, тогда должен записаться вход первый среди входящих. А если мы отключим устройство №1 от коммутатора №1 и подключим к коммутатору №3? Нужно как-то удалить данные об компьютере №1 и, когда он будет подключен к коммутатору №3, то записать информацию о нём, пусть он будет компьютер №1.1, тогда надо перезаписать его в таблице
Tihron
13.01.2025 09:17То есть, откуда пришел первый ARP-запрос, то мы и записываем как местонахождение этого устройства. А если память будет переполняться? Удаляем самые старые записи?
ProstoKirReal Автор
13.01.2025 09:17Имеете в виду если к 2м коммутаторам подключены конечные устройства и один коммутатор промежуточный?
Tihron
13.01.2025 09:17Нет, треугольником
Tihron
13.01.2025 09:17Грубо говоря, когда есть несколько путей, по которым можно отправить пакет. Таких маршрутов, в которых путь между двумя узлами используется не более одного раза
Akina
13.01.2025 09:17В случае кольца работают дополнительные протоколы (STP, ERPS и т.п.), которые отключают часть портов, преобразуя кольцо в дерево. Или всё ложится из-за бродкастового шторма.
lerdo
13.01.2025 09:17Немного удивила подача материала, как будто пропущена первая глава. Коммутатор - L2, маршрутизатор - L3, в первых же строчках. Но простите, если это материал для новичков - объясните что такое L2 и L3 в OSI и чем OSI отличается от TCP/IP, а уже потом объясняйте их взаимодействие с железками. А если это рассчитано на людей знакомых с сетевыми моделями, то наверное им уже не будет интересен этот материал.
ProstoKirReal Автор
13.01.2025 09:17В предыдущих статьях я уже затрагивал эти темы, в данной статье не хотел еще раз повторяться. Старался дать на все темы ссылки.
Можете написать в каких именно местах есть вопросы ?
Ivanii
13.01.2025 09:17Практически все управляемое современное(и не очень) оборудование работает примерно как коммутатор но аппаратно по хеш таблице(таблицам), то чего нет в таблице идет на обработку процу и он добавляет новые записи в таблицу.
Akina
13.01.2025 09:17Для решения этой проблемы была введена абстракция в виде IP-адреса — универсального протокола, не привязанного к физическому носителю.
Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый, маршрутизируемый протокол. И если описанное было одной из целей создания, то уж точно не единственной.
Маршрутизаторы стали устройствами, способными связывать сети с разными технологиями передачи данных
Вы явно путаете маршрутизаторы и конверторы интерфейса. Простейшая точка доступа связывает проводную и беспроводную сети, где технологии уж точно разные - но она никак не маршрутизатор. Ну или конвертор оптики в медь...
Сеть — это соединение двух и более компьютеров, устройств или других компонентов для обмена информацией.
Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?
Как только мы подключаем устройства к домашнему маршрутизатору, они становятся частью локальной сети.
А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?
Tihron
13.01.2025 09:17Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру. То есть, если компьютер не подключен к сети (к порту не подключен кабель/к порту подключен кабель, который не подключен к другому устройству), то компьютер это обнаружит и поймет, что он не подключен ни к какой сети. Адреса 127.0.0.х — это, скорее всего, адреса локального хоста. В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства. Вообще, интересный вопрос, я задумался, поразмышляв на досуге. (Я не автор поста, если что)
Akina
13.01.2025 09:17Адреса 127.0.0.х — это, скорее всего, адреса локального хоста.
Так и есть, вы совершенно правы.
В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства.
Сеть - это необязательно между устройствами, сеть - она между узлами сети, даже если эти узлы есть два разных входа в один и тот же сетевой стек. Иначе получается парадокс - сервер есть, клиент есть, сетевой обмен есть, а сети нет.
Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру.
Я бы сказал, что адрес - это именованная точка входа в сетевой стек. У одного экземпляра сетевого стека их может быть несколько. Да собственно их всегда несколько. Даже если есть один комп с одной сетевой картой и одним IP-адресом на ней, и мы не смотрим на адреса подсети локалхоста, всё равно у сетевого стека минимум две точки входа, связанные с сетевой картой, одна "именуется" по МАС-адресу, вторая по IP-адресу.
max1960
13.01.2025 09:17Сетевые устройства также являются узлами сети (см DTE и DCE). Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства. Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.
Akina
13.01.2025 09:17Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства.
Это что есть адрес снаружи. Но что он есть с точки зрения самого устройства?
И описанный мной случай - формально устройство-то обращается само к себе, оба адреса - локалхост.
Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.
Вы знаете термин, который определяет IP-адрес именно как именованный интерфейс с точки зрения самого узла, а не того, кто к нему обращается? Скажите его (или их), буду признателен. Или считаете, что такая формулировка неудачна? Сформулируйте лучше.
Aelliari
13.01.2025 09:17один IP-адрес присваивается одному компьютеру
Может ли, один и тот же глобально-маршрутизируемый IP-адрес быть присвоен нескольким компьютерам?
ProstoKirReal Автор
13.01.2025 09:17Это я расскажу в следующих статьях. При использовании NAT, один глобальный "Белый адрес" присваивает нескольким локальным компьютерам "Серий адрес"
max1960
13.01.2025 09:17Видимо, имеется в виду, anycast или multicast. Кроме того, есть протоколы типа VRRP, которые тоже под это описание подходят.
pin2t
13.01.2025 09:17Может. Публичные DNS сервера 1.1.1.1 от Cloudflare и 8.8.8.8 от Google это же не один сервер, это много серверов, просто из каждой подсети крупных провайдеров связи пакеты маршрутизируются на разные сервера.
Aelliari
13.01.2025 09:17Вот :) Ситуация когда в одном сегменте локальной сети встречаются два устройства с одинаковым IP-адресом - это аномалия, и это вызовет проблемы.
С другой стороны маршрутизация в интернете осуществляется с помощью протокола BGP, и он не запрещает анонсировать одни и те же подсети из разных мест. Это позволяет присваивать одни и те же ip-адреса разным компьютерам/серверам. И при обращении к серверу, трафик пойдет по «кратчайшему маршруту» (стоит помнить, он не является гарантировано оптимальным, но чаще это так). Этот трюк называют anycast, и его активно использует часть CDN-сервисов и сервисов обеспечивающих DDOS-защиту с целью распределения и оптимизации нагрузки. Ну и да, упомянутые вами DNS-сервера от Гугла и cf - это примеры anycast-сетей.
А NAT - это совсем про другое
ProstoKirReal Автор
13.01.2025 09:17Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый,
Я не говорил о том, что он единственный и первый протокол, просто стал универсальным.
Вы явно путаете маршрутизаторы и конверторы интерфейса.
Как раз маршрутизатор это и обеспечивает. Примеры - WiFi, где маршрутизируется беспроводная и проводная технология. А также различные технологии передачи данных, включая DSL (цифровая абонентская линия).
Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?
Это все еще 2 устройства. Сервер и клиент. Сеть — это соединение ДВУХ и более компьютеров, УСТРОЙСТВ или других компонентов для обмена информацией.
Приведу пример гипервизора. Когда мы создаем несколько виртуальных машин на одном физическом устройстве и пробрасываем их между собой, то это 2 и более устройств, просто виртуальных.А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?
Отвечая на Ваш вопрос, да становится.
Akina
13.01.2025 09:17Как раз маршрутизатор это и обеспечивает. Примеры - WiFi, где маршрутизируется беспроводная и проводная технология.
Это когда точка доступа работает в режиме роутера (маршрутизатора, обычного или NAT). А когда она работает в режиме прозрачного моста между WiFi и кабелем? Никакой маршрутизации нет и в помине.
Но ещё показательнее конвертор оптика-медь. Это вообще пассивное устройство, просто тупо передаёт пакеты с преобразованием среды передачи... у него даже интерфейса нет, ни МАС, ни тем более IP-адреса нет, в отличие от вышеупомянутой точки доступа, так что никакой маршрутизации нет и быть не может даже теоретически. А различие технологии передачи данных видно невооружённым глазом.
TheMrWhite
13.01.2025 09:17сам коммутатор имеет свой IP/MAC адрес? он как-то используется при коммутации?
Akina
13.01.2025 09:17Сам коммутатор - нет, не имеет. А вот его интерфейс управления (если это управляемый коммутатор) - да, имеет. Но интерфейс управления - это, считай, подключенный к коммутатору компьютер, только компьютер специализированный и подключенный через отдельный интерфейс.
ProstoKirReal Автор
13.01.2025 09:17Сам коммутатор в приведенных примерах не имеет своего IP-адреса, но MAC-адрес он имеет, просто при передачи трафика не меняет ни src ни dsя Mac-address в пакете и как бы прозрачен в сети. А вот хабы как раз не имеют MAC-адресов.
itGuevara
13.01.2025 09:17Как то думал про такую идею. Со своего компа Вова отправляет Мaше по почте "Hello" и смотрит через net-VR-шлем на провод и видит свое сообщение в разрезе всех протоколов. Начать можно просто с визуализации сообщения на разных уровнях. А потом в привязке к шлему - назвать это "Цифровым двойником сети", который при наведении на конкретный кабель показывает передаваемые по нему сообщения (фильтром можно оставить только прикладного уровня и только интересующего приложения).
Т.е. сетевой сканер (sniffers), но для виртуального обозрения передаваемых по сети (конкретному проводу) данных с упрощением, т.е. часть служебной информации скрывать (настраиваемым фильтром), а для какой-то части давать подсказку, чтобы для обычного юзера было адаптировано (не Wireshark -ом же его пугать). Может есть уже такие?
ProstoKirReal Автор
13.01.2025 09:17Идея супер! Я бы такую статью с удовольствием почитал! Как напишите, дайте знать.
pes_loxmaty
13.01.2025 09:17Типа подошел такой в шлеме к любому шнурку и весь хттпс трафик просмотрел? Тащ майор, палитесь )
Vest
13.01.2025 09:17Я правильно понимаю, что потерянный первый ICMP-пакет (что-то с превышением времени ожидания) — это нормально для ситуаций, когда мы пингуем устройство, которое нас ещё не знает?
Почему сообщение тогда так сформулировано, а не, скажем, «вы нам незнакомы»?
И почему сторонние сервера (типа Гугла) пингуются с первой попытки? Это потому, что в качестве MAC-адреса выступает мой провайдер или кто-нибудь, кого Гугл уже видел и содержит информацию в ARP-таблице?
Я понимаю, что вы не автор статьи, но быть может знаете ответ. Спасибо заранее.
Akina
13.01.2025 09:17ICMP пингует по IP. И вашей станции не нужен МАС конечного, пингуемого, устройства. Вам нужен только МАС следующего по маршруту узла - т.е. обычно вашего дефолтного шлюза, который почти наверняка вам известен. То же будет и со следующим узлом (ближайшим коммутатором или маршрутизатором), и с последующим... то есть ситуация, когда нужно выяснять, на каком порте находится МАС назначения, крайне редкая. Грубо говоря, она возникает один раз при включении устройства, и больше не возникнет до его выключения/перезагрузки.
ProstoKirReal Автор
13.01.2025 09:17Тут приведены примеры простой сети, в которой никто ничего не знает, поэтому для формирования ICMP всегда нужен ARP запрос. Далее в следующих статьях я обязательно опишу как подобное происходит в глобальных сетях. Если коротко, то в сети всегда присутствует DNS сервер, который в своей памяти хранит данные о "белом адресе" Гугла и при "пинге" мы сначала обращаемся к DNS серверу "узнать" его IP-адрес. ARP обмен происходит только между нами и шлюзом по умолчанию, а дальше работает маршрутизация, но это в следующих статьях)
Vest
13.01.2025 09:17Понятно, то есть даже если бы у моего компьютера была бы пустая ARP-таблица, а Гугл я бы пинговал по IP-адресу, то я бы отправил широковещательный запрос к своему роутеру (он у меня будет ближайшим шлюзом) и тот уже сам разберётся как доставить мой запрос наружу?
Тогда мне не совсем понятно, можно ли получить ошибку с вашей картинки в домашних условиях с ОДНИМ компьютером и роутером? Мне любопытна эта ситуация лишь потому, что подобного рода ошибки я не припомню у себя (как бы, первый "пинг" провалился, но остальные работают хорошо). Ping либо он есть, либо его нет.
Извините, если мой вопрос показался вам глупым. Спасибо за ваш ответ :)
ProstoKirReal Автор
13.01.2025 09:17В домашних условиях такую ошибку получить затруднительно) роутер обычно выступает в роле Nat и присваивает сам ip адрес устройствам и является шлюзом по умолчанию. А роутер дальше маршрутизирует пакет в интернет
Akina
13.01.2025 09:17и тот уже сам разберётся как доставить мой запрос наружу
Именно так! Каждый узел (что станция, что любой промежуточный маршрутизатор) принимает решение об отправке пакета, во-первых, самостоятельно, во-вторых, совершенно независимо. Да, он ориентируется на информацию, которую он получил/накопил ранее, но на информацию, хранимую именно у себя.
Вот роутер получил пакет. Там указано, что его надо доставить в некий IP-адрес. Роутер посмотрит в своей таблице маршрутизации, на какой (соседний) следующий узел надо переслать пакет, и именно туда и пошлёт. Если конечный адрес - в подсети своего интерфейса, то он достижим напрямую, и пакет отправляем сразу ему. Если есть частный маршрут в подсеть узла назначения - на его шлюз (на самом деле если узел в своей подсети, то есть и соотв. частный маршрут, то есть эта и предыдущая ситуация - считай одно и то же), нету - на дефолтный, если вдруг нет дефолтного - отправит обратно Destination Unreacheable. А МАС соответствующих узлов у роутера стопудово уже имеются, так что проблем с пересылкой у него не должно быть.
NekitGeek
13.01.2025 09:17Понятнейшая статья и комменты, проясняющие суть! Жалко, её не было пару месяцев назад, когда я писал курсовую.
ProstoKirReal Автор
13.01.2025 09:17Спасибо! Буду стараться следующие статьи выпустить раньше, чтобы помочь другим с курсовой)
segadvs
13.01.2025 09:17Однака, всплокнулось за последние 20 лет, что вы к гуглу прикопались с пингом, если в роутере прописаны шлюзы и днс сервера провайдера, комп отправляет запрос через шлюз, а дальше, сами догадаетесь
Denis42
13.01.2025 09:17Очень интересная статья. Спасибо. Иногда коммутаторы отбрасывают фреймы с неизвестным MAC адресом. Это поведение разрешено в 802.1Q и настраивается в таблицах коммутатора.
peacemakerv
13.01.2025 09:17Спасибо за статью.
Короче:
1) Хаб - это многоканальная релюшка
2) Свитч - это адресно-управляемая многоканальная релюшка
3) Роутер - это свитч с мини-компутером, реализующим всякие умные протоколы управления адресами релюшекTIEugene
13.01.2025 09:17Пришел поручик и всё испортил...
peacemakerv
13.01.2025 09:17Я не нарочно, трщ майор
TIEugene
13.01.2025 09:17Давайте уже, сержант, проще.
Роутер - это не свитч. Там ручной работы с каждым портом и каждым IP-пакетом.
То, что в домашних рутерах используется управляемый свитч - то такое. Лайфхак. Дай бог здоровья Realtek.
TIEugene
13.01.2025 09:17Статья хорошенький.
НО:
- хабы забыли (были такие, уже не продается)
- коммутаторы L3 (там есть тонкие отличия с маршрутизаторами)
Но, в принципе, не важно.
yamifa_1234
13.01.2025 09:17Оооо! Самый простой хаб - провод соединяющий два ПК) реализует канальное соединение.передает информацию от всех отправителей всем получателям.
nnstepan
13.01.2025 09:17В картинках где один коммутатор ошибка. Почему то таблицы мак адресов с разными виланами. А вот когда коммутатора два уже все правильно, вилан один.
Turbcool
13.01.2025 09:17Статья очень понравилась. Доступно, на неясные термины есть гиперссылки. У меня не было большого опыта с сетями, пару раз копался в настройках коммутатора (соединял IP камеры), в остальном только роутер в рамках настройки домашней сети. Статья как раз для моего уровня.
ProstoKirReal Автор
13.01.2025 09:17Спасибо за комментарий. На самом даже опытные сетевики часто делают глупые ошибки, не зная (или забыв) базу)
las68
13.01.2025 09:17Почему-то не упоминаются L2+ коммутаторы, а в энтерпрайзе таких большинство. У них, как правило, есть маршрутизация между VLAN по фиксированным маршрутам, и есть свои нюансы. Так как задача маршрутизации пакетов для ASIC достаточно ресурсоемка, то могут быть ограничения.
Например, HP Procurve 2610 имеет не более16 таких маршрутов, более производительный 2910 уже не имеет такого ограничения. Это всё древние как кости динозавра коммутаторы, но они вполне себе рабочие и используются до сих пор.
Важная технология для коммутаторов - MLAG (multi-chassis link aggregation group). К сожалению вендоро-зависимая (не совместимая между собой, хотя и строится на едином RFC), зато позволяет объединять коммутаторы, так что они со стороны других устройств (в том числе серверов), выглядят как единый коммутатор на который отдаётся трафик по LACP (802.3ad). Иногда MLAG есть даже на коммутаторах доступа - очень удобно и увеличивает надёжность сети.
GansHabr
13.01.2025 09:17Эх, год был сетевым инженером, сейчас перебрался на data engineering. Очень интересно было читать
ValeriyMeladze
13.01.2025 09:17Спасибо за статью, я начинающий вкатун в сети, штурмую CCNA/JEREMY IT LABS и прочее.
Прочел статью - освежил базу в памяти, удобно и интересно)
surarus
ого! Круто!
Очень развернуто!
За одно только старание над статьей, большое спасибо!
Текст, картинки и подробный разбой!
ProstoKirReal Автор
Спасибо)