Как работать с сетями
Перейти к содержимому

Как работать с сетями

  • автор:

Как успешно работать с торговыми сетями

Как успешно работать с торговыми сетями

Эта статья адресована, прежде всего, производителям непродовольственных товаров, сотрудничающих или желающих сотрудничать с розничными торговыми сетями. Ответив на вопросы в соответствии с концепциями 4С, 4Р – 7Р, 4R, 4V, вы пришли к выводу, что ваша компания может продавать больше, но вы используете не все доступные каналы сбыта. Что дальше?

Сеть – особый канал сбыта

Задумываясь о работе с сетями, компании должна понимать, что сети – особенный канал сбыта. Прежде всего, важно помнить, сеть, так же как и дистрибьютор, удовлетворяет свою потребность в доходе, и что у нее есть свои требования к поставщику. Конечно, Закон о торговле (N381-ФЗ от 28 декабря 2009 года) несколько облегчил ситуацию, но не отменил полностью диктат сетей, особенно на рынке непродовольственных товаров хозяйственно-бытового назначения.

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

В книге «Хорошая стратегия, плохая стратегия…» Ричард Румпельт приводит пример Wal-Mart, созданной Сэмом Уолтоном в 1962 году: «Wal-Mart – это не просто супермаркет, это сеть, состоящая из полутора сотен магазинов. Wal-Mart – это потоки данных, общая структура управления, узловая оптовая база. Магазин заменила сеть. Принципиально важно понять: основная единица управления Wal-Mart – не отдельный магазин, а сеть». Принимая решение, что вам необходим этот канал сбыта, важно помнить о примере Wal-Mart. Базовый принцип работы сегодняшних розничных сетей не изменился.

Что произошло на продуктовом рынке России за последние 15 лет? Трансформация методов торговли: 90% продуктов питания продается через сетевые магазины – федеральные или региональные. В некоторых регионах сети играют значительную роль и на рынке непищевых продуктов. Например, рынок строительных материалов Санкт-Петербурга и Ленинградской области в большей мере структурирован и продажи через сетевой канал составляют более 50%.

Зачем вам сеть

Чтобы задать структуру дальнейшего изложения, я использую концепции 4С и 4Р.

  • Consumer needs / Product: Желания потребителя / Продукт или ассортиментный портфель.
  • Cost to the customer/ Price: Стоимость, расходы потребителя / Цена.

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

Входящая цена включает себя разные факторы: вознаграждение сети – бонусная составляющая, услуги распределительного центра и прочее. Поэтому при подготовке предложения удобно рассчитать вашу цену «net-net» или «нулевую цену» – цену на ваш продукт, очищенную от всех расходов на продажи / распределение. Это, в том числе, позволит вам сравнить цену по каналам сбыта. Цена поставки «net-net» в разные каналы сбыта, например, дистрибьюторский канал и сетевой канал, должна быть равна. Допустимым считаю отклонение в 2-3% в пользу сетей. Цена «net-net» должна обеспечить вам целевой уровень рентабельности.

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

  • Convenience / Place: Удобство / Место продажи. В этом разделе все факторы относятся к сети. Ценность, которую создает для покупателя сеть, это удобство покупки. Но производитель неизбежно в этом должен помогать.
  • Communication / Promotion: Коммуникации / Продвижение.
  • People: Сотрудники.

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

Ассортимент, который выберет сеть из того, что вы выпускаете, может быть не тем, что вы желали бы продавать через этот канал сбыта. У сети свои мотивы выбора. Свои требования к продукту: упаковка, маркировка, безопасность, сертификация, минимальная партия, способ поставки. И ваш продукт, чтоб продаваться в этой сети, должен ее требованиям соответствовать.

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

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

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

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

Кто отвечает за представленность товара в сети

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

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

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

Как через сети выстраивать коммуникацию с потребителем

Использовать полку сети как витрину для своего бренда, как часть системы коммуникаций, котору выстраивают производители продуктов питания? Или, опасаясь испортить отношения с дистрибьюторами и идя на уступки сети, выпустить private label? Или поставлять продукт под маркой сети?

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

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

Что должен уметь ваш коммерческий директор

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

Если говорить о рынке непродовольственных товаров, где сети пока не являются доминирующим каналом, подумайте, является это требование ключевым. Часто, предъявляя подобное требование, работодатели забывают, что специфический опыт – это не универсальная страховка и не защита от рисков. Даже на продуктовом рынка, если топ-менеджер имеет успешный опыт поставки в сети товаров бакалейной группы, то успех с детским питанием не гарантирован. На успех влияет множество причин: например, подход байера (матрица у него заполнена, площадей свободных нет, текущая маржа с метра его устраивает, соответствует требуемым показателям, или просто он ленив). В результате топ-менеджер, имеющий опыт работы с сетями, оказывается, несостоятелен.

Кроме того, нельзя сбрасывать со счетов требования к товару. Соответствует ли ваш продукт этим требованиям? Если нет, ваша ставка на топ-менеджера с опытом поставок в сети – тоже несостоятельна.

Вход в сеть: один год

