Андрей Смирнов
Время чтения: ~9 мин.
Просмотров: 14

Принцип работы протоколов STP/RSTP, функции защиты корня (root guard)

Spanning Tree Protocol — сетевой протокол, работающий на втором уровне модели OSI. Основан на одноименном алгоритме, разработчиком которого является «Мама Интернета» — Радья Перлман (англ. Radia Perlman).

Для того чтобы определить какие порты заблокировать, а какие будут в режиме пересылки, STP выполняет следующее:

1) Выбор корневого моста (Root Bridge)

2) Определение корневых портов (Root Port)

3) Определение выделенных портов (Designated Port)

Выбор корневого моста

Корневым становится коммутатор с наименьшим идентификатором моста (Bridge ID).

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

Изначально Bridge ID состоял из двух полей:

  • Приоритет — поле, которое позволяет административно влиять на выборы корневого коммутатора. Размер — 2 байта,
  • MAC-адрес — используется как уникальный идентификатор, который, в случае совпадения значений приоритетов, позволяет выбрать корневой коммутатор. Так как MAC-адреса уникальны, то и Bridge ID уникален, так что какой-то коммутатор обязательно станет корневым.

Определение корневых портов

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

Определение назначенных портов

Коммутатор в сегменте сети, имеющий наименьшее расстояние до корневого коммутатора называется назначенным коммутатором (мостом). Порт этого коммутатора, который подключен к рассматриваемому сегменту сети, называется назначенным портом.

Принцип действия

  1. В сети выбирается один корневой мост (Root Bridge).
  2. Далее каждый, отличный от корневого, мост просчитывает кратчайший путь к корневому. Соответствующий порт называется корневым портом (Root Port). У любого не корневого коммутатора может быть только один корневой порт.
  3. После этого для каждого сегмента сети просчитывается кратчайший путь к корневому порту. Мост, через который проходит этот путь, становится назначенным для этой сети (Designated Bridge). Непосредственно подключенный к сети порт моста — назначенным портом.
  4. Далее на всех мостах блокируются все порты, не являющиеся корневыми и назначенными. В итоге получается древовидная структура (математический граф) с вершиной в виде корневого коммутатора.

Алгоритм действия STP

  • После включения коммутаторов в сеть, по умолчанию каждый (!) коммутатор считает себя корневым (root).
  • Затем коммутатор начинает посылать по всем портам конфигурационные Hello BPDU пакеты раз в 2 секунды.
  • Исходя из данных Hello BPDU пакетов, тот или иной коммутатор приобретает статус root, то есть корня.
  • После этого все порты кроме root port и designated port блокируются.

Происходит посылка Hello-пакетов раз в 20 секунд либо при пропадании/восстановлении какого-нибудь линка, с целью препятствия появлению петель в сети.

Пример топологии

Изменениями топологии считается изменения ролей DP и RP. Коммутатор, который обнаружил изменения в топологии отправляет Topology Change

Notification (TCN) BPDU корневому коммутатору:

  • Коммутатор, на котором произошли изменения отправляет TCN BPDU через свой корневой порт. Отправка сообщения повторяется каждый hello interval (2 секунды) до тех пор, пока получение сообщения не будет подтверждено.
  • Следующий коммутатор, который получил TCN BPDU отправляет назад подтверждение. Подтверждение отправляется в следующем Hello BPDU, которое будет отправлять коммутатор, выставлением флага Topology Change Acknowledgement (TCA).
  • Далее коммутаторы, у которых порт работает в роли DP для сегмента, повторяют первые два шага и отправляют TCN через свой корневой порт и ждут подтверждения.

После того как корневой коммутатор получил TCN BPDU, он отправляет несколько следующих Hello с флагом TCA. Эти сообщения получают все коммутаторы. При получении сообщения hello с флагом TCA, коммутатор использует короткий таймер (Forward Delay time) для того чтобы обновить записи в таблице коммутации. Обновления выполняется из-за того, что после изменений в топологии STP в таблице коммутации могут храниться неправильные записи.

Если порт изменяет состояние с Blocking в Forwarding, то он должен пройти через два промежуточных состояния: Listening и Learning. Переход из Forwarding в Blocking может выполняться сразу.

Роли и состояния портов

