По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
До сих пор в этой серии статей примеры перераспределения маршрутов, над которыми мы работали, использовали один роутер, выполняющий перераспределение между нашими автономными системами. Однако с точки зрения проекта, глядя на этот роутер понимаем, что это единственная уязвимая точка, то есть точка отказа. Для избыточности давайте подумаем о добавлении второго роутера для перераспределения между несколькими автономными системами. То, что мы, вероятно, не хотим, чтобы маршрут объявлялся, скажем, из AS1 в AS2, а затем AS2 объявлял тот же самый маршрут обратно в AS1, как показано на рисунке. Хорошая новость заключается в том, что с настройками по умолчанию, скорее всего не будет проблем. Например, на приведенном выше рисунке роутер CTR2 узнал бы два способа добраться до Сети A. Один из способов — это через OSPF, к которому он подключен. Другой путь был бы через EIGRP AS, через роутер CTR1 и обратно в OSPF AS. Обычно, когда роутер знает, как добраться до сети через два протокола маршрутизации, он сравнивает значения административного расстояния (AD) протоколов маршрутизации и доверяет протоколу маршрутизации с более низким AD. В этом примере, хотя EIGRP AD обычно составляет 90, что более правдоподобно, чем OSPF AD 110, AD EIGRP External route (т. е. маршрута, который возник в другом AS) составляет 170. В результате OSPF-изученный маршрут CTR2 к сети A имеет более низкую AD (т. е. 110), чем AD (т. е. 170) EIGRP-изученного маршрута к сети A. Что в итоге? CTR2 отправляет трафик в Сеть A, отправляя этот трафик в OSPF AS, без необходимости передавать EIGRP AS. Время от времени, однако, нам потребуется произвести настройки некоторых не дефолтных параметров AD, или же нам понадобятся creative metrics, применяемые к перераспределенным маршрутам. В таких случаях мы подвергаемся риску развития событий, описанных на предыдущем рисунке. Давайте обсудим, как бороться с такой проблемой. Рассмотрим следующую топологию. В этой топологии у нас есть две автономные системы, одна из которых работает под управлением OSPF, а другая- под управлением EIGRP. Роутеры CTR1 и CTR2 в настоящее время настроены для выполнения взаимного перераспределения маршрутов между OSPF и EIGRP. Давайте взглянем на таблицы IP-маршрутизации этих магистральных роутеров. Обратите внимание, в приведенном выше примере, что с точки зрения роутера CTR2, лучший способ добраться до Сети 192.0.2.0 / 30 — это next-hop на следующий IP-адрес 192.0.2.5 (который является роутером OFF1). Это означает, что если бы роутер CTR2 хотел отправить трафик в сеть 192.0.2.0 /30, то этот трафик остался бы в пределах OSPF AS. Интересно, что процесс маршрутизации EIGRP, запущенный на роутере CTR2, также знает, как добраться до Сети 192.0.2.0 / 30 из-за того, что роутер CTR1 перераспределяет этот маршрут в Интересно, что процесс маршрутизации EIGRP, запущенный на роутере CTR2, также знает, как добраться до Сети 192.0.2.0 / 30 из-за того, что роутер CTR1 перераспределяет этот маршрут в EIGRP AS, но этот маршрут считается EIGRP External route. Поскольку EIGRP External route AD 170 больше, чем OSPF AD 110, в OSPF маршрут прописывается в таблице IP-маршрутизации роутера CTR2. Именно так обычно работает Route redistribution, когда у нас есть несколько роутеров, выполняющих перераспределение маршрутов между двумя автономными системами. Однако, что мы можем сделать, если что-то идет не так, как ожидалось (или как мы хотели)? Как мы можем предотвратить перераспределение маршрута, перераспределенного в AS, из этого AS и обратно в исходное AS, например, в примере, показанном на следующем рисунке. В приведенном выше примере роутер OFF1 объявляет сеть 192.168.1.0 / 24 роутеру CTR1, который перераспределяет этот маршрут из AS1 в AS2. Роутер OFF2 получает объявление маршрута от роутера CTR1 и отправляет объявление для этого маршрута вниз к роутеру CTR2. Роутер CTR2 затем берет этот недавно изученный маршрут и перераспределяет его от AS2 к AS1, откуда он пришел. Мы, скорее всего, не хотим, чтобы это произошло, потому что это создает неоптимальный маршрут. Общий подход к решению такой проблемы заключается в использовании route map в сочетании с tag (тегом). В частности, когда маршрут перераспределяется из одного AS в другой, мы можем установить тег на этом маршруте. Затем мы можем настроить все роутеры, выполняющие перераспределение, чтобы блокировать маршрут с этим тегом от перераспределения обратно в его исходный AS, как показано на следующем рисунке. Обратите внимание, что в приведенной выше топологии, когда маршрут перераспределяется от AS1 к AS2, он получает тег 10. Кроме того, роутер CTR2 имеет инструкцию (настроенную в карте маршрутов), чтобы не перераспределять любые маршруты из AS2 в AS1, которые имеют тег 10. В результате маршрут, первоначально объявленный роутером OFF1 в AS1, никогда не перераспределяется обратно в AS1, тем самым потенциально избегая неоптимального маршрута. Далее давайте еще раз рассмотрим, как мы можем настроить этот подход к тегированию, используя следующую топологию. В частности, на роутерах CTR1 и CTR2 давайте установим тег 10 на любом маршруте, перераспределяемом из OSPF в EIGRP. Затем, на тех же самых роутерах, мы предотвратим любой маршрут с тегом 10 от перераспределения из EIGRP обратно в OSPF. Для начала на роутере CTR1 мы создаем карту маршрутов, целью которой является присвоение тегу значения 10. CTR1 # conf term CTR1 (config) # route-map TAG10 CTR1 (config-route-map) # set tag 10 CTR1 (config-route-map) #exit CTR1 (config) # Обратите внимание, что мы не указали permit как часть инструкции route-map, и мы не указали порядковый номер. Причина в том, что permit — это действие по умолчанию, и карта маршрута TAG10 имела только одну запись. Далее мы перейдем к роутеру CTR2 и создадим карту маршрутов, которая предотвратит перераспределение любых маршрутов с тегом 10 в OSPF. Кроме того, мы хотим, чтобы роутер CTR2 маркировал маршруты, которые он перераспределяет из OSPF в EIGRP со значением тега 10. Это означает, что мы хотим, чтобы роутер CTR1 предотвратил перераспределение этих маршрутов (со значением тега 10) обратно в OSPF. Итак, пока мы находимся здесь на роутере CTR1, давайте настроим route-map, которая предотвратит Route redistribution со значением тега 10 в OSPF. CTR1 (config) # route-map DENYTAG10 deny 10 CTR1 (config-route-map) # match tag 10 CTR1 (config-route-map) # exit CTR1 (config) # route-map DENYTAG10 permit 20 CTR1 (config-route-map) # end CTR1 # Эта недавно созданная route-map (DENYTAG10) использует ключевые слова permit и deny, и у нее есть порядковые номера. Порядковый номер 10 используется для запрещения маршрутов с тегом 10. Затем имеем следующий порядковый номер (который мы пронумеровали 20), чтобы разрешить перераспределение всех других маршрутов. Теперь, когда мы создали наши две карты маршрутов, давайте применим TAG10 route map к команде EIGRP redistribute (к тегу routes, перераспределяемому в EIGRP со значением 10). Кроме того, мы хотим применить DENYTAG10 route map к команде OSPF redistribute (чтобы предотвратить перераспределение маршрутов, помеченных значением 10, обратно в OSPF AS). CTR1 # conf term CTR1 (config) # router eigrp 100 CTR1 (config-router) # redistribute ospf 1 route-map TAG10 CTR1 (config-router) # router ospf 1 CTR1 (config-router) # redistribute eigrp 100 subnets route-map DENYTAG10 CTR1 (config-router) # end CTR1 # Теперь нам нужно ввести зеркальную конфигурацию на роутере CTR2. CTR2#conf term CTR2(config)#route-map TAG10 CTR2(config-route-map) # set tag 10 CTR2(config-route-map) # exit CTR2(config)#route-map DENYTAG10 deny 10 CTR2(config-route-map) # match tag 10 CTR2(config-route-map) # exit CTR2(config) # route-map DENYTAG10 permit 20 CTR2(config-route-map) # exit CTR2(config) # router eigrp 100 CTR2(config-router) # redistribute ospf 1 route-map TAG10 CTR2(config-router) # router ospf 1 CTR2(config-router) # redistribute eigrp 100 subnets route-map DENYTAG10 CTR2(config-router) # end CTR2# Просто чтобы убедиться, что наши маршруты помечены, давайте проверим таблицу топологии EIGRP роутера OFF2. Обратите внимание, что все маршруты, перераспределенные в EIGRP из OSPF, теперь имеют тег 10, и мы сказали роутерам CTR1 и CTR2 не перераспределять эти маршруты обратно в OSPF. Именно так мы можем решить некоторые потенциальные проблемы, возникающие при перераспределении маршрутов. Дело за малым - прочитайте нашу статью про route redistribution с помощью IPv6.
img
Консольные файловые менеджеры Linux могут быть очень полезны в повседневных задачах, при управлении файлами на локальном компьютере или при подключении к удаленному. Визуальное представление каталога помогает быстро выполнять операции с файлами и папками и экономит нам время. В этой статье мы рассмотрим некоторые из наиболее часто используемых файловых менеджеров консоли Linux, их функции и преимущества. GNU Midnight Commander Midnight Command, которую часто называют просто MC, и является одним из лучших файловых менеджеров, обсуждаемых в этой статье. MC поставляется со всеми видами полезных функций, кроме копирования, перемещения, удаления, создания файлов и каталогов, вы можете изменять права доступа и владельца, просматривать архивы, использовать его в качестве FTP-клиента и многое другое. Для установки Midnight Commander вы можете использовать следующие команды: sudo apt install mc #[Debian/Ubuntu] sudo yum install mc #[CentOS/RHEL] sudo dnf install mc #[Fedora] Ranger Console File Manager Ranger является еще одним лучшим выбором, если вы ищете консольный файловый менеджер. Он имеет vim-подобный интерфейс, предварительный просмотр выбранного файла или каталога, поддержку мыши в закладках и вид со вкладками. Для установки рейнджера используйте следующие команды: sudo apt install ranger #[Debian/Ubuntu] sudo yum install ranger #[CentOS/RHEL] sudo dnf install ranger #[Fedora] Cfiles Fast Terminal File Manager Cfiles - это быстрый файловый менеджер терминала, написанный на C и использующий библиотеку ncurses, похожий на Ranger, и он также использует сочетания клавиш vi. Он имеет несколько зависимостей, таких как cp, mv, fzf, xdg-open и другие. Несмотря на то, что он легкий, его установка требует еще нескольких шагов. Чтобы установить cfiles, сначала вам нужно установить инструменты разработки, используя следующие команды: sudo apt-get install build-essential #[Debian/Ubuntu] sudo yum groupinstall 'Development Tools' #[CentOS/RHEL 7/6] Затем клонируйте репозиторий cfiles и установите его, используя следующие команды: git clone https://github.com/mananapr/cfiles.git cd cfiles gcc cf.c -lncurses -o cf sudo cp cf /usr/bin/ #Или скопируйте куда-нибудь себе в $PATH Vifm Console File Manager Vifm - еще один файловый менеджер на основе командной строки, использующий интерфейс curses. Он копирует некоторые особенности из mutter. Если вы являетесь пользователем vim, вам не нужно изучать новый набор команд для работы с vifm. Он использует одинаковые сочетания клавиш, а также имеет возможность редактировать несколько видов файлов. Как и другие консольные файловые менеджеры, он имеет две панели, поддерживает автозаполнение. Он также поддерживает различные виды для сравнения файловых деревьев. Также с ним вы также можете выполнять удаленные команды. Чтобы установить Vifm используйте следующие команды: sudo apt install vifm #[Debian/Ubuntu] sudo yum install vifm #[CentOS/RHEL] sudo dnf install vifm #[Fedora] Nnn Terminal File Browser Nnn - самый быстрый консольный файловый менеджер в нашем списке. Хотя он имеет меньше возможностей по сравнению с другими файловыми менеджерами, он чрезвычайно легок и наиболее близок к настольному файловому менеджеру по тому, что вы можете получить на консоли. Простое взаимодействие позволяет новым пользователям легко привыкнуть к терминалу. Чтобы установить nnn, вы можете использовать следующие команды: sudo apt install nnn #[Debian/Ubuntu] sudo yum install nnn #[CentOS/RHEL] sudo dnf install nnn #[Fedora] Lfm Last File Manager Lfm или Last File Manager - консольный файловый менеджер на основе curses, написанный на Python 3.4. Может использоваться с одной или двумя панелями. В нем есть несколько полезных функций, таких как фильтры, закладки, история, VFS для сжатых файлов, древовидная структура и прямая интеграция с командой поиска, утилитой grep, командой df и другими инструментами. Также доступны кастомные темы. Установить Lfm можно при помощи следующих комманд: sudo apt install lfm #[Debian/Ubuntu] sudo yum install lfm #[CentOS/RHEL] sudo dnf install lfm #[Fedora] sudo pacman -S lfm #[Arch Linux] Вы также можете установить Lfm используя pip sudo pip install lfm lf – List Files Lf – "List files" - файловый менеджер командной строки, написанный на Go, вдохновленный Ranger. Первоначально он был предназначен, чтобы заполнить пробелы недостающих функций, которые были у Ranger. Некоторые из основных особенностей lf: Это кроссплатформенность - Linux, OSX, Windows (только частично); Один двоичный файл без каких-либо зависимостей во время выполнения; Низкий объем памяти; Конфигурация с помощью команд оболочки; Настраиваемые сочетания клавиш. Чтобы установить lf, просто загрузите сборку, связанную с бинарными файлами для вашей ОС, со страницы релизов lf. WCM Commander Последней в нашем списке является WCM Commander, которая является еще одним кроссплатформенным консольным файловым менеджером. Авторы WCM Commander намеревались создать кроссплатформенный файловый менеджер, который имитирует функции Far Manager. Он имеет встроенный терминал, встроенный текстовый редактор и средство просмотра, подсветку синтаксиса, виртуальную файловую систему и очень быстрый пользовательский интерфейс. Поддержка мыши также включена. Пакет для каждой ОС можно найти на странице загрузки WCM. Заключение Это была наша короткая презентация о некоторых ведущих файловых менеджерах консоли Linux. Если вы думаете, что мы пропустили одну или понравились некоторые из них больше, пожалуйста, поделитесь своими мыслями в комментариях.
img
Протокол Spanning Tree (STP) обеспечивает отсутствие петель в топологии любой сети. Помимо предотвращения петель, STP изолирует угрозу от широковещательного шторма в сетях на втором уровне модели OSI (L2). Разберемся в терминах: Какие бывают порты? Можно смело выделить 3 вида портов в рамках протокола Spanning Tree. А именно: Корневой порт (root port) Выделенный порт (designated port) Блокированный (альтернативный порт) Статусы портов Порт коммутатора может находиться в различных статусах, в зависимости от результата сходимости Spanning Tree: Блокирован - как видно из названия, данный порт находится в статусе блокировки. Это означает, что порт не участвует в приеме и пересылке фреймов. Все BPDU сообщения от соседних коммутаторов исключаются. BPDU (Bridge Protocol Data Unit) это фреймы, необходимые для обмена сообщениями между коммутаторами для выбора корневого (root) устройства в рамках механизма протокола STP (Spanning Tree Protocol). Слушает – коммутатор все еще не участвует в процессе передачи фреймов с данными, но получает и отправляет сообщения BPDU. Учится – в данном состоянии порт начинает фиксировать MAC – адреса устройств. Пересылка – в состоянии пересылки, коммутатор может отправлять и принимать фреймы BPDU параллельно с заполнением таблицы MAC - адресов. Выключен – порт выключен администратором. Этапы протокола STP Выбор «корневого» (root) коммутатора. Выбор «корневого» (root) порта. Назначение «выделенного» (designated) порта. Блокировка остальных портов в рамках алгоритма STP. Выбор корневого коммутатора Коммутатор с наименьшим идентификатором (ID) выбирается как корневое устройство. Идентификатор коммутатора (switch ID) состоит из следующих компонентов: . Номер приоритета . MAC – адрес коммутатора Например: 24577.00:00:00:00:00:01 / Приоритет. MAC – адрес В процессе выбора корневого коммутатора, первым делом сравнивается приоритет. Если у двух коммутаторов одинаковых приоритет, то выбор базируется на MAC – адресе устройства. Выбор корневого порта Корневой порт выбирается на основании наименьшей «стоимости» пути к корневому коммутатору. Стоимость пути выражается из стоимости линков, ведущих к корневому коммутатору. Важно отметить: Корневые порты назначаются только на не корневых коммутаторах. Один не корневой коммутатор может иметь только один корневой порт. Выбор назначенного порта Порт коммутатора, который имеет кратчайший путь к корневому коммутатору - называется «назначенным». Каждый сегмент (путь) имеет свой назначенный порт. Назначенные порты определяются на всех коммутаторах (корневых и нет). Если два порта имеют одинаковую стоимость, сначала учитывается идентификатор устройства (Bridge ID), а затем идентификатор порта (Port ID). Все остальные порты переходят в альтернативный статус и блокируются. Пример До запуска алгоритма Spanning Tree: Выбор портов Финальная топология
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59