Если все решено, и вы готовы работать с сетями, обратите внимание, на порядок ввода нового поставщика / товара в сеть. У каждой сети процедура имеет свои особенности, но общая идея такова: сначала тестовые продажи в нескольких магазинах, затем ввод во все магазины сети (помните, не все магазины сети могут подходить вашему товару).

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

В завершение хочу сказать о необходимости соблюдать баланс между каналами сбыта и участниками каналов сбыта. Бизнес будет неустойчив, если доля одного из участников будет очень значительна – более 10% в обороте, поскольку потеря этого объема крайне негативно скажется на бизнесе в целом. Пример из практики: компания достигла оборота более 1 млрд рублей в год, но доля одной крупной федеральной сети в объеме продаж компании составляла более 30%, а доля других сетей не превышала 7% от общего оборота. Два года работы – и вдруг сеть выводит этого производителя, замещая конкурентом. Можете представить себе разочарование поставщика.

Компьютерные сети

Сети – это связи объектов, которые имеют общие определенные признаки. Все соответствующие компоненты тесно связаны друг с другом. Связи могут выступать как непосредственные или опосредованные.

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

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

Определение

Компьютерная сеть, согласно Google – совокупность компьютеров или других устройств. Соответствующая связь образовывается за счет каналов и обеспечения коммуникационным оборудованием. Иногда – специализированными программами.

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

В Google можно найти информацию о клиентах и серверах. Они тоже связаны с «сетками». Клиент – это устройство, которое использует предоставляемые ресурсы. Сервер – девайс, предоставляющий информацию для дальнейшего применения.

Что потребуется для прокладки

Чтобы сделать компьютерную сеть, необходимо подготовить определенное оборудование. Точный перечень девайсов определяется типом «сетки». В Google указаны следующие основные компоненты:

  • интерфейс, который будет отвечать за обеспечение обмена информации и организации совместного доступа;
  • компьютерные устройства с сетевыми адаптерами;
  • оборудование – отвечает за организацию работы узловой структуры;
  • программная среда – то, что будет обеспечивать непосредственное взаимодействие устройств.

Обычно этого достаточно в среднестатистическом случае. Но подготовка к прокладке компьютерной сети, если верить Google, напрямую зависит от ее вида.

Классификация и разновидности

Рассматриваемые компоненты, согласно Google, могут быть разными. Классификация здесь ведется по:

  • размерам;
  • скорости обмена данными;
  • типу среды передачи информации.

Это – один из вариантов классификации. Виды компьютерных сетей встречаются совершенно разные. Google указывает на следующие варианты:

  • локальные и глобальные «сетки»;
  • беспроводные локальные;
  • региональные;
  • персональные компьютерные;
  • нательные.

Далее каждый вид будет рассмотрен более подробно. Особое внимание предстоит уделить первой категории. Она выступает наиболее распространенной среди «сеток».

Нательные

Google указывает на то, что есть нательные сети. Они обозначаются как BAN. Объединяют надеваемые и имплантируемые устройства. Выделяются надежностью, стабильностью и бесперебойностью.

К соответствующей категории Google и иные поисковые системы относят:

  • умные часы;
  • мониторы пульса;
  • устройства для измерения давления;
  • кардиостимуляторы;
  • иные «умные» системы, которые носит человек.

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

Персональные

Следующая категория – это PAN. Так Google описывает персональные компьютерные сети. Представляют «личным» электронным оборудованием. Позволяют подключать весьма ограниченное количество абонентов. Чаще – до 8-10 участников. Радиус действия у такого «объединения» небольшой. Он достигает 30 метров.

К представителям персональной «категории» относят: ноутбуки, гарнитуру, КПК, телефоны.

Региональные

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

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

Локальные

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

Главная задача здесь – это обеспечение совместного доступа к оборудованию, службам, ПО, устройствам и документам всем участникам ЛВС.

Задачи и назначение

Изучая локальные, а также глобальные «сетки», стоит обратить внимание на их ключевые задачи. В случае с «локалками» ситуация обстоит следующим образом по данным Google:

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

В офисах и на предприятиях часто встречаются корпоративные сети. Google указывает на то, что это – «локалки», созданные для работников компании, независимо от географического расположения узлов. Пример – подразделения банков в городах страны. Они представлены своеобразными закрытыми структурами, доступ к которым имеется только у ограниченного числа пользователей. Ими выступают руководители и сотрудники финансовой организации.

Топология

Локальные и глобальные компьютерные сети имеют собственную топологию. Стоит обратить внимание на то, что в первом случае Google ссылается на следующие способы подключения компьютеров:

  1. Шинный. В ней клиенты подключаются к общедоступному интерфейсу. Обеспечение не потребует огромных финансовых затрат. Шинное подключение довольно простое, расширяемое. Централизованное управление здесь отсутствует.
  2. Кольцевой. Компьютер, согласно указаниям в Google, подключается через однонаправленный интерфейс. Последний обеспечивает более сложное создание «сетки», а также усложняет управление. Если один узел выходит из строя или отключается, система дает сбой.
  3. Звездный. Самый надежный и распространенный метод. Здесь компьютеры будут объединяться в единое целое при помощи сервера. Взаимодействие компонентов структуры обеспечивается через серверное подключение. Server будет управлять функционированием LAN. Все «объединение» прекратит работать, если «упадет» сервер. А вот неисправность или отключение присоединенных девайсов не окажет влияния на работоспособность системы.
  4. Древовидный. Google предписывает ему расширенную версию звездной топологии. Тут устройства подключаются к серверам низкого уровня, а последние – к центральным ПК. Они находятся выше по иерархии. Когда сервер прекращает работу, происходит отключение всего одной структурной ветки.

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

