По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Представим себе следующую задачу: необходимо сделать так, чтобы при входящем звонке клиент слышал музыку в трубке и одновременно с этим звонил телефон у секретаря. Допустим, что у нас нет IVR и мы просто хотим заменить скучные гудки на какую-нибудь приятную музыку пока клиенту кто-нибудь не ответит. Сделать это очень просто. Бежим в модуль Ring Group, закидываем туда нужные внутренние номера и в разделе Play Music On Hold и вместо категории Ring, которая и отправляет в трубку звонящего эти самые скучные гудки, ставим туда какую-нибудь приятную музыку, предварительно добавив новую категорию в модуле Music On Hold. Осталось только поставить новую ринг-группу на входящий маршрут и всё готово. Предельно просто. Сценарий №2 Что если мы хотим сообщить звонящему какую-либо информацию прежде чем он услышит музыку (пойдет вызов на секретаря)? Например, поприветствовать, сообщить имя своей компании и поблагодарить за звонок. Для этого всё в том же модуле Ring Group нужно поставить предварительно записанное сообщение в поле Announcement. Теперь, позвонив в нашу компанию, клиент услышит приветствие, а затем приятную музыку на ожидании, пока ему не ответит секретарь. Нужно отметить, что телефон у секретаря зазвонит только тогда, когда начнёт играть музыка на ожидании, пока проигрывается приветствие из опции Announcement, телефон секретаря будет молчать. Сценарий №3 Допустим, что речь диктора, записанная в нашем приветствии звучит 7 секунд, а для принятия звонка секретарю требуется в среднем 2 секунды. Мы хотим повысить вероятность того, что как только клиент прослушает приветствие, на его звонок сразу же ответят. Согласитесь, оперативность ответа на звонок создаёт у звонящего положительное впечатление о компании. Таким образом, нам нужно как-то задержать момент, когда у секретаря зазвонит телефон где-то на 5 секунд, в то время как звонящий будет слушать текст нашего приветствия. То есть, идеальный сценарий, которого мы хотим добиться следующий: Клиент позвонил в нашу компанию; Клиент слушает наше приветствие (7 секунд); На 5 секунде приветствия, у секретаря начинает звонить телефон; Через примерно 2 секунды, он принимает звонок и начинает общаться с клиентом; Иными словами, нам нужна некая "буферная зона", в которой будут звучать первые 5 секунд нашего приветствия, а на 2 последних секундах у секретаря звонил телефон. Сразу стоит оговориться, что стандартными средствами модулей Ring Group, Inbound Route и Announcement эту задачу решить нельзя. Но в этой статье мы покажем способ, который поможет вам эффективно управлять задержкой отправки сигнала вызова на телефоны, пока звонящий слушает приветствие. Итак, первая хитрость которой мы воспользуемся – это создание звукового файла, в котором речь приветствия и музыка будут звучать друг за другом. То есть, один звуковой файл – сначала текст приветствия, а затем музыка на ожидании, например, в течении 5 минут. Этот файл нужно добавить в новую категорию в модуле Music On Hold А теперь, к созданию той самой "буферной зоны", в которой будут звучат первые 5 секунд нашего звукового файла. Для этого, в модуле Extension нужно создать виртуальный внутренний номер Virtual Extension. Виртуальный внутренний номер – это номер на нашей IP-АТС, который не требует какой-либо регистрации на конечном устройстве (будь то стационарный телефон или просто софтфон), при его создании, система не запрашивает и не создаёт никакого пароля Secret А теперь самое главное – включаем и редактируем правила Follow Me для нашего виртуального внутреннего номера следующим образом. Здесь самыми важными параметрами являются: Initial Ring Time - время, в течение которого, звонок будет идти на этот номер, прежде чем уйдёт на номера из списка Follow-Me List . Это и есть те самые 5 секунд, на которые нам нужно задержать момент, когда у секретаря зазвонит телефон. Follow-Me List - номер, на который уйдёт звонок после времени, указанном в Initial Ring Time. В нашем примере, 1011 – это номер секретаря. Play Music On Hold - звуковой файл, содержащий приветствие и музыку на удержании. Можно выбрать любую стратегию обзвона типа ringall и её модификации. Теперь этот виртуальный внутренний номер можно повесить на входящий маршрут.
img
Любая программа – это набор инструкций, будь то добавление 2 чисел или отправка запроса по сети. Компиляторы и интерпретаторы берут понятный для человека код и переводят его на машинный язык, который может прочесть компьютер. В компилируемом языке целевая машина переводит программу самостоятельно. В интерпретируемом языке исходный код не переводится самой машиной; его читает и выполняет другая программа (интерпретатор). Подробное объяснение Представьте ситуацию: вы решили приготовить хумус. Но имеющийся у вас рецепт написан на древнегреческом. У вас, как человека не знающего этого языка, есть два варианта. Вариант 1: кто-то уже перевел этот рецепт на ваш язык. Поэтому вы (и любой человек, знающий ваш язык) сможете прочесть рецепт в переводе и приготовить хумус. Переведенный рецепт и будет компилированной версией. Есть и другой вариант: у вас есть друг, который знает древнегреческий. Поэтому, решив приготовить хумус, вы пригласили этого друга к себе. Друг сидит рядом и переводит рецепт – строчка за строчкой, – а вы занимаетесь готовкой. Ваш друг – это интерпретатор (переводчик) для интерпретируемой версии рецепта. Компилируемые языки Компилируемые языки сразу переводятся в машинный код, который может выполнить процессор. В результате они выполняются быстрее и эффективнее, чем интерпретируемые языки. Кроме того, в таких языках разработчик лучше контролирует аппаратные средства (управление памятью, использование ЦП и т.д.). Компилируемым языкам требуется дополнительный этап «сборки», при котором их сначала компилируют вручную. Каждый раз при внесении изменений вам нужно будет «пересобирать» программу. Вернемся к примеру с хумусом. Перевод рецепта делался до того, как попал к вам в руки. Если автор рецепта захочет изменить тип оливкового масла, то весь рецепт придется переводить заново, а затем повторно отправлять вам. Примеры истинных компилируемых языков: C, C++, Erlang, Haskell, Rust и Go. Интерпретируемые языки Интерпретаторы проходятся по каждой строке программы и выполняют все команды. Если автор из нашего примера захочет заменить оливковое масло, то он просто зачеркнет старую запись и добавит новую. А затем ваш друг-переводчик сразу увидит это изменение и переведет его вам. Интерпретируемые языки гораздо медленнее компилируемых. Но с появлением JIT-компиляции (динамической компиляции) эта разница начинает сокращаться. Примеры популярных интерпретируемых языков: PHP, Ruby, Python и JavaScript. Небольшое пояснение В большинстве языков программирования есть компилируемые и интерпретируемые реализации, а сам язык необязательно относится только к компилируемым или интерпретируемым. Но для простоты и удобства их принято относить к тому или иному типу. Например, Python можно выполнять как компилируемую программу или интерпретируемый язык в интерактивном режиме. А большинство инструментов командной строки, интерфейсов командной строки и оболочек чисто теоретически относятся к интерпретируемым языкам. Плюсы и минусы Плюсы компилируемых языков Обычно программы, скомпилированные в машинный код, выполняются быстрее интерпретируемых. Это связано с тем, что при переводе кода в процессе его выполнения увеличивается потребление ресурсов, что, в свою очередь, замедляет программу. Минусы компилируемых языков Основные недочеты компилируемых языков: нужно больше времени для завершения полной компиляции перед тестированием; сгенерированный двоичный код зависит от платформы. Плюсы интерпретируемых языков Интерпретируемые языки более гибкие и чаще предлагают такие возможности, как динамическая типизация и меньший размер программы. Кроме того, исходный код программы выполняют интерпретаторы, поэтому сам код не зависит от платформы. Минусы интерпретируемых языков Самый главный недочет этих языков – скорость выполнения. Она обычно ниже, чем в компилируемых языках.
img
В одном из прошлых статей мы рассмотрели способы фильтрации маршрутов для динамического протокола маршрутизации EIGRP. Следует отметить, что EIGRP проприетарная разработка Cisco, но уже открыта другим производителям. OSPF же протокол открытого стандарта и поддерживается всем вендорами сетевого оборудования. Предполагается, что читатель знаком с данным протоколом маршрутизации и имеет знания на уровне CCNA. OSPF тоже поддерживает фильтрацию маршрутов, но в отличии от EIGRP, где фильтрацию можно делать на любом маршрутизаторе, здесь она возможна только на пограничных роутерах, которые называются ABR (Area Border Router) и ASBR (Autonomous System Boundary Router). Причиной этому является логика анонсирования маршрутов в протоколе OSPF. Не вдаваясь в подробности скажу, что здесь маршруты объявляются с помощью LSA (Link State Advertisement). Существует 11 типов LSA, но рассматривать их мы не будем. По ходу статьи рассмотрим только Type 3 LSA и Type 5 LSA. LSA третьего типа создаются пограничными роутерами, которые подключены к магистральной области (backbone area) и минимум одной немагистральной. Type 3 LSA также называются Summary LSA. С помощью данного типа LSA ABR анонсирует сети из одной области в другую. В таблице базы данных OSPF они отображается как Summary Net Link States: Фильтрация LSA третьего типа говорит маршрутизатору не анонсировать сети из одной области в другую, тем самым закрывая доступ к сетям, которые не должны отображаться в других областях. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Для настройки фильтрации применяется команда area area-num filter-list prefix prefix-list-name {in | out} в интерфейсе конфигурации OSPF. Как видно, здесь применяются списки префиксов или prefix-list, о которых мы говорили в предыдущей статье. Маршрут не анонсируется если попадает под действие deny в списке префиксов. Камнем преткновения в данной команде являются ключевые слова in и out. Эти параметры определяют направление фильтрации в зависимости от номера области, указанного в команде area are-num filter. А работают они следующим образом: Если прописано слово in, то маршрутизатор предотвращает попадание указанных сетей в область, номер которого указан в команде. Если прописано слово out, то маршрутизатор фильтрует номера сетей, исходящих из области, номер которого указан в команде. Схематически это выглядит так: Команда area 0 filter-list in отфильтрует все LSA третьего типа (из областей 1 и 2), и они не попадут в area 0. Но в area 2 маршруты в area 1 попадут, так как нет команд вроде area 2 filter-list in или area 1 filter-list out. Вторая же команда: area 2 filter-list out отфильтрует все маршруты из области 2. В данном примере маршрутная информация из второй области не попадёт ни в одну из областей. В нашей топологии, показанной на рисунке, имеются две точки фильтрации, то есть два пограничных маршрутизатора: При чем каждый из этих маршрутизаторов будет фильтровать разные сети. Также мы здесь используем обе ключевых слова in и out. На ABR1 напишем следующие prefix-list-ы: ip prefix-list FILTER-INTO-AREA-34 seq 5 deny 10.16.3.0/24 ip prefix-list FILTER-INTO-AREA-34 seq 10 permit 0.0.0.0/0 le 32 А на ABR2 ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24 ip prefix-list FILTER-OUT-OF-AREA-0 seq 10 permit 0.0.0.0/0 le 32 Теперь проверив таблицу маршрутизации на R3, увидим, что маршрут до сети 10.16.3.0 отсутствует: Теперь поясним, что мы сказали маршрутизатору. В конфигурации ABR1 первый prefix-list с действием deny совпадет только с маршрутом, который начинается на 10.16.3.0, а длина префикса равна 24. Второй же префикс соответствует всем остальным маршрутам. А командой area 34 filter-list prefix FILTER-INTO-AREA-34 in сказали отфильтровать все сети, которые поступают в 34 область. Поэтому в базе OSPF маршрута в сеть 10.16.3 через R1 не будет. На втором же маршрутизаторе пошли другим путём. Первый команда ip prefix-list FILTER-OUT-OF-AREA-0 seq 5 deny 10.16.2.0/23 ge 24 le 24 совпадет с маршрутами, который начинается на 10.16.2.0 и 10.16.3.0, так как указан /23. На языке списка префиксов означает взять адреса, которые могут соответствовать маске 255.255.254.0, а длина префикса адреса равна 24. А командой area 0 out сказали отфильтровать все LSA 3 типа, которые исходят из области 0. На первый взгляд кажется сложным, но если присмотреться, то все станет ясно. Фильтрация маршрутов в OSPF через distribute-list Фильтрация LSA третьего типа не всегда помогает. Представим ситуацию, когда в какой-то области 50 маршрутизаторов, а нам нужно чтобы маршрутная информация не попала в таблицу только 10 роутеров. В таком случае фильтрация по LSA не поможет, так как он фильтрует маршрут исходящий или входящий в область, в нашем случае маршрут не попадёт ни на один маршрутизатор, что противоречит поставленной задаче. Для таких случаев предусмотрена функция distribute-list. Она просто не добавляет указанный маршрут в таблицу маршрутизации, но в базе OSPF маршрут до сети будет. В отличии от настройки distribute-list в EIGRP, в OSPF нужно учесть следующие аспекты: Команда distribute-list требует указания параметров in | out, но только при применении in фильтрация будет работать. Для фильтрации команда может использовать ACL, prefix-list или route-map. Можно также добавить параметр interface interface-type-number, чтобы применить фильтрацию для конкретного интерфейса. Внесем некоторые изменения в конфигурацию маршрутизатора R3, чтобы отфильтровать маршрут до сети 10.16.1.0: Как видно на выводе, до применения prefix-list-а, в таблице маршрутизации есть маршрут до сети 10.16.1.0. Но после внесения изменений маршрут исчезает из таблицы, но вывод команды show ip ospf database | i 10.16.1.0 показывает, что в базе OSPF данный маршрут существует. Фильтрация маршрутов на ASBR Как уже было сказано в начале материала, ASBR это маршрутизатор, который стоит между двумя разными автономными системами. Именно он генерирует LSA пятого типа, которые включают в себя маршруты в сети, находящиеся вне домена OSPF. Топология сети показана ниже: Конфигурацию всех устройств из этой статьи можно скачать в архиве по ссылке ниже. Скачать конфиги тестовой лаборатории Как видно из рисунка, у нас есть два разных домена динамической маршрутизации. На роутере ASBR настроена редистрибюция маршрутов, то есть маршруты из одно домена маршрутизации попадают во второй. Нам нужно отфильтровать маршруты таким образом, чтобы сети 172.16.101.0/24 и 172.16.102.0/25 не попали в домен EIGRP. Все остальные, включая сети точка-точка, должны быть видны для пользователей в сети EIGRP. Для фильтрации Cisco IOS нам дает всего один инструмент route-map. О них мы подробно рассказывали в статье и фильтрации маршрутов в EIGRP. Можно пойти двумя путями. Либо запрещаем указанные маршруты, в конце добавляем route-map с действием permit, который разрешит все остальные, либо разрешаем указанным в списке префиксов маршруты, а все остальное запрещаем (имейте ввиду, что в конце любого route-map имеется явный запрет deny). Покажем второй вариант, а первый можете протестировать сами и поделиться результатом. Для начала создаем списки префиксов с разрешёнными сетями: ip prefix-list match-area0-permit seq 5 permit 172.16.14.0/30 ip prefix-list match-area0-permit seq 10 permit 172.16.18.0/30 ip prefix-list match-area0-permit seq 15 permit 172.16.8.1/32 ip prefix-list match-area0-permit seq 20 permit 172.16.4.1/32 ip prefix-list match-area0-permit seq 25 permit 172.16.48.0/25 ip prefix-list match-area0-permit seq 30 permit 172.16.49.0/25 ip prefix-list match-area3-permit seq 5 permit 172.16.103.0/24 ge 26 le 26 Еще раз отметим, что фильтрация LSA Type 5 делается только на ASBR маршрутизаторе. До внесения изменений на маршрутизаторе R1 видны сети до 101.0 и 102.0: Применим изменения на ASBR: Проверим таблицу маршрутизации R1 еще раз: Как видим, маршруты в сеть 101.0 и 102.0 исчезли из таблицы. На этом, пожалуй, завершим это материал. Он и так оказался достаточно большим и сложным. Удачи в экспериментах!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59