По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье мы рассмотрим настройку BGP-оповещения для Network Layer Reachability Information (NLRI), а также конфигурацию политики маршрутизации BGP. Предыдущие статьи цикла про BGP: Основы протокола BGP Построение маршрута протоколом BGP Формирование соседства в BGP Видео: Основы BGP за 7 минут Оповещения NLRI Прежде чем мы начнем настраивать оповещения NLRI, используя различные команды, давайте сначала обсудим старую функцию BGP, которую Cisco отключает по умолчанию. Эта функция называется синхронизацией BGP. Для проверки того, что Cisco отключила эту функцию на вашем устройстве, выполните команду show running-configuration на одном из устройств BGP, и в выводимой информации, под пунктом «процессы» BGP, вы увидите сообщение no synchronization. Если эта функция включена, функция синхронизации не позволяет спикеру BGP вводить префиксы в BGP, если нет коррелированной записи для префикса в базовом IGP (или статических маршрутах). Это помогает предотвратить ситуации типа "черная дыра" (black hole), когда устройства на маршруте не работают с BGP и не могут переадресовать префикс BGP, потому что у них нет маршрута к этому префиксу из их IGP. Эта функция отключена по умолчанию из-за создания множества различных механизмов масштабируемости, существующих в BGP, которые позволяют настроить топологию iBGP без требования полной сетки одноранговых узлов iBGP. Еще одна причина, по которой он отключен, заключается в том, что он поощряет перераспределение префиксов BGP в базовый IGP, и это не безопасно. Существует причина, по которой Cisco уходит от использования команды network для настройки IGPs в CLI. Не очень хорошая идея в программировании, чтобы одна команда выполняла очень разные вещи, и когда она используется в разных областях. Это относится и к команде network. При использовании в IGP команда включает протокол на интерфейсе (а также влияете на то, какие префиксы объявляются), но в BGP у команды network другое назначение. Она не включает BGP на определенных интерфейсах, вместо этого она объявляет префикс, который существует (каким-то образом) на локальном устройстве, и вводит его в BGP. Хотя префикс, который вы могли бы объявить в BGP, чаще всего встречается в вашем IGPs в таблице маршрутизации. Вы можете использовать другие методы для создания префикса для оповещения. Например, вы можете создать интерфейс обратной связи, который обладает префиксом сети, который вы хотите объявить. Или вы можете создать статический маршрут или даже статический маршрут, указывающий на Null0. Одна маленькая хитрость, связанная с командой network в BGP, заключается в том, что, если ваша маска подсети для вашего префикса не находится на классовой границе IP- адреса (например, 10.0.0.0/8), то вам нужно не забыть использовать ключевое слово mask и указать правильную маску при использовании команды. Пример 1 показывает создание двух петлевых интерфейсов и объявление их префиксов в BGP. Обратите внимание, что этот пример также показывает проверку этих префиксных объявлений на маршрутизаторе ATL. Пример 1: Использование команды Network в BGP TPA1#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)#interface loopback 192 TPA1(config-if)#ip address 192.168.1.1 255.255.255.0 TPA1(config-if)#exit TPA1(config)#interface loopback 172 TPA1(config-if)#ip address 172.16.10.1 255.255.255.0 TPA1(config-if)#exit TPA1(config)router bgp 100 TPA1(config-router)#network 192.168.1.0 TPA1(config-router)#network 172.16.10.0 mask 255.255.255.0 TPA1(config-router)#end TPA1# ATL# ATL#show ip bgp Хотя команда network проста и удобна, она не была бы эффективной, если бы у вас было много префиксов для оповещения. Другой вариант- перераспределить префиксы в BGP из IGP или статических маршрутов. Пример 2 демонстрирует перераспределение префиксов, которые были получены через EIGRP, в BGP. Обратите внимание при проверке, что исходный код для этих префиксов отображается как (?) указывает на неизвестность. Пример 2: перераспределение префиксов в BGP TPA1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)router bgp 100 TPA1(config-router)#redistribute eigrp 100 TPA1(config-router)#end TPA1# ATL#show ip bgp Когда вы начинаете объявлять (оповещать) NLRI в BGP, вы можете столкнуться с префиксами в вашей таблице BGP (показанной с show ip bgp), которые имеют код состояния (r) вместо ожидаемого допустимого кода состояния (*). Код состояния (r) указывает на сбой RIB, означающий, что BGP попытался поместить префикс в таблицу BGP, но не смог из- за какой-то проблемы. Наиболее распространенной причиной отказа RIB является административное расстояние (AD). Например, IBGP узнал префиксы несущие ужасные объявления AD из 200. Это означает, что если ваш маршрутизатор получил префикс через IGP (даже такой плохой, как RIP с AD 120), то он будет предпочтительнее префикса IBGP. В результате протокол BGP получивший это объявление AD, не отметит префикс как действующий. Обратите внимание, что это, как правило, не происходит с префиксами EBGP-learned, поскольку они имеют очень предпочтительное объявление 20 (по умолчанию). Очень часто, если желательно иметь префикс в IGP и BGP, администраторы будут манипулировать значениями AD на своих маршрутизаторах, чтобы улучшить AD IBGP. Например, в случае RIP и BGP администратор мог бы установить AD изученных маршрутов IBGP на 119, чтобы сделать их предпочтительными по сравнению с используемым IGP. В дополнение к выявлению сбоев RIB в результатах команды show ip bgp, вы можете использовать более прямую команду show ip bgp rib-failure, чтобы увидеть любые префиксы в этом состоянии. Это особенно полезно в случае массивных таблиц BGP. Настройка политики маршрутизации BGP Довольно часто встречаются топологии, в которых вы явно не хотите объявлять префиксы в своей таблице BGP, или вы не хотите получать определенные префиксы от узла BGP. К счастью, в вашем распоряжении есть много инструментов для этого. Например, вот только некоторые методы, которые вы могли бы использовать для фильтрации префиксов: Distribute lists Extended ACLs Prefix lists AS Path filters Route maps Пример 3 демонстрирует один из методов фильтрации. Выбран подход route map, потому что все (и это правильно) любят карты маршрутов. Пример 3: Использование route map в качестве префиксного фильтра в BGP ATL# configure terminal Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#ip access-list standard MYPREFIX ATL(config-std-nacl)#permit 192.168.1.0 0.0.0.255 ATL(config-std-nacl)#exit ATL(config)#route-map MYMAP deny 10 ATL(config-route-map)#match ip address MYPREFIX ATL(config-route-map)#exit ATL(config)#route-map MYMAP permit 20 ATL(config-route-map)#exit ATL(config)#router bqp 200 ATL(config-router)#neighbor 10.10.10.1 route-map MYMAP in ATL(config-router)#end ATL# ATL# clear ip bqp * soft ATL# show ip bqp Обратите внимание, перед проверкой я запускаю команду clear ip bgp * soft. Это гарантирует, что устройство сразу же обновит информацию BGP для меня, так что мне не придется ждать истечения таймера, когда дело дойдет до конвергенции BGP на новых манипуляциях с политикой, которые мы сделали. Помните, что BGP использует множество различных атрибутов пути вместо простой метрики, чтобы предоставить вам возможность легко настроить способ, по которому происходит маршрутизация. Ниже приведены некоторые из атрибутов пути, которыми вы могли бы манипулировать, чтобы настроить политику: Weight MED Local Preference AS Path Можно спросить себя, как AS Path могут быть использованы в целях маршрутизации. Поскольку манипуляция AS Path часто выполняется с помощью AS Path Prepending. Вы отравляете префикс, добавляя свой собственный номер AS к пути, чтобы сделать более длинным (менее предпочтительным) AS Path. Как и большинство наших манипуляций с атрибутом пути, это легко сделать с помощью карты маршрута. Давайте рассмотрим пример использования Local Preference для манипулирования политикой. Мы часто используем Local Preference, чтобы повлиять на то, как мы будем направлять исходящий трафик к префиксу BGP. Мы делаем это, устанавливая значения Local Preference, входящие по нескольким путям. Прежде чем мы начнем, поймите, что Local Preference - это значение, которое рассматривается довольно высоко в процессе принятия решения о наилучшем пути BGP, более высокое значение предпочтительно, и значения передаются только в обновлениях IBGP. Именно так имя LOCAL вошло в название Local Preference. Для начала я объявил тот же префикс в AS 200 (ATL и ATL2) от маршрутизаторов TPA1 и TPA2 AS 100. Глядя на пример 4, Вы можете видеть, что этот префикс (192.168.1.0) может быть достигнут с помощью следующего прыжка 10.10.10.1 и что это предпочтительный путь. Альтернативный путь, который будет использоваться в случае неудачи этого пути, будет проходить через следующий переход 10.21.21.1. Пример 4: Подготовка к использованию Local Preference ATL# show ip bqp Теперь пришло время поэкспериментировать и изменить данное поведение с помощью примера манипуляции атрибутом пути. Мой подход будет состоять в том, чтобы определить префикс, которым мы хотим манипулировать (192.168.1.0), и поднять значение локального предпочтения, чтобы оно было больше, чем значение по умолчанию 100 для пути к TPA2 на следующем прыжке 10.21.21.1. Я делаю это, манипулируя префиксом, когда он входит через путь 10.21.21.1 . Пример 5 показывает эту конфигурацию. ATL# configure terminal Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#ip access-list standard OURPREFIX ATL(config-std-nacl)#permit 192.168.1.0 0.0.0.255 ATL(config-std-nacl)#exit ATL(config)#route-map SETLOCALPREF permit 10 ATL(config-route-map)#match ip address OURPREFIX ATL(config-route-map)#set local-preference 110 ATL(config-route-map)#exit ATL(config)#route-map SETLOCALPREF permit 20 ATL(config-route-map)#exit ATL(config)#router bqp 200 ATL(config-router)#neighbor 10.21.21.1 route-map SETLOCALPREF in ATL(config-router)#end ATL# ATL# clear ip bqp * soft ATL# show ip bqp Обратите внимание, что предпочтительный путь теперь проходит через следующий переход 10.21.21.1, как мы и хотели. Для этого префикса также отображается значение Local Preference - 110. Это более высокое значение является предпочтительным и изменяет выбор, сделанный процессом выбора наилучшего пути BGP.
img
Конфигурация вашей сети Cisco хранится в двух основных местах: одно находится в ОЗУ, а другое - в текущей конфигурации (running configuration). Когда вы вводите команды, они активируются немедленно и сохраняются в текущей конфигурации, которая хранится в ОЗУ. Поэтому при выключении питания конфигурация теряется. Чтобы сохранить эту конфигурацию, скопируйте ее в загрузочную конфигурацию (startup-configuration), что означает, что она хранится в энергонезависимой ОЗУ (NVRAM), чтобы конфигурация сохранялась при выключении питания. Вы можете использовать две команды для сохранения вашей конфигурации: команду записи или команду копирования. Команда записи устарела, но будет выглядеть так: Router#write memory Building configuration... [OK] Более новая версия команды - это команда копирования, которая выглядит как: Router#copy running-config startup-config Destination filename [startup-config]? Building configuration... [OK] Команда копирования предлагает больше гибкости и возможностей. Вы можете не только скопировать данные текущей конфигурации в файл начальной конфигурации, но и скопировать их в файл на флэш-памяти или на TFTP-сервер в вашей сети. Для любой команды вам нужно набрать столько букв, сколько требуется IOS для однозначной идентификации команды. Например: copy run sta
img
Языки сценариев пользуются большей популярностью для автоматизации определенных задач. Кроме того, языки сценариев являются менее ресурсоемкими по сравнению с традиционными языками программирования. Они не требуют этапа компиляции и вместо этого интерпретируются. Например, программа Java должна быть скомпилирована перед запуском, тогда как приложение, написанное на языке сценариев, таких как Python, JavaScript или PHP, не требует компиляции. В Java-программировании сначала создаются файлы классов, а затем отображаются выходные данные. Напротив, в Python все коды выполняются во время запуска скрипта, поэтому языки программирования компилируются, тогда как языки сценариев интерпретируются. Языки сценариев относятся к определенному типу, который используется для предоставления инструкций через код веб-браузерам или автономным приложениям. Они делают кодирование более простым и быстрым, поэтому они широко используются в веб-разработке. Языки сценариев также используются в операционных системах для создания и автоматизации файлов запуска, игр, программного обеспечения статистического анализа, офисных приложений и многих других. Они могут эффективно работать в нескольких средах. Вот список наиболее популярных языков сценариев, с которых можно начать знакомиться с миром программирования. 1. JavaScript JavaScript - наиболее популярный язык сценариев, используемый разработчиками. Он следует спецификации ECMAScript, которая отвечает за определение стандартов. Этот язык разработан компанией Sun Microsystems и увидел свет в 1995 году. Крупные организации, такие как PayPal, Walmart и Netflix, созданы на основе JavaScript. Такие технологические гиганты, как Facebook и Google, вложили большие средства в этот язык. JavaScript широко используется для создания веб- или мобильных приложений, инструментов командной строки, сетевых приложений реального времени, таких как службы потоковой передачи видео, игры и т.д. Можно сказать, JavaScript является базовой технологией для создания современных веб-сайтов с уникальными функциями. Ранее JavaScript использовался только для работы в браузере, но теперь существуют фреймворки на основе JavaScript, такие как Node, которые позволяют использовать JavaScript в бэкэнде. Есть несколько популярных JavaScript фреймворков для фронтэнда, вроде Angular и React. Преимущества JavaScript: Простота в изучении и внедрении Много возможностей для работы в качестве фронтэнда, бэкэнда или фулстек разработчика. Одно из самых активных сообществ разработчиков Обеспечивает отличную интерактивность веб-сайтов Легко справляется с высокой нагрузкой и пропускной способностью сервера Возможность эффективной работы с другими языками программирования для создания разнообразных приложений 2. Python Python - второй по популярности скриптовый язык в настоящее время. Python создал Гвидо ван Россум, и первый релиз вышел в 1991 году. Код на Python прост в чтении, он похож на английский. Чтобы начат работу с Python достаточно создать файл с расширением .py, написать сам скрипты и, наконец, запустить этот файл, чтобы выполнить инструкции указанные в нем. Код в скриптах python исполняется сверху вниз, один за другим. Руководство для начинающих с примерами по изучению Python можно прочесть здесь. Разработчики в основном используют скрипты Python для автоматизации ежедневных задач, создания отчетов, обеспечения безопасности и т.д. Задачу автоматизации с Python можно выполнять за меньшее количество кода, чем в любых других языках программирования, таких как Java, C++. Преимущества Python: Очень легок в изучении Портативный, может работать на любой платформе, как Windows/Mac/Linux Может дополняться компонентами на других языках программирования Огромное сообщество поддержки Обеспечивает поддержку программирования GUI Может легко интегрироваться с другими языками программирования, вроде C, C++ и т. д. Богатый набор библиотек и модулей для больших функциональных возможностей 3. PHP PHP - это серверный язык сценариев, который является языком для создания динамических и интерактивных веб-страниц. PHP расшифровывается как гипертекстовый препроцессор. Он является открытым и бесплатным для использования. Даже если это язык, который может делать почти все, что может язык программирования, он в основном используется для выполнения логики на стороне сервера. Когда вы нажимаете кнопку входа на странице входа в Facebook, логика, которая позволяет вам войти в ваш аккаунт, выполняется на PHP. Руководство для начинающих с примерами по изучению PHP можно прочесть здесь. С помощью PHP можно создавать динамичные и красивые веб-страницы; можно собирать данные из формы, созданной в формате HTML, и использовать их для шифрования данных. Из множества функциональных возможностей PHP можно использовать PHP для создания простого приложения CRUD, которое расшифровывается как создание, чтение, обновление и удаление. Такие компании, как Википедия и Facebook, используют PHP, так как он может легко обрабатывать миллионы трафика. Преимущества PHP: Широко используемый и чрезвычайно гибкий язык Поддерживает несколько типов баз данных (MySQL, PostgreSQL, NoSQL) Поддержка нескольких типов серверов (Apache, TLS сервер) Обеспечение эффективной производительности веб-сайтов с интенсивным трафиком Предоставляет разработчикам больше возможностей управления, значит удобен для разработчиков Совместимость с большинством операционных систем и простота интеграции с несколькими технологиями 4. R R в основном используется для статистических вычислений и графики. Он широко используется аналитиками данных, учеными и статистиками. Этот язык сценариев используется через интерпретатор командной строки. R обычно называют языком науки о данных. Разработчики пишут сценарии на R для выполнения нескольких команд за один раз; это экономит много времени. Здесь сценарий представляет собой набор команд, который обычно включает в себя комментарии о том, для чего предназначен каждый фрагмент кода. Сценарий R должен быть сохранен с расширением .r. Преимущества R: Активное сообщество, поддерживающее этот язык сценариев Поддержка векторных операций Он поставляется с тысячами готовых к использованию пакетов Кроссплатформенна Наилучшим образом подходит для сложных статистических вычислений Мощные графические возможности 5. Ruby Ruby является одним из самых гибких языков программирования, и он сходит с вашего пути, если вы не кодируете так, как хотите. Создатели Ruby вложили много работы, чтобы сделать его максимально простым в использовании. Ruby может спасти тебя от набора большого количества кода. Гибкость Ruby позволила разработчикам создать невероятно инновационное программное обеспечение. Есть такие инструменты, как Chef, которые Facebook использует для автоматизации своей конфигурации сервера, или SAS, который помогает обеспечить стиль для веб-сайтов Pandora, и самое главное, Ruby разрабатывает Ruby on Rails, который, возможно, является самым популярным в мире веб- фреймворком. Airbnb и Kickstarter, как и многие другие компании, используют Ruby on Rails, в разработке своих свои веб-сайтов. Преимущества Ruby: Можно выполнять задачу за меньшее количество кода, по сравнению с другими языками программирования. Помогает ускорить разработку программного обеспечения Хорошо подходит для автоматизации тестов Предоставляет множество встроенных инструментов и библиотек, помогающих разработчикам Следует кодированию по конвенции строго в соответствии со стандартами 6. Perl Perl - язык программирования с открытым исходным кодом и огромным сообществом программистов, библиотек и ресурсов. Он имеет очень мощную встроенную структуру регулярного выражения, благодаря чему программисты и решают использовать Perl для массовой обработки текста. Perl не зависит от платформы и также используется для генерации HTML-страниц. Perl носит прозвище «Швейцарский нож скриптового языка» благодаря своей гибкости и мощи. Преимущества Perl: Относительно мало ключевых слов, простая структура и простота в изучении Поддержка широкого спектра аппаратных платформ с одним и тем же интерфейсом Обеспечивает поддержку всех коммерческих баз данных CPAN (Comprehensive Perl Archive Network), архив библиотеки Perl, включает в себя тысячи готовых модулей Поддержка автоматического управления памятью и сбора мусора Включает простые методы отладки 7. Groovy Groovy очень похож на Java. Он имеет Java-подобный синтаксис, и, если вы уже знаете Java, вам будет легче изучать его. Это мощный динамический язык с эстетической типизацией и статической компиляцией. Groovy разработан, чтобы быть менее подробным, чем Java. Синтаксис менее сложен и следует простой структуре без ненужных точек с запятой. Преимущества Groovy: Поддерживает как статическую, так и динамическую типизацию Поддержка существующих библиотек Java Сценарии Groovy могут иметь операторы без объявлений классов Легко интегрируется с существующими приложениями Java Поддержка списков, карт, регулярных выражений 8. Bash Язык сценариев Bash также известен как Bourne Again Shell. Это язык программирования сценариев оболочки, где команды оболочки выполняются через сценарий оболочки с расширением .sh. Эти команды оболочки используются на терминале с интерпретатором оболочки. В сценарии оболочки bash необходимо добавить полный путь к исполняемому двоичному файлу bash. Преимущества Bash: Самый простой способ автоматизации повседневных задач Кроме односимвольных параметров командной строки оболочки, она также поддерживает многосимвольные Выполняет все файлы запуска при запуске системы Соответствует стандарту оболочки и инструментов IEEE POSIX P1003.2/ISO 9945.2 9. PowerShell Windows PowerShell - оболочка командной строки, созданная Microsoft. Системные администраторы главным образом используют его для администрирования ОС Windows и приложений. Он построен на платформе .NET. Команды, используемые в Windows PowerShell, называются командлетами. Преимущества PowerShell: Очень легко для изучения и внедрения Предоставляет объектно-ориентированные языковые функции Простая автоматизация множества задач администрирования Нет необходимости определять тип переменной в PowerShell Позволяет выполнять задания в фоновом режиме на локальных или удаленных компьютерах Использование фоновой интеллектуальной службы передачи (BITS) поддерживает передачу файлов Написанные сценарии можно использовать повторно
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59