По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этом материале расскажем, как можно фильтровать маршруты, анонсируемые протоколом динамической маршрутизации EIGRP. Данный материал предполагает, что у читателя есть начальные навыки работы с сетью или как минимум знания на уровне CCNA. Поэтому о том, что такое динамическая маршрутизация в этом материале не будет рассказано, так как тема достаточно большая и займет не одну страницу. Теперь представим, что мы работаем в большой компании с сотнями серверов, десятками филиалов. Мы подняли сеть, настроили динамическую маршрутизацию и все счастливы. Пакеты ходят куда надо, как надо. Но в один прекрасный день, нам сказали, что на маршрутизаторах филиалов не должно быть маршрутов к сетям отдела производства. На рисунке ниже представлена упрощенная схема нашей вымышленной сети. Конфигурацию всех устройств из этой статьи (для каждой ноды) можно скачать в архиве по ссылке ниже. Скачать конфиги тестовой лаборатории Мы конечно можем убрать из-под EIGRP указанные сети, но в этом случае из сетей в головном офисе тоже не будет доступа к сетям отдела производства. Именно для таких случаев была придумана такая возможность, как фильтрация маршрутов. В EIGRP это делается командой distribute-list в конфигурации EIGRP. Принцип работы distribute-list (список распределения) прост: список распределения работает по спискам доступа (ACL), спискам префиксов (prefix-list) или карте маршрутов (route-map). Эти три инструмента определяют будут ли анонсироваться указанные сети в обновлениях EIGRP или нет. В команде distribute-list также можно указать направление обновлений: входящие или исходящие. Также можно указать конкретный интерфейс, где должны фильтроваться обновления. Полная команда может выглядеть так: distribute-list acl [in | out][interface-type interface-number] Фильтрация маршрутов с помощью списков доступа Первым делом рассмотрим фильтрацию с помощью ACL. Фильтрация маршрутов EIGRP с помощью списков ACL основан на разрешающих и запрещающих действиях списков доступа. То есть, чтобы маршрут анонсировался, в списке доступа он должен быть указан с действием permit, а deny, соответственно, запрещает анонсирование маршрута. При фильтрации, EIGRP сравнивает адрес источника в списке доступа с номером подсети (префиксом) каждого маршрута и принимает решение на основе действий, указанных в ACL. Чтобы лучше узнать принцип работы приведём примеры. Для фильтрации маршрутов, указанных на рисунке выше нужно создать ACL, где каждый указанный маршрут сопровождается командой deny, а в конце следует прописать permit any, чтобы остальные маршруты могли анонсироваться: access-list 2 deny 10.17.32.0 0.0.1.255 access-list 2 deny 10.17.34.0 0.0.0.255 access-list 2 deny 10.17.35.0 0.0.0.127 access-list 2 deny 10.17.35.128 0.0.0.127 access-list 2 deny 10.17.36.0 0.0.0.63 access-list 2 deny 10.17.36.64 0.0.0.63 access-list 2 permit any А на интерфейсе настройки EGRP прописываем: distribute-list 2 out s4/0 Проверим таблицу маршрутизации до и после применения указанных команд. Фильтрацию будем проводить на WAN маршрутизаторах. Как видим все маршруты до сети отдела Производства видны в таблице маршрутизации филиала. Теперь применим указанные изменения: И посмотрим таблицу маршрутов роутера филиала еще раз: Все маршруты в отдел производства исчезли из таблицы маршрутизации. Правда, можно было обойтись и одной командой в списке доступа, но для наглядности решили прописать все адреса. А более короткую версию можете указать в комментариях к этому посту. Кстати, фильтрацию в данном примере мы применили на один интерфейс, но можно применить и на все интерфейсы, на которых включен EIGRP. Для этого команду distribute-list нужно ввести без указания конкретного интерфейса. distribute-list 2 out Следует отметить, что для правильной работы фильтрации в нашей топологии на маршрутизаторе WAN2 нужно прописать те же настройки, что и на WAN1. Фильтрация маршрутов с помощью списка префиксов В Cisco IOS есть еще один инструмент, который позволяет осуществлять фильтрацию маршрутов prefix-list-ы. Может возникнуть вполне логичный вопрос: а чем не угодили списки доступа? Дело в том, что изначально ACL был разработан для фильтрации пакетов, поэтому для фильтрации маршрутов он не совсем подходит по нескольким причинам: списки IP-префиксов позволяют сопоставлять длину префикса, в то время как списки ACL, используемые командой EIGRP distribution-list, нет; Использование расширенных ACL может оказаться громоздким для конфигурирования; Невозможность определения совпадения маски маршрута при использовании стандартных ACL; Работа ACL достаточно медленна, так как они последовательно применяется к каждой записи в маршрутном обновлении; Для начала разберёмся в принципе работы списка префиксов. Списки IP префиксов позволяют сопоставлять два компонента маршрута: адрес сети (номер сети); длину префикса (маску сети); Между списками доступа и списками префиксов есть общие черты. Как и нумерованные списки доступа, списки префиксов могу состоять из одной и более команд, которые вводятся в режиме глобальной конфигурации и нет отдельного режима конфигурации. Как и в именованных списках доступа, в списках префиксов можно указать номер строки. В целом команда выглядит так: ip prefix-list list-name [ seq seq-value ] { deny | permit prefix / prefix-length } [ ge ge-value ] [ le le-value ] Коротко работу списка префиксов можно описать так: Адрес сети маршрута должен быть в пределах, указанных в команде ip prefix-list prefix/prefix-length. Маска подсети маршрута должна соответствовать значениям, указанным в параметрах prefix-length, ge, le. Первый шаг работает также как и списки доступа. Например, написав ip prefix-list TESTLIST 10.0.0.0/8 мы скажем маршрутизатору, что адрес сети должен начинаться с 10. Но списки префиксов всегда проверяют и на соответствие длины маски сети указанным значениям. Ниже приведено пояснение параметров списка IP-префиксов: Параметр prefix-list-а Значение Не указан 10.0.0.0/8; Маска сети должна быть равной длине, указанной в параметре prefix/prefix-length. Все маршруты, которые начинаются с 10. ge и le (больше чем, меньше чем) 10.0.0.0/8 ge 16 le 24 Длина маски должна быть больше 16, но меньше 24. А первый байт должен быть равен 10-ти. le меньше чем 10.0.0.0/8 le 24 Длина маски должна быть от восьми до 24-х включительно. ge больше чем 10.0.0.0/8 ge 24 Длина маски должна быть равна или больше 24 и до 32-х включительно. Учтите, что Cisco требует, чтобы параметры prefix-length, ge и le соответствовали следующему равенству: prefix-length <= ge-value <= le-value (8<=10<=24). А теперь перейдем непосредственно к настройке фильтрации с помощью списка префиксов. Для этого в интерфейсе конфигурации EIGRP прописываем distribute-list prefix prefix-name. Воспользуемся той же топологией и введём некоторые изменения в конфигурацию маршрутизатора WAN1, точно такую же конфигурацию нужно прописать и на WAN2. Итак, наша задача: отфильтровать маршруты в сети 10.17.35.0 и 10.17.36.0; отфильтровать маршруты сетей точка-точка так, чтобы маршрутизаторы в филиалах и на коммутаторах ядра (Core1 и Core2) не видели сети с длиной маски /30 бит. Так как трафик от пользователей в эти сети не идет, следовательно, нет необходимости анонсировать их в сторону пользователей. Для этого создаем prefix-list с названием FILTER-EIGRP и добавим нужные сети: ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25 ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26 ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30 ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32 Удалим из конфигурации фильтрацию по спискам доступа и проверим таблицу маршрутизации: А теперь применим наш фильтр и затем еще раз проверим таблицу маршрутизации: Как видим из рисунка, маршрутов в сети 10.17.35.0, 10.17.36.0 и сети для соединений точка-точка между сетевыми устройствами в таблице уже нет. А теперь объясним что мы сказали маршрутизатору: ip prefix-list FILTER-EIGRP seq 5 deny 10.17.35.0/24 ge 25 le 25 Все сети, которые начинаются на 10.17.35 и имеют длину 25 бит запретить. Под это условие попадают сети 10.17.35.0/25 и 10.17.35.128/25. Длине префикса /25 соответствует маска 255.255.255.128. ip prefix-list FILTER-EIGRP seq 10 deny 10.17.36.0/24 ge 26 le 26 Все сети, которые начинаются на 10.17.36 и имеют длину 26 бит запретить. Под это условие попадают сети 10.17.36.0/26 и 10.17.36.64/26. Длине префикса /26 соответствует маска 255.255.255.192. ip prefix-list FILTER-EIGRP seq 15 deny 0.0.0.0/0 ge 30 le 30 Все сети, длина префикса которых равна 30 бит - запретить. В нашей топологии под это условие попадают сети 10.1.1.0/30, 10.1.1.4/30, 10.1.2.0/30, 10.1.2.4/30 все сети которые начинаются на 10.9.2. ip prefix-list FILTER-EIGRP seq 20 permit 0.0.0.0/0 le 32 Все сети, префикс которых имеет длину до 32-х бит разрешить. Под это условие попадают все остальные сети топологии. Фильтрация маршрутов с помощью route-map Далее пойдет речь о картах маршрутов или route-map-ах. В целом, в работе сети route-map-ы используются довольно часто. Этот достаточно гибкий инструмент дает возможность сетевому инженеру тонко настраивать маршрутизацию в корпоративной сети. Именно поэтому следует хорошо изучить принцип их работы, чем мы и займемся сейчас. А дальше покажем, как фильтровать маршруты с помощью этого инструмента. Route-map применяет логику похожую на логику if, else, then в языках программирования. Один route-map может включать в себя несколько команд route-map и маршрутизатор выполняет эти команды поочередно согласно номеру строки, который система добавляет автоматически, если не был указан пользователем. После того как, система нашла соответствие маршрута условию и определила разрешить анонсирование или нет, маршрутизатор прекращает выполнение команды route-map для данного маршрута, даже если дальше указано другое условие. Каждый route-map включает в себя критерии соответствия, который задается командой match. Синтаксис route-map выглядит следующим образом: route-map route-map-name {permit | deny} seq sequence-number match (1st set of criteria) Как и в случае с ACL или prefix-list, в route-map тоже можно указать порядковый номер строки для добавления или удаления соответствующего правила. В команде match можно указать ACL или prefix-list. Но тут может возникнуть недоразумение. А связано оно с тем, как обрабатываются route-map Cisco IOS. Дело в том, что решение о запрете или допуске маршрута основано на команде deny или permit команды route-map. Другими словами, маршрут будет обработан route-map-ом если в ACL или prefix-list-е данный маршрут сопровождается командой permit. Иначе, route-map проигнорирует данную запись и перейдет к сравнению со следующим условием route-map. Поясним на примере: access-list 101 permit 10.17.37.0 0.0.0.255 access-list 102 deny 10.17.35.0 0.0.0.127 route-map Test permit 5 match ip-address 101 route-map Test deny 10 match ip-address 102 В данном случае маршрут 10.17.37.0 будет обработан route-map 5, а маршрут 10.17.35.0 будет проигнорирован, так как в списке доступа под номером 102 он запрещён и не попадёт под критерий соответствия route-map. Приведём ключевые пункты работы route-map при фильтрации маршрутов: Команда route-map с опцией permit либо разрешит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит для обработки следующим пунктом. Команда route-map с опцией deny либо запретит анонсирование маршрута, если он соответствует критерию, указанному в команде match, либо пропустит для обработки следующим пунктом. Если команда match основывается на ACL или prefix-list-ы, а в ACL или prefix-list-ах указанный маршрут прописан с действием deny, то маршрут не будет отфильтрован. Это будет означать, что маршрут не соответствует критерию, указанному в команде match и его нужно пропустить для обработки следующим пунктом. В конце каждого route-map существует явный запрет; чтобы пропустить все маршруты, которые не попали под критерии, нужно указать команду route-map с действием permit без опции match. Для того чтобы задействовать route-map в фильтрации маршрутов используется та же команда distribute-list с опцией route-map route-map-name. Внесём некоторые изменения в конфигурацию маршрутизатора WAN1. Точно такие же изменения нужно будет сделать на WAN2. Используем те же префикс-листы, что и в предыдущем примере с незначительными редактированиями: ip prefix-list MANUFACTURING seq 5 permit 10.17.35.0/24 ge 25 le 25 ip prefix-list MANUFACTURING seq 10 permit 10.17.36.0/24 ge 26 le 26 ip prefix-list POINT-TO-POINT seq 5 permit 0.0.0.0/0 ge 30 le 30 После внесения изменений маршрутов в сеть производства, а также в сети точка-точка таблице маршрутизации на роутерах филиалов не окажется. Также на Core1 не будет маршрута до сетей point-to-point: Мы рассмотрели фильтрацию маршрутов в EIGRP тремя способами. Хорошим тоном считается использование списка префиксов, так как они заточены именно под эти цели. А использование карты маршрутизации или route-map-ов неэффективно из-за большего количества команд для конфигурации. В следующем материале рассмотрим фильтрацию в домене OSPF.
img
Прокси сервер - это элемент сетевой инфраструктуры, который выполняет роль посредника между клиентским компьютером (терминал, браузер, приложение), находящимся во внутренней сети и другим сервером, который живёт во внешней сети или наоборот. Прокси сервер может применяться для решения следующих задач: усиление безопасности защита приватности балансировка нагрузки на посещаемый ресурс Как можно использовать прокси сервер Прокси сервер принимает и передает запросы от клиентов (которые могут находиться как во внутренней так и во внешней сети) к различным сетевым службам и обеспечивает их передачу целевым серверам. При этом, клиент может даже не знать о том, что взаимодействие осуществляется через прокси сервер. Принимая запросы от клиента прокси сервер может либо: сразу передать их на запрашиваемый ресурс, либо сразу вернуть клиенту запрашиваемый ресурс из своего кэша, либо отказать в доступе к запрашиваемому ресурсу. Всё это делает прокси сервер очень важным элементом сетевой архитектуры. Основные возможности, которыми обладает прокси сервер перечислены ниже: Получение доступа к определенным ресурсам (в том числе заблокированным по каким-либо причинам) - во многих компаниях доступ в Интернет для сотрудников происходит только через прокси сервер. Это делается для того, чтобы пользователь не посещал ресурсы, не разрешенные политикой компании. Однако, прокси также может использоваться и для обхода блокировок. Прямой доступ к ресурсу может быть заблокирован, а к прокси – нет. Таким образом, если обращаться к заблокированному ресурсу через прокси, то можно получить к нему доступ. Правда, в зависимости от того где территориально расположен прокси, скорость доступа может пострадать. Анонимизация IP адреса клиентского компьютера - обращаясь к какому-либо ресурсу через прокси, можно скрыть свой реальный IP адрес, так что “вычислить по IP” вас будет гораздо сложнее. Блокировка вредоносного трафика и определенных ресурсов в сети - мы можем использовать прокси не только для обхода, но и для проведения блокировок. Об одном из таких способов с использованием роутера MikroTik, мы рассказывали статье. Ведение журнала сетевых подключений - прокси позволяет нам отслеживать все сетевые подключения, которые через него проходят. Мы можем включить логирование событий прокси и отправлять их на какое-нибудь LM-решение для последующего анализа. Прокси сервера бывают двух видов: Прямой (Forward) - прямой прокси - это такой промежуточный сервер, которых находится между клиентом и сервером назначения, которому обращается клиент. Чтобы получить контент с сервера назначения, клиент отправляет запрос прокси-серверу с указанием сервера назначения в качестве цели, а прокси запрашивает контент и возвращает его клиенту. Клиент должен быть специально настроен (например, можно указать прокси в браузере) для использования такого прокси для доступа к другим сайтам. Обратный (Reverse) - обратный прокси, напротив, выглядит для клиента, как обычный веб-сервер. Никаких специальных настроек на клиенте не требуется. Клиент делает обычные запросы на получение контента, которые отправляются в пространство имен обратного прокси. Затем прокси решает, куда отправить эти запросы, и возвращает контент так, как если бы он и был сервером назначения. Типичным примером использования обратного прокси-сервера является предоставление пользователям в Интернете доступа к серверу, который находится за межсетевым экраном. Обратные прокси-серверы также можно использовать для балансировки нагрузки между несколькими внутренними серверами или для обеспечения кэширования для более медленного внутреннего сервера. Кроме того, обратные прокси-серверы можно использовать просто для переноса нескольких серверов в одно и то же пространство URL. Использование прокси для усиления безопасности корпоративной инфраструктуры Многие компании имеют ресурсы, которые выставлены в публичную сеть и доступны каждому внешнему пользователю. Это может быть просто сайт компании или сервис, за счёт которого она зарабатывает деньги (например - интернет магазин). Самой большой угрозой для таких ресурсов является угроза взлома. Прокси сервер добавляет дополнительный, “буферный” уровень безопасности между защищаемым ресурсом и внешним трафиком. Таким образом, злоумышленники могут получить доступ к вашему прокси серверу, но не смогут подключиться к серверу, на котором действительно работает защищаемый ресурс, где хранятся ваши данные. Это может значительно уменьшить вероятность взлома ресурса. Контроль пользователей при использовании Интернета Ни одна компания не хочет, чтобы сотрудники получали доступ к незащищенным или неуместным веб-сайтам через корпоративную сеть. Поэтому при построении сетевой архитектуры, администраторы часто принимают решение воспользоваться возможностями прокси сервера. Когда доступ пользователей к Интернету осуществляется через прокси-сервер, сетевые администраторы легко могут контролировать, какие устройства будут иметь доступ и какие сайты эти устройства смогут посещать. С помощью прокси-сервера можно заблокировать нежелательный контент, а также любые сайты, нежелательные для посещения сотрудниками компании в рабочее время. Включив логирование на прокси, сетевые администраторы могут даже отслеживать, к какому контенту и когда обращаются сотрудники для внутренних целей. Многие сотрудники службы безопасности используют это для отслеживания потенциальных незаконных действий или нарушений политик безопасности. Балансировка нагрузки на корпоративные ресурсы Ничто так не раздражает клиента, чем веб-сайт компании, который тормозит и падает, в самый неподходящий момент. Если ресурс популярный, то нагрузка на него может быть колоссальной и сервер, обеспечивающий работу ресурса, может просто не справиться с потоком запросов от клиентов. Прокси серверы, облачные сервисы и технологии пиринга помогают исключить подобные ситуации. Особенно актуально это для ресурсов, данные и контент которых хранятся на множестве серверов, распределенных по всему миру. У пользователей из разных стран может быть разная скорость доступа к ресурсу. В таком случае, прокси сервер может использоваться для создания единого веб-ресурса, который будет служить единой точкой доступа. Прокси будет осуществлять балансировку запросы к каждому целевому серверу, чтобы ни один из них не перегружался. Все это работает в фоновом режиме, чтобы обеспечить бесперебойное обслуживание клиентов ресурсов. Прокси-серверы можно также легко использовать для увеличения скорости и экономии полосы пропускания в сети за счет сжатия трафика, кэширования файлов и веб-страниц, к которым обращаются несколько пользователей, и даже - удаления рекламы с веб-сайтов. Это освобождает полосу пропускания в загруженных сетях.
img
Выходим на новый уровень. Для изучения следующей темы вы уже должны хорошо понимать связующее дерево. Связующее дерево (Spanning Tree Protocol STP) — это важная тема. Есть много вещей, которые могут пойти не так, и в этой статье мы рассмотрим ряд инструментов, которые мы можем использовать для защиты нашей топологии связующего дерева. Для профессионалов PortFast: мы видели это в статье о spanning tree и rapid spanning tree. Он настроит порт доступа как пограничный порт, поэтому он переходит в режим forwarding немедленно. BPDU Guard: это отключит (err-disable) интерфейс, который имеет настроенный PortFast, если он получает BPDU. BPDUFilter: это будет подавлять BPDU на интерфейсах. Root Guard: это предотвратит превращение соседнего коммутатора в корневой мост, даже если он имеет лучший идентификатор моста. UplinkFast: мы видели это в статье о связующем дереве. Он улучшает время конвергенции. BackboneFast: мы также видели это в статье о связующем дереве. Оно улучшает время конвергенции, если у вас есть сбой косвенной связи. UplinkFast и BackboneFast не требуются для rapid spanning tree, поскольку оно уже реализовано по умолчанию. Мы начнем с BPDUguard: В топологии выше мы имеем идеально работающую топологию остовного дерева. По умолчанию связующее дерево будет отправлять и получать BPDU на всех интерфейсах. В нашем примере у нас есть компьютер, подключенный на интерфейсе fa0/2 коммутатора B. Есть кто-то, кто с враждебными намерениями мог бы запустить инструмент, который сгенерирует BPDU с превосходящим ID моста. Что же произойдет- так это то, что наши коммутаторы будут считать, что корневой мост теперь может быть достигнут через коммутатор B, и у нас будет повторный расчет связующего дерева. Звучит не очень хорошо, правда? Можно поставить человека (хакера) в середине топологии для атаки так, чтобы никто не знал. Представьте себе, что хакер подключает свой компьютер к двум коммутаторам. Если хакер станет корневым мостом, то весь трафик от коммутатора А или коммутатора C к коммутатору В будет проходить через него. Он запустит Wireshark и подождет, пока произойдет чудо. BPDUguard гарантирует, что, когда мы получаем BPDU на интерфейс, интерфейс перейдет в режим err-disable. Чтобы продемонстрировать работу BPDUguard будем использовать два коммутатора. Настроем интерфейс fa0/16 коммутатора B так, что он перейдет в режим err-disable, если он получит BPDU от коммутатора C. SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree bpduguard enable Вот как вы включаете его в интерфейсе. Имейте в виду, что обычно вы никогда не будете делать это между коммутаторами. Вы должны настроить это на интерфейсах в режиме доступа, которые подключаются к компьютерам. А-а... вот и наш интерфейс. SwitchB(config-if)#no spanning-tree bpduguard SwitchB(config-if)#shutdown SwitchB(config-if)#no shutdown Избавиться от BPDUguard можно используя команды shut/no shut, чтобы сделать интерфейс снова рабочим. SwitchB(config)#spanning-tree portfast bpduguard Вы также можете использовать команду spanning-tree portfast bpduguard. Это позволит глобально активировать BPDUguard на всех интерфейсах, которые имеют включенный portfast. SwitchB(config)#spanning-tree portfast default Portfast также может быть включен глобально для всех интерфейсов, работающих в режиме доступа. Это полезная команда, позволяющая проверить свою конфигурацию. Вы видите, что portfast и BPDUGuard были включены глобально. BPDUGuard переведет интерфейс в режим err-disable. Кроме того, можно фильтровать сообщения BPDU с помощью BPDUfilter. BPDUfilter может быть настроен глобально или на уровне интерфейса и есть разница: Глобальный: если вы включите bpdufilter глобально, любой интерфейс с включенным portfast станет стандартным портом. Интерфейс: если вы включите BPDUfilter на интерфейсе, он будет игнорировать входящие BPDU и не будет отправлять никаких BPDU. Вы должны быть осторожны, когда включаете BPDUfilter на интерфейсах. Вы можете использовать его на интерфейсах в режиме доступа, которые подключаются к компьютерам, но убедитесь, что вы никогда не настраиваете его на интерфейсах, подключенных к другим коммутаторам. Если вы это сделаете, вы можете получить цикл. Для демонстрации работы BPDUfilter мы будем снова использовать коммутатор B и коммутатор C. SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree portfast trunk SwitchB(config-if)#spanning-tree bpdufilter enable Он перестанет посылать BPDU и будет игнорировать все, что будет получено. SwitchB#debug spanning-tree bpdu Вы не увидите никаких интересных сообщений, но если вы включите отладку BPDU, то заметите, что он больше не отправляет никаких BPDU. Если вы хотите, вы также можете включить отладку BPDU на коммутаторе C, и вы увидите, что нет ничего от коммутатора B. SwitchB(config)#interface fa0/16 SwitchB(config-if)#no spanning-tree bpdufilter enable Давайте избавимся от команды BPDUfilter на уровне интерфейса. SwitchB(config)#spanning-tree portfast bpdufilter default Вы также можете использовать глобальную команду для BPDUfilter. Это позволит включить BPDUfilter на всех интерфейсах, которые имеют portfast. Еще один вариант, с помощью которого мы можем защитить наше связующее дерево, - это использовать RootGuard. Проще говоря, RootGuard позаботится о том, чтобы вы не принимали определенный коммутатор в качестве корневого моста. BPDU отправляются и обрабатываются нормально, но, если коммутатор внезапно отправляет BPDU с идентификатором верхнего моста, вы не будете принимать его в качестве корневого моста. Обычно коммутатор D становится корневым мостом, потому что у него есть лучший идентификатор моста, к счастью, у нас есть RootGuard на коммутатое C, так что этого не произойдет! Рассмотрим с вами конфигурацию с коммутатором B и коммутатором C. SwitchB(config)#spanning-tree vlan 1 priority 4096 Давайте убедимся, что коммутатор C не является корневым мостом. Вот как мы включаем RootGuard на интерфейсе. SwitchB#debug spanning-tree events Spanning Tree event debugging is on Не забудьте включить отладку, если вы хотите увидеть события. SwitchC(config)#spanning-tree vlan 1 priority 0 Давайте перенастроим коммутатор B, изменив приоритет на наименьшее возможное значение 0 на коммутаторе C. Он теперь должен стать корневым мостом. Вот так коммутатор B не будет принимать коммутатор C в качестве корневого моста. Это заблокирует интерфейс для этой VLAN. Вот еще одна полезная команда, чтобы проверить, работает ли RootGuard. Связующее дерево становится все более безопасным с каждой минутой! Однако есть еще одна вещь, о которой мы должны подумать… Если вы когда-либо использовали волоконные кабели, вы могли бы заметить, что существует другой разъем для передачи и приема трафика. Если один из кабелей (передающий или принимающий) выйдет из строя, мы получим однонаправленный сбой связи, и это может привести к петлям связующего дерева. Существует два протокола, которые могут решить эту проблему: LoopGuard UDLD Давайте начнем с того, что внимательно рассмотрим, что произойдет, если у нас произойдет сбой однонаправленной связи. Представьте себе, что между коммутаторами волоконно-оптические соединения. На самом деле имеется другой разъем для передачи и приема. Коммутатор C получает BPDU от коммутатора B, и в результате интерфейс стал альтернативным портом и находится в режиме блокировки. Теперь что-то идет не так... transmit коннектор на коммутаторе B к коммутатору C был съеден мышами. В результате коммутатор C не получает никаких BPDU от коммутатора B, но он все еще может отправлять трафик для переключения между ними. Поскольку коммутатор C больше не получает BPDU на свой альтернативный порт, он перейдет в forwarding режим. Теперь у нас есть one way loop (петля в один конец), как указано зеленой стрелкой. Один из методов, который мы можем использовать для решения нашего однонаправленного сбоя связи — это настройка LoopGuard. Когда коммутатор отправляет, но не получает BPDU на интерфейсе, LoopGuard поместит интерфейс в состояние несогласованности цикла и заблокирует весь трафик! Мы снова будем использовать эту топологию для демонстрации LoopGuard. SwitchA(config)#spanning-tree loopguard default SwitchB(config)#spanning-tree loopguard default SwitchC(config)#spanning-tree loopguard default Используйте команду spanning-tree loopguard по умолчанию, чтобы включить LoopGuard глобально SwitchB(config)#interface fa0/16 SwitchB(config-if)#spanning-tree portfast trunk SwitchB(config-if)#spanning-tree bpdufilter enable В примере у нас нет никаких волоконных разъемов, поэтому мы не сможем создать однонаправленный сбой связи. Однако мы можем смоделировать его с помощью BPDUfilter на интерфейсе SwitchB fa0/16. Коммутатор C больше не будет получать никаких BPDU на свой альтернативный порт, что заставит его перейти в режим переадресации. Обычно это вызвало бы петлю, но, к счастью, у нас есть настроенный LoopGuard. Вы можете увидеть это сообщение об ошибке, появляющееся в вашей консоли. Проблема решена! SwitchC(config-if)#spanning-tree guard loop Если вы не хотите настраивать LoopGuard глобально, вы т можете сделать это на уровне интерфейса. Другой протокол, который мы можем использовать для борьбы с однонаправленными сбоями связи, называется UDLD (UniDirectional Link Detection). Этот протокол не является частью инструментария связующего дерева, но он помогает нам предотвратить циклы. Проще говоря, UDLD — это протокол второго уровня, который работает как механизм keepalive. Вы посылаете приветственные сообщения, вы их получаете, и все прекрасно. Как только вы все еще посылаете приветственные сообщения, но больше их не получаете, вы понимаете, что что-то не так, и мы блокируем интерфейс. Убедитесь, что вы отключили LoopGuard перед работой с UDLD. Мы будем использовать ту же топологию для демонстрации UDLD. Существует несколько способов настройки UDLD. Вы можете сделать это глобально с помощью команды udld, но это активирует только UDLD для оптоволоконных линий связи! Существует два варианта для UDLD: Normal (default) Aggressive Когда вы устанавливаете UDLD в нормальное состояние, он помечает порт как неопределенный, но не закрывает интерфейс, когда что-то не так. Это используется только для того, чтобы «информировать» вас, но это не предотвратит циклы. Агрессивный - это лучшее решение, когда пропадает связь с соседом. Он будет посылать кадр UDLD 8 раз в секунду. Если сосед не отвечает, интерфейс будет переведен в режим errdisable. SwitchB(config)#interface fa0/16 SwitchB(config-if)#udld port aggressive SwitchC(config)#interface fa0/16 SwitchC(config-if)#udld port aggressive Мы будем использовать коммутатор B и C, чтобы продемонстрировать UDLD. Будем использовать агрессивный режим, чтобы мы могли видеть, что интерфейс отключается, когда что-то не так. Если вы хотите увидеть, что UDLD работает, вы можете попробовать выполнить отладку. Теперь самое сложное будет имитировать однонаправленный сбой связи. LoopGuard был проще, потому что он был основан на BPDUs. UDLD запускает свой собственный протокол уровня 2, используя собственный MAC-адрес 0100.0ccc.сссс. SwitchC(config)#mac access-list extended UDLD-FILTER SwitchC(config-ext-macl)#deny any host 0100.0ccc.cccc SwitchC(config-ext-macl)#permit any any SwitchC(config-ext-macl)#exit SwitchC(config)#interface fa0/16 SwitchC(config-if)#mac access-group UDLD-FILTER in Это творческий способ создавать проблемы. При фильтрации MAC-адреса UDLD он будет думать, что существует сбой однонаправленной связи! Вы увидите много отладочной информации, но конечным результатом будет то, что порт теперь находится в состоянии err-disable. Вы можете проверить это с помощью команды show udld. LoopGuard и UDLD решают одну и ту же проблему: однонаправленные сбои связи. Они частично пересекаются, но есть ряд различий, вот общий обзор: LoopGuardUDLDНастройкиГлобально/на портуГлобально (для оптики)/на портуVLAN?ДаНет, на портуАвтосохранениеДаДа, но вам нужно настроить errdisable timeout.Защита от сбоев STP из-за однонаправленных связейДа - нужно включить его на всех корневых и альтернативных портахДа - нужно включить его на всех интерфейсах.Защита от сбоев STP из-за сбоев программного обеспечения (нет отправки BPDU)ДаНетЗащита от неправильного подключения (коммутационный оптический приемопередающий разъем)НетДа Есть еще одна последняя тема, которую хотелось бы объяснить, это не протокол связующего дерева, но речь идет о избыточных ссылках, поэтому я оставлю ее здесь. Это называется FlexLinks. Вот в чем дело: при настройке FlexLinks у вас будет активный и резервный интерфейс. Мы настроим это на коммутаторе C: Fa0/14 будет активным интерфейсом. Fa0/16 будет интерфейс резервного копирования (этот блокируется!). При настройке интерфейсов в качестве FlexLinks они не будут отправлять BPDU. Нет никакого способа обнаружить петли, потому что мы не запускаем на них связующее дерево. Всякий раз, когда наш активный интерфейс выходит из строя, резервный интерфейс заменяет его. SwitchC(config)#interface fa0/14 SwitchC(config-if)#switchport backup interface fa0/16 Именно так мы делаем интерфейс fa0/16 резервной копией интерфейса fa0/14. Вы можете видеть, что связующее дерево отключается для этих интерфейсов. Проверьте нашу конфигурацию с помощью команды show interfaces switchport backup. Вот и все, что нужно было сделать. Это интересное решение, потому что нам больше не нужно связующее дерево. Ведь в любой момент времени активен только один интерфейс. SwitchC(config)#interface f0/14 SwitchC(config-if)#shutdown Давайте закроем активный интерфейс. Вы можете видеть, что fa0/16 стал активным. Вот и все.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59