По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Несмотря на доступ к все более эффективному и мощному оборудованию, операции, выполняемые непосредственно на традиционных физических (или «чистых») серверах, неизбежно сталкиваются со значительными практическими ограничениями. Стоимость и сложность создания и запуска одного физического сервера говорят о том, что эффективное добавление и удаление ресурсов для быстрого удовлетворения меняющихся потребностей затруднено, а в некоторых случаях просто невозможно. Безопасное тестирование новых конфигураций или полных приложений перед их выпуском также может быть сложным, дорогостоящим и длительным процессом. Исследователи-первопроходцы Джеральд Дж. Попек и Роберт П. Голдберг в статье 1974 года («Формальные требования к виртуализируемым архитектурам третьего поколения» (“Formal Requirements for Virtualizable Third Generation Architectures”) - Communications of the ACM 17 (7): 412–421) предполагали, что успешная виртуализация должна обеспечивать такую среду, которая: Эквивалента физическому компьютеру, поэтому доступ программного обеспечения к аппаратным ресурсам и драйверам должен быть неотличим от невиртуализированного варианта. Обеспечивает полный контроль клиента над аппаратным обеспечением виртуализированной системы. По возможности эффективно выполняет операции непосредственно на базовых аппаратных ресурсах, включая ЦП. Виртуализация позволяет разделить физические ресурсы вычислений, памяти, сети и хранилища («основополагающая четверка») между несколькими объектами. Каждое виртуальное устройство представлено в своем программном обеспечении и пользовательской среде как реальный автономный объект. Грамотно настроенные виртуальные изолированные ресурсы могут обеспечить более защиту приложений приложений без видимой связи между средами. Виртуализация также позволяет создавать и запускать новые виртуальные машины почти мгновенно, а затем удалять их, когда они перестанут быть необходимыми. Для больших приложений, поддерживающих постоянно меняющиеся бизнес-требования, возможность быстрого вертикального масштабирования с повышением или понижением производительности может означать разницу между успехом и неудачей. Адаптивность, которую предлагает виртуализация, позволяет скриптам добавлять или удалять виртуальные машины за считанные секунды, а не недели, которые могут потребоваться для покупки, подготовки и развертывания физического сервера. Как работает виртуализация? В невиртуальных условиях, архитектуры х86 строго контролируют, какие процессы могут работать в каждом из четырех тщательно определенных уровней привилегий (начиная с Кольца 0 (Ring 0) по Кольцо 3). Как правило, только ядро операционной системы хоста имеет какой-либо шанс получить доступ к инструкциям, хранящимся в кольце под номером 0. Однако, поскольку вы не можете предоставить нескольким виртуальным машинам, которые работают на одном физическом компьютере, равный доступ к кольцу 0, не вызывая больших проблем, необходим диспетчер виртуальных машин (или «гипервизор»), который бы эффективно перенаправлял запросы на такие ресурсы, как память и хранилище, на виртуализированные системы, эквивалентные им. При работе в аппаратной среде без виртуализации SVM или VT-x все это выполняется с помощью процесса, известного как ловушка, эмуляция и двоичная трансляция. На виртуализированном оборудовании такие запросы, как правило, перехватываются гипервизором, адаптируются к виртуальной среде и возвращаются в виртуальную машину. Простое добавление нового программного уровня для обеспечения такого уровня организации взаимодействия приведет к значительной задержке практически во всех аспектах производительности системы. Одним из успешных решений было решение ввести новый набор инструкций в ЦП, которые создают, так называемое, «кольцо 1», которое действует как кольцо 0 и позволяет гостевой ОС работать без какого-либо влияния на другие несвязанные операции. На самом деле, при правильной реализации виртуализация позволяет большинству программных кодов работать как обычно, без каких-либо перехватов. Несмотря на то, что эмуляция часто играет роль поддержки при развертывании виртуализации, она все же работает несколько иначе. В то время как виртуализация стремится разделить существующие аппаратные ресурсы между несколькими пользователями, эмуляция ставит перед собой цель заставить одну конкретную аппаратную/программную среду имитировать ту, которой на самом деле не существует, чтобы у пользователей была возможность запускать процессы, которые изначально было невозможно запустить. Для этого требуется программный код, который имитирует желаемую исходную аппаратную среду, чтобы обмануть ваше программное обеспечение, заставив его думать, что оно на самом деле работает где-то еще. Эмуляция может быть относительно простой в реализации, но она почти всегда несет за собой значительные потери производительности. Согласно сложившимся представлениям, существует два класса гипервизоров: Type-1 и Type-2. Bare-metal гипервизоры (исполняемые на «голом железе») (Type-1), загружаются как операционная система машины и – иногда через основную привилегированную виртуальную машину – сохраняют полный контроль над аппаратным обеспечением хоста, запуская каждую гостевую ОС как системный процесс. XenServer и VMWare ESXi – яркие примеры современных гипервизоров Type-1. В последнее время использование термина «гипервизор» распространилось на все технологии виртуализации хостов, хотя раньше оно использовалось только для описания систем Type-1. Первоначально более общим термином, охватывающим все типы систем, был «Мониторы виртуальных машин». То, в какой степени люди используют термин «мониторы виртуальных машин» все это время, наводит меня на мысль, что они подразумевают «гипервизор» во всех его интерпретациях. Гипервизоры, размещенные на виртуальном узле (Type-2) сами по себе являются просто процессами, работающими поверх обычного стека операционной системы. Гипервизоры Type-2 (включая VirtualBox и, в некотором роде, KVM) отделяют системные ресурсы хоста для гостевых операционных систем, создавая иллюзию частной аппаратной среды. Виртуализация: паравиртуализация или аппаратная виртуализация Виртуальные машины полностью виртуализированы. Иными словами, они думают, что они обычные развертывания операционной системы, которые живут собственной счастливой жизнью на собственном оборудовании. Поскольку им не нужно взаимодействовать со своей средой как-то иначе, чем с автономной ОС, то они могут работать с готовыми немодифицированными программными стеками. Однако раньше за такое сходство приходилось платить, потому что преобразование аппаратных сигналов через уровень эмуляции занимало дополнительное время и циклы. В случае с паравиртуализацией (PV – Paravirtualization) паравиртуальные гости хотя бы частично осведомлены о своей виртуальной среде, в том числе и том, что они используют аппаратные ресурсы совместно с другими виртуальными машинами. Эта осведомленность означает, что хостам PV не нужно эмулировать хранилище и сетевое оборудование, и делает доступными эффективные драйверы ввода-вывода. На первых порах это позволяло гипервизорам PV достигать более высокой производительности для операций, требующих подключения к аппаратным компонентам. Тем не менее, для того, чтобы предоставить гостевой доступ к виртуальному кольцу 0 (т.е. кольцу -1), современные аппаратные платформы – и, в частности, архитектура Intel Ivy Bridge – представили новую библиотеку наборов инструкций ЦП, которая позволила аппаратной виртуализации (HVM – Hardware Virtual Machine) обойти узкое место, связанное с ловушкой и эмуляцией, и в полной мере воспользоваться преимуществами аппаратных расширений и немодифицированных операций ядра программного обеспечения. Также значительно повысить производительность виртуализации может последняя технология Intel – таблицы расширенных страниц (EPT – Extended Page Tables). В связи с этим, в большинстве случаев можно обнаружить, что HVM обеспечивает более высокую производительность, переносимость и совместимость. Аппаратная совместимость Как минимум, несколько функций виртуализации требуют аппаратную поддержку, особенно со стороны ЦП хоста. Именно поэтому вы должны убедиться, что на вашем сервере есть все, что вам необходимо для задачи, которую вы собираетесь ему дать. Большая часть того, что вам нужно знать, храниться в файле /proc/cpuinfo и, в частности, в разделе «flags» (флаги) каждого процессора. Однако вам нужно знать, то искать, потому что флагов будет очень много. Запустите эту команду, чтобы посмотреть, что у вас под капотом: $ grep flags /proc/cpuinfo Контейнерная виртуализация Как мы уже видели ранее, виртуальная машина гипервизора – это полноценная операционная система, чья связь с аппаратными ресурсами «основополагающей четверки» полностью виртуализирована – она думает, что работает на собственном компьютере. Гипервизор устанавливает виртуальную машину из того же ISO-образа, который вы загружаете и используете для установки операционной системы непосредственно на пустой физический жесткий диск. Контейнер в свою очередь фактически представляет собой приложение, запускаемое из скриптообразного шаблона, которое считает себя операционной системой. В контейнерных технологиях, таких как LXC и Docker, контейнеры – это не что иное, как программные и ресурсные (файлы, процессы, пользователи) средства, которые зависят от ядра хоста и представления аппаратных ресурсов «основополагающей четверки» (т.е. ЦП, ОЗУ, сеть и хранилище) для всего, то они делают. Конечно, с учетом того, что контейнеры фактически являются изолированными расширениями ядра хоста, виртуализация Windows (или более старых или новых версий Linux с несовместимыми версиями libc), например, на хосте Ubuntu 16.04 будет сложна или невозможна. Но эта технология обеспечивает невероятно простые и универсальные вычислительные возможности. Перемещение Модель виртуализации также позволяет использовать широкий спектр операций перемещения, копирования и клонирования даже из действующих систем (V2V). Поскольку программные ресурсы, определяющие виртуальную машину и управляющие ею, очень легко идентифицировать, то обычно не требуется очень много усилий для дублирования целых серверных сред в нескольких местах и для разных целей. Иногда это не сложнее, чем создать архив виртуальной файловой системы на одном хосте, распаковать его на другом хосте по тому же пути, проверить основные сетевые настройки и запустить. Большинство платформ предлагают единую операцию командной строки для перемещения гостей между хостами. Перемещение развертываний с физических серверов на виртуализированные среды (P2V) иногда может оказаться немного сложнее. Даже создание клонированного образа простого физического сервера и его импорт в пустую виртуальную машину может сопровождаться определенными трудностями. И как только все это будет выполнено, вам, возможно, придется внести некоторые корректировки в системную архитектуру, чтобы можно было использовать возможности, предлагаемые виртуализацией, в полную силу. В зависимости от операционной системы, которую вы перемещаете, вам также может потребоваться использование паравиртуализированных драйверов для того, чтобы ОС могла корректно работать в своем «новом доме». Как и в любых других ситуациях управления сервером: тщательно все продумывайте заранее.
img
Как учиться на онлайн-курсах так, чтобы они окупились ИТ-курсы — это быстрый и проверенный способ научиться новому или повысить квалификацию для работы в сфере технологий. Такие программы дают начинающим специалистам опыт, необходимый для того, чтобы претендовать на хорошие вакансии. Интенсивная учеба на IT-курсах даст старт вашей карьере, но как ее пройти, чтобы не пожалеть о потраченных силах и деньгах? Знание о том, как подготовиться к обучению, даст возможность быть уверенным в своем решении. В этой статье расскажем, как подготовиться к учебе, что следует учесть прежде, чем внести оплату, и на что рассчитывать после окончания курса. Стоит ли сейчас идти учиться на IT-курсы Первая ассоциация с работой в IT — комфортная удаленка или светлый просторный офис со спортзалом, ДМС и неизменными «плюшками» на кухне. Сфера остается конкурентной: по данным hh.ru, IT-отрасль многие россияне все еще оценивают как одну из самых перспективных — 39% опрошенных заявили, что планируют сменить сферу, в которой они трудятся сейчас, на IT. Как и в любой сфере, зарплата и корпоративные бонусы зависят как от компании, так и от уровня конкретного сотрудника. Это значит, что потенциальную конкуренцию важно и нужно учитывать уже на этапе выбора профильного курса, но бояться конкуренции не стоит. На рынке есть спрос на специалистов всех уровней и для решения самых разных задач, так что ориентируйтесь на направление, в котором вам было бы по-настоящему интересно расти и развиваться. Что дают курсы? Представьте себе человека, который хочет прийти к идеальной физической форме. Он выбирает самый современный и удобный спортзал, покупает абонемент, нанимает лучшего тренера… И не занимается. Та же ситуация применима и к учебе на курсах: если не проявлять инициативу, не ходить на занятия и игнорировать практику, даже продвинутый курс с классными преподавателями не поможет в будущем найти работу. Давайте разберемся, что вам даст обучение на курсах, и какие усилия к этому стоит приложить. Цель 1: узнать, что собой представляет профессия, которой вы планируете учиться. Что делать: поищите статьи, в которых раскрываются основы профессии, поговорите с людьми, которые уже работают в интересной вам сфере. Не стесняйтесь спрашивать других и искать информацию самостоятельно. Убедитесь, что у вас есть предпосылки для прохождения курса — как минимум, желание углубиться в сферу. Если требуются какие-либо базовые навыки или знания, ознакомьтесь с ними до начала курса. Если вы уже купили обучение, ознакомьтесь с учебным планом и конспектом, поймите, какие темы там будут рассматриваться. Цель 2: усвоить теорию, разобраться в предмете более детально и сделать первый шаг к карьере. Что делать: разбейте содержание курса на удобные для изучения разделы и поставьте реальные цели для каждого занятия — это позволит вам оставаться организованным и сосредоточенным. Не полагайтесь только на материалы курса. Изучите дополнительные ресурсы — учебники, видео, лекции, статьи, чтобы получить более полное представление о нужных темах. Выделите отдельное время для занятий. Последовательные, целенаправленные занятия более эффективны, чем зубрежка. Составьте расписание занятий, которое будет соответствовать вашему распорядку дня. Это поможет вам сохранять дисциплину и не отвлекаться от учебы. Цель 3: нарастить скиллы, научиться решать практические задачи. Что делать: для ИТ-курсов практические занятия имеют решающее значение. Отрабатывайте полученные знания на практических и лабораторных занятиях, не бойтесь находить задачи самостоятельно и решать их вне учебы — это расширит кругозор и даст навык быстрой работы при любых условиях. Соотнесите материал курса с реальными сценариями. Поймите, как концепции применяются в практических ситуациях, чтобы сделать обучение более осмысленным. Цель 4: познакомиться с коллегами и другими учениками, попасть в профессиональную среду. Что нужно: участвуйте в профильных группах или сообществах в социальных сетях, связанных с курсом. Взаимодействие с другими людьми даст возможность узнать разные точки зрения и получить дополнительные знания. IT — это быстро развивающаяся область. Следите за соответствующими благами, новостными источниками и форумами, не бойтесь задавать вопросы в комментариях. Как вы поняли, обучение на IT-курсах — это процесс, который окупится и приведет к результату только в том случае, если предмет вам интересен, и вы готовы к дисциплине и новым знаниям. В начале этой статьи мы говорили о том, что IT — это сфера с высокой конкуренцией, и что это не повод обходить ее стороной. Теперь вы понимаете, почему: успех находится только в ваших руках — вы всегда можете стать сильнее другого соискателя, приложив к учебе больше сил и времени. Что делать после IT-курсов Эффективная подготовка к ИТ-курсам может значительно улучшить ваш опыт учебы и сделает ее более полезной. В той же степени важно подготовиться к тому, что вас ждет после курсов. Что может испортить вам настроение: джуны не получают много денег сразу, к примеру, зарплата junior программиста начинается от 45 тысяч рублей. А как же новый ноутбук и офис с фруктами и игровой приставкой? Хорошая новость: обучающий курс обязательно окупится. Не ищите супер-работу сразу после выпуска: возьмите несколько фриланс-проектов, пополните портфолио и выходите на рынок с твердой уверенностью в своих силах. Чем больше знаний и практических кейсов вы покажете будущему работодателю, тем больше шанс получить работу с высокой оплатой. Что ещё может испортить вам настроение: знания улетучиваются очень быстро. Еще вчера вы могли написать код с закрытыми глазами, а сегодня вам приходится искать дополнительные материалы для решения той же задачи. Хорошая новость: поддерживать рабочую форму не так сложно. Регулярно просматривайте пройденный на курсах материал, чтобы закрепить его понимание. Читайте профессиональные форумы и книги, решайте задачи — в рамках того же фриланса. Это даст шанс не только не стагнировать, но и вырасти в своих скиллах. Развивайте навыки критического мышления — ИТ-технологии часто связаны с решением проблем, и способность критически мыслить и даст опору в принятии решений. Не забывайте пополнять портфолио, расширять свои знания и практиковаться — это приблизит вас к работе мечты и даст возможность стать специалистом, с которым будет рада сотрудничать любая IT-компания. Заключение Чтобы обучение на онлайн-курсе окупилось, вы должны интересоваться профессией, которой вы учитесь, и прилагать усилия к тому, чтобы в нее углубиться. Секрет успеха в том, чтобы ваш труд был постоянным и планомерным — здесь вам поможет планирование своего времени и нагрузки. Хоть это и очевидно, но помните, что одна лишь покупка курса не сделает вас специалистом, но с правильным подходом и уверенностью в своих силах это абсолютно реально.
img
В этой статье мы рассмотрим механизмы масштабируемости BGP и связанные с ними концепции. Предыдущие статьи цикла про BGP: Основы протокола BGP Построение маршрута протоколом BGP Формирование соседства в BGP Оповещения NLRI и политики маршрутизации BGP Видео: Основы BGP за 7 минут Механизмы масштабируемости BGP Истощение доступных автономных системных номеров явилось проблемой точно так же, как было проблемой для интернета истощение IP-адресов. Чтобы решить эту проблему, инженеры обратились к знакомому решению. Они обозначили диапазон номеров AS только для частного использования. Это позволяет вам экспериментировать с AS конструкцией и политикой, например, в лаборатории и использовать числа, которые гарантированно не конфликтуют с интернет-системами. Помните, что число AS-это 16-разрядное число, допускающее до 65 536 чисел AS. Диапазон для частного использования: 64512-65535. Еще одним решением проблемы дефицита, стало расширение адресного пространства имен. Было утверждено пространство, представляющее собой 32-разрядное число. В течение длительного времени, с точки зрения масштабируемости, одноранговые группы Border Gateway Protocol считались абсолютной необходимостью. Мы настраивали одноранговые группы для уменьшения конфигурационных файлов. Так же мы настраивали одноранговые группы для повышения производительности. Преимущества производительности были нивелированы с помощью значительно улучшенных механизмов, сейчас. Несмотря на это, многие организации все еще используют одноранговые группы, поскольку они поняты и легки в настройке. Появились в BGP одноранговые группы для решения нелепой проблемы избыточности в BGP конфигурации. Рассмотрим простой (и очень маленький) пример 1. Даже этот простой пример отображает большое количество избыточной конфигурации. Пример 1: типичная конфигурация BGP без одноранговых групп ATL1(config)#router bgp 200 ATL1( config-router)#neiqhbor 10.30.30.5 remote-as 200 ATL1( config-router)#neiqhbor 10.30.30.5 update- source lo0 ATL1( config= router)#neiqhbor 10.30 .30.5 password S34Dfr112s1WP ATL1(config-router)#neiqhbor 10.40.40.4 remote-as 200 ATL1( config-router)#neiqhbor 10.40.40 .4 update- source lo0 ATL1(config-router)#neiqhbor 10.40.40.4 password S34Dfr112s1WP Очевидно, что все команды настройки относятся к конкретному соседу. И многие из ваших соседей будут иметь те же самые характеристики. Имеет смысл сгруппировать их настройки в одноранговую группу. Пример 2 показывает, как можно настроить и использовать одноранговую группу BGP. Пример 2: одноранговые группы BGP ATL2 (config)#router bgp 200 ATL2 (config-router)#neighbor MYPEERGR1 peer-group ATL2 (config-router)#neighbor MYPEERGR1 remote-as 200 ATL2 (config-router)#neighbor MYPEERG1l update-source lo0 ATL2(config-router)#neighbor MYPEERGRl next-hop-self ATL2 (config-router)#neighbor 10.40.40 .4 peer-group MYPEERGR1 ATL2 (config-router)#neighbor 10.50.50 .5 peer-group MYPEERGR1 Имейте в виду, что, если у вас есть определенные настройки для конкретного соседа, вы все равно можете ввести их в конфигурацию, и они будут применяться в дополнение к настройкам одноранговой группы. Почему же так часто использовались одноранговые группы? Они улучшали производительность. Собственно говоря, это и было первоначальной причиной их создания. Более современный (и более эффективный) подход заключается в использовании шаблонов сеансов для сокращения конфигураций. А с точки зрения повышения производительности теперь у нас есть (начиная с iOS 12 и более поздних версий) динамические группы обновлений. Они обеспечивают повышение производительности без необходимости настраивать что-либо в отношении одноранговых групп или шаблонов. Когда вы изучаете одноранговую группу, вы понимаете, что все это похоже на шаблон для настроек. И это позволит вам использовать параметры сеанса, а также параметры политики. Что ж, новая и усовершенствованная методология разделяет эти функциональные возможности на шаблоны сессий и шаблоны политики. Благодаря шаблонам сеансов и шаблонам политик мы настраиваем параметры, необходимые для правильной установки сеанса, и помещаем эти параметры в шаблон сеанса. Те параметры, которые связаны с действиями политик, мы помещаем в шаблон политики. Одна из замечательных вещей в использовании этих шаблонов сеансов или политик, а также того и другого, заключается в том, что они следуют модели наследования. У вас может быть шаблон сеанса, который выполняет определенные действия с сеансом. Затем вы можете настроить прямое наследование так, чтобы при создании другого наследования оно включало в себя вещи, созданные ранее. Эта модель наследования дает нам большую гибкость, и мы можем создать действительно хорошие масштабируемые проекты для реализаций BGP. Вы можете использовать шаблоны или одноранговые группы, но это будет взаимоисключающий выбор. Так что определитесь со своим подходом заранее. Вы должны заранее определиться, что использовать: использовать ли устаревший подход одноранговых групп или же использовать подход шаблонов сеанса и политики. После выбора подхода придерживайтесь его, так как, использовать оба подхода одновременно нельзя. Теперь можно предположить, что конфигурация для шаблонов сеансов будет довольно простой, и это так. Помните, прежде всего, все что мы делаем здесь и сейчас, относится к конкретной сессии. Поэтому, если мы хотим установить timers, нам нужно установить remote-as – и это будет считается параметром сеанса. Например, мы делаем update source. Мы настраиваем eBGP multihop. Все это имеет отношение к текущему сеансу, и именно это мы будем прописывать в шаблоне сеанса. Обратите внимание, что мы начинаем с создания шаблона. Поэтому используем команду template peer-session, а затем зададим ему имя. И тогда в режиме конфигурации шаблона можем настроить наследование, которое позволит наследовать настройки от другого однорангового сеанса. Можем установить наш remote-as как и/или update source. После завершения, мы используем команду exit-peer-session, чтобы выйти из режима конфигурации для этого сеанса. Пример 3 показывает конфигурацию шаблона сеанса. Пример 3: Шаблоны сеансов BGP ATL2#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL2 (config)#router bgp 200 ATL2 (config-router)#template peer- session MYNAME ATL2 (config-router-stmp)#inherit peer- session MYOTHERNAME ATL2 (config- router-stmp )#remote-as 200 ATL2(config-router-stmp )#password MySecrectPass123 ATL2 (config-router-stmp )#exit-peer-session ATL2 (config-router)#neiqhbor 10.30.30 .10 inherit peer-session MYNAME ATL2 (config-router)#end ATL2# Это простой пример настройки соседства с помощью оператора neighbor и использования наследования однорангового сеанса. Затем присваивается имя однорангового сеанса, созданного нами для нашего шаблона сеанса. Это соседство наследует параметры сеанса. Помните, что, если вы хотите сделать дополнительную настройку соседства, можно просто присвоить соседу IP-адрес, а затем выполнить любые настройки вне шаблона однорангового сеанса, которые вы хотите дать этому соседу. Таким образом, у вас есть та же гибкость, которую мы видели с одноранговыми группами, где вы можете настроить индивидуальные параметры для этого конкретного соседа вне шаблонного подхода этого соседства. Вы можете подумать, что шаблоны политик будут иметь сходную конструкцию и использование с шаблонами сеансов, и вы будете правы. Помните, что если ваши шаблоны сеансов находятся там, где мы собираемся настроить параметры, которые будут относиться к сеансу BGP, то, конечно, шаблоны политик будут храниться там, где мы храним параметры, которые будут применяться к политике. Пример 4 показывает настройку и использование шаблона политики BGP. Пример 4: Шаблоны политики BGP ATL2#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL2 (config)#router bgp 200 ATL2(config-router)#template peer-policy MYPOLICYNAME ATL2 (config-router-ptmp )#next-hop-self ATL2 (config-router-ptmp )#route-map MYMAP out ATL2 (config-router-ptmp )#allowas-in ATL2 (config-router-ptmp )#exit-peer-policy ATL2 (config-router)#neighbor 10.40.40.10 remote-as 200 ATL2 (config-router)#neighbor 10.40.40.10 inherit peer-policy MYNAME ATL2 (config-router)#end ATL2# Да, все эти параметры, которые мы обсуждали при изучении манипуляций с политикой, будут тем, что мы будем делать внутри шаблона политики. Однако одним из ключевых отличий между нашим шаблоном политики и шаблоном сеанса является тот факт, что наследование здесь будет еще более гибким. Например, мы можем перейти к семи различным шаблонам, от которых мы можем непосредственно наследовать политику. Это дает нам еще более мощные возможности наследования с помощью шаблонов политик по сравнению с шаблонами сеансов. Опять же, если мы хотим сделать независимые индивидуальные настройки политики для конкретного соседа, мы можем сделать это, добавив соответствующие команды соседства. Благодаря предотвращению циклов и правилу разделения горизонта (split-horizon rule) IBGP, среди прочих факторов, нам нужно придумать определенные решения масштабируемости для пирингов IBGP. Одним из таких решений является router reflector. Рис. 1: Пример топологии router reflector Конфигурация router reflector удивительно проста, поскольку все это обрабатывается на самом router reflector (R3). Клиенты route reflector – это R4, R5 и R6. Они совершенно не знают о конфигурации и настроены для пиринга IBGP с R3 как обычно. Пример 5 показывает пример конфигурации router reflector. Обратите внимание, что это происходит через простую спецификацию клиента router reflector. Пример 5: BGP ROUTE REFLECTOR R3#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R3 (config)#router bgp 200 R3 (config-router)#neighbor 10.50.50.10 remote -as 200 R3 (config-router)#neighbor 10.50.50.10 route-reflector-client R3 (config-router)#end R3# Route reflector автоматически создает значение идентификатора (ID) кластера для кластера, и это устройство и эти клиенты будут частью того, что мы называем кластером route reflector. Cisco рекомендует разрешить автоматическое назначение идентификатора кластера для идентификации клиента. Это 32-разрядный идентификатор, который BGP извлекает из route reflector. Магия Route reflector заключается в том, как меняются правила IBGP. Например, если обновление поступает от клиента Route reflector (скажем, R4), то устройство R3 «отражает» это обновление своим другим клиентам (R5 и R6), а также своим неклиентам (R1 и R2). Это обновление происходит даже при том, что конфигурация для IBGP значительно короче полной сетки пирингов, которая обычно требуется. А теперь что будет, если обновление поступит от не клиента Route reflector (R1)? Route reflector отправит это обновление всем своим клиентам Route reflector (R4, R5 и R6). Но тогда R3 будет следовать правилам IBGP, и в этом случае он не будет отправлять обновление через IBGP другому не клиенту Route reflector (R2). Чтобы решить эту проблему, необходимо будет создать пиринг от R1 к устройству R2 с помощью IBGP. Или, можно добавить R2 в качестве клиента Route reflector R3. Есть еще один способ, которым мы могли бы решить проблему с масштабируемостью IBGP- это манипулирование поведением EBGP. Мы делаем это с конфедерациями. Вы просто не замечаете, что конфедерации используются так же часто, как Route reflector. И причина состоит в том, что они усложняют нашу топологию, и делают поиск неисправностей более сложным. На рис. 2 показан пример топологии конфедерации. Рисунок 2: Пример топологии конфедерации Мы имеем наш AS 100. Для создания конфедерации необходимо создать небольшие субавтономные системы внутри нашей основной автономной системы. Мы их пронумеруем с помощью, номеров автономных систем только для частного использования. Что мы имеем, когда манипулируем поведением eBGP, что бы имеет конфедерацию EBGP пирингов? Это позволяет нам установить пиринги между соответствующими устройствами, которые хотим использовать в этих автономных системах. Как вы можете догадаться, они не будут следовать тем же правилам, что и наши стандартные пиринги EBGP. Еще один важный момент заключается в том, что все это для внешнего неконфедеративного мира выглядит просто как единый AS 100. Внутри мы видим реальные AS, и конфедеративные отношения EBGP между ними. Помимо устранения проблемы разделения горизонта IBGP, что же меняется с пирингами конфедерации EBGP? В следующем прыжке поведение должно измениться. Следующий прыжок не меняется тогда, когда мы переходим от одной из этих небольших конфедераций внутри нашей АС к другой конфедерации. Вновь добавленные атрибуты обеспечивают защиту от цикла из-за конфедерации. Атрибут AS_confed_sequence и AS_confed_set используются в качестве механизмов предотвращения циклов. Пример 6 показывает пример частичной настройки конфедерации BGP. R3#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R3 (config)#router bgp 65501 R3(config-router)#bgp confederation identifier 100 R3 (config-router)#bgp confederation peers 65502 R3 (config-router)#neighbor 10 .20.20.1 remote-as 65502 R3 (config-router)#end R3# Иногда возникает необходимость применения общих политик к большой группе префиксов. Это делается легко, если вы помечаете префиксы специальным значением атрибута, называемым сообществом (community). Обратите внимание, что сами по себе атрибуты сообщества ничего не делают с префиксами, кроме как прикрепляют значение идентификатора. Это 32-разрядные значения (по умолчанию), которые мы можем именовать, чтобы использовать дополнительное значение. Вы можете настроить значения сообщества таким образом, чтобы они были значимы только для вас или значимы для набора AS. Вы также можете иметь префикс, который содержит несколько значений атрибутов сообщества. Кроме того, можно легко добавлять, изменять или удалять значения сообщества по мере необходимости в вашей топологии BGP. Атрибуты сообщества могут быть представлены в нескольких форматах. Более старый формат выглядит следующим образом: Decimal - 0 to 4294967200 (в десятичном) Hexadecimal – 0x0 to 0xffffffa0 (в шестнадцатеричном) Более новый формат: AA:NN AA - это 16-битное число, которое представляет ваш номер AS, а затем идет 16-битное число, используемое для задания значимости своей политике AS. Таким образом, вы можете задать для AS 100 100:101, где 101- это номер внутренней политики, которую вы хотите применить к префиксам. Есть также хорошо известные общественные значения. Это: No-export - префиксы не объявляются за пределами AS. Вы можете установить это значение, когда отправляете префикс в соседний AS. чтобы заставить его (соседний AS) не объявлять префикс за собственные границы. Local-AS - префиксы с этим атрибутом сообщества никогда не объявляются за пределами локального AS No-advertise - префиксы с этим атрибутом сообщества не объявляются ни на одном устройстве Эти хорошо известные атрибуты сообщества просто идентифицируются по их зарезервированным именам. Есть также расширенные сообщества, которые также можно использовать. Они предлагают 64-битную версию для идентификации сообществ! Задание параметров осуществляется настройкой TYPE:VALUE. Выглядит оно следующим образом: 65535:4294967295 Как вы можете догадаться, мы устанавливаем значения сообщества, используя route maps. Пример 7 показывает пример настроек. Обратите внимание, что в этом примере также используется список префиксов. Они часто используются в BGP для гибкой идентификации многих префиксов. Они гораздо более гибки, чем списки доступа для этой цели. Пример 7: Установка значений сообщества в BGP R3#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R3(config)#ip prefix-list MYLIST permit 172.16.0.0/16 le 32 R3(config)#route-map SETCOMM permit 10 R3(config-route-map)#match ip address prefix-list MYLIST R3(config-route-map)#set community no-export R3(config-route-map)#route-map SETCOMM permit 20 R3(config)#router bgp 100 R3(config-router)#neighbor 10.20.20.1 route-map SETCOMM out R3 (config-router)#neighbor 10.20.20.1 send-community R3(config-router)#end R3#
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59