Роли портов:

  • Root Port — корневой порт коммутатора
  • Designated Port — назначенный порт сегмента
  • Nondesignated Port — неназначенный порт сегмента
  • Disabled Port — порт который находится в выключенном состоянии

Состояния портов:

  • Blocking — блокирование
  • Listening — прослушивание
  • Learning — обучение
  • Forwarding — пересылка

Функция root-guard “защита корня”

Функция защиты корня обеспечивает возможность задать расположение корневого моста в сети. Это обеспечивает уверенность в том, что порт, на котором активизирована функция защиты корня, является назначенным. Обычно все порты корневого моста являются назначенными, если два или более портов корневого моста не соединены вместе. Если мост получает высокоприоритетные STP элементы данных протокола управления мостами (BPDU) в корневом порту, для которого включена функция защиты корня, защита корня переводит порт в состояние STP, называемое несогласованностью корня. Состояние несогласованности корня аналогично состоянию прослушивания. Трафик через порт в таком состоянии не пересылается. Таким образом, защита корня задает расположение корневого моста. Функцию защиты корня необходимо включить на всех портах, которые не должны стать корневыми.

Изменения «места разрыва кольца» на оборудовании Sprinter

По умолчанию на оборудовании Sprinter протокол RSTP определяет «место разрыва кольца», т.е. какой порт блокировать, основываясь на скорости соединения, которой соответствует стоимость соединения.

Ниже приведено соответствие скорости и стоимости соединения:

10 Mb/s: Cost=2 000 000

100 Mb/s: Cost=200 000

1000 Mb/s: Cost=20 000

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

Для изменения стоимости соединения порта необходимо использовать команду:

rstp -c

где port number — номер порта, для которого изменяем стоимость соединения

port cost — новое значение стоимости соединения

Для рисунка, представленного ниже, эта команда выглядит следующим образом:

rstp <portnumber> —c 4

Источник http://www.nsc-com.com/?page=155

Сегодня поговорим о том как настроить SSTP Server на MikroTik. Расшифровывается аббревиатура как Secure Socket Tunneling Protocol – PPP туннель аутентифицирует через TLS канал. Использует TCP порт 443 и фактически проходит через все фаерволы и прокси сервера. Впервые был представлен в Windows Vista SP1. С того момента прошло много времени, но не зря, т.к. все поняли очевидные его плюсы, а именно:

  • Безопасный, используются алгоритмы AES;
  • Хорошо проходим, тесты показывают установку соединения из Тайландского WiFi в отеле и обычного Украинского провайдера;
  • Полностью поддерживается MS Windows.

Из минусов

  • работает на одном ядре;
  • уязвим перед некоторыми атаками MITM (скорее фантастика).

В сегодняшней статье мы рассмотрим настройку SSTP сервера на роутере микротик с версией 6.46.4 и клиента на операционной системе Windows 10 Pro 1909.  Идеальное решение для предоставления пользовательского подключения к корпоративной сети и не только. Прикрутив коммерческий сертификат, вы снимаете с себя ручное добавление его в машинах Windows. Но в качестве демонстрации, мы будем использовать само подписанный. Так же возможно настроить Site to Site туннель между двумя Mikrotik, причем без них, что крайне не рекомендую.

Содержание

Схема сети

Shema-SSTP-seti.jpg

  • Сервер SSTP имеет адрес 192.168.100.2;
  • Клиентский ПК получает из пула 192.168.1.0/24;
  • Маршрутизируемая сеть между удаленными площадками.

Если вы хотите углубить свои знания по работе с роутерами MikroTik, то наша команда рекомендует пройти курсы которые сделаны на основе MikroTik Certified Network Associate и расширены автором на основе опыта . Подробно читайте ниже.

Настройка сервера SSTP

Конфигурация устройства проста. Имеем RouterBoard с настроенным выходом в интернет. Подключение будет происходить по сертификату, в котором вместо имени указан IP адрес. Первым делом нужно создать сертификат центра сертификации. Переходим в System – Certificates и создаем новый.

Menyu-sertifikatov.png

В поле Name указываем понятное имя, отображаемое в списке;

  • Country – двухбуквенное значение;
  • State, Locality, Organization, Unit – по своему усмотрению;
  • Common Name – самое важное, уникальное имя. Если у вас есть доменное имя vpn.test.ru, то вписываете его сюда. Если же его нет, но есть публичный статический адрес, то пишите его. Представим, что наш адрес такой.

