По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Channel event logging (события на канале) – система, созданная для детального логирования телефонных событий. Система CEL позволяет пошагово отслеживать сложные сценарии вызовов, последовательно записывая их в таблицу данных. Сегодня расскажем о типах событий CEL и о содержимом таблицы ‘cel’ ? Как и обычно, подключаемся к базе данных asteriskcdrdb: [root@asterisk]# mysql // подключаемся к MySQL mysql> use asteriskcdrdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Смотрим содержимое таблица cel, видим поля и типы данных: mysql> show columns from cel; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | eventtype | varchar(30) | NO | | NULL | | | eventtime | datetime | NO | | NULL | | | cid_name | varchar(80) | NO | | NULL | | | cid_num | varchar(80) | NO | | NULL | | | cid_ani | varchar(80) | NO | | NULL | | | cid_rdnis | varchar(80) | NO | | NULL | | | cid_dnid | varchar(80) | NO | | NULL | | | exten | varchar(80) | NO | | NULL | | | context | varchar(80) | NO | MUL | NULL | | | channame | varchar(80) | NO | | NULL | | | appname | varchar(80) | NO | | NULL | | | appdata | varchar(80) | NO | | NULL | | | amaflags | int(11) | NO | | NULL | | | accountcode | varchar(20) | NO | | NULL | | | uniqueid | varchar(32) | NO | MUL | NULL | | | linkedid | varchar(32) | NO | MUL | NULL | | | peer | varchar(80) | NO | | NULL | | | userdeftype | varchar(255) | NO | | NULL | | | extra | varchar(512) | NO | | NULL | | +-------------+--------------+------+-----+---------+----------------+ 20 rows in set (0.00 sec) К описанию таблицы CEL мы вернемся чуть позже, а сейчас давайте разберем возможные события в рамках системы Channel Event Logging : Событие Описание CHAN_START Канал связи был создан CHAN_END Канал связи был разорван LINKEDID_END Канал связи с указанным ID был разорван ANSWER На созданном канале связи ответили на звонок. При звонке в город, данное событие генерируется когда удаленный (вызываемый абонент) поднимет трубку HANGUP Была повешена трубка. Как правило, это событие сразу же сопровождается событием CHAN_END. Разница в том, что HANGUP происходит когда трубка положена, а CHAN_END, когда Asterisk освободил все ресурсы, занимаемые этим каналом APP_START Определенное приложение было запущено для этого канала. Например, это может быть Dial, Busy или Congestion APP_END Указанное приложение в событие APP_START завершило свое выполнение PARK_START Была произведена «Парковка» вызова. Функция парковки, представляет собой определенный номер, в который помещается вызов, работу с которым, могут продолжить другие сотрудники. PARK_END Вызов был снят с «Парковки» BRIDGE_START Между двумя каналами образовалось соединение (мост). Данное событие сопровождает такие приложения, как Dial() или Queue() BRIDGE_END Мост между каналами был разрушен BRIDGE_UPDATE В соединении между каналами произошло обновление. Это события появляется тогда, например, если изменится имя или прочая канальная информация BLINDTRANSFER Был выполнен «слепой» (без предварительной консультации) трансфер ATTENDEDTRANSFER На канале был выполнен трансфер с предварительной консультацией USER_DEFINED Кастомное событие, которое определяется в приложении CELGenUserEvent() В таблице выше мы перечислили основные события в рамках системы CEL. Теперь перейдем к описанию таблицы ‘cel’ в рамках базы asteriskcdrdb: Столбец Пример значения Описание eventtype CHAN_START Имя произошедшего события (все события описаны в таблице выше) eventtime 2016-04-01 14:53:54 Время, в которое произошло указанное выше событие cidname Oleg Ivanov Имя, передаваемое в рамках CallerID (CID), закрепленное за данным каналом cidnum 84991111111 Номер, передаваемый в рамках CallerID (CID), закрепленный за данным каналом в рамках соответствующего события cidani 84991111111 Automatic Number Identification (ANI), или другими словами – автоматическое определение номера на данном канале в рамках соответствующего события cidrdnis 84991111234 Номер перенаправления на данном канале в рамках соответствующего события ciddnid 84993456458 Набранный номер на канале в рамках соответствующего события exten 7057 Добавочный номер, который был набран, в рамках плана нумерации context Local Контекст для добавочного номера, который был набран channame SIP/0007B3060EB4-00000010 Имя установленного канала appname Dial Название приложения, которое было выполнено appdata SIP/0007B3060EB4 Параметры, которые были переданы в приложении согласно плана нумерации amaflags DOCUMENTATION Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова. accountcode 6473 Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя. uniqueid 6547653456.18332 Уникальный идентификатор для канала userfield Chto ugodno Пользовательское поле linkedid 6547653456.18332 Данный идентификатор, позволяет связать воедино звонок по частям. Например, если одна часть звонка была входящей из города, следом был трансфер, потом еще один – у все этих вызовов будет разный uniqueid, но одинаковый linkedid peer SIP/0007B306054F-00000020 Название канала, к которому, который соединен (bridge) с каналом с идентификатором channame Теперь, давайте рассмотрим как выглядит запись в таблице ‘cel’. Для этого выполним нижеследующий запрос к базе данных asteriskcdrdb: mysql> SELECT * FROM `cel` WHERE `uniqueid` = '1459503113.15'; +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ | id | eventtype | eventtime | cid_name | cid_num | cid_ani | cid_rdnis | cid_dnid | exten | context | channame | appname | appdata | amaflags | accountcode | uniqueid | linkedid | peer | userdeftype | extra | +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ | 2339 | CHAN_START | 2016-04-01 12:31:53 | | | | | | 89641111111 | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2346 | APP_START | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2347 | APP_END | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | | | 2364 | HANGUP | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | {"dialstatus":"CANCEL","hangupcause":16,"hangupsource":"dialplan/builtin"} | | 2365 | CHAN_END | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | | +------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+ 5 rows in set (0.00 sec) В указанном выше запросе мы извлекли все содержимое таблицы ‘cel’, где поле uniqueid = 1459503113.15. Полученные данные можно обрабатывать и использовать для глубокой аналитики
img
JSON, несомненно, стал неотъемлемой частью cети. Это любимый формат для огромного количества веб-сервисов, в том числе и для крупных игроков. В качестве примера можно назвать такие ведущие компании, как Google, Twitter и Facebook, которые предоставляют данные о пользователях в формате JSON. До 2013 года Twitter поддерживал XML, но в следующей версии отказался и стал использовать JSON. Когда Android разработчик хочет заявить, что приложению требуется разрешение пользователя, формат записывается в JSON, XML, YAML, и т.д.. Но JSON затмевает их все, поскольку является форматом, в котором любой может взаимодействовать с различными программами в интернете. Почему? Чтобы разобраться, давайте вкратце рассмотрим концепцию JSON. Что такое JSON? JavaScript Object Notation (JSON) - текстовый формат отображения данных, основанный на упорядоченном списке и парах "ключ-значение". Вы можете использовать их для хранения данных в логическом и упорядоченном виде, чтобы получить к ним беспрепятственный доступ. Также его используют для обмена данными между веб-серверами и клиентами. Кроме обмена данными, его можно использовать для миграции баз данных, например, с JSON на SQL. Вы даже можете экспортировать данные с помощью JSON из уже зарегистрированных веб-приложений. Несмотря на то, что JSON был создан на основе JavaScript, он является независимым от языка, что означает, что различные языки программирования могут выполнять разбор данных. В чем секрет его популярности? JSON предлагает уникальный пользовательский опыт. Он позволяет упростить синтаксис, когда существует простой метод представления данных. Кроме того, многие пользователи обнаружили, что объектные литералы JavaScript являются идеальным форматом для передачи объектно-ориентированных данных по сети. Когда вы пишете свои фронт-коды на Javascript, формат JSON упрощает загрузку данных в деревья и обеспечивает плавную работу с ними. Он обеспечивает целостное форматирование данных для экономии пропускной способности и увеличения времени отклика при общении с сервером. От простой передачи данных до возможности их считывания (удобочитаемости) и лёгкости в кодировании - с JSON всё становится безупречным. Благодаря своей чрезвычайной популярности, многие базы данных расширяют встроенную поддержку JSON. Например, MySQL и PostgreSQL поставляются со встроенной поддержкой данных JSON для хранения и запросов. Зачем хранить JSON на надежном хостинге? Бизнес-процессы связаны с большим количеством бумажной волокиты. С течением времени ваш бизнес может оказаться в океане бумажной работы, которую впоследствии становится трудно хранить и управлять этими данными. Вы знаете, насколько уязвим стал Интернет, когда киберпреступники ждут любого шанса украсть ваши данные и доставить неприятности. С помощью защищенной платформы хостинга вы можете защитить свои данные от вредоносных программ, DdoS атак и других угроз. Вы также можете настроить дополнительные уровни аутентификации и мониторинг сеансов для защиты конфиденциальности данных. Теперь давайте обсудим некоторые из лучших услуг JSON-хостинга для безопасного хранения ваших данных. Vultr С помощью Vultr Object Storage вы можете обеспечить гибкость интеграции с инструментами и приложениями сторонних производителей, поддерживающими S3. Архитектура объектного хранилища, масштабируемая по требованию, обеспечивает большую надежность данных и меньший уровень сложности управления. Так как она клонирует ваши данные в автоматическом режиме 3 раза, вы можете быть уверены в долговечности и доступности данных. Расширяйте или сокращайте свои объемы хранения данных, добавляя объекты или удаляя их. Vultr обеспечивает высокую производительность, предлагая технологию кэширования NVMe. Вы также можете хранить медиа-объекты для ваших приложений, включая изображения, видео и аудио. Это упрощает хранение, позволяя вам увеличивать или уменьшать использование в соответствии с вашими потребностями. Воспользуйтесь широким спектром пользовательских решений, включая CDN точки присутствия, хранение облачных данных приложений, сохранение истории логов, настройка аварийного восстановления, архивирование больших наборов данных и многое другое. Vultr предлагает установку приложений одним щелчком мыши, локальные SSD-накопители и процессоры Intel для высокой производительности. У него имеется 17 центров обработки данных по всему миру и неограниченное количество комбинаций операционных систем, включая CentOS, Ubuntu, Windows, Debian и FreeBSD. Он также предлагает мощные дополнения, такие как Snapshots, защита от DDoS-атак, Firewall и гибкие сетевые связи. Стоимость: начинается с 5 долларов в месяц, 250 ГБ памяти, 1000 ГБ передачи данных в месяц A2 Hosting A2 Hosting известен своими молниеносными и надежными хостинговыми решениями, адаптированными к вашим потребностям. Он делает JSON форматом по умолчанию с его установкой PHP и обеспечивает в 20 раз более быстрый процесс хостинга на его Turbo серверах. Здесь используется высококлассное программное обеспечение для разработки, такое как PHP, MySQL, Python, PERL, PostgreSQL, Apache, Node.js и MariaDB. Кроме того, предоставляется бесплатный доступ к SSH и SSL-сертификации. A2 Hosting защищает ваши данные от онлайн-угроз, включая бесплатную защиту от HackScan, а также защиту от DDoS-атак. A2 гарантирует 99.9% бесперебойной работы благодаря своим высокопроизводительным серверам, так что вы можете получить доступ к данным в любое время. Также в ассортименте есть множество других альтернатив для хостинга, включая Ubuntu Server, Nginx, Apache Tomcat, IonCube и Perl 5.10. Amazon S3 Amazon Simple Storage Service или Amazon S3 обеспечивает высококачественную доступность, возможность масштабирования, высокую производительность и безопасность данных. Неважно, насколько велик или мал ваш бизнес - у него есть решение для хранения данных для каждого. Система может защитить ваши данные для самых разных областей применения, включая мобильные приложения, веб-сайты, корпоративные приложения, IoT-устройства и многое другое. Удобные функции управления позволяют хранить и упорядочивать данные, а затем настраивать их с помощью эффективных средств контроля доступа. Amazon S3 обеспечивает высокий уровень сохранности данных благодаря созданию и хранению копий всех объектов с поддержкой S3. Таким образом, ваши данные доступны в любое время и защищены от различных угроз и ошибок. Компания предлагает доступные по цене классы хранения, поддерживающие различные уровни доступа к данным. Amazon S3 полностью совместим с HIPAA/HITECH, PCI-DSS, Директивой ЕС по защите данных, FedRAMP и FISMA. Кроме того, здесь реализованы возможности аудита, репликации данных, управления доступом, интеграции S3 с Amazon Macie, ведения журналов активности и многое другое. Используя S3 Select, вы можете получить дополнительные подмножества данных объектов и повысить производительность запросов. С помощью функции query-in-place можно выполнять анализ больших данных, запрашивать данные S3 с помощью SQL запросов используя Amazon Athena, а также анализировать данные с помощью Amazon Redshift Spectrum. GitHub GitHub, которому доверяют более 50 миллионов разработчиков, - это ваш идеальный хостинг-партнёр, где управление вашими файлами и доступ к ним очень удобны. Он не только обеспечивает гибкий хостинг и детализированный контроль доступа к данным, но и поддерживает жесткую безопасность и надежность с помощью GitHub Enterprise Cloud. В GitHub находится множество репозиториев с открытым исходным кодом, частных и публичных репозиториев всего в одном месте. Каждый из них оснащён передовыми утилитами, которые могут помочь вам в хостинге, документации, релизе кодов и многом другом. С помощью Git LFS вы можете упростить работу с большими файлами. Используйте GitHub Enterprise Server для развертывания своего центра обработки данных. Его также можно развернуть в частном "облаке" с помощью веб-служб Amazon, Google Cloud или Azure. Настройте каждый процесс с помощью интуитивно понятного API вместе с приложениями GitHub. GitHub также позволяет безупречно интегрировать средства, которые вы используете для облегчения эффективного рабочего процесса. Перемещайте свои данные в облако через встроенный CI/CD. Вы можете использовать пакеты GitHub и передавать неограниченное количество данных в рамках GitHub Actions. Здесь используется CodeQL, который является первоклассным механизмом для анализа семантических кодов, для выявления слабых мест в системе безопасности. Google Cloud Storage Google Cloud - это универсальное решение для хранения всех ваших данных, которым доверяют предприятия и разработчики по всему миру. Оно обеспечивает гибкий, унифицированный и надежный подход к хранению и защите данных. Используя Управление Жизненным Циклом Объектов (OLM), вы можете настроить данные и автоматически перейти к недорогим классам хранения в соответствии с вашими критериями. GCP предоставляет вам свободу в размещении ваших JSON и данных приложений в нужном вам месте и способе хранения в соответствии с вашими потребностями в плане производительности. Здесь предусмотрены различные классы хранения, которые позволят вам определить цену и доступность. Есть четыре класса хранения: Standard оптимизирован для высокочастотного доступа и производительности. Nearline для нечастого доступа к данным с высокой устойчивостью и скоростью. Coldline для доступа к данным несколько раз в год с высокой устойчивостью и скоростью. Archive для доступа к данным один раз в год с доступной ценой. Данное решение предназначено для множества случаев использования, включая интегрированное хранилище данных для вычислений, машинного обучения и анализа, хранения и доставки мультимедийного контента, архивов и резервных копий. Вы можете воспользоваться функцией object versioning для создания и хранения копий объектов в случае, если они перезаписаны или удалены. Кроме того, можно определить политики хранения, сохранить объекты от удаления, шифрование и управление данными с помощью службы Cloud Key Management Service, а также отключить ACL объектов для контроля доступа. Вы также можете настроить функцию функцию сохранения данных (data retention) с помощью Bucket Lock, отправки уведомлений, журналов аудита и контроля доступа с помощью Cloud Identity Access Management (IAM). JSONbin С JSONbin вам не нужно настраивать базу данных или настраивать временные серверы для тестирования front-end приложений. Используйте его для хранения всех ваших данных и тестирования приложений бесплатно. Он создает и хранит копии объектов всякий раз, когда вы вводите новую запись. Вы даже можете получить последние обновления или оригинальную запись, когда она вам нужна. Когда вы регистрируетесь в JSONbin, программа предоставляет вам секретный ключ, который вы можете использовать для создания ваших персональных записей. Путем передачи действующего секретного ключа вы можете обновлять или просматривать свои записи с целью обеспечения конфиденциальности и безопасности. JSONbin предлагает функцию " Collection ", с помощью которой вы можете хранить и упорядочивать данные в определенном порядке. Вы даже можете использовать его пользовательский запрос для доступа к нескольким записям, определив фильтры. Используя вебхуки, вы можете создавать, удалять или обновлять данные в любое время. Программа предоставляет полностью персонализированную панель инструментов, на которой вы можете создавать личные или общедоступные корзины. Вы также можете получить дополнительную помощь по ссылке API для получения информации о том, как управлять записями и создавать корзины. Вы можете проверить ваши записи с помощью Schema Docs, которые вы можете прикрепить к Collections. Получить информацию о деятельности API в режиме реального времени через электронную почту. Кроме этого, вы сможете добавлять новых участников и более эффективно управлять ими, используя функцию Team Management. n:point Настройка JSON endpoints и редактирование данных возможно в считанные секунды при использовании n: point. Для начала можно использовать облегчённый backend n:point, чтобы создавать данные, определять структуру данных через JSON схему, а затем блокировать её, чтобы предотвратить удаление или переопределение. В результате вы сможете предоставить своей команде доступ, где они смогут обновлять записи, без ущерба для исходных данных. Редактирование данных не требует усилий, так как позволяет быстро выявлять ошибки и обеспечивает гибкий синтаксис объектов JavaScript. Для доступа к определенным данным добавьте индексы массива или ключи свойств к URL API. Используя функции CORS, вы будете иметь доступ к API из любого места. Заключение Современный бизнес ежедневно связан с большим объемом бумажной волокиты, которую со временем становится трудно обрабатывать. Кроме того, ваши данные подвергаются сетевым угрозам и физическим повреждениям, которые могут стоить вам дороже, чем вы ожидали. Но не волнуйтесь, избавьтесь от бумажной волокиты и позвольте сторонним хостинг-провайдерам, как упоминалось выше, хранить ваши данные и управлять сопутствующими серверами, чтобы избавить вас от лишней головной боли.
img
Почитайте первую часть статьи. Первая проблема. Два роутера работают с одной областью OSPF, и каждый роутер имеет loopback интерфейс, объявленный в OSPF. Вот вывод таблиц маршрутизации: Как мы можем наблюдать, что роутер R1 узнал о сети 10.2.2.0/24 от роутера R2, но в таблице маршрутизации роутера R2 пусто. Что не так? Видно, что OSPF не включен на интерфейсе loopback0 роутера R1, так что же мы тогда объявляем в сетях? Похоже, мы объявляем сеть 10.10.1.0/24, но эта сеть не настроена ни на одном интерфейсе... Сеть 10.1.1.0/24 настроена на интерфейсе loopback0 роутера R1. Здесь вы видите неправильно введенную команду network. Удалим ее. R1(config)#router ospf 1 R1(config-router)#no network 10.10.1.1 0.0.0.0 area 0 R1(config-router)#network 10.1.1.0 0.0.0.255 area 0 Давайте удостоверимся, что команда network настроена правильно. Проблема устранена! Эта проблема может показаться не серьезной, но использование неправильных сетевых операторов - это то, что происходит постоянно. Особенно если мы используем меньшие подсети (например, /27 или /28 или аналогичные), люди склонны делать ошибки с обратными маскам. Итог урока: убедитесь, что вы настроили правильный сетевой адрес, обратную маску и область. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Урок №2 Очередная возможная ситуация. Опять два роутера, но другая проблема. Вот таблицы маршрутизации: В очередной раз роутер R2 не увидел сеть 10.1.1.0/24. Что интересно, что роутер R1 не имеет сети 10.1.1.0/24 в своей таблице маршрутизации как непосредственно подключенной. Мы можем проверить, что роутер R1 использует правильную настройку команды network. Поскольку R1 даже не имеет сети в своей таблице маршрутизации, предположим, что проблема с интерфейсом. Кажется, кто-то забыл применить команду "no shutdown" на интерфейсе. R1(config)#interface loopback 0 R1(config-if)#no shutdown Давайте включим интерфейс. И теперь он появляется в таблице маршрутизации роутера R2. Итог урока: нельзя объявлять то, чего у тебя нет! Урок №3 Новый урок! Одна область, опять два роутера... мы хотели бы иметь "full connectivity", но не работает OSPF ... вот вывод таблиц маршрутизации: Роутер R1 не показывает никаких маршрутов OSPF, R2 показывает ... Необходимо выяснить, что не так: Быстро взглянем на роутер R2, чтобы убедиться, что он действительно объявляет правильную сеть(и). Да это так и есть. Вывод роутера R1 более интересен ... видно, что у него настроен distribute-list. В этом заключается наша проблема. Давайте удалим distribute-list. R1(config)#router ospf 1 R1(config-router)#no distribute-list 1 in Эта команда отключит его. Задача решена! Итог урока: знать о distribute-list, запрещающий объявление и / или установку префиксов в таблице маршрутизации. Урок №4 Взглянем на более сложные проблемы OSPF. На изображении выше мы имеем роутер R1 и роутер R2, но на этот раз мы имеем конфигурацию OSPF с несколькими областями. Вот конфигурация OSPF этих роутеров: Видно, что все сети были объявлены. Область 2 не связана напрямую с областью 0, поэтому была создана виртуальная связь. Роутер R1, однако, не увидел сеть 2.2.2.0/24 от роутера R2, но роутер R2 увидел сеть 1.1.1.0/24. Лучше всего начать с виртуальной линии здесь: Хм, это выглядит не очень хорошо. Виртуальная связь отключена. Обратите внимание на IP-адреса, которые мы видим здесь, это IP-адреса, настроенные на интерфейсах FastEthernet обоих маршрутизаторов. Всякий раз, когда мы настраиваем виртуальное соединение, нам нужно настроить идентификатор маршрутизатора OSPF другой стороны, а не IP-адрес другой стороны! Вот ошибка, так что давайте исправим ее. R1(config)#router ospf 1 R1(config-router)#no area 12 virtual-link 192.168.12.2 R1(config-router)#area 12 virtual-link 2.2.2.2 R2(config)#router ospf 1 R2(config-router)#no area 12 virtual-link 192.168.12.1 R2(config-router)#area 12 virtual-link 1.1.1.1 Вот так должна выглядеть virtual-link, настроенная между идентификаторами маршрутизаторов OSPF. Сразу после ввода правильных команд появятся данные сообщения в консоли. Запись OSPF для сети 2.2.2.0/24 появилась. Урок №5 Другая проблема. Те же роутеры, но появился "домен внешней маршрутизации". Это может быть другой протокол маршрутизации, такой как RIP или EIGRP, который мы будем распространять в OSPF. R2 перераспределяет сеть 2.2.2.0 / 24 в OSPF, но по какой-то причине она не отображается на R1. Чтобы было интересно, мы не будем просматривать конфигурацию OSPF на роутерах. Нет сети 2.2.2.0/24 на роутере R1, поэтому давайте изучим роутер R2. Как мы можем видеть, сеть находится в таблице маршрутизации роутера R2 как directly connected. Как мы можем видеть роутер R2 был настроен для перераспределения напрямую подключенных сетей. Это должно включать сеть 2.2.2.0/24 на интерфейса loopback0. Однако в базе данных OSPF пусто? Что может быть причиной этого? Возможно, вы помните правила различных типов областей OSPF. Давайте выясним, что это за область! Вот и объяснение, это stub area! Stub area не допускают LSA type 5 (внешние маршруты). Мы можем либо превратить эту область в normal area или NSSA. Давайте переведем в NSSA. R1(config)#router ospf 1 R1(config-router)#no area 12 stub R1(config-router)#area 12 nssa R2(config)#router ospf 1 R2(config-router)#no area 12 stub R2(config-router)#area 12 nssa Изменим тип области на обоих маршрутизаторах. Область NSSA допускает внешние маршруты с помощью LSA type 7. Наша сеть 2.2.2.0 / 24 теперь в базе данных OSPF маршрутизатора R2. Итог урока: Stub area не допускают внешних префиксов (LSA Type 5). Либо измените область на NSSA, либо прекратите перераспределение. Урок №6 Очередная проблема. Проблема default route OSPF. На рисунке имеются роутер R1 и роутер R2, и сеть 192.168.12.0 /24 объявленная в OSPF. Loopback интерфейсы роутера R2 не объявляется в OSPF, но мы используем default route, чтобы роутер R1 мог добраться до них. Здесь представлены конфигурации OSPF: Видно, что в выводе роутера R2 присутствует команда default-information originate для объявления default route. Увы, но мы не видим default route на роутере R1. Будем искать неполадки в настройке. Давайте проверим роутер R2: В таблице маршрутизации роутера R2 не виден default route. Чтобы OSPF объявлял default route, можно использовать два варианта: Убедитесь, что у вас есть default route в routing table (невозможно объявлять то, чего нет); Примените команду default-information originate always. Она объявит default route, даже если он не прописан. R2(config)#ip route 0.0.0.0 0.0.0.0 null 0 Выше первый метод решения проблемы. Мы создадим default route на роутере R2. Обычно указывается default route на ISP роутере, но сейчас другого роутера нет. Мы укажем default route для интерфейса null0, и он будет внесен в routing table. Правило работает! R2(config)#no ip route 0.0.0.0 0.0.0.0 null 0 R2(config)#router ospf 1 R2(config-router)#default-information originate always Итог урока: что бы объявить default route с помощью OSPF, вам нужно иметь default route в таблице маршрутизации или использовать ключевое слово "always". Урок №7 Немного сложнее проблема... те же два роутера , все в зоне 0. Вот настройки OSPF: Ничего особенного, все сети объявлены, и мы используем одну область. Увы ... таблицы маршрутизации пусты! По крайней мере, никакой отсутствует информация о OSPF ... Настройки network выглядят хорошо, так что это хороший момент вникнуть поглубже в OSPF LSDB. Давайте сначала проверим идентификаторы маршрутизатора OSPF: Здесь мы видим OSPF router ID. Если вы внимательно посмотрите на информацию выше, вы заметите что-то необычное. State full, но роутер R1 не выбрал DR / BDR, а роутер R2 выбрал роутер R1 в качестве BDR. Мы можем использовать команду show ip ospf database router для поиска информации от определенного соседа OSPF. Роутер R1 говорит нам, adv router is not-reachable. Это плохо. Роутер R2 также сообщает нам, что роутер R1 недоступен, и если вы посмотрите внимательно, то увидите, что он видит связь как point-to-point. Мы не видим этого в выводе на роутере R1. Это, вероятно, означает, что роутер R1 и роутер R2 используют другой тип сети OSPF, что приводит к разнице в LSDB. Это не позволит нашим роутерам устанавливать маршруты в таблицу маршрутизации! Теперь мы кое-что выяснили. Тип сети отличается ... широковещательная передача на роутере R2 и точка-точка на роутере R1. Нам действительно удалось установить соседство OSPF с этим, но возникает разница в LSDB. Произведем исправления. R1(config)#interface fa0/0 R1(config-if)#ip ospf network broadcast Изменение типа сети на роутере R1 сделает свое дело. Наконец "О" появляется в наших таблицах маршрутизации...проблема решена! Итог урока: убедитесь, что вы используете правильный тип сети OSPF на обоих роутерах. Урок №8 Очередная внештатная ситуация. OSPF настроено между роутерами R1 и R2, но не все сети объявлены. Loopback интерфейсы роутера R2 перераспределяются в OSPF. Вот настройки обоих роутеров: Мы наблюдаем команду redistribute connected на роутере R2, которая должна перераспределить сети на интерфейсах обратной связи в OSPF. Однако здесь ничего нет ... Обычно было бы неплохо проверить, есть ли distribute list или нет. Ключ к решению этой проблемы - эта команда. Если вы наберете redistribute connected OSPF будет распространять только classful networks. R2(config)#router ospf 1 R2(config-router)#redistribute connected subnets Нам нужно добавить параметр "subnets", позволяющий заставить его выполнять redistribute subnet основных сетей. Ну вот, наша маршрутная таблица заполнена. Итог урока: добавьте параметр " subnets " при использовании перераспределения или перераспределяются только classful networks.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59