Комментарии 66
ого! Круто!
Очень развернуто!
За одно только старание над статьей, большое спасибо!
Текст, картинки и подробный разбой!
Спасибо. Почитал. Все просто и подробно.
Это же не цикл статей, дубль СДСМ ?
А если мы подключим третий коммутатор и, с его помощью, соединим первый и второй?
По-сути, тогда должен записаться вход первый среди входящих. А если мы отключим устройство №1 от коммутатора №1 и подключим к коммутатору №3? Нужно как-то удалить данные об компьютере №1 и, когда он будет подключен к коммутатору №3, то записать информацию о нём, пусть он будет компьютер №1.1, тогда надо перезаписать его в таблице
Имеете в виду если к 2м коммутаторам подключены конечные устройства и один коммутатор промежуточный?
Нет, треугольником
Грубо говоря, когда есть несколько путей, по которым можно отправить пакет. Таких маршрутов, в которых путь между двумя узлами используется не более одного раза
В случае кольца работают дополнительные протоколы (STP, ERPS и т.п.), которые отключают часть портов, преобразуя кольцо в дерево. Или всё ложится из-за бродкастового шторма.
Немного удивила подача материала, как будто пропущена первая глава. Коммутатор - L2, маршрутизатор - L3, в первых же строчках. Но простите, если это материал для новичков - объясните что такое L2 и L3 в OSI и чем OSI отличается от TCP/IP, а уже потом объясняйте их взаимодействие с железками. А если это рассчитано на людей знакомых с сетевыми моделями, то наверное им уже не будет интересен этот материал.
В самом начале же есть гиперссылка
В предыдущих статьях я уже затрагивал эти темы, в данной статье не хотел еще раз повторяться. Старался дать на все темы ссылки.
Можете написать в каких именно местах есть вопросы ?
Для решения этой проблемы была введена абстракция в виде IP-адреса — универсального протокола, не привязанного к физическому носителю.
Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый, маршрутизируемый протокол. И если описанное было одной из целей создания, то уж точно не единственной.
Маршрутизаторы стали устройствами, способными связывать сети с разными технологиями передачи данных
Вы явно путаете маршрутизаторы и конверторы интерфейса. Простейшая точка доступа связывает проводную и беспроводную сети, где технологии уж точно разные - но она никак не маршрутизатор. Ну или конвертор оптики в медь...
Сеть — это соединение двух и более компьютеров, устройств или других компонентов для обмена информацией.
Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?
Как только мы подключаем устройства к домашнему маршрутизатору, они становятся частью локальной сети.
А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?
Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру. То есть, если компьютер не подключен к сети (к порту не подключен кабель/к порту подключен кабель, который не подключен к другому устройству), то компьютер это обнаружит и поймет, что он не подключен ни к какой сети. Адреса 127.0.0.х — это, скорее всего, адреса локального хоста. В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства. Вообще, интересный вопрос, я задумался, поразмышляв на досуге. (Я не автор поста, если что)
Адреса 127.0.0.х — это, скорее всего, адреса локального хоста.
Так и есть, вы совершенно правы.
В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства.
Сеть - это необязательно между устройствами, сеть - она между узлами сети, даже если эти узлы есть два разных входа в один и тот же сетевой стек. Иначе получается парадокс - сервер есть, клиент есть, сетевой обмен есть, а сети нет.
Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру.
Я бы сказал, что адрес - это именованная точка входа в сетевой стек. У одного экземпляра сетевого стека их может быть несколько. Да собственно их всегда несколько. Даже если есть один комп с одной сетевой картой и одним IP-адресом на ней, и мы не смотрим на адреса подсети локалхоста, всё равно у сетевого стека минимум две точки входа, связанные с сетевой картой, одна "именуется" по МАС-адресу, вторая по IP-адресу.
Сетевые устройства также являются узлами сети (см DTE и DCE). Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства. Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.
Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства.
Это что есть адрес снаружи. Но что он есть с точки зрения самого устройства?
И описанный мной случай - формально устройство-то обращается само к себе, оба адреса - локалхост.
Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.
Вы знаете термин, который определяет IP-адрес именно как именованный интерфейс с точки зрения самого узла, а не того, кто к нему обращается? Скажите его (или их), буду признателен. Или считаете, что такая формулировка неудачна? Сформулируйте лучше.
один IP-адрес присваивается одному компьютеру
Может ли, один и тот же глобально-маршрутизируемый IP-адрес быть присвоен нескольким компьютерам?
Это я расскажу в следующих статьях. При использовании NAT, один глобальный "Белый адрес" присваивает нескольким локальным компьютерам "Серий адрес"
Может. Публичные DNS сервера 1.1.1.1 от Cloudflare и 8.8.8.8 от Google это же не один сервер, это много серверов, просто из каждой подсети крупных провайдеров связи пакеты маршрутизируются на разные сервера.
Вот :) Ситуация когда в одном сегменте локальной сети встречаются два устройства с одинаковым IP-адресом - это аномалия, и это вызовет проблемы.
С другой стороны маршрутизация в интернете осуществляется с помощью протокола BGP, и он не запрещает анонсировать одни и те же подсети из разных мест. Это позволяет присваивать одни и те же ip-адреса разным компьютерам/серверам. И при обращении к серверу, трафик пойдет по «кратчайшему маршруту» (стоит помнить, он не является гарантировано оптимальным, но чаще это так). Этот трюк называют anycast, и его активно использует часть CDN-сервисов и сервисов обеспечивающих DDOS-защиту с целью распределения и оптимизации нагрузки. Ну и да, упомянутые вами DNS-сервера от Гугла и cf - это примеры anycast-сетей.
А NAT - это совсем про другое
Адреса 127.0.0.х
я б даже сказал 127.х.х.х (127.0.0.0/8)
Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый,
Я не говорил о том, что он единственный и первый протокол, просто стал универсальным.
Вы явно путаете маршрутизаторы и конверторы интерфейса.
Как раз маршрутизатор это и обеспечивает. Примеры - WiFi, где маршрутизируется беспроводная и проводная технология. А также различные технологии передачи данных, включая DSL (цифровая абонентская линия).
Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?
Это все еще 2 устройства. Сервер и клиент. Сеть — это соединение ДВУХ и более компьютеров, УСТРОЙСТВ или других компонентов для обмена информацией.
Приведу пример гипервизора. Когда мы создаем несколько виртуальных машин на одном физическом устройстве и пробрасываем их между собой, то это 2 и более устройств, просто виртуальных.
А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?
Отвечая на Ваш вопрос, да становится.
Как раз маршрутизатор это и обеспечивает. Примеры - WiFi, где маршрутизируется беспроводная и проводная технология.
Это когда точка доступа работает в режиме роутера (маршрутизатора, обычного или NAT). А когда она работает в режиме прозрачного моста между WiFi и кабелем? Никакой маршрутизации нет и в помине.
Но ещё показательнее конвертор оптика-медь. Это вообще пассивное устройство, просто тупо передаёт пакеты с преобразованием среды передачи... у него даже интерфейса нет, ни МАС, ни тем более IP-адреса нет, в отличие от вышеупомянутой точки доступа, так что никакой маршрутизации нет и быть не может даже теоретически. А различие технологии передачи данных видно невооружённым глазом.
сам коммутатор имеет свой IP/MAC адрес? он как-то используется при коммутации?
Сам коммутатор - нет, не имеет. А вот его интерфейс управления (если это управляемый коммутатор) - да, имеет. Но интерфейс управления - это, считай, подключенный к коммутатору компьютер, только компьютер специализированный и подключенный через отдельный интерфейс.
Сам коммутатор в приведенных примерах не имеет своего IP-адреса, но MAC-адрес он имеет, просто при передачи трафика не меняет ни src ни dsя Mac-address в пакете и как бы прозрачен в сети. А вот хабы как раз не имеют MAC-адресов.
Очень полезная статья. Освежил память со времён университета.
Как то думал про такую идею. Со своего компа Вова отправляет Мaше по почте "Hello" и смотрит через net-VR-шлем на провод и видит свое сообщение в разрезе всех протоколов. Начать можно просто с визуализации сообщения на разных уровнях. А потом в привязке к шлему - назвать это "Цифровым двойником сети", который при наведении на конкретный кабель показывает передаваемые по нему сообщения (фильтром можно оставить только прикладного уровня и только интересующего приложения).
Т.е. сетевой сканер (sniffers), но для виртуального обозрения передаваемых по сети (конкретному проводу) данных с упрощением, т.е. часть служебной информации скрывать (настраиваемым фильтром), а для какой-то части давать подсказку, чтобы для обычного юзера было адаптировано (не Wireshark -ом же его пугать). Может есть уже такие?
Я правильно понимаю, что потерянный первый ICMP-пакет (что-то с превышением времени ожидания) — это нормально для ситуаций, когда мы пингуем устройство, которое нас ещё не знает?
Почему сообщение тогда так сформулировано, а не, скажем, «вы нам незнакомы»?
И почему сторонние сервера (типа Гугла) пингуются с первой попытки? Это потому, что в качестве MAC-адреса выступает мой провайдер или кто-нибудь, кого Гугл уже видел и содержит информацию в ARP-таблице?
Я понимаю, что вы не автор статьи, но быть может знаете ответ. Спасибо заранее.
что в качестве MAC-адреса выступает мой
... маршрутизатор
ICMP пингует по IP. И вашей станции не нужен МАС конечного, пингуемого, устройства. Вам нужен только МАС следующего по маршруту узла - т.е. обычно вашего дефолтного шлюза, который почти наверняка вам известен. То же будет и со следующим узлом (ближайшим коммутатором или маршрутизатором), и с последующим... то есть ситуация, когда нужно выяснять, на каком порте находится МАС назначения, крайне редкая. Грубо говоря, она возникает один раз при включении устройства, и больше не возникнет до его выключения/перезагрузки.
Тут приведены примеры простой сети, в которой никто ничего не знает, поэтому для формирования ICMP всегда нужен ARP запрос. Далее в следующих статьях я обязательно опишу как подобное происходит в глобальных сетях. Если коротко, то в сети всегда присутствует DNS сервер, который в своей памяти хранит данные о "белом адресе" Гугла и при "пинге" мы сначала обращаемся к DNS серверу "узнать" его IP-адрес. ARP обмен происходит только между нами и шлюзом по умолчанию, а дальше работает маршрутизация, но это в следующих статьях)
Понятно, то есть даже если бы у моего компьютера была бы пустая ARP-таблица, а Гугл я бы пинговал по IP-адресу, то я бы отправил широковещательный запрос к своему роутеру (он у меня будет ближайшим шлюзом) и тот уже сам разберётся как доставить мой запрос наружу?
Тогда мне не совсем понятно, можно ли получить ошибку с вашей картинки в домашних условиях с ОДНИМ компьютером и роутером? Мне любопытна эта ситуация лишь потому, что подобного рода ошибки я не припомню у себя (как бы, первый "пинг" провалился, но остальные работают хорошо). Ping либо он есть, либо его нет.
Извините, если мой вопрос показался вам глупым. Спасибо за ваш ответ :)
В домашних условиях такую ошибку получить затруднительно) роутер обычно выступает в роле Nat и присваивает сам ip адрес устройствам и является шлюзом по умолчанию. А роутер дальше маршрутизирует пакет в интернет
и тот уже сам разберётся как доставить мой запрос наружу
Именно так! Каждый узел (что станция, что любой промежуточный маршрутизатор) принимает решение об отправке пакета, во-первых, самостоятельно, во-вторых, совершенно независимо. Да, он ориентируется на информацию, которую он получил/накопил ранее, но на информацию, хранимую именно у себя.
Вот роутер получил пакет. Там указано, что его надо доставить в некий IP-адрес. Роутер посмотрит в своей таблице маршрутизации, на какой (соседний) следующий узел надо переслать пакет, и именно туда и пошлёт. Если конечный адрес - в подсети своего интерфейса, то он достижим напрямую, и пакет отправляем сразу ему. Если есть частный маршрут в подсеть узла назначения - на его шлюз (на самом деле если узел в своей подсети, то есть и соотв. частный маршрут, то есть эта и предыдущая ситуация - считай одно и то же), нету - на дефолтный, если вдруг нет дефолтного - отправит обратно Destination Unreacheable. А МАС соответствующих узлов у роутера стопудово уже имеются, так что проблем с пересылкой у него не должно быть.
Понятнейшая статья и комменты, проясняющие суть! Жалко, её не было пару месяцев назад, когда я писал курсовую.
Однака, всплокнулось за последние 20 лет, что вы к гуглу прикопались с пингом, если в роутере прописаны шлюзы и днс сервера провайдера, комп отправляет запрос через шлюз, а дальше, сами догадаетесь
Очень интересная статья. Спасибо. Иногда коммутаторы отбрасывают фреймы с неизвестным MAC адресом. Это поведение разрешено в 802.1Q и настраивается в таблицах коммутатора.
Спасибо за статью.
Короче:
1) Хаб - это многоканальная релюшка
2) Свитч - это адресно-управляемая многоканальная релюшка
3) Роутер - это свитч с мини-компутером, реализующим всякие умные протоколы управления адресами релюшек
Статья хорошенький.
НО:
- хабы забыли (были такие, уже не продается)
- коммутаторы L3 (там есть тонкие отличия с маршрутизаторами)
Но, в принципе, не важно.
Оооо! Самый простой хаб - провод соединяющий два ПК) реализует канальное соединение.передает информацию от всех отправителей всем получателям.
В картинках где один коммутатор ошибка. Почему то таблицы мак адресов с разными виланами. А вот когда коммутатора два уже все правильно, вилан один.
Статья очень понравилась. Доступно, на неясные термины есть гиперссылки. У меня не было большого опыта с сетями, пару раз копался в настройках коммутатора (соединял IP камеры), в остальном только роутер в рамках настройки домашней сети. Статья как раз для моего уровня.
Почему-то не упоминаются L2+ коммутаторы, а в энтерпрайзе таких большинство. У них, как правило, есть маршрутизация между VLAN по фиксированным маршрутам, и есть свои нюансы. Так как задача маршрутизации пакетов для ASIC достаточно ресурсоемка, то могут быть ограничения.
Например, HP Procurve 2610 имеет не более16 таких маршрутов, более производительный 2910 уже не имеет такого ограничения. Это всё древние как кости динозавра коммутаторы, но они вполне себе рабочие и используются до сих пор.
Важная технология для коммутаторов - MLAG (multi-chassis link aggregation group). К сожалению вендоро-зависимая (не совместимая между собой, хотя и строится на едином RFC), зато позволяет объединять коммутаторы, так что они со стороны других устройств (в том числе серверов), выглядят как единый коммутатор на который отдаётся трафик по LACP (802.3ad). Иногда MLAG есть даже на коммутаторах доступа - очень удобно и увеличивает надёжность сети.
Эх, год был сетевым инженером, сейчас перебрался на data engineering. Очень интересно было читать
Сложно о простом. Как работает интернет. Часть 1. Что такое коммутатор, маршрутизатор и примеры работы простых сетей