Вы так же можете указать длину ключа и срок действия.Sozdanie-sertifikata-tsentra-sertifikatsii.jpg

Далее переходим в Key Usage. Снимаем галки со всего, оставляя только на crl sign и key cert. sign.

Optsii-sertifikata.jpg

Жмем Apply и Sign. В новом открывшемся окне подписания, стартуем процесс подписи кнопкой Start.

Okno-podpisaniya.jpg

По завершении увидим в Progress состояние done и аббревиатуру KAT возле CA.

Proverka-sozdaniya-kornevogo-sertifikata.jpg

Далее создаем сертификат самого сервера SSTP, который будет указан в качестве основного на интерфейсе. Жмем плюс и заполняем все поля аналогично предыдущему, за исключением понятного имени.

Sozdanie-sertifikata-servera-SSTP.jpg

На вкладке Key Usage добавляем галочки tls client и tls server.

Optsii-sertifikata-servera.jpg

Жмем Apply и Sign. В открывшимся окне подписи в поле CA выбираем корневой сертификат и стартуем процесс.

Podpisanie-servernogo-sertifikata.jpg

Проверим.

Proverka-sozdaniya-sertifikatov.jpg

Далее создадим профиль подключения для клиентов. PPP – Profiles. Указываем понятное имя профиля;

  • адрес в туннеле;
  • разрешаем TCP MSS;
  • запрещаем UPnP.

Menyu-novogo-profilya-SSTP.jpg

В Protocols:

  • Use MPLS – запретить;
  • Use Compression – разрешить;
  • Use Encryption – разрешить;

Menyu-Protocols.jpg

В Limits выставляем Only One в no.

Создадим пользователя в Secrets.

  • Name – имя пользователя, регистр имеет значение;
  • Password – пароль;
  • Service – SSTP;
  • Profile – созданный выше;
  • Remote Address – адрес в туннеле.

Сохраняем и переходим в PPP – interfaces. Нас интересует вкладка SSTP Server.

Открыв ее, указываем следующие значения:

  • Enable – ставим галочку;
  • Default Profile – ранее созданный;
  • Authentication – mschapv2;
  • Certificate – Server;
  • Force AES, PFS – включаем.

Если страшно, то можно выставить TLS Version в only 1.2. Двигаемся дальше к фаерволу. Просто одно правило. Разрешить входящий трафик на 443 порт – все.

Настройка SSTP клиента на Микротик

Для дальнейшей конфигурации нам нужен сертификат центра сертификации добавить в доверенные компьютера. Иначе начнется песня со списком отзывов и в этом роде. Конечно, таких проблем не будет, используя коммерческий. Но его нужно сначала выгрузить. Открываем System – Certificates, выбираем CA и жмем Export.

В Files должен появится экспорт. Передаем его любым удобным способом на клиентскую машину.

Далее вы можете вручную его добавить в доверенные ПК, но я предпочитаю это делать скриптом. Сохраняем в формате .bat

Создаем на рабочем столе папу CA, копируем туда CA.crt и запускаем из-под администратора батник.

cd «%UserProfile%DesktopCA»

certutil -addstore «Root» CA.crt

Проверяем что все хорошо.

Далее переходим в Центра управления сетями и общим доступом – Создание и настройка нового подключения или сети.

Подключение к рабочему месту.

Использовать мое подключение к Интернету.

Указываем адрес и имя будущего интерфейса.

Переходим в Изменение параметров адаптера» и открываем свойства VPN интерфейса. На вкладке «Тип VPN» переключить с автоматически на SSTP, Проверку подлинности переключить на Microsoft CHAP версии 2.

Сохраняем и пытаемся подключиться.

На момент написания статьи у меня вышла такая ошибка.

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

89 вопросов по настройке MikroTik

Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в курсе «Настройка оборудования MikroTik». 162 видеоурока, большая лабораторная работа и 89 вопросов, на каждый из которых вы будете знать ответ. Подробности и доступ к началу курса бесплатно тут.

Используемые источники:

  • https://www.skleroznik.in.ua/2014/10/10/princip-raboty-protokolov-stprstp-funkcii-zashhity-kornya-root-guard/
  • https://mikrotiklab.ru/nastrojka/artga-sstp.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации