По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Всем привет! Мы продолжаем рассказывать про протокол маршрутизации OSPF. В этой статье мы рассмотрим создание конкретных типов областей. Подробнее про области можно прочитать в предыдущей статье. Предыдущие статьи: Расширенные возможности OSPF: Области Короткая Область (Stubby Area) Рисунок 1 - топология OSPF Пришло время сделать нашу область 1 из рисунка 1 короткой областью. Это внесение небольших настроек в конфигурацию. На каждом устройстве в этой области нам нужно установить область 1 в качестве заглушки. Вот наша конфигурация: ATL2# configuration terminal Enter configuration commands, one per line. End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router)#area 1 stub ATL2 (config-router)#end ATL2# ORL# configuration terminal Enter configuration commands, one per line. End with CNTL/Z . ORL(config)#router ospf 1 ORL(config-router)#area 1 stub ORL(config-router)#end ORL# Это вызовет сброс соседства. После внесения изменений настало время просмотреть таблицу маршрутизации и базу данных OSPF. show ip route ospf Как мы и надеялись, теперь таблица маршрутизации стала меньше! Больше нет детализации внешних префиксов из ASBR. Вместо этого у нас есть маршрут по умолчанию, автоматически генерируемый ABR. Этот маршрут по умолчанию конечно необходим, потому что маршрутизаторы в области 1 все еще должны иметь возможность доступа к удаленным префиксам (если это необходимо). Теперь пришло время изучить базу данных OSPF. Это именно то, что мы ожидали бы увидеть в области заглушки: show ip ospf database Type 4 LSA и Type 5 LSA фильтруются, и теперь существует Type 3 LSA для маршрута по умолчанию. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Полностью Короткая Область (Totally Stubby Area) Если мы хотим быть еще более эффективными в нашем примере, мы можем преобразовать область 1 в полностью короткую область. Это устранит Type 3 LSA, которые используются для объявления Loopback 0 на ATL и связей между ATL и AT2. Конечно, все равно будет объявлен маршрут по умолчанию, потому что теперь он нужен больше, чем когда-либо! Вот такая конфигурация и верификация: ATL2# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router )#area 1 stub no-summary ATL2 (config-router )#end ATL2# show ip route ospf show ip ospf database Not So Stubby Area (NSSA) Если вам необходимо ввести внешние префиксы в область заглушки, вы должны сделать ее Not So Stubby Area (NSSA). Это позволяет внешние префиксы, которые будут пересылаться через зону-заглушку, определять как LSA типа 7. Затем ABR преобразует их в LSA типа 5 для распространения через домен OSPF (потенциально). Ниже настройка для нашей схемы: ATL2# configuration terminal Enter configuration commands , one per line. End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router)#no area 1 stub ATL2 (config-router)#area 1 nssa ATL2 (config-router)#end ATL2# ORL# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ORL(config)#router ospf 1 ORL(config-router)#no area 1 stub ORL(config-router)#area 1 nssa ORL(config)#interface loopback10 ORL(config-if)#ip address 172.16.10.З 255.255.255.0 ORL(config)#interface loopback20 ORL(config-if)#ip address 172.16.20.З 255.255.255.0 ORL(config-if)#exit ORL(config)#router eigrp 200 ORL(config-router)#network 172.16.10.З 0.0.0.0 ORL(config-router)#network 172.16.20.З 0.0.0.0 ORL(config-router)#exit ORL(config)#router ospf 1 ORL(config-router)#redistribute eigrp 200 subnets metric 1000 ORL(config-router)#end ORL# Интересно просмотреть результаты нашей настройки. Давайте начнем с изучения маршрутов OSPF и базы данных OSPF на ORL: show ip route ospf show ip ospf database Из таблицы маршрутизации видно, что мы снова изучаем объявления Type 3 из области 0 (1.1.1.1 и 10.12.12.0). База данных OSPF доказывает, что NSSA работает так, как объявлено на данный момент. Мы можем видеть внешние префиксы, внесенные в область 1 как Type 7 в базе данных. Давайте быстро проверим ATL, чтобы увидеть, появляются ли они там как Type 5 LSA, как мы ожидаем. show ip route ospf show ip ospf database Да, выводимая информация дает нам полное понимание, как работает NSSA. Префиксы существуют как Type 5s, и мы видим это в таблице маршрутизации. Примечание: область NSSA не имеет динамически генерируемого маршрута по умолчанию без настройки этой функции. Так, наша сеть не будет работать! Чтобы создать маршрут по умолчанию, просто используйте следующую команду на маршрутизаторе ATL2: area 1 nssa default-information-originate Totally NSSA Поскольку вы уже освоили Totally Stubby, скорее всего вы уже понимаете, что происходит с Totally NSSA. Здесь мы блокируем дополнительные типы LSA из этой области. К ним относятся Type 3 LSA. И снова для нас автоматически создается маршрут по умолчанию. Вот настройки и результирующие проверки: ATL2# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router )#area 1 nssa no-summary ATL2 (config-router )#end ATL2# show ip route ospf show ip ospf database Как видно из выводимой информации, что у нас невероятно сжатая таблица маршрутизации (для OSPF) на роутере ORL. Как вы можете видеть, OSPF отлично справляется с автоматической фильтрацией маршрутов за счет использования специальных областей и типов LSA. В следующий раз мы рассмотрим варианты ручной фильтрации маршрутов в OSPF.
img
Дорогой читатель! В поисках полезной автоматизации и кастомизации своего Asterisk продвинутые администраторы прибегают к использованию различных скриптов. Это может быть PHP, Perl C, Pascal или Shell. Для использования скриптов, написанных на одном из перечисленных языков программирования в диалплане Asterisk используется AGI (Asterisk Gateway Interface) – о нем и поговорим. Как это работает? AGI - это прослойка между скриптом и диалпланом (планом набора) в Asterisk. В скрипт мы можем передавать различные переменные, а можем получать какие - то значения из скрипта. Когда Asterisk инициирует запуск скрипта через AGI, он передает в него набор переменных. Все переменные обладают префиксом agi_: Переменная Описание Пример agi_request Имя файла исполняемого скрипта trunk.php agi_channel Канал, инициирующий звонок Local/89123456789@from-internal-00000002;2 agi_language Языковой код en agi_type Тип канала, инициирующий вызов Local agi_uniqueid Уникальный идентификатор звонка 1497364935.15 agi_version Версия Asterisk 13.10.0 agi_callerid Номер звонящего (CID Number) 89123456789 agi_calleridname Имя звонящего (CID Name) 89123456789 agi_dnid Набранный номер unknown agi_context Контекст обработки вызова macro-dialout-trunk Как вызвать AGI в диалплане? Вызвать AGI скрипт очень просто: предварительно, загрузите скрипт в директорию /var/lib/asterisk/agi-bin/. После этого, скрипту необходимо дать права и собственника. Предположим, наш скрипт называется trunk.php: chmod 755 /var/lib/asterisk/agi-bin/trunk.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/trunk.php Теперь, чтобы скрипт был вызван в диалплане, просто добавьте следующую конструкцию: exten => 1333,n,AGI(trunk.php) Просто, не правда ли? А если мы хотим передать переменную в скрипт? Просто добавьте ее после запятой: exten => 1333,n,AGI(trunk.php, ${CALLERID(number)}) А как же написать скрипт? Теперь к самому скрипту – напишем его на PHP. Пусть нам нужно отправлять письмо с номером звонящего. Выглядеть скрипт будет так: #!/usr/bin/php -q <?php require('phpagi.php'); $agi = new AGI(); //подключаем файл phpagi.php – 1 и 2 строки обязательны в любом скрипте $cid = $agi->request['agi_callerid']; // берем из AGI номер звонящего mail("info@merionet.ru", 'Привет!', 'Вот и номер звонящего:', $cid); //отправляем в письме Вот и все. Нам будет приходить на почту письмо с номером звонящего – прокачав данный функционал можно отслеживать пропущенные вызовы, например.
img
В данной статье обзорно рассмотрим, какие программные оболочки бывают их виды и основные консольные команды. Самых распространенных оболочек не много: The Bourne Shell - /bin/sh The Bourne again shell - /bin/bash The Korne shell - /bin/ksh The C shell - /bin/csh Tom’s C shell - /bin/tcsh Наиболее признанной и распространенной оболочкой является bash. Поэтому в дальнейшем и в данной статье мы будем рассматривать именно ее. Посмотрим несколько основных команд: cat вывод содержимого файла в консоль; cd переход в каталог; ls вывод содержимого каталога; echo вывод текста в консоль; touch - обновление времени редактирования файла, а так же данная команда позволяет нам создать новый файл; file справка по файлу; whatis справка по названию; history вывод истории команд; env вывод переменных среды; pwd текущий каталог; export задание переменной; unset - отключение переменной; Для начала можно посмотреть, какая оболочка используется в текущий момент. В большинстве случаев это будет оболочка bash, которая является самой популярной оболочкой и самой используемой. При помощи данной оболочки мы взаимодействуем с операционной системой. Это не просто командная строка, но, а также целая программируемая среда. Со своими сценариями, переменными, со своим синтаксисом, т.е все эти оболочки ведут себя по-разному. Увидеть какую оболочку использует наш конкретный дистрибутив мы можем, посмотрев файл /etc/passwd/ На картинке видно много пользователей, можно увидеть, что пользователь Jenkins использует оболочку /bin/bash/. Это нормальная ситуация для Ubuntu т. к. в данной операционной системе данная оболочка используется по умолчанию. Если нам необходимо мы можем посмотреть глобальные настройки данной оболочки, которые располагаются /etc/profile. В данном файле много настроек, но необходимо знать языки программирования для того, чтобы редактировать файл. Единственное, что интересует в рамках данной стати это PS1 строчки, которые показывают, как должна выглядеть строка-приглашение. Если мы посмотрим, строка приглашение выглядит имя пользователя, тильда, смотря где мы находимся перечисляет нам. Мы можем настроить, каждую новую строчку так, чтобы не показывал имя пользователя, показывал полный путь, относительный путь и еще много чего, хоть пусть туда время выводит. Это уже такая детальная настройка внешнего вида оболочки bash. Если мы перейдем в домашнюю директорию пользователя, то там мы можем найти файл .profile с локальными настройками командной оболочки. Файл в линуксе который начинается с точки, является скрытым. Посмотреть такие файлы можно командой ls a. Ну и посмотрим, что у данного файла есть внутри cat .profile Мы опять видим некий сценарий и ссылку на некий файл ~/.bashrc. В котором уже находятся настройки внешнего вида этой оболочки. Мы так же его можем посмотреть cat .bashrc. Здесь уже более понятные и расширенные настройки, например, сколько хранится история команд, каким шрифтом выделять что-то. Например, мы можем сделать, так чтобы оболочка выделяла путь к файлу определенным цветом, имя пользователя другим цветом и т.д. все это делается в данном файле. Синтаксис в данной статье мы не разбираем. Соответственно можно непосредственно в редакторе редактировать файл, а можно посылать команды, которые будут вносить изменения в данные файлы. Вернемся к вопросу базовых команд. Команда echo выводит информацию в консоль. Синтаксис просто набираем: echo hello и получим в консоли hello. Т.е. командная оболочка, распознает первое слова как команду, а второе как аргумент данной команды. Если нам необходимо вывести в консоль несколько слов подряд, то их необходимо взять в кавычки. Можно выполнить две команды одна за другой, например, echo hello; ls. В данном случае сначала напечатается слово hello, а затем выведется список файлов. Мы можем создать свою команду, привязать команду к какому-нибудь псевдониму внутри оболочки т.е. создать такие ссылки и привязать действующую команду с новой. И новая команда уже будет вызывать команду echo. Для примера возьмем команду storm. При попытке ввода оболочка не понимает и начинает искать команду или исполняемый пакет. Но мы можем создать такой файлик, который будет что-то делать. Есть такая команда cat, она используется для вывода текста из файла на экран. Но она может действовать и в обратную сторону с экрана текст передавать в файл, для этого необходимо изменить направление передачи, например, cat> storm. И теперь все, что мы введем будет внесено в файл storm, опять же для примера echo и случайный набор букв. Затем нажимаем ctrl+c и прерываем ввод. Если мы посмотрим, что сохранилось в файлике storm то мы увидим, все то, что ввели в консоль. Далее сделаем файл storm исполняемым chmod +x storm. Можно видеть, что теперь при просмотре списка файлов командой ls данный файл подсвечивается зеленым, согласно настройкам программной оболочки. Если мы попробуем теперь выполнить команду, которую мы придумали, то опять ничего не выйдет, потому, что у нас оболочка по-умолчанию ищет исполняемые файлы, которые мы пишем, как команды по определенному пути. А все эти пути можно посмотреть в переменных среды. Переменные среды это определённые переменные, которые могут показать определенные настройки текущей операционной системы. Мы данные настройки можем посмотреть командой env. В выводе команды мы можем найти вот такую строчку PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games Здесь указан путь, по которому будут искаться переменные. Соответственно мы так же можем увидеть и другие настройки его среды, язык, его домашнюю папку и т.д. так как у нас по указанному выше пути ищутся исполняемые файлы мы не можем взять и запустить команду не пойми откуда. Но мы можем ее запустить, используя полный путь к исполняемому файлу. Чтобы посмотреть, где мы находимся, можно воспользоваться командой pwd, она покажет путь. В моем случае /root. У нас получится /root/storm Запустился. Следовательно, команда вывела тот текст, который мы изначально туда поместили. Вот это у нас получается полный путь к файлу /root/storm. Введем еще раз команду ls a. Мы видим скрытые файлы начинающиеся с "." , а так же еще два символа "." и ".." . Первый символ точки - это просто текущая папка. Т.е. если сделать cd . , то мы останемся в текущей директории. А если cd .. то это означает подняться на уровень выше по иерархии каталогов в файловой системе. Можно обнаружить, что при нахождении в домашней папке /root, под пользователем root, мы видим значок домашней папке ~. Это происходит потому, что в переменных для данного пользователя данная папка прописана, как домашняя. Теперь с учетом выше сказанного можно запустить нашу команду более кратко ./storm Это называется путь из текущей папки, где "." указывает на текущую папку. Таким образом мы можем запускать файлы. Еще раз вернемся к переменным среды. Например, мы можем добавить переменную ABC = 123, т.е. мы задали символьной последовательности ABC значение 123. Пока это не переменная, мы просто задали слову число. Чтобы это превратить в переменную есть команда export. Воспользуемся export ABC. И мы видим, что наша переменная добавилась. Теперь можно с данной переменной работать, например, можно ее указывать в качестве аргумента какой-либо команды. Например, echo $ABC, здесь "$" указывает, что мы обращаемся к переменной. В результате появится на экране 123. Мы можем отменить данную переменную, командой unset ABC. Снова смотрим перечень переменных env и видим, что переменная ABC исчезла. Можем поработать с другой переменной среды PATH. Например написать "PATH=$PATH:." , т.е. к текущему значению $PATH мы через двоеточие, как это показано в выводе команды env добавляем текущую папку в виде точки. Это означает, что у меня теперь будут запускаться файлы из той директории, которая обозначена точкой. Директорию, в которой находимся можно посмотреть pwd. Групповые символы: Создадим несколько файлов с помощью команды touch. Если мы хотим вывести файлы, которые заканчиваются на txt, мы вводим ls *.txt. Т.е. значок звездочки заменяет любое количество символов. Возможен, например, еще такой вариант команды, мы получим аналогичный результат ls *.t* Есть значок вопросительного знака, который заменяет только один символ. Работает по аналогии выше. Можно запросить информацию о диапазоне. Например, ls [1-4].txt, результатом вывода данной команды будет 4 файла. Все эти символы можно комбинировать. Мы можем создать некую последовательность. Например, touch {6,7,8}.txt соответственно созданы 3 файла, 6.txt, 7.txt, 8.txt. Символов достаточно много, но вот эти самые основные. Справочные команды Команда uname показывает какая операционная система. Ну я думаю и так, всем понятно, что Linux. Если ввести с ключиком a, то мы получим более информативный вариант Linux jenkins 5.4.0-45-generic #49-Ubuntu SMP Wed Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux. Плюс дополнительные параметры, версия, издание и другое. Команда File на примере нашего файла storm. Мы можем увидеть, что данный файл - это обычный текст. Есть еще справочная похожая команда whatis запрос. Команда history - показывает историю ввода команд. Чтобы повторить, какую-нибудь команду можно двигать стрелочкой вверх на клавиатуре, а также можно перебирать стрелочкой вниз. Когда мы используем данный функционал, мы как раз двигаемся по истории команд. Еще полезный функционал, если написать пару символов и нажать дважды кнопку табуляции, то операционная система постарается дописать команду или файл, или выдаст возможные варианты, если вариантов нет просто допишется название файла или команды. И самая, пожалуй, важная команда это команда man, она позволяет открывать мануалы по той или иной команде.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59