Беспроводные локальные

Google указывает на то, что сейчас встречаются беспроводные локальные сети. Они имеют обозначение WLAN. Базируются на Wi-Fi. Помогают связывать между собой несколько устройств (более двух) без проводов и кабелей.

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

Глобальные

Глобальные компьютерные сети – это сети мирового масштаба. Google характеризует их в качестве объединения локальных «сеток», а также отдельных самостоятельных устройств (обычно – компьютеров) и оборудования. Они подключены друг к другу без зависимости от расстояния. Образовывают единую структуру.

Могут объединять региональные «объединения» в масштабные технологии, охватывающие не только один город, но и целые континенты. Сюда можно включить:

  • многочисленные серверы;
  • шлюзы.

Типичным представителем данной категории, согласно Google, можно считать Интернет. Здесь все компьютеры в мире способны получать информацию, обмениваться ей, а также передавать друг другу документы и материалы. Расстояние не играет никакой роли. За считанные минуты гигабайты данных через Интернет передаются на противоположные точки мира.

Подключение и работа

Для того, чтобы глобальная сеть работала, нужно знать уникальный определенный адрес сервера или устройства в его пределах. Им выступает IP или DNS. Здесь стоит запомнить следующее:

  • IP включает в себя 4 блока чисел;
  • каждый «фрагмент» IP-адреса разделяется точками;
  • IP может в каждом блоке принимать значение от 0 до 255 включительно;
  • DNS использует буквенные и словесные представления адресов.

Пример – компьютерам, подключенным к сети Интернет, требуется перейти на какой-то сайт. У него есть адрес. Он носит название доменного имени. Пример – Google. Соответствующий адрес сервиса выступает в виде DNS. После его ввода в браузере происходит присваивание компьютеру IP.

Разница между глобальными и локальными

В Google удастся с легкостью обнаружить информацию о том, чем отличаются рассмотренные «сетки». В случае с WLAN и LAN стоит выделить следующие особенности:

  • расстояние между двумя узлами;
  • сложность алгоритмов обмена информацией – для WLAN нужно обеспечить наличие дополнительного оборудования;
  • пропускные способности;
  • задержки – у LAN ответ на запрос отнимает пару миллисекунд, у WLAN – десятки и сотни;
  • масштабируемость – она присуща глобальному варианту.

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

P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus:

Как работают сети: что такое свитч, роутер, DNS, DHCP, NAT, VPN и ещё с десяток необходимых вещей

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

Часто бывает у наших коллег: вроде бы слова IP и DNS используют каждый день, а понимания как это всё работает нет, и как это всё пощупать вживую тоже непонятно. Такое отношение не только некорректно, но и вредно для карьеры любого уважающего себя инженера из IT. Сколько бы JS-фреймворков ты не выучил, без знания основ сетей тебя никто всерьёз воспринимать не будет. Ни одна часть инфраструктуры не должна оставаться чёрной коробкой ни для разработчиков, ни для администраторов, ни уж тем более для тебя, будущего DevOps инженера.

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

В этом же тексте мы сфокусируемся на структуре сети, основных её компонентах и рассмотрим как они используются на практике при помощи уже освоенных нами в предущей статье виртуальных машин и libvirt/KVM в частности.

Сетевая модель OSI

В первую очередь нам нужно познакомиться с сетевой моделью OSI. Эта модель стандартизирует взаимодействие сетевых протоколов.

OSI делит коммуникацию на 7 слоёв, на каждом слое есть свои протоколы. Ты часто будешь слышать вещи в духе "это происходит на Layer 3". Вот эти слои:

  1. Физический уровень (physical layer)
  2. Канальный уровень (data link layer)
  3. Сетевой уровень (network layer)
  4. Транспортный уровень (transport layer)
  5. Сеансовый уровень (session layer)
  6. Представительский уровень или уровень представления (presentation layer)
  7. Прикладной уровень (application layer)
Физический уровень (physical layer)

Протоколы этого уровня отвечают за связь между железками на самом низком уровне. Непосредственная передача данных по проводам (и без проводов) описывается как раз на физическом уровне. Примеры протоколов: Wi-Fi, Bluetooth, DSL.

Канальный уровень (data link layer)

Канальный уровень отвечает за передачу данных между устройствами одной сети. Данные передаются в виде кадров (frames), в кадре указан физический адрес получателя и отправителя. Этот адрес называется MAC-адрес.

Кто же выступает в роли отправителя и получателя?

Во-первых, у каждой машины (включая твой ноут) есть NIC — Network Interface Controller. Это железка (или виртуальная железка), которая отвечает за передачу и приём кадров. У NIC есть MAC-адрес — уникальный адрес, который обычно прошит в железке, или же генерируется системой виртуализации.

Само собой, у машины может быть несколько NIC. Посмотрим интерфейсы при помощи команды ip :

В данном случае, интерфейс, использующийся для связи с внешним миром по сети, — это eth0, обладающий MAC-адресом 52:54:00:05:36:e6. Но что такое lo ?

lo — это loopback device, специальный виртуальный интерфейс, который система использует, чтобы общаться самой с собой. Благодаря lo даже без подключения к сети локальные приложения могут взаимодействовать друг с другом.

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

Например, свитч (switch).

Свитч — это такое устройство, которое формирует сеть, и в которое подключаются наши машинки через порты. Задача свитча L2 (есть ещё более продвинутые, относящиеся к L3 и даже к L7) — перенаправлять кадры от MAC отправителя к MAC получателя. Множество машин, подключенных к одному свитчу формируют локальную сеть (LAN).

Конечно, пачка серверов подключенных к одному свитчу — это весьма тривиальный способ создать сеть. А что если мы хотим объединить в одну сеть сервера, находящиеся в разных физических локациях? Или, например, хотим логически разделить сервера подключенные к одному свитчу в одной локации в разные сети?

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

Другое устройство — мост (bridge). Мост L2 используют чтобы объединить две сети, сформированные при помощи свитчей, примерно таким образом:

И свитчи и мосты (а ещё хабы (hub), о которых почитай сам) помогают объединить несколько машин в одну сеть. А есть ещё маршрутизаторы (или роутеры, routers), которые соединяют сети между собой и работают уже на L3. Например, твой Wi-Fi роутер соединяет твою локальную сеть (в которой находятся твой ноутбук, телефон и планшет) с Интернетом.

Помимо LAN разделяют ещё несколько типов сетей. Например, WAN. Интернет можно считать за WAN, за тем исключением, что Интернет полностью стирает географические границы сети.

Как я уже упомянул, есть ещё свитчи L3, которые могут не просто перенаправлять кадры от одного устройства к другому, но и обладают более продвинутыми фишками, типа маршрутизации. Чем же отличается роутер от свитча L3, спросишь ты? Тут всё сложно (и скучно), но если тебе интересно, то прочитай статью Layer 3 Switches compared to Routers

Сетевой уровень (network layer)

На третьем, сетевом уровне используются не MAC, а IP адреса. Посмотрим IP адрес нашей машины при помощи той же самой команды ip :

Интерфейсу eth0 присвоен адрес 192.168.122.212/24.

Но что такое /24 ? И почему у loopback интерфейса стоит /8 ? Ты уже, наверное, слышал, что всего существует 4 294 967 296 IPv4 адресов. Интернет — это не одна большая сеть, а много сетей поменьше. При этом для отдельных типов сетей (например, частных, недоступных извне сетей) выделены отдельные блоки IP адресов.

IPv6 адресов гораздо больше. Но полный переход IPv6 ещё не произошёл 🙂

CIDR — это метод выделения блоков адресов отдельным сетям. А CIDR-нотация — это способ описать этот блок в виде 192.168.122.212/24 , где число /24 , называемое маской, как раз и позволяет понять, сколько адресов входит в этот блок.

IPv4 — это простое число длинной 32 бита, которое можно представить в двоичном виде. В двоичной форме IP адреса идут от 00000000000000000000000000000000 до 11111111111111111111111111111111 . Для удобства разобьём это число на 4 части по 8 цифр: 11111111.11111111.11111111.11111111 . В привычной нам десятеричной системе этот адрес выглядит так: 255.255.255.255 .

Маска /24 может быть представлена как 255.255.255.0 , или, в двоичной системе, 11111111.11111111.11111111.00000000 . Чтобы найти первый и последний адреса сети мы можем использовать один из адресов и маску сети, применив логическое побитовое И на их двоичном представлении:

И переведём результат в человеко-читаемую форму: 192.168.122.0 — начальный адрес нашей сети. Чтобы подсчитать число доступных адресов, нужно посчитать число нулей в маске. В нашем случае нулей, или разрядов, 8. Каждый может принимать значение 1 или 0, поэтому в сумме получаем 2^8 степени, или 256 адресов. Значит, последний адрес сети будет равен 192.168.122.255 .

Вручную всё считать необязательно, можно воспользоваться калькулятором.

Мы уже знаем, что на L2 используются MAC-адреса, а на L3 — IP адреса. Должен существовать какой-то механизм, который ассоциирует MAC-адрес сервера с его IP адресом. Этот механим называется ARP (Address Resolution Protocol).

В Линуксе есть одноимённая команда arp , которая позволит посмотреть табличку известных машине MAC-адресов и соответствующих им IP адресов:

В данном случае, 192.168.178.1 — это IP адрес моего Wi-Fi роутера, к которому ноутбук подключен через интерфейс wlp3s0.

Команда arp считается deprecated и вместо неё рекомендуется использовать ip neigh .

Один из видов кибер-атак связан с ARP и называется ARP spoofing. Цель такой атаки — подменить MAC-адрес, ассоциированный с определённым IP, на адрес машины хакера. Как страшно жить, да?

Но как именно у сетевого интерфейса появляется IP адрес? Один из вариантов — задать его вручную. Недостаток: ручная работа. Если руки кривые, то можно настроить дублирующиеся адреса и получить конфликт 🙂

Другой вариант: Dynamic Host Configuration Protocol (DHCP), протокол, использующийся для автоматического выставления различной конфигурации, в том числе IP-адресов.

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

Чтобы понять как именно работает DHCP, нам нужно отвлечься на понятие "broadcasting". Это процесс, в котором наш сервер отправляет сообщение на все сервера в сети, так как он не знает где именно находится та информация, которая ему нужна. Ближе всего такое broadcast общение к радио вещанию.

Как это происходит в случае с DHCP:

  1. DHCP-клиент отправляет broadcast сообщение с вопросом "Хочу IP адрес"
  2. DHCP-сервер его ловит и в ответ отправляет так же broadcast сообщение "У меня есть адрес x.x.x.x, хочешь его?"
  3. DHCP-клиент получает это сообщение и отправляет ещё одно: "Да, я хочу адрес x.x.x.x"
  4. DHCP-сервер отвечает "Хорошо, тогда x.x.x.x принадлежит тебе"
А где хранятся настройки соединений?

Настройки сетевых подключений хранятся в /etc/sysconfig/network-scripts . Там ты можешь отредактировать такие вещи, как способ получения IP адреса (автоматический или статичный), стартовать ли соединение автоматически при загрузке системы и т.п. Например, вот так выглядит мой конфиг для Wi-Fi-соединения:

Обрати внимание на BOOTPROTO=dhcp — эта опция означает, что будет использован DHCP-сервер, в том числе для получения IP адреса. Для сравнения, конфиг соединения для loopback устройства:

Здесь прописан статичный адрес: IPADDR=127.0.0.1 . В домашнаних условиях вместо редактирования конфигов вручную можно использовать утилиту nmcli , либо установить пакетик NetworkManager-tui , который предоставит удобный текстовый интерфейс прямо в консоли. В боевых условиях на серверах лучше так не делать, а использовать систему конфигурации (Puppet, Chef, Salt).

Ещё одна важная часть конфигурации: роутинг. Как понять, куда именно побежит трафик? Всё просто: достаточно посмотреть локальную таблицу роутинга при помощи команды ip r . На момент написания этих строк я сижу в кофейне с ноутбука, который использует телефон как роутер. Вот что мне выдаёт ip r :

Как видишь, весь трафик идёт по-умолчанию на машинку с адресом 172.20.10.1 . А если выполнить ip addr show , то можно увидеть, что у сетевого интерфейса в ноутбуке так же есть IP адрес из этой сети:

Командой ip r add можно добавлять новые пути, а командой ip r del — удалять.

Про DNS ты наверняка слышишь не в первый раз. Простая идея: обращаться к серверу не по IP адресу (тяжело запомнить для людей), а по нормальному имени.

Самый старый и популярный DNS-сервер (тот, что хранит информацию об адресах и отвечает на запросы) — это BIND. Альтернатив тоже много, но тебе в первую очередь рекомендуется развернуть локально именно BIND.

Обязателен к прочтению материал от Cisco DNS Best Practices, Network Protections, and Attack Identification — там узнаешь не только все основы DNS, но и кучу важных рекомендаций по созданию безопасного и устойчивого DNS-сервера.

Есть возможность обновлять записи в DNS-сервере динамически. Для этого почитай про nsupdate. Ниже найдёшь ссылку на отличное руководство по настройке, включая безопасное обновление записей. Одно из интересных применений — service discovery. Поищи в Интернете, о чём это, или дождись соответствующей статьи на mkdev 😉

До появления DNS всё, что у нас было — это файлик /etc/hosts. Он и сейчас часто используется.

Рубрика "Вирусы для чайников"! Открываем /etc/hosts на компьютера друга и добавляем туда строчку 52.28.20.212 vk.com . Хватит другу сидеть вконтакте, пусть учится разработке!

Ещё очень интересен файлик /etc/nsswitch.conf. В нём определяется в каком порядке и где искать разную информацию, в том числе где искать хосты. По-умолчанию, сначала они ищутся в /etc/hosts, а уже потом отправляется запрос в DNS-сервер.

Используемый для разрешения DNS-имён сервер, кстати, указан в /etc/resolv.conf.

Дебажить DNS проблемы удобнее всего командой dig и nslookup. Например, чтобы запросить информацию о mkdev.me у nameserver 8.8.8.8 можно сделать так:

Виртуалки

До этого момента все примеры выполнялись на локальной машине. Это, конечно, полезно для восприятия, но не так интересно. Поэтому дальше мы укрепим только что прочитанное при помощи виртуальных машин и libvirt, а заодно познакомимся с ещё парой терминов.

В первую очередь, создадим виртуалку при помощи virt-install:

По-умолчанию libvirt создаёт одну сеть:

Блок 192.168.0.0/16 выделен для частных сетей. libvirt выделил для своей сети блок 192.168.122.212/24 , то есть все адреса от 192.168.122.0 до 192.168.122.255 .

Чтобы посмотреть подробную информацию о конкретной сети можно использовать либо virsh net-info , либо virsh net-dumpxml . Вторая команда вернёт гораздо больше деталей, поэтому используем её:

connections показывает количество машинок, подключённых к этой сети. Подробное описание всех возможных опций этого XML-файла можно прочитать в документации libvirt. Нас же сейчас интересуют два слова: bridge и dhcp.

bridge, или устройство virbr0 , или virtual network switch — это специальное устройство, в которое подсоединяются все виртуалки этой сети. Все запросы от одной виртуалки к другой в пределах одной сети идут через этот виртуальный свитч. Для каждой сети libvirt создаёт по одному виртуальному свитчу и каждый свитч распознаётся как отдельное устройство на хост машине:

Создание сети в libvirt по умолчанию приравнивается к созданию виртуального свитча, к которому цепляются все виртуалки, тем самым образую локальную сеть, LAN.

Реализован свитч virbr0 при помощи Linux Bridge — технологии, изначально предназначенной как раз для создания виртуальных локальных сетей. Выполнив команду brctl show на хост-машине можно увидеть список всех свитчей.

Linux Bridge "слегка" отличается от типичного железного свитча L2. За годы его существования к нему прилепили множество дополнительных фич, например, фильтрацию трафика и файрвол. Корректнее всего назвать его свитчем L3, но здесь ваш покорный слуга не уверен до конца.

Теперь обратим внимание на следующую секцию:

Здесь указан блок адресов, использующихся для виртуальных машин в этой сети. 192.168.122.1 — IP-адрес хост-машины в пределах этой виртуальной сети.

Выполнив ip r в виртуалке увидим:

По умолчанию трафик из виртуалки во внешний мир идёт через хост-машину. В качестве забавы можешь настроить, чтобы трафик к одной виртуалке шёл через другую.

Как мы уже знаем, за назначение IP адресов отвечает служба DHCP. Libvirt использует dnsmaq для DHCP и DNS и запускает по экземпляру dnsmasq для каждой сети.

Мы можем посмотреть табличку DHCP, которая покажет нам выданные адреса:

Обрати внимание, что 52:54:00:05:36:e6 это MAC-адрес интерфейса eth0 нашей виртуалки.

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

Это так же и верно для наших виртуалок. У каждой есть частный IP-адрес из блока 192.168.122.0/24 , и все они скрываются за публичным адресом хост-машины.

Хост-машина, если мы продолжаем использовать для неё свой личный ноутбук у себя дома, прячется на Wi-Fi роутером и так же не обладает собственным публичным адресом.

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

Эту проблему решает NAT (Network Address Translation) — механизм преобразования IP адресов в сетевых пакетах. Обычно в пакете указан IP, откуда пакет отправлен и IP, куда пакет идёт. NAT позволяет динамически менять эти адреса и сохранять таблицу подменённых адресов.

Существует SNAT (source NAT), который и используется для наших виртуалок для доступа в Интернет. Когда пакет отправляется, то его исходящий адрес заменяется на адрес хост машины. Когда ответ от сервера назначения идёт назад, то адрес меняется с адреса хост машины на адрес виртуалки. Меняет адрес роутер.

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

NAT — способ по умолчанию для общения виртуалок с внешним миром. Но libvirt штука гибкая. Можно, например, цеплять виртуалки напрямую к физическому интерфейсу хоста, вместо виртуального свитча. Вариантов создания сети, на самом деле, много.

Для NAT libvirt использует iptables. Если кратко, то это инструмент, отвечающий за фильтрацию сетевых пакетов. iptables настраиваются через специальные правила (rules), которые комбинируются в цепочки (chains). Вот путём добавления таких правил libvirt и добавляет нашим виртуалкам доступ в Интернет, используя NAT. Мы вернёмся к iptables когда будем говорить о безопасности в целом.

Ещё для того чтобы на хосте работало перенаправление пакетов в настройках ядра должна быть включена опция ipforward. Включается она просто: `echo 1 > /proc/sys/net/ipv4/ipforward`

tcpdump

Пожалуй, самый незаменимый инструмент для дебаггинга сетевых проблем, а, конкретнее, трафика, который проходит через нашу машину — это tcpdump. Уметь им пользоваться обязательно. Посмотрим, например, что происходит на нашем virbr0 при перезапуске виртуалки.

Открываем консоль на хост-машине и делаем tcpdump -i virbr0 .

Открываем отдельное окошко и делаем virsh reboot # <номер_виртуалки>.

Смотрим результат в первом окошке и видимо откуда какие запросы пришли:

Вот, например, broadcast от виртуалки: 12:57:31.397937 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 52:54:00:e0:06:54 (oui Unknown), length 300 .

Ну и заодно глянем ARP табличку:

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

По сути VPN — это вложение одного tcp/ip пакета в другой и шифрование содержимого. Получается виртуальная сеть работающая внутри реальной сети. Для виртуальных сетей создаются виртуальные сетевые устройства (tun/tap) с виртуальными же IP адресами, видимыми только внутри нашей виртуальной зашифрованной сети.

Я оставлю настройку VPN за пределами этой статьи. На совести читателя останется попробовать это сделать самостоятельно при помощи OpenVPN или strongSwan.

Мы ещё вернёмся к тебе безопасности, но ты уже можешь почитать про IPsec — этот протокол использует strongSwan.

Для самостоятельного изучения

Мы только что пробежались по самым основам сетей, но, конечно же, есть ещё с десяток технологий, которые стоит посмотреть. Погугли самостоятельно VXLAN, изучи TCP и UDP (и разберись когда какой использовать), глянь что такое ICMP. Ты постоянно будешь сталкиваться с новыми терминами, но, как и всегда, главное — усвоить основы.

Мы не поднялись до более высоких уровней модели OSI, не посмотрели различные протоколы, с которыми работают веб-приложения: HTTP(S), FTP, SSH, NTP и многие другие.

Не забывай заглядывать в RFC. Это первая остановка в поиске нужной тебе информации по сетям.

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

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

Что дальше?

Я знаю, что дорогой читатель ждёт-недождётся, когда я начну рассказывать про Chef, Puppet, Ansible и прочие модные штуки. Но рано, пока ещё рано. Нас ждёт ещё как минимум одна статья подобного рода, в которой мы рассмотрим все возможные способы аутенфицировать и авторизовывать пользователей и сервера, тем самым сильно копнув в сторону темы безопасности в целом.

Дополнительное чтение

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

Записки IT специалиста

vlan-beginners-000.pngВиртуализацией сегодня уже никого не удивить. Эта технология прочно вошла в нашу жизнь и помогает более эффективно использовать имеющиеся ресурсы, а также обеспечивает достаточную гибкость в изменении существующей конфигурации, позволяя перераспределять ресурсы буквально налету. Не обошла виртуализация и локальные сети. Технология VLAN (Virtual Local Area Network) позволяет создавать и гибко конфигурировать виртуальные сети поверх физической. Это позволяет реализовывать достаточно сложные сетевые конфигурации без покупки дополнительного оборудования и прокладки дополнительных кабелей.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Прежде чем продолжить сделаем краткое отступление о работе локальных сетей. В данном контексте мы будем говорить об Ethernet-сетях описанных стандартом IEEE 802.3, куда входят всем привычные проводные сети на основе витой пары. Основой такой сети является коммутатор (свич, switch), который работает на втором уровне сетевой модели OSI (L2).

Второй уровень, он же канальный, работает в пределах одного сегмента сети и использует для адресации уникальные физические адреса оборудования — MAC-адреса. Передаваемая между узлами информация разделяется на специальные фрагменты — Ethernet-кадры (фреймы, frame), которые не следует путать с IP-пакетами, которые находятся на более высоком уровне модели OSI и передаются внутри Ethernet-кадров. Таким образом коммутатор ничего не знает об IP-адресах и никак эту информацию в работе не учитывает.

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

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

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

Совокупность доменов коллизии, соединенных на втором уровне, является широковещательным доменом, если говорить проще, то широковещательный домен — это совокупность всех портов коммутаторов соединенных в один сегмент.

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

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

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

Как это можно сделать наиболее простым образом? Установить вместо одно коммутатора два и подключить каждый сегмент к своему коммутатору. Но это требует покупки нового оборудования и, возможно, прокладки новых кабельных сетей, поэтому нам на помощь приходит технология VLAN.

Данная технология описана стандартом 802.1Q и предусматривает добавление к заголовкам кадра дополнительного поля, которое содержит в том числе определенную метку (тег) с номером виртуальной сети — VLAN ID, всего можно создать 4094 сети, для большинства применений этого достаточно.

Давайте рассмотрим, как работает коммутатор с виртуальными сетями. В нашем примере мы возьмем условный 8-портовый коммутатор и настроим на нем три порта на работу с одним VLAN, а еще три порта с другим.

vlan-beginners-001.png

Каждый VLAN обозначается собственным номером, который является идентификатором виртуально сети. Порты, которые не настроены ни для какого VLAN считаются принадлежащими Native VLAN, по умолчанию он обычно имеет номер 1 (может отличаться у разных производителей), поэтому не следует использовать этот номер для собственных сетей. Порты, настроенные нами для работы с VLAN, образуют как-бы два отдельных виртуальных коммутатора, передавая кадры только между собой. Каким образом это достигается?

Как мы уже говорили выше, каждый кадр 802.1Q содержит дополнительное поле, в котором содержится тег — номер виртуальной сети. При входе Ethernet-кадра в коммутатор с поддержкой VLAN (такой трафик называется входящим — ingres) в его состав добавляется поле с тегом. При выходе из коммутатора (исходящий трафик — egress), данное поле из кадра удаляется, т.е. тег снимается. Все кадры внутри коммутатора являются тегированными. Если трафик пришел на порт, не принадлежащий ни одному VLAN, он получает тег с номером Native VLAN.

vlan-beginners-002.png

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

Такие порты коммутатора называются портами доступа или нетегированными портами (access port, untagged). Обычно они используются для подключения конечных узлов сети, которые не должны ничего знать об иных VLAN и работать в собственном сегменте.

А теперь рассмотрим другую картину, у нас есть два коммутатора, каждый из которых должен работать с обоими VLAN, при этом соединены они единственным кабелем и проложить дополнительный кабель невозможно. В этом случае мы можем настроить один или несколько портов на передачу тегированного трафика, при этом можно передавать как трафик любых VLAN, так и только определенных. Такой порт называется магистральным (тегированным) или транком (trunk port, tagged).

