По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Django – это бесплатный и свободный фреймворк для веб-приложений на языке Python. Фреймворк – это не что иное, как просто набор модулей, облегчающих разработку. Они сгруппированы и позволяют создавать приложения или веб-сайты с чистого листа, а не полностью с нуля. «Быстрая разработка и понятный и практичный дизайн» - вот ключевые преимущества Django. При установке фреймворка Django на веб-сервере он может помочь разработчикам быстро создавать многофункциональные, безопасные и масштабируемые веб-интерфейсы. Например, разработчикам не нужно создавать свои окна входа в систему и обработку входных данных. Очень вероятно, что что-то может пойти не так. Фреймворки позаботятся об этом за вас и помогут справиться со всеми сложными ситуациями. Как связаны Django и Python? Django – это платформа программирования на языке Python. Это инструмент написания программного кода на Python, который добавляет функциональность и ускоряет процесс. Django включает в себя код на языке Python, который уже написан и готов к использованию в проекте. Django – это «фреймворк», поскольку он содержит полнофункциональный набор классов, библиотек и модулей, которые позволяют разработчикам делать практически все, что им требуется для создания надежных веб-сайтов и приложений. Python – это основа, а Django построен на этой основе, так как он написан именно на Python. Django – это основа вашего веб-сайта или приложения. Свойства Django Быстрая разработка Целью создания Django было создание такого фреймворка, который бы позволил разработчикам создавать веб-приложения за меньшее количество времени. Этап реализации приложения занимает достаточно много времени, а Django позволяет ускорить его. Повышенная безопасность Безопасность Django превышает стандартные свойства безопасности: большой опыт и обширные знания пользователей Django помогают в ее обеспечении. Вы рискуете не заметить уязвимость в своем модуле, если будете создавать все свое веб-приложение с нуля. Вы можете быть уверены в тои, что пакеты Django защитят ваши данные, поскольку они широко используются, имеют открытый исходный код и тщательно проверены веб-разработчиками. Универсальность Django – это универсальный фреймворк, который может использоваться для создания самых различных приложений. В настоящее время компании используют Django для создания таких приложений, как системы организации информационного наполнения, социальные сети и платформы для научных вычислений. Открытый исходный код Django – это бесплатный фреймворк для веб-приложений с открытым исходным кодом. Он доступен для всех желающих. Исходный код можно загрузить из общедоступного репозитория. За счет использования открытого исходного кода снижается общая стоимость разработки приложения. Огромная общественная поддержка Веб-фреймворк Django имеет большую и преданную базу пользователей. Многие высококвалифицированные разработчики Django жертвуют своим временем и опытом для того, чтобы помочь в разработке, улучшении и исправлении программного обеспечения. Вы можете извлечь огромную пользу из применения Django для разработки вашего приложения, используя грамотно разработанные пакеты, доступные для всех, кто работает с Django. Кто использует Django? Django широко используется такими веб-сайтами, как: The Washington Times The Washington Post использует Django для обработки большого трафика. Django также используется и другими интернет-изданиями. Mozilla Это еще одно веб-приложение, перешедшее с PHP на Python, а, следовательно, на Django. Оно является одним из самых популярных веб-браузеров. Теперь он может обрабатывать большие объемы трафика и большое количество запросов API. Instagram Django обеспечивает Instagram такими функциональными возможностями, которые позволяют веб-приложению работать бесперебойно, добавлять новые функции и быстро устранять проблемы. Pinterest Эта платформа имеет более 250 миллионов активных пользователей ежемесячно, обрабатывает огромные объемы мультимедийных данных и по-прежнему поддерживает «дружественный» интерфейс. Создатели смогли настроить ее по своим требованиям за счет фреймворка с открытым исходным кодом. Фреймворк Django Архитектура Django основана на структуре MVT, что означает MODEL, VIEW и TEMPLATE. MVT – это альтернатива MVC, которая в свою очередь состоит из следующих трех компонентов: Model, View и Controller. Основное различие между MVT и MVC заключается в том, что архитектура Django выполняет задачи, которые выполняет контроллер (Controller) архитектуры MVC. Все задачи, связанные с контроллером, выполняются с помощью шаблонов (Template) Django. Другими словами, содержимое шаблона представляет собой смесь языка шаблонов Django (также известного как DTL - Django Template Language) и HTML (HyperText Markup Language – язык разметки гипертекста). Model Model – это компонент веб-приложения, который служит связующим звеном между пользовательским интерфейсом и базой данных. Это объект, который технически реализует логику предметной области приложения. View В архитектуре Django этот компонент содержит логику пользовательского интерфейса. View – это пользовательский интерфейс веб-приложения, включающий такие элементы, как HTML, CSS и другие технологии пользовательского интерфейса. Как правило, этот пользовательский интерфейс создается компонентом Model, который предоставляет наполнение. Template Если вам нужно создать динамический веб-сайт для сложных операций или функций, то шаблоны (templates) помогут упростить этот процесс. Проще говоря, динамический веб-сайт отправляет и получает изменяющиеся или динамические данные. Как правило, динамические данные связаны со сценарием, в котором каждому пользователю предоставляются его собственные персонализированные данные. Примером могут послужить различные транзакции в финансового-технологических программах или публикации в социальных сетях, таких как Facebook, Instagram, Twitter и т.д. Заключение Django – это отличный выбор в ситуациях, когда речь идет о проектах с большим объемом наполнения (например, медиафайлов), со взаимодействием с пользователем, большим трафиком и сложными функциями или технологиями (например, машинное обучение). В любом случае, его также можно использовать и для небольших проектов, если вы планируете масштабировать свой проект до гораздо больших масштабов. Именно поэтому многие компании используют Django для абсолютно различных целей.
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до сервера, на котором размещен этот веб-сайт. BGP (Border Gateway Protocol, протокол граничного шлюза) решает, по какому пути следует идти пакетам. Если маршрутизатор не работает или слишком нагружен, пакеты проходят по другому маршруту. BGP по умолчанию принимает объявленные маршруты от других соседей BGP. Нет объявления о пути или владельце, что оставляет серьезную проблему безопасности. В этой статье описывается протокол RPKI, как решение для безопасной маршрутизации BGP. Что такое BGP? Протокол BGP – основной протокол, который используется для обмена маршрутами в Интернете. Пакеты передаются по всему миру децентрализованным образом с автоматизированной маршрутизацией. По мере передачи данных с одного маршрутизатора на другой информация перемещается ближе к пункту назначения. Каждый маршрутизатор поддерживает локальную таблицу наилучших путей для каждой группы префиксов IP-адресов. AS (Autonomous System - автономная система) владеет группами префиксов и определяет, как происходит обмен маршрутизацией. Каждая AS имеет уникальный идентификатор (Number), и протокол BGP определяет, как автономные системы обмениваются информацией о маршрутах. Каждый ASN (Autonomous System Number) объявляет префиксы, по которым он может доставлять данные. Например, AS отвечающая за подсеть 1.0.0.0/8, будет передавать этот префикс соседям и другим провайдерам. Недостатки BGP Прием маршрута BGP зависит от проектирования ISP. Сложно принять во внимание все сценарии: ошибки ввода, ошибки автоматизации или злой умысел - это лишь некоторые примеры проблем, которые трудно предотвратить. В конечном счете, суть проблемы заключается в том, что нет никакого видения того, кто должен объявлять маршрут или кто настоящий владелец. Угоны префиксов равной длины Угон префикса равной длины происходит, когда тот, кто не является владельцем, объявляет об этом же префиксе. Например: Исходная AS отправляет данные, предназначенные для 1.0.0.0/8 AS назначения объявляет 1.0.0.0/8 Другая AS также объявляет 1.0.0.0/8 В случае объявления равной длины BGP должен выбрать маршрут. Решение сводится к конфигурации AS. Источник AS замечает небольшое падение трафика. Падение трафика является обычным явлением, которое может произойти по любому числу причин. За счет этого угон BGP остается незамеченным. Угон определенного префикса Захват определенного префикса происходит, когда злонамеренный ASN объявляет более конкретный префикс. Оба префикса добавляются в таблицу маршрутизации BGP, но более конкретный адрес выбирается в качестве наилучшего пути к сети. Например: Источник отправляет данные, предназначенные для 1.0.0.0/8 AS назначения объявляет 1.0.0.0/8 Другая AS объявляет более конкретный 1.2.3.0/24 Поскольку 1.2.3.0/24 лучше соответствует, все данные в диапазоне 1.2.3.0 поступают в нелегитимную сеть. Что такое RPKI? RPKI (Resource Public Key Infrastructure) - уровень безопасности в протоколе BGP, обеспечивающий полное криптографическое доверие владельцу, где последний имеет общедоступный идентификатор. В BGP понятия владельца не существует. Любому разрешается анонсировать лучший маршрут, будь то злонамеренно или случайно. RPKI основан на существующем стандарте PKI - RFC6480. Существует много ссылок на существующие методологии криптографии для безопасной связи. Почему RPKI важен? Инфраструктура открытого ключа ресурсов делает BGP более безопасным и надежным. Из-за особенностей работы BGP, уязвимость интернета является систематической проблемой. С ростом Интернета последствия заметнее. Маршрутизация информации в небольшую сеть создает перегрузку. Вредоносная маршрутизация доставляет конфиденциальную информацию не туда. Ошибки BGP могут привести к мошенничеству и крупномасштабным сбоям. Известны следующие случаи: Amazon - маршрут 53 BGP угнал DNS Amazon для кражи криптовалют. Google - неправильная настройка фильтрации BGP во время обновления маршрутизировал весь трафик в Китай, Россию и Нигерию. Mastercard, Visa и крупные банки - произошла утечка 36 префиксов платежных услуг. YouTube - Попытка заблокировать сайт YouTube в Пакистане в итоге положила его. Какую форму защиты предлагает RPKI? Проблемы BGP возникают по многочисленным причинам: Нет надежного плана обеспечения безопасности Ошибки перераспределения Опечатки Преступное намерение Наиболее распространенным фактором является человеческая ошибка. Криптографическая модель RPKI обеспечивает аутентификацию владельца через открытый ключ и инфраструктуру сертификатов без наличия в них идентифицирующей информации. Сертификаты добавляют уровень сетевой безопасности к префиксам IPv4 и IPv6. Сертификаты RPKI продлеваются каждый год. HTTP использует аналогичное шифрование для защиты веб-страниц. Хотя весь путь не защищен, RPKI проверяет идентичность источника и предоставляет способ подтвердить, что они являются теми, кем они являются. RPKI является шагом в обеспечении безопасности в маршрутизации BGP, где мы знаем происхождение входящей информации и кто владеет каким пространством. Широкое распространение делает его еще более эффективным в предотвращении угонов в целом. Как работает RPKI? RIR (Regional Internet Registry) обеспечивает корневое доверие в модели криптографии RPKI. IANA (Internet Assigned Numbers Authority) является частью ICANN (Internet Corporation for Assigned Names and Numbers), которая владеет адресными пространствами IPv4 и IPv6. IANA распределяет порции IP пространства для RIR. Локальные RIR затем распределяют пространство IP для сетей, которые далее распределяют для сетей меньшего размера. Этот путь создает доверенную цепочку в сертификатах подписи. Регионы RIR делятся на пять географических районов: ROA Заключительной частью цепочки является ROA (Route Origin Authorization - авторизация источника маршрута). ROA представляет собой простой документ с двумя частями информации: Какой маршрут и максимальная длина. AS, объявившая маршрут. Например, если AS65005 объявляет маршрут в диапазоне от 1.0.0.0/8 до 1.0.0.0/12, ROA содержит область и идентификатор AS65005, проверяя, кто является реальным владельцем информации с полным доверием. Каждая ROA специфична для каждого из существующих RIR. Как развертывается RPKI? "P" в RPKI означает, что сертификаты и ROA доступны в публичных (public) хранилищах. Эта информация используется для формирования списков префиксов, которые относятся к конкретному ASN. Подписи сертификатов и срок действия ROA проверяются каждой сетью независимо. Если какой-либо из следующих ошибок завершается неуспешно, ROA игнорируется: Дата начала или дата окончания ROA и привязки сертификатов к корню находятся в прошлом или будущем. Любая из подписей недействительна или отозвана. Все ROA, которые прошли тест сохраняются в списке проверенных. Фильтр генерируется и выгружается на маршрутизаторы на основе проверенного списка кэша. Маршрутизаторы проверяют объявления BGP через фильтр и получает один из трех результатов: Действительное - ROA присутствует. Длина префикса и номер AS совпадают. Недопустимое - присутствует ROA. Длина префикса или номер AS не совпадают. Не найдено или неизвестно - ROA отсутствует. Маршрутизатор действует на основе состояния префикса, сгенерированного фильтром. Подпись префиксов RIR предлагают онлайн-инструменты для подписи префиксов. При этом префикс и длина префикса связываются с AS. После подписания префикса другие пользователи, реализовавшие проверку RPKI, могут проверить префиксы. Подписание сертификата предотвращает захват префиксов (намеренно или непреднамеренно). Подписанные сертификаты являются ядром ROA. RPKI не предлагает проверки пути, и атаки «человек в середине» по-прежнему возможны. Проверка префиксов Реализация проверки зависит от сведений о сети. Общие шаги при настройке сети для проверки префиксов: Установка средств проверки RPKI - программное обеспечение, которое извлекает данные RPKI из всех реестров маршрутизации Интернет (IRR) и проверяет подписи. Настройка проверки на пограничных маршрутизаторах с помощью средства проверки маршрута - маршрутизаторы заполняют кэш проверки комбинациями проверенных префиксов, длин префиксов и исходных ASN. Реализация фильтров BGP для внешних сеансов BGP - добавление политики для всех сеансов BGP (одноранговых, транзитных и клиентов) для отклонения любого префикса, который является недопустимым с точки зрения RPKI. Заключение RPKI предлагает дополнительный уровень в защите BGP маршрутизации. Большинство маршрутизаторов имеют встроенные возможности проверки и развертывания RPKI.
img
Прочитайте материал про реактивное и упреждающее распределение достижимости в сетях. Есть много случаев, когда более эффективно или в соответствии с конкретными ограничениями политики для плоскости управления изучать информацию о достижимости и топологии с другой плоскости управления, а не с помощью механизмов, описанных до этого момента в этой серии статей. Вот некоторые примеры: Две организации должны соединить свои сети, но ни одна из них не хочет позволить другой контролировать политику и работу своих плоскостей управления; Крупная организация состоит из множества бизнес-единиц, каждая из которых имеет возможность управлять собственной внутренней сетью в зависимости от местных условий и требований приложений. Организация должна каким-то образом позволить двум плоскостям управления взаимодействовать при переходе от одной к другой. Причины, по которым одна плоскость управления может получать информацию о доступности от другой, почти безграничны. Учитывая это требование, многие сетевые устройства позволяют операторам перераспределять информацию между плоскостями управления. При перераспределении достижимости возникают две проблемы, связанные с плоскостью управления: как обрабатывать метрики и как предотвращать петли маршрутизации. Примечание. Перераспределение можно рассматривать как экспорт маршрутов из одного протокола в другой. На самом деле импорт/экспорт и перераспределение часто используются для обозначения одного и того же, либо разными поставщиками, либо даже в разных ситуациях одним и тем же поставщиком. Перераспределение и метрики Взаимосвязь между свойствами связи, политиками и метриками определяются каждым протоколом плоскости управления независимо от других протоколов. Фактически, более описательная или более полезная метрическая система - это то, что иногда привлекает операторов к определенному протоколу плоскости управления. На рисунке 12 показаны два участка сети, в которых работают две разные управляющие плоскости, каждая из которых использует свой метод расчета метрик связей. Протоколы X и Y в этой сети были настроены с использованием двух разных систем для назначения показателей. При развертывании протокола X администратор разделил 1000 на скорость соединения в гигабитах. При развертывании протокола Y администратор создал "таблицу показателей" на основе наилучшего предположения о каналах с самой высокой и самой низкой скоростью, которые они могут иметь в течение следующих 10-15 лет, и назначил метрики для различных скоростей каналов в этой таблице. Результат, как показывает рисунок, несовместимые показатели: 10G каналы в протоколе X имеют метрику 100, в то время как в протоколе Y они имеют метрику 20. 100G-каналы как в протоколе X, так и в протоколе Y имеют метрику 10. Предполагая, что более низкая метрика предпочтительна, если метрики добавлены, канал [B, C, F] будет считаться более желательным путем, чем канал [B, D, G]. Однако, если учитывать пропускную способность, оба канала будут считаться одинаково желательными. Если между этими двумя протоколами настроено перераспределение, как следует обрабатывать эти метрики? Есть три общих решения этой проблемы. Администратор может назначить метрику в каждой точке перераспределения, которая передается как часть внутренней метрики протокола. Например, администратор может назначить метрику 5 для пункта назначения E на маршрутизаторе C при перераспределении из протокола X в Y. Этот пункт назначения, E, вводится в протокол Y с метрикой 5 маршрутизатором C. На маршрутизаторе F метрика для E будет от 25 для C. В G стоимость достижения E будет 35 по пути [F, C]. Желательность использования любой конкретной точки выхода для любого конкретного пункта назначения выбирается оператором при назначении этих ручных метрик. Метрика "другого" протокола может быть принята как часть внутренней метрики протокола. Это не работает в случае, когда один протокол имеет более широкий диапазон доступных метрик, чем другой. Например, если протокол Y имеет максимальную метрику 63, метрики 10G из протокола X будут "выше максимума"; ситуация, которая вряд ли будет оптимальной. При отсутствии такого ограничения маршрутизатор C внедрит маршрут к E со стоимостью 100 в протокол Y. Стоимость достижения E на маршрутизаторе F составит 110; стоимость в G будет от 130 до [F, C]. Примечание. Здесь вы можете увидеть компромисс между состоянием плоскости управления и оптимальным использованием сети, это еще один пример компромисса сложности при проектировании реальных протоколов. Перенос внешней метрики в отдельное поле добавляет состояние плоскости управления, но позволяет более оптимально управлять трафиком через сеть. Назначение или использование внешней метрики снижает состояние плоскости управления, но за счет возможности оптимизации потока трафика. Внешняя метрика может быть перенесена в отдельное поле, поэтому каждое сетевое устройство может отдельно определять лучший путь к каждому внешнему адресату. Это третье решение является наиболее широко используемым, поскольку оно обеспечивает наилучшую возможность управления трафиком между двумя сетями. В этом решении C вводит достижимость для E с внешней стоимостью 100. В F есть две метрики в объявлении, описывающие достижимость для E; внутренняя метрика для достижения точки перераспределения (или выхода) - 20, а метрика для достижения точки E во внешней сети - 100. В G внутренняя метрика для достижения точки выхода - 30, а внешняя метрика - 100. Как реализация будет использовать оба этих показателя? Следует ли протоколу выбирать ближайшую точку выхода или, скорее, самую низкую внутреннюю метрику? Это позволит оптимизировать использование локальной сети и потенциально деоптимизировать использование сетевых ресурсов во внешней сети. Должен ли протокол выбирать точку выхода, ближайшую к внешнему назначению, или, скорее, самую низкую внешнюю метрику? Это позволит оптимизировать сетевые ресурсы во внешней сети, потенциально за счет деоптимизации использования сетевых ресурсов в локальной сети. Или протоколу следует попытаться каким-то образом объединить эти две метрики, чтобы максимально оптимизировать использование ресурсов в обеих сетях? Некоторые протоколы предпочитают всегда оптимизировать локальные или внешние ресурсы, в то время как другие предоставляют операторам возможность конфигурации. Например, протокол может позволять переносить внешние метрики в виде метрик разных типов, при этом один тип считается большим, чем любая внутренняя метрика (следовательно, сначала предпочтение отдается самой низкой внутренней метрике и использование внешней метрики в качестве средства разрешения конфликтов), а другой тип - это когда внутренние и внешние метрики считаются эквивалентными (следовательно, добавляются внутренние и внешние метрики для принятия решения о пути). Перераспределение и петли маршрутизации В приведенном выше обсуждении вы могли заметить, что места назначения, перераспределенные с одного протокола на другой, всегда выглядят так, как будто они подключены к перераспределяющему маршрутизатору. По сути, перераспределение действует как форма резюмирования (что означает, что удаляется информация о топологии, а не информация о достижимости), как описано ранее в этой серии статей. Хотя этот момент не является критическим для показателей перераспределения, важно учитывать способность плоскости управления выбирать оптимальный путь. В некоторых конкретных случаях деоптимизация может привести к тому, что плоскость управления не сможет выбрать пути без петель. Рисунок 13 демонстрирует это. Чтобы построить петлю маршрутизации в этой сети: Маршрут к хосту A перераспределяется от протокола X к Y с вручную настроенной метрикой 1. Маршрутизатор E предпочитает маршрут через C с общей метрикой (внутренней и внешней) 2. Маршрутизатор D предпочитает маршрут через E с общей метрикой 3. Маршрутизатор D перераспределяет маршрут к хосту A в протокол X с существующей метрикой 3. Маршрутизатор B имеет два маршрута к A: один со стоимостью 10 (напрямую) и один с метрикой от 4 до D. Маршрутизатор B выбирает путь через D, создавая петлю маршрутизации. И так далее (цикл будет продолжаться, пока каждый протокол не достигнет своей максимальной метрики). Этот пример немного растянут для создания цикла маршрутизации в тривиальной сети, но все циклы маршрутизации, вызванные перераспределением, схожи по своей структуре. В этом примере важно, что была потеряна не только топологическая информация (маршрут к A был суммирован, что, с точки зрения E, было непосредственно связано с C), но и метрическая информация (исходный маршрут со стоимостью 11 перераспределяется в протокол Y со стоимостью 1 в C). Существует ряд общих механизмов, используемых для предотвращения формирования этой петли маршрутизации. Протокол маршрутизации всегда может предпочесть внутренние маршруты внешним. В этом случае, если B всегда предпочитает внутренний маршрут A внешнему пути через D, петля маршрутизации не образуется. Многие протоколы маршрутизации будут использовать предпочтение упорядочивания при установке маршрутов в локальную таблицу маршрутизации (или базу информации о маршрутизации, RIB), чтобы всегда отдавать предпочтение внутренним маршрутам над внешними. Причина этого предпочтения состоит в том, чтобы предотвратить образование петель маршрутизации этого типа. Фильтры можно настроить так, чтобы отдельные пункты назначения не перераспределялись дважды. В этой сети маршрутизатор D может быть настроен для предотвращения перераспределения любого внешнего маршрута, полученного в протоколе Y, в протокол X. В ситуации, когда есть только два протокола (или сети) с перераспределенной между ними информацией плоскости управления, это может быть простым решением. В случаях, когда фильтры необходимо настраивать для каждого пункта назначения, управление фильтрами может стать трудоемким. Ошибки в настройке этих фильтров могут либо привести к тому, что некоторые пункты назначения станут недоступными (маршрутизация черных дыр), либо приведет к образованию петли, потенциально вызывающей сбой в плоскости управления. Маршруты могут быть помечены при перераспределении, а затем отфильтрованы на основе этих тегов в других точках перераспределения. Например, когда маршрут к A перераспределяется в протокол Y в C, маршрут может быть административно помечен некоторым номером, например, 100, чтобы маршрут можно было легко идентифицировать. На маршрутизаторе D можно настроить фильтр для блокировки любого маршрута, помеченного тегом 100, предотвращая образование петли маршрутизации. Многие протоколы позволяют маршруту нести административный тег (иногда называемый сообществом или другим подобным именем), а затем фильтровать маршруты на основе этого тега.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59