По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Есть большое количество крупных компании с сетью, содержащих более 500 маршрутизаторов Cisco (и тысячи коммутаторов Cisco Catalyst). Какой используется протокол маршрутизации, поддерживающий все эти маршрутизаторы в согласии о доступных маршрутах? Это усовершенствованный протокол маршрутизации внутреннего шлюза (EIGRP). Именно этому посвящена данная статья, которая является первой из серии статей, посвященных EIGRP (Enhanced Interior Gateway Routing Protocol). Эта серия статей рассматривает фундаментальные концепции EIGRP. Все статьи из цикла EIGRP: Часть 1. Понимание EIGRP: обзор, базовая конфигурация и проверка Часть 2. Про соседство и метрики EIGRP Часть 2.2. Установка K-значений в EIGRP Часть 3. Конвергенция EIGRP – настройка таймеров Часть 4. Пассивные интерфейсы в EIGRP Часть 5. Настройка статического соседства в EIGRP Часть 6. EIGRP: идентификатор роутера и требования к соседству Полное руководство по EIGRP в PDF PDF - это удобно 👾 Все статьи из цикла про EIGRP (Enhanced Interior Gateway Routing Protocol) мы свели в единый PDF домкумент, который вы можете скачать и читать в дороге. Книга по EIGRP в PDF | 3.27 MB Основы EIGRP Существует давняя дискуссия о фундаментальной природе EIGRP. По своей сути, является ли EIGRP протоколом маршрутизации состояния канала или протоколом маршрутизации вектора расстояния? Или же это гибридный протокол маршрутизации (то есть комбинация того и другого)? Вы найдете много литературы, поддерживающей идею о том, что EIGRP является гибридным протоколом маршрутизации, утверждая, что соседи EIGRP изначально обмениваются своей полной таблицей маршрутизации, во многом похожей на протокол маршрутизации вектора расстояния, и EIGRP отправляет только обновления маршрутизации на основе сетевых изменений, во многом напоминающие протокол маршрутизации состояния канала. Многие сетевые инженеры пришли к убеждению, что EIGRP-это "продвинутый протокол маршрутизации вектора расстояния". Их рассуждения по этому поводу: рассмотрим фундаментальную характеристику протокола маршрутизации состояния канала, которая заключается в том, что маршрутизаторы поддерживают таблицу топологии, указывающую, как маршрутизаторы связаны между собой. Эти маршрутизаторы (говоря о протоколах маршрутизации, таких как OSPF и IS-IS) затем запускают алгоритм Дейкстры на этой топологии, чтобы определить "кратчайший" путь к целевой сети с точки зрения конкретного маршрутизатора. EIGRP не поддерживает представление о топологии сети и не выполняет алгоритм Дейкстры. Скорее всего, таблица топологии EIGRP содержит список доступных сетей, а также информацию о "расстоянии" до этих сетей. Характеристики EIGRP Давайте начнем наш обзор EIGRP, рассмотрением нескольких основных характеристиках EIGRP: Быстрая конвергенция: если пропадает связь в сети, во многих случаях EIGRP может быстро перенаправить поток данных, обойдя место сбоя связи. Обычно это происходит не более чем за 3 секунды. Эта быстрая конвергенция становится возможной благодаря тому, что EIGRP имеет резервный маршрут к сети, и этот резервный маршрут готов взять на себя управление в случае сбоя основного маршрута. Высокая масштабируемость: в то время как протокол маршрутизации, такой как RIP, имеет ограничение в пятнадцать переходов маршрутизатора, EIGRP может масштабироваться для поддержки очень крупных корпоративных сетей. Балансировка нагрузки с использованием каналов с разной метрикой: по умолчанию и EIGRP, и OSPF балансируют трафик нагрузки по нескольким каналам, ведущим к определенной целевой сети, если стоимость (то есть значение метрики протокола маршрутизации) одинакова. Однако EIGRP может быть настроен для балансировки нагрузки между каналами с неравными стоимостями. Это стало возможным благодаря функции дисперсии. Поддержка маски подсети переменной длины (VLSM): в отличие от RIP версии 1, EIGRP отправляет информацию о маске подсети как часть объявления маршрута. Коммуникации через мультикаст: в EIGRP спикер маршрутизатор взаимодействует с другими EIGRP-спикер маршрутизаторами через мультикаст. В частности, EIGRP для IPv4 использует адрес многоадресной рассылки 224.0.0.10, в то время как EIGRP для IPv6 использует адрес многоадресной рассылки ff02::a. Больше не проприетарный протокол: в то время как Cisco первоначально представила EIGRP как Cisco-proprietary протокол маршрутизации, в последние годы EIGRP был открыт для других поставщиков. В частности, EIGRP стал открытым стандартом в 2013 году, а информационный RFC EIGRP (RFC 7868) был опубликован в 2016 году. Поддержка нескольких протоколов: EIGRP изначально был разработан для поддержки маршрутизации нескольких протоколов, включая IPv4, IPX и AppleTalk. Хотя современные сети редко используют IPX или AppleTalk, EIGRP теперь может поддерживать IPv6, который набирает популярность. Данная поддержка нескольких протоколов становится возможной благодаря Protocol-Dependent Modules (PDM), где существует отдельный PDM, обрабатывающий решения о маршрутизации для каждого маршрутизируемого протокола (например, IPv4 и IPv6). Алгоритм диффузионного обновления (DUAL): алгоритм EIGRP, используемый для отслеживания маршрутов, известных соседним маршрутизаторам. DUAL также используется для определения наилучшего пути к целевой сети (то есть к маршруту-преемнику) и любых приемлемых резервных путей к этой целевой сети (то есть к возможным маршрутам-преемникам). Суммирование: чтобы уменьшить количество записей в таблице топологии EIGRP (или таблице IP-маршрутизации маршрутизатора), EIGRP имеет возможность суммировать несколько сетевых объявлений в одно сетевое объявление. Это обобщение можно настроить вручную. Однако EIGRP имеет функцию автоматического суммирования маршрутов, которая суммирует сети на классовых границах сети. Обновления: полные обновления таблицы топологии EIGRP отправляются при обнаружении новых соседей. В противном случае будут отправлены частичные обновления. Обзор настройки Базовая конфигурация EIGRP очень проста в настройке. На самом деле, для этого требуется только две команды: router eigrp asn network net-id wildcard-mask Команда router eigrp asn запускает процесс маршрутизации EIGRP на маршрутизаторе для автономной системы (AS), заданной переменной asn. Эта команда также переводит вас в режим настройки маршрутизатора. Оттуда вы можете выполнить вторую команду, network net-id wildcard-mask. Эта вторая команда использует комбинацию сетевого адреса и маски подсети для указания диапазона одного или нескольких IP-адресов, и любой интерфейс маршрутизатора, чей IP-адрес принадлежит этому диапазону IP-адресов, затем участвует в процессе маршрутизации EIGRP. Тем не менее, существуют некоторые правила и модели поведения, которые следует учитывать при выполнении этих команд: EIGRP-спикер маршрутизаторы должны быть такими же, как и для формирования соседства. После того как маршрутизатор включает EIGRP на интерфейсах, соответствующих команде network EIGRP, он пытается обнаружить соседей с помощью многоадресной рассылки приветственных сообщений EIGRP. Если в команде network не указана маска подсети, то указанный сетевой адрес должен быть классовым сетевым адресом. Если в команде network не указана маска подсети, а указан классовый сетевой адрес, то все интерфейсы, IP-адреса которых подпадают под классовую сеть (например, 172.16.1.1 /24 подпадает под 172.16.0.0 /16), будут участвовать в процессе маршрутизации EIGRP. Чтобы проиллюстрировать эти понятия, рассмотрим следующий пример: Конфигурация EIGRP на маршрутизаторах OFF1, OFF2 и OFF3 ! Router OFF1 router eigrp 1 network 10.1.1.0 0.0.0.З network 10.1.1.5 0.0.0.0 network 192.0.2.0 ! Router OFF2 router eigrp 1 network 10.0.0.0 network 198.51.100.0 ! Router OFFЗ router eigrp 1 network 0.0.0.0 Конфигурация EIGRP на маршрутизаторах OFF1, OFF2 и OFF3 начинается с команды router eigrp 1. Эта команда говорит каждому маршрутизатору начать процесс маршрутизации EIGRP в автономной системе 1. Поскольку номера автономной системы должны совпадать между EIGRP-спикер-соседями, все три маршрутизатора используют один и тот же номер автономной системы 1. Кроме того, обратите внимание, как меняется конфигурация при использовании команды network: Команда network 10.1.1.0 0.0.0.3 на роутере OFF1 На маршрутизаторе OFF1 команда network 10.1.1.0 0.0.0.3 задает сетевой адрес 10.1.1.0 с обратной маской 0.0.0.3, которая соответствует 30-битной маске подсети (то есть маске подсети 255.255.255.252). Поскольку IP-адрес интерфейса Gig 0/1 маршрутизатора OFF1 10.1.1.1 / 30 попадает в эту подсеть, этот интерфейс проинструктирован участвовать в процессе EIGRP. Команда network 10.1.1.5 0.0.0.0 на роутере OFF1 Команда network 10.1.1.5 0.0.0.0 указывает конкретный IP-адрес, а не всю подсеть (или можно утверждать, что это подсеть, содержащая один IP-адрес). Мы знаем, что он указывает только один IP-адрес из-за маски подсети 0.0.0.0. Напомним, что в маске подсети мы имеем ряд непрерывных нулей, за которыми следует ряд непрерывных единиц (в двоичном коде). Двоичные нули соответствуют позиции битов в IP-адресе, определяющие адрес сети, а бинарные единицы соответствуют позиции битов в IP-адресе, который указывает адрес узла. Однако в том случае, когда у нас все нули, как в нашем случае, у нас есть сеть с одним и только одним IP-адресом (то есть маска подсети равна /32). Поскольку IP-адрес совпадает с IP-адресом интерфейса Gig 0/2 маршрутизатора OFF1, этот интерфейс также участвует в процессе маршрутизации EIGRP. Команда network 192.0.2.0 на роутере OFF1 Последняя команда network на маршрутизаторе OFF1 - это network 192.0.2.0. Интересно, что эта команда фактически была введена как сеть 192.0.2.0 0.0.0.255, но поскольку 0.0.0.255 является обратной маской, соответствующей маске подсети по умолчанию сети класса C (в данном случае 192.0.2.0 /24), она подразумевается, но не показывается. IP-адрес интерфейса Gig 0/3 маршрутизатора OFF1 192.0.2.1 / 24 действительно попадает в подсеть класса C, заданную командой network. Таким образом, Gig 0/3 также начинает участвовать в процессе маршрутизации EIGRP маршрутизатора OFF1. Команда network 10.0.0.0 на роутере OFF2 Команда network 10.0.0.0 на маршрутизаторе OFF2, не имеет обратной маски. Однако помните, что из ранее обсуждавшейся команды network (на маршрутизаторе OFF1) обратная маска подсети не отображается, если она отражает естественную маску заданной подсети. Основываясь на этой логике, мы можем заключить, что если мы намеренно опустим аргумент обратной маски из команды network, то предполагаемая обратная маска будет маской подсети, соответствующей классовой маске подсети сети, указанной в команде network. В этом случае первый октет сети, указанный в команде network address, равен 10. 10 в первом октете адреса указывает, что мы имеем дело с адресом класса А, который имеет маску подсети по умолчанию 255.0.0.0 и, следовательно, обратную маску по умолчанию 0.0.0.255. Поскольку интерфейсы Gig 0/1 и Gig 0/2 маршрутизатора OFF2 подпадают под этот классовый сетевой оператор, оба интерфейса участвуют в процессе маршрутизации EIGRP маршрутизатора OFF2. Команда network 198.51.100.0 на роутере OFF2 Как и предыдущая команда network, команда маршрутизатора OFF2 network 198.51.100.0 была введена без указания обратной маски. Поскольку первый октет адреса равен 198, мы можем заключить, что у нас есть сеть класса C, чья маска подсети по умолчанию равна 255.255.255.0, а обратная маска по умолчанию равна 0.0.0.255. IP-адрес (198.51.100.1 /24) интерфейсного Gig 0/3 на маршрутизаторе OFF2 живет в пределах указанной подсети 198.51.100.0 /24. Таким образом, интерфейс участвует в процессе маршрутизации EIGRP. Команда network 0.0.0.0 на роутере OFF3 Напомним, что оператор network EIGRP, вопреки распространенному мнению, не указывает сеть для объявления. Скорее, он определяет диапазон одного или нескольких IP-адресов, и любой интерфейс с IP-адресом в этом диапазоне проинструктирован участвовать в процессе маршрутизации EIGRP. Это означает, что, если мы хотим, чтобы все интерфейсы на маршрутизаторе участвовали в одном и том же процессе маршрутизации EIGRP, мы могли бы дать команду network 0.0.0.0, чтобы указать все возможные IP-адреса. Поскольку IP-адрес каждого отдельного интерфейса подпадает под категорию "все возможные IP-адреса", все интерфейсы на маршрутизаторе OFF3 проинструктированы участвовать в процессе маршрутизации EIGRP. Кроме того, сетевые адреса этих участвующих интерфейсов (вместе с информацией о подсети для этих сетевых адресов) затем объявляются через EIGRP. Проверка Процесс проверки EIGRP - это нечто большее, чем просто проверка того, что между всеми маршрутизаторами сформировались соседские отношения и что все маршрутизаторы изучили все маршруты в сети. Процесс верификации должен помочь нам убедиться в том, что наши изначальные требования были выполнены. Например, нам нужно найти соответствующие маршруты, определенные интерфейсы и конкретных соседей, которые будут отображаться в таблицах EIGRP. Как только определимся с нашими изначальными целями проектирования и ожидаемыми результатами, мы можем применить команды проверки EIGRP, показанные в таблице ниже: Ключевые команды проверки EIGRP В следующих примерах показаны результаты выполнения каждой из этих команд после их выполнения на маршрутизаторе OFF1, показанном в предыдущей топологии. Вывод результатов команды show ip route на маршрутизаторе OFF1: Обратите внимание, как маршруты, изученные с помощью EIGRP, показаны с литерой D в левом столбце. Этот код D указывает на маршрут, изученный через EIGRP. Эти маршруты включают 10.1.1.8/30, 198.51.100.0/24 и 203.0.113.0 /24. Также обратите внимание на выделенные числовые значения 90 в каждом EIGRP-изученном маршруте. 90 - это административное расстояние EIGRP (то есть его правдоподобность по сравнению с другими источниками маршрутизации), где более низкие значения административного расстояния предпочтительны по сравнению с более высокими значениями. Вывод из команды show ip protocols на маршрутизаторе OFF1 Вывод информации команды show ip protocols на EIGRP-спикер маршрутизаторе, как видно выше, предлагает нам несколько точек данных. Например, в разделе Routing for Networks: вы видите список сетей, указанных командой network в режиме конфигурации EIGRP. В разделе Routing Information Sources: вы можете видеть IP-адреса соседей EIGRP, которые являются 10.1.1.2 (то есть маршрутизатором OFF2) и 10.1.1.6 (то есть маршрутизатором OFF3) нашей топологии. Также в этом разделе вы можете увидеть административное расстояние (AD) до наших соседей. Поскольку эти соседи являются EIGRP-спикер маршрутизаторами, у них есть EIGRP AD по умолчанию 90. Наконец, обратите внимание на метрический вес K1=1, K2=0, K3=1, K4=0, K5=0 части выходного сигнала. В следующей статье мы узнаем, как EIGRP вычисляет свою метрику и как этот расчет включает в себя K-значения. Вывод из команды show ip eigrp interfaces на маршрутизаторе OFF1 Выходные данные show ip eigrp interfaces, рассмотренные выше, указывают на то, что Gig 0/1, Gig 0/2 и Gig 0/3 маршрутизатора OFF1 участвуют в процессе маршрутизации EIGRP. В частности, этот процесс предназначен для EIGRP AS 1. Также обратите внимание, что соседство EIGRP было установлено с другим маршрутизатором, подключенным от интерфейса Gig 0/1 маршрутизатора OFF1, и другим от интерфейса Gig 0/2. Доказательством этих соседских отношений является наличие числа, превышающего 0 в колонке Peers. Поскольку интерфейс Gig 0/3 маршрутизатора OFF1 не формировал соседство с любыми другими маршрутизаторами, говорящими на EIGRP, в его столбце Peers стоит 0. Вывод из команды show ip eigrp neighbors на маршрутизаторе OFF1: В то время как выводимые данные из команды show ip eigrp interfaces указывали, что у нас было несколько соседей EIGRP, выходные данные из команды show ip eigrp neighbors, как видно выше, предлагают более подробную информацию об этих соседях. В частности, сосед, связанный с интерфейсом маршрутизатора OFF1 по Gig 0/1, имеет IP-адрес 10.1.1.2, а сосед соединен с интерфейсом маршрутизатора OFF1 по Gig0/2 имеет IP-адрес 10.1.1.6. Вывод из команды show ip eigrp topology [all-links] на маршрутизаторе OFF1: Одной из наиболее распространенных команд, используемых для проверки EIGRP и устранения неполадок, является show ip eigrp topology, как показано в приведенном выше примере. Выходные данные этой команды показывают маршруты-преемники (то есть предпочтительные маршруты) и возможные маршруты-преемники (то есть резервные маршруты), известные процессу маршрутизации EIGRP. Пожалуйста, имейте в виду, что появление маршрута в таблице топологии EIGRP не гарантирует его присутствия в таблице IP-маршрутизации маршрутизатора. В частности, маршруты-преемники, присутствующие в таблице топологии EIGRP, являются только кандидатами для попадания в таблицу IP-маршрутизации маршрутизатора. Например, маршрутизатор может обладать более достоверной информацией о маршрутизации для сети, такой как статически настроенный маршрут с административным расстоянием 1. Если EIGRP действительно является наиболее правдоподобным источником маршрутизации для конкретной сети, то эта сеть будет введена в таблицу IP-маршрутизации маршрутизатора. Кроме того, обратите внимание, как добавление аргумента all-links в приведенном выше примере показывает еще больше маршрутов (они выделены). Разница заключается в том, что аргумент all-links предписывает команде show ip eigrp topology отображать все изученные EIGRP маршруты, даже если некоторые из маршрутов не считаются маршрутами-преемниками или возможными маршрутами-преемниками. Теперь, когда вы знаете базу, почитайте про соседство и метрики EIGRP
img
Одной из основных составляющих IP – PBX на базе Asterisk являются SIP – транки в сторону провайдера и оконечные телефонные аппараты, или как их принято называть «пиры» (peers). Сегодня мы расскажем о способе автоматизации мониторинга состояния транков и пиров, с отправлением на почту системного администратора. Мониторинг пиров Итак, начнем с мониторинга состояния пиров. Для этого мы напишем небольшой bash – скрипт. Предположим, что у нас есть 3 площадки, А, B и C. АТС Asterisk находится на площадке A. Предварительно, перед началом работы, создадим 2 файлы: первый – для логов нашего скрипта, а второй, будет служебным, и будет использоваться только в рамках исполнения скрипта. Внутри каждого скрипта, мы будем писать комментарии к каждой из его строк. Скачать скрипт мониторинга пиров вы можете по ссылке ниже: Скачать скрипт мониторинга пиров [root@asteriskpbx]# touch /home/admin/log_mail.txt [root@asteriskpbx]# touch /home/admin/message.txt Далее, создаем переменные для нашего скрипта: #!/bin/sh LOGSIZE=`ls -l /home/admin/log_mail.txt | awk '{ print $5 }'` //проверяем размер файла с логами problempeers=`/usr/sbin/asterisk -rx 'sip show peers' | grep UNKNOWN` //выводим командой 'sip show peers' через консоль Asterisk, и затем, с помощью команды grep UNKNOWN фильтруем пиры, чтобы отобразить только те, состояние которых является UNKNOWN GWB=`ping -c4 11.22.33.44 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //по протоколу ICMP, пингуем IP – адрес шлюза на удаленной площадке четырьмя пакетами. Если все ОК, и шлюз доступен, до значение переменной будет равно 4. В противном случае, оно будет равно 0. GWC=`ping -c4 44.33.22.11 | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}'` //аналогичным образом пингуем шлюз на площадке C ResultB="" //служебная переменная ResultC="" //служебная переменная FILENAME=/home/admin/message.txt //записываем в переменную путь к лог- файлам LOGFILE=/home/admin/log_mail.txt DATE="`date +%d.%m.%Y" "%H:%M:%S`" //выводим текущую дату и время в формате дд.мм.гггг чч:мм:сс echo "$problempeers" > /home/admin/message.txt //записываем содержимое переменной problempeers в служебный файл. В этой переменной содержится результат вывода команды по статусу пиров. FILESIZE=$(stat -c%s "$FILENAME") //проверяем размер служебного файла message.txt. Если в нем есть какая-либо информация, значит есть проблемы с пирами (имеются в статусе UNKNOWN), если он пустой, то все ОК. На этом этапе, мы сформировали все необходимые переменные и у нас имеются все необходимые для формирования письма (если надо) на email системному администратору. Перейдем к исполнительной части скрипта: if [ $GWB -eq 0 ]; then //если число ответов шлюза на площадке B на пинг равно 0, то запускаем процесс формирования письма ResultB ="на площадке B НЕ ДОСТУПЕН!" //формируем часть текста. Мы ее включим в заголовок письма else ResultB ="" //если все таки шлюз ответил на пинг, то оставляем переменную пустой fi if [ $GWС -eq 0 ]; then //если число ответов шлюза на площадке С на пинг равно 0, то запускаем процесс формирования письма ResultС="на площадке С НЕ ДОСТУПЕН!" //по аналогии. Указываем в заголовок, что роутер C недоступен else ResultС ="" //если все ОК, то оставляем переменную пустой fi if [ $FILESIZE -ne 1 ]; then //если наш служебный файл message.txt не пустой, то проверяем следующее условие if [ $GWB -eq 0 ] || [ $GWC -eq 0 ]; then //если хотябы один из роутеров недоступен по пинг, то переходим к следующему пункту скрипта echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутер $ResultB $ResultC!" -r "info@merionet.ru" youremail@some.ru </home/admin/message.txt && //отправляем на почту письмо, где указываем, что у нас есть проблемы с пирами, и, если какой-то из роутеров не доступен, указываем это. В теле письма мы отправляем вывод недоступных пиров. echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //параллельно с отправкой письма, записываем в лог файл запись, что у нас есть проблемы с пирами (в вывод так же можно добавить с какими именно) else echo "$problempeers"| mailx -s "Проблемы с SIP пирами | Роутеры ДОСТУПНЫ!" -r "info@merionet.ru" youremail@some.ru < /home/admin/message.txt && //если оба наших роутера доступны, то мы просто формируем письмо, в котором указываем перечень недоступных пиров. echo "FAIL :: $DATE :: Some problems with phones" >> "$LOGFILE" //аналогично вносим запись в лог – файл. fi else echo "OK :: $DATE :: all phones are OK" >> "$LOGFILE" //если служебный файл пустой, то мы вносим запись в лог – файл что все хорошо и проверка успешно прошла. fi if [ $LOGSIZE -ge 150000 ]; then //елси размер нашего лог – файла больше или равен 150 КБ, то мы очищаем этого (можете подкрутить эту величину, как вам угодно.) cat /dev/null > /home/admin/log_mail.txt fi cat /dev/null > /home/admin/message.txt //на выходе чисти служебный файл message.txt, для последующего использования Теперь давайте проверим, что приходит нам на почту в случае, если несколько пиров стали недоступны, но все роутеры доступны: Мониторинг транков Отлично, перейдем к формированию скрипта по мониторингу транков. Здесь все несколько проще, и мы просто будем сравнивать общее количество транков, и количество зарегистрированных транков: Скачать сам скрипт можете ниже: Скачать скрипт мониторинга транков #!/bin/bash ALLTRUNKSMINIMUM="`/usr/sbin/asterisk -rx "sip show registry"`" //выводим регистрации по протоколу SIP ALLTRUNKS=`echo "$ALLTRUNKSMINIMUM" |grep "SIP registrations" |awk '{print $1}'` //численное обозначение всех имеющихся транков REGTRUNKS=`/usr/sbin/asterisk -rx "sip show registry" |grep Registered |wc -l` //численное обозначение всех зарегистрированных транков DATE="`date +%d.%m.%Y" "%H:%M:%S`" //формируем текущую дату, для логов LOGFILE=/home/admin/log_mail.txt //для лог – файла, указываем тот же файл, что и для скрипта по мониторингу пиров if [ "$REGTRUNKS" -lt "$ALLTRUNKS" ]; then //если число зарегистрированных транков меньше чем число всех транков sleep 5 //ждем 5 секунд echo `/usr/sbin/asterisk -rx "sip reload"` \ перезагружаем модуль SIP, в целях перерегистрации. Эта команда автоматически перерегистрирует транк на оборудовании провайдера, после чего, он, зачастую, начинает работать. sleep 5 //ждем еще 5 секунд VAR=`/usr/sbin/asterisk -rx "sip show registry"` //после перезагрузки SIP модуля, снова смотрим SIP –регистрации. Если данная команда не дала своих результатов, то в переменной VAR будет записаны не работающие транки. Если она помогла, то на email админу придет рабочий вывод всех зарегистрированных транков. Это весьма удобно. echo "$VAR"| mailx -s "Мониторинг транков" -r "info@merionet.ru" youremail@some.ru // отправляем письмо на почту системного администратора, с выводом SIP регистраций после перезагрузки модуля else echo "OK :: $DATE :: all trunks are OK" >> "$LOGFILE" //если число зарегистрированных транков, равно общему числу, то записываем в лога файл соответствующую запись. fi Теперь, когда мы автоматизировали процессы мониторинга состояния на Asterisk, сделаем выполнение этих скриптов регулярным. Сохраним наши скрипты в формате .sh, можно сделать это, например, в Notepad ++. Сделаем выполнение мониторинг транков раз в 2 минуты, а выполнение мониторинга пиров раз в 10 минут. Перед загрузкой скриптов на сервер, дадим им необходимые права и, что очень важно, преобразуем скрипт в Linux формат: [root@asteriskpbx]# dos2unix peer.sh //преобразуем скрипт для мониторинга пиров [root@asteriskpbx]# dos2unix trunk.sh //преобразуем скрипт для мониторинга транков [root@asteriskpbx]# chmod 777 peer.sh //дадим необходимые права обоим скриптам [root@asteriskpbx]# chmod 777 trunk.sh [root@asteriskpbx]# crontab -e В открывшемся cron, задаем задачи для выполнения наших скриптов: */10 * * * * /bin/bash /home/peer.sh >/dev/null //исполнять файл раз в 10 минут */2 * * * * /bin/bash /home/trunk.sh >/dev/null //исполнять файл раз в 2 минуты Вот и все. Теперь мы имеет достаточно простой, но порой очень нужный и эффективный мониторинг состояния транков и пиров на нашем Asterisk
img
В основном, в современных корпоративных сетях можно выделить следующие типы задержки: Задержка обработки: Это время, которое затрачивает маршрутизатор на получение пакета на входном интерфейсе и отправку его в исходящую очередь на исходящий инетерфейс. Задержка обработки зависит от следующих факторов: Скорость центрального процессора; Использование центрального процессора; Архитектура маршрутизатора; Настроенные опции входящих и исходящих интерфейсов. Задержка очереди: Это время, которое пакет находится в очереди на отправку. Данный вид задержки зависит от таких факторов как количество и размер пакетов, которые уже находятся в очереди, полоса пропускания интерфейса и механизм очередей; Задержка сериализации: Время, необходимое для перемещения фрейма в физическую среду передачи; Задержка распространения: Время, которое занимает путь пакета от источника к получателю по каналу связи. Эта задержка сильно зависит от среды передачи. Методы ограничения задержки Маршрутизатор имеет достаточно мощностей для того, чтобы быстро и оперативно принимать решения о дальнейшем перенаправлении пакетов. Задержка обработки, очереди и сериализации зависит от следующих факторов: Средняя длина очереди; Средняя длина пакетов в очереди; Пропускная способность канала связи. Указанные ниже методы удовлетворяют требования чувствительного к задержке трафика Увеличение пропускной способности: При достаточной пропускной способности, сокращается время ожидания в исходящей очереди, тем самым, сокращается задержка сериализации; Приоритизация чувствительного к задержкам трафика: Данный метод является более гибким. Указанные ранее алгоритмы PG, CQ, MDRR и LLQ имеют значительное воздействие задержку, вносимую очередью; Сжатие поля полезной нагрузки: Сжатие поля полезной нагрузки уменьшает общий размер пакета, тем самым, по сути, увеличив пропускную способность канала передачи. Так как сжатые пакеты меньше обычных по размеру, их передача занимает меньше времени. Важно помнить, что алгоритмы сжатия весьма сложны, и компрессия наряду с декомпрессией могут добавить дополнительные задержки; Сжатие заголовков пакетов: Сжатие заголовков не так сильно требует ресурсов центрального процессора, как сжатие поля полезной нагрузки, поэтому, данный механизм часто используется наряду с другими алгоритмами уменьшения задержки. Сжатие заголовков особенно актуально для голосового трафика. Потеря пакетов Обычно, потеря пакетов происходит при условии переполнения буфера маршрутизатора. Например, пакеты находятся в исходящей на интерфейсе очереди. В какой-то момент размер очереди достигает своего максимума, и, новые приходящие пакеты просто отбрасываются. В целом, потеря пакетов происходит по следующим причинам: Потеря на входящей очереди: если не хватает мощности CPU (Central Processing Unit) маршрутизатора, пакеты могут быть потеряны еще на входящем интерфейсе; Игнорирование пакетов: Буфер маршрутизатора переполнен, следовательно, приходящие пакеты просто игнорируются; Ошибка во фреймах: Аппаратное обнаружение ошибок во фреймах, например, Cyclic Redundancy Check (CRC). Как правило, потеря пакетов является результатом чрезмерной загрузки интерфейса. Используются следующие методы и алгоритмы для предотвращения потерь пакетов: Увеличение пропускной способности чтобы предотвратить перегрузку на интерфейсе; Обеспечение достаточной пропускной способности и увеличение буферного пространства для гарантированного перемещения чувствительного к задержкам трафика в начало очереди; Ограничить перегрузку путем отбрасывания пакетов с низким приоритетом до того, как произойдет переполнение интерфейса. Для обеспечения данной цели, инженер может использовать алгоритм Weighted Random Early Detection (WRED), который будет случайно отбрасывать нечувствительный к потерям и трафик и пакеты, с заранее настроенными низкими приоритетами.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59