Хорошо

Основы маршрутизации и VLAN Популярное

Последний ответ апр 06, 2022 09:33:26 2354 2 10 0 2

Общение устройств в IP-сетях

Здравствуйте!

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

Чтобы один компьютер мог отправить данные, а другой компьютер смог их принять, должно быть выполнено одно из двух условий:

  1. Оба компьютера имеют IP-адреса в одной и той же IP сети и находятся в одном широковещательном домене.

  2. Оба компьютера знают маршрут в подсеть своего «собеседника» и между ними есть настроенный маршрутизатор(ы).



Рассмотрим внимательнее первое условие. Во-первых, нам нужно, чтобы IP-адреса обоих компьютеров находились в одной и той же подсети. Что это значит? Вспомните, пожалуйста, какие параметры вы вносите в сетевые настройки: адрес, маска сети, шлюз по умолчанию. Рассмотрим пример (пока что без шлюзов).

Первый компьютер

Адрес: 192.168.0.10
Маска сети: 255.255.255.0

Второй компьютер

Адрес: 192.168.0.11
Маска сети: 255.255.255.0


Как мы видим, и адрес и маска сети разделены на четыре части. Каждая часть — это один байт с возможными значениями от 0 до 255. Если перевести число 255 в двоичную систему счисления, то мы получим число из восьми единиц подряд, а ноль так нулём и останется. «Зачем мне это знать?!» - спросите вы. Для того, чтобы понять как из IP-адреса компьютера и его маски сети получается адрес сети. Не убегайте от экрана, пожалуйста, скоро будут картинки. Честно-честно!

Давайте быстренько вычислим эти адреса сетей для нашего примера и узнаем зачем они нужны. Для этого нам потребуется произвести операцию «побитного логического и» каждого байта IP-адреса с соответствующим ему байтом маски подсети. Если вы не знаете как работает эта операция, то вот небольшая подсказка (а более сложные примеры вы сможете рассчитать на калькуляторе в режиме «программист»):

  • X & 255 = X;

  • X & 0 = 0.

Запишем это для нашего примера:

Адрес сети 1 = (192 & 255).(168 & 255).(0 & 255).(10 & 0) = 192.168.0.0

Адрес сети 2 = (192 & 255).(168 & 255).(0 & 255).(11 & 0) = 192.168.0.0



Как видно, оба адреса сети совпадают, а это означает, что данные отправленные компьютером 1 будут приняты компьютером 2 как данные от правильного источника к правильному адресату. То есть, обмен будет возможен.

Теперь перейдём ко второй части нашего условия — наши компьютеры должны находиться в одном широковещательном домене. На самом деле, это означает, что никакое устройство между ними не будет их данные блокировать. Например, если вы подключите один компьютер в порт WAN домашнего роутера, а второй — в порт LAN, то первый не сможет начать соединение со вторым по собственной инициативе (да и адреса у них будут из разных сетей). Это происходит из-за того, что роутер не даёт информации распространяться свободно — он ей управляет. Если же вы подключите оба компьютера в порты LAN вашего роутера, то они смогут без проблем обмениваться данными.

Если упростить, то компьютеры должны иметь возможность отправлять данные друг другу напрямую. Сам термин, правда, предполагает что компьютеры смогут получать широковещательные пакеты друг от друга. Широковещательные пакеты — это такие данные, которые по мнению их отправителя, должны знать все. Например, «я теперь в сети» или «а у кого адрес 192.168.0.11, ответьте срочно на адрес 192.168.0.10».

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

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

Виртуальные локальные сети (VLAN)

Виртуальные локальные сети (VLAN) — это способ объединения компьютеров в разные широковещательные домены. То есть мы берём нашу сеть из, например, ста компьютеров, и делим её на две части по 50 компьютеров. После этого без помощи маршрутизаторов (шлюзов) друг с другом смогут общаться только две независимые группы по 50 компьютеров. А для общения между группами (VLAN’ами) они будут отправлять данные на маршрутизаторы, маршрутизаторы будут отправлять их уже в другую группу со своих портов, у которых есть адрес в нужной сети (пока не мучайтесь, если не ничего не поняли, потом объясню подробнее).

Коммутаторы в «тупом режиме»

Если мы никак не настраиваем коммутаторы, к которым подключены компьютеры, то они VLAN использовать не будут (на самом деле они будут все устройства рассматривать как устройства в VLAN 1).

Соединение без настройки VLAN на коммутаторе