vlan-beginners-003.png

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

Так как кадр 802.1Q отличается от обычного Ehternet-кадра, то работать с ним могут только устройства с поддержкой данного протокола. Если на пути тегированного трафика попадется обычный коммутатор, то такие кадры будут им отброшены. В случае доставки 802.1Q кадров конечному узлу сети такая поддержка потребуется от сетевой карты устройства. Если на магистральный порт приходит нетегированный трафик, то ему обычно назначается Native VLAN.

Кроме указанных двух портов доступа существует еще одна разновидность — гибридный порт (hybrid port), его реализация и наименование у разных производителей сетевого оборудования может быть разным, но суть от этого не меняется. Такой порт передает как тегированный, так и нетегированный трафик. Для этого в его настройках указывается Default VLAN ID и для всех кадров этого VLAN данный порт работает как порт доступа, т.е для исходящего трафика указанного VLAN тег снимается, а входящему кадру без тега, наоборот, присваивается. Трафик остальных VLAN передается с тегами.

Для чего это нужно? Наиболее частое применение — это IP-телефоны со встроенным коммутатором, которые умеют работать с тегированным трафиком, но не умеют передавать его дальше. В этом случае в качестве VLAN ID по умолчанию устанавливается номер VLAN в котором расположены пользовательские ПК, а для телефона на этот же порт добавляется тегированный трафик VLAN для телефонии.

vlan-beginners-004.png

Все это время мы говорили только о VLAN, не поднимая вопроса: как попасть из одного VLAN в другой. Если продолжать рассматривать канальный уровень — то никак. Каждый VLAN мы можем рассматривать как отдельный физический коммутатор, а магистральный канал — как жгут кабелей между ними. Только все это сделано виртуально, на более высоком уровне абстракции, чем L1 — физический уровень, который как раз представлен кабелями и физическим оборудованием.

Если мы соединим два физических коммутатора кабелем — то получим расширение широковещательного домена на все порты этих устройств, а это совсем не то, что нам нужно. В тоже время сетевые устройства работают на более высоких уровнях модели ОSI, начиная с сетевого — L3. Здесь уже появляется понятие IP-адреса и IP-сетей. Если смотреть на VLAN с этого уровня, то они ничем не отличаются от физических сегментов сетей. А что мы делаем, когда нам нужно попасть из одной сети в другую? Ставим маршрутизатор.

Маршрутизатор или роутер — устройство, работающее на третьем уровне модели OSI и умеющее выполнять маршрутизацию трафика, т.е. поиск оптимального пути для доставки его получателю. И здесь мы говорим уже не о Ethernet-кадрах, а об IP-пакетах. Маршрутизация между VLAN называется межвлановой (межвланной) маршрутизацией (InterVLAN Routing), но, по сути, она ничем не отличается от обычной маршрутизации между IP-подсетями.

Для обеспечения связи между сетями в нашей схеме появляется новая сущность — маршрутизатор, как правило к нему от одного из коммутаторов идет магистральный канал (транк), содержащий все необходимые VLAN, эта схема называется роутер на палочке (леденец, Router-on-a-Stick).

vlan-beginners-005.png

Как работает эта схема? Допустим ПК из синей сети (VLAN ID 40), хочет обратиться к другому узлу синей сети. IP-адрес адресата ему известен, но для того, чтобы отправить кадр нужно знать физический адрес устройства. Для этого ПК источник делает широковещательный ARP-запрос, передавая в нем нужный ему IP-адрес, в ответ на него обладатель этого IP сообщит ему собственный MAC-адрес.

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

Совсем иное дело, если узел одного из VLAN хочет получить доступ к узлу другого VLAN. В нашем случае узел из красной сети (VLAN ID 30) хочет получить доступ к узлу синей сети (VLAN ID 40). Узел источник знает IP-адрес адресата и также знает, что этот адрес не принадлежит его сети. Поэтому он формирует IP-пакет на адрес основного шлюза сети (роутера), помещает его в Ethernet-кадр и отправляет на порт коммутатора. Коммутатор добавляет к кадру тег с VLAN ID 30 и доставляет его роутеру.

Роутер получает данный кадр, извлекает из него IP-пакет и анализирует заголовки. Обнаружив адрес назначения, он сверяется с таблицей маршрутизации и принимает решение куда отправить данный пакет дальше. После чего формируется новый Ethernet-кадр, который получает тег с новым VLAN ID сети-получателя в него помещается IP-пакет, и он отправляется по назначению.

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

Говоря о межвлановой маршрутизации нельзя обойти вниманием такие устройства как L3 коммутаторы. Это устройства уровня L2 c некоторыми функциями L3, но, в отличие от маршрутизаторов, данные функции существенно ограничены и реализованы аппаратно. Этим достигается более высокое быстродействие, но пропадает гибкость применения. Как правило L3 коммутаторы предлагают только функции маршрутизации и не поддерживают технологии для выхода во внешнюю сеть (NAT) и не имеют брандмауэра. Но они позволяют быстро и эффективно осуществлять маршрутизацию между внутренними сегментами сети, в том числе и между VLAN.

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

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Добавить комментарий

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