Соединение без настройки VLAN на коммутаторе



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

Режимы портов коммутатора Huawei

Если же мы твёрдо решили разделять и властвовать, то придётся для начала объяснять коммутатору какие компьютеры в каком VLAN находятся. Рассмотрим простейший способ — назначение VLAN для интерфейса коммутатора. У нас есть три стандартных варианта типа порта: Access, Trunk и Hybrid. Меняется режим работы интерфейса командой:

port link-type { access | trunk | hybrid }


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

Рассмотрим подробно типы портов. Начнём с Access.

Режим работы Access

Режим работы Access



В этом режиме мы говорим коммутатору, к какому VLAN должны относиться устройства, которые подключаются к конкретному интерфейсу. В примере выше, коммутатор настроен таким образом, что первый интерфейс и все устройства, которые к нему подключены, относятся к VLAN 10 (VLAN с номером «10»). А четвёртый интерфейс со всеми его устройствами — к VLAN 20. Как мы видим, до того как данные попали в коммутатор, они не относятся ни к какому VLAN, а коммутатор уже «навешивает на них ярлыки».

После того как данные внутри коммутатора оказались помеченными тегами VLAN, они уже не могут просто так взять и перейти из одного VLAN в другой. Поэтому, наши компьютеры не смогут отправлять друг другу мемасики с котиками. Жаль!

Настройка таких портов на коммутаторе Huawei выглядит так (её нужно делать в режиме конфигурации интерфейса):

port link-type access // выбираем режим работы интерфейса
port default vlan <Номер VLAN> // назначаем номер VLAN для интерфейса
port discard tagged-packet // если выполнить эту команду, то все данные, которые придут в интерфейс с уже проставленными тегами VLAN, будут удалены


Рассмотрим более сложную схему с портами в режиме Trunk.

Схема соединения коммутаторов портами Trunk

Схема соединения коммутаторов портами Trunk


Мы можем увидеть уже знакомые нам порты Access, к которым подключены компьютеры. К данным от компьютеров внутри коммутатора добавляются теги VLAN. Между собой коммутаторы соединены при помощи портов в режиме Trunk. Это специальный режим порта для соединения коммутаторов между собой. Он предполагает, что данные будут передаваться с указанием того, к какому VLAN они относятся. Это называется тегированный трафик. При помощи этих портов можно передавать вместе трафик сразу нескольких VLAN. И он не будет смешиваться, потому что каждый пакет с данными подписан тегом VLAN.

В нашем примере, левый коммутатор настроен так, что он готов передавать и принимать данные от правого в двух VLAN – втором и третьем. А правый коммутатор готов работать только со вторым VLAN. Таким образом, левый коммутатор будет отправлять правому все данные из VLAN 2 и 3. И обрабатывать полученный трафик в тех же VLAN. А правый будет это делать только с VLAN 2. В итоге, обмен будет вестись только внутри VLAN 2.

Рассмотрим путь данных от первого компьютера ко второму:

  • Пакет данных от компьютера 192.168.0.10 попадает в левый коммутатор.

  • Левый коммутатор помечает этот пакет как относящийся к VLAN 2.

  • Прочитав кому адресован пакет, коммутатор принимает решение, что его нужно отправить через четвёртый интерфейс.

  • Пакет выходит из левого коммутатора вместе с тегом VLAN 2 и входит в первый порт правого коммутатора.

  • Правый коммутатор проверяет тег VLAN пришедшего пакета. Он находится в списке разрешённых, поэтому приём пакета разрешается.

  • Пакет попадает в коммутатор вместе со своим тегом VLAN 2.

  • Прочитав кому адресован пакет, коммутатор принимает решение, что его нужно отправить через четвёртый интерфейс.

  • Так как тег VLAN пакета совпадает с VLAN четвёртого порта, он успешно через него отправляется адресату. Перед этим с него снимается тег VLAN.

Настройка интерфейса в режиме Trunk на коммутаторах Huawei:

port link-type trunk // сообщаем коммутатору режим интерфейса
port trunk allow-pass vlan <Список допустимых VLAN> // Говорим какие VLAN разрешены
port trunk pvid vlan <Номер VLAN> // Этот тег будет присвоен тем пакетам, которые придут без тега VLAN

Теперь быстренько про Hybrid. По умолчанию, все интерфейсы коммутатора будут в этом режиме. Наверное, это не с проста. Ведь режим Hybrid позволяет настроить интерфейс наиболее гибко, объединяя возможности Access и Trunk. И даже немного больше! Чтобы понять его лучше посмотрим на его конфигурацию:

port link-type hybrid // сообщаем коммутатору режим интерфейса
port hybrid untagged vlan <Список нетегируемых VLAN> // данные из этого списка VLAN будут отправляться без указания тега VLAN
port hybrid tagged vlan <Список тегируемых VLAN> // данные из этого списка VLAN будут отправляться с тегами VLAN
port hybrid pvid vlan <Номер VLAN> // Этот тег будет присвоен тем пакетам, которые придут без тега VLAN


Статическая маршрутизация через VLANIF

Давайте представим, что мы всё-таки разделили нашу сеть на несколько VLAN. Рассмотрим как теперь компьютерам друг с другом общаться. Прежде всего вспомним, что им для этого обязательно нужен маршрутизатор. В роли маршрутизатора вполне может выступить и коммутатор даже серии Huawei S1700. Его задачей будет принимать пакеты в одном VLAN и отправлять их в другой.

Схема маршрутизации через VLANIF

Схема маршрутизации через VLANIF


Для того, чтобы всё заработало, нужно на коммутаторе, который мы назначим маршрутизатором, настроить специальные виртуальные интерфейсы VLANIF. Это программные интерфейсы, которые как бы подключены к сети со своим VLAN. VLANIF 1 подключён к VLAN 1, VLANIF 2  - к VLAN 2 и так далее. Этим интерфейсам можно назначить IP-адреса (с масками сети). Как только вы это сделаете, коммутатор автоматически сможет перенаправлять данные из одного VLAN, в котором у него есть IP-адрес, в другие (где у него также есть IP-адреса). Останется только настроить компьютеры так, чтобы соответствующий их VLAN адрес коммутатора (адрес VLANIF) был указан в качестве шлюза по умолчанию. Не забудьте сделать это у всех компьютеров, иначе данные смогут идти только в одну сторону. Каждый компьютер, участвующий в обмене информацией, должен знать адрес своего шлюза. Конфигурация на коммутаторах Huawei:

interface vlanif <Номер VLAN> // указываем какой интерфейс настраивать
description <Описание интерфейса> // чтобы не забыть что это — можно добавить описание
ip address <IP-адрес> <маска в виде X.X.X.X или её длина в битах> // указываем адрес


Этой конфигурации будет достаточно для передачи информации внутри локальной сети. Но если нужна связь с другими сетями или интернетом, требуется настроить таблицу маршрутизации на коммутаторе-маршрутизаторе. Фактически, он будет производить маршрутизацию всех данных, которые к нему пришли, если будет знать куда их можно отправить. Между VLAN он это узнаёт по параметрам адресов VLANIF. Но можно добавить и дополнительные записи о маршрутизации. Рассмотрим только статические (подробно можно почитать в документации https://support.huawei.com/hedex/hdx.do?docid=EDOC1100175712&id=EN-US_TASK_0177104628&lang=en).

ip route-static <IP назначения> <маска сети назначения или её длина> <IP адрес шлюза>


Пример для задания шлюза по умолчанию на коммутаторе Huawei:

ip route-static 0.0.0.0 0 192.168.0.10


После того как мы введём эту команду, коммутатор будет отправлять все пакеты, которые он «не смог никуда пристроить» именно на шлюз 192.168.0.10. Но если он будет находить более специфический маршрут (то есть с более длинной маской сети), он будет использовать его.

  • x

Alisa2k
Author Опубликовано 2022-4-6 09:33:26
О, спасибо!!
Развернуть
  • x

mrppa
mrppa Опубликовано 2022-4-6 15:02 (0) (0)
 

Комментарий

Выполните вход в систему, чтобы ответить на пост. Вход | Регистрация
Отправить

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

My Followers

Авторизуйтесь и пользуйтесь всеми преимуществами участника!

Вход

Заблокировать
Вы уверены, что хотите заблокировать этого пользователя?
Пользователи из вашего черного списка не могут комментировать ваши посты, не могут упоминать вас, не могут отправлять личные сообщения.
Напоминание
Пожалуйста, привяжите свой мобильный номер чтобы получить бонус за приглашение.
О защите информации
Благодарим за использование Huawei ICT Club! Мы хотим рассказать вам о том, как мы собираем, используем и храним ваши данные. Пожалуйста, внимательно ознакомьтесь с Политикой конфиденциальности и Пользовательским соглашением.