По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Когда вы входите на финансовый или медицинский веб-сайт и входите в систему, вы должны ожидать, что полученная вами информация не будет перехвачена и прочитана кем-либо на пути между вашим компьютером и сервером. Менее очевидная, но не менее важная проблема заключается в том, что информация, которую вы отправляете на сайт, не должна быть открыта для изменения во время ее передачи по сети. Но как это можно обеспечить? Это две области, для решения которых можно использовать транспортную безопасность. В этой серии статей будет рассмотрено пространство проблем транспортной безопасности, а затем будет проведено исследование нескольких видов решений, включая шифрование. Наконец, в этой серии статей мы рассмотрим спецификацию безопасности транспортного уровня (TLS) в качестве примера шифрования транспортного уровня. Проблемное пространство Безопасность обычно решает одну из четырех проблем: подтверждение того, что данные не были изменены при передаче, предотвращение доступа к информации никому, кроме предполагаемого получателя, защита конфиденциальности людей, использующих сеть, и подтверждение того, что информация была доставлена. Вторая и третья проблемы, предотвращение несанкционированного доступа к данным при их передаче по сети и защита конфиденциальности пользователей, являются связанными проблемами, но будут рассматриваться отдельно в следующих разделах. Последняя отмеченная проблема, проблема доказательства обхода (которая аналогична проблеме доказательства работы, которая встречается в других контекстах информационных технологий), здесь не рассматривается, поскольку это область активных исследований с небольшим количеством развернутых систем. Проверка данных Если вы войдете на сайт своего банка и переведете 100 рублей с одного счета на другой, вы, скорее всего, будете расстроены, если на самом деле сумма перевода составит 1000 рублей или если номера счетов будут изменены, так что 100 рублей окажутся на чьем-то другом счете. Существует ряд других ситуаций, когда необходимо убедиться, что передаваемые данные совпадают с полученными, например: Если вы покупаете пару синих туфель, вы не хотите, чтобы вместо них доставили комплект красных. Если ваш врач дает вам рецепт на лекарство от изжоги (вероятно, вызванной стрессом от работы сетевым инженером), вы не хотите, чтобы вам доставляли лекарство от артрита (вероятно, из-за того, что вы печатаете так много документов и книг). Существует множество ситуаций, когда полученные данные должны совпадать с переданными, а отправитель и/или получатель должны быть поддающимися проверке. Защита данных от проверки Примеры защиты данных, приведенные выше, позволяют сделать еще один шаг вперед: вы не хотите, чтобы кто-то видел номер вашего счета, рецепт или другую информацию, когда она передается по сети. Номера счетов, пароли и любая личная информация (PII) очень важны, поскольку эти виды информации могут быть использованы для взлома счетов с целью кражи денег или даже для кражи конфиденциальной информации. Как можно защитить такую информацию? Основным средством защиты, используемым для предотвращения неавторизованных пользователей (или злоумышленников), является шифрование. Защита конфиденциальности пользователей Конфиденциальность - это не просто приятно особенность глобального интернета, это требование пользователей доверять системе. Это верно и для локальных сетей, если пользователи считают, что за ними каким-то образом шпионят, они вряд ли будут использовать сеть. Скорее всего, они будут использовать sneakernet, распечатывая информацию и перенося ее вручную, а не передавая по сети. Хотя многие люди считают, что конфиденциальность не является обоснованной проблемой, в этой области существует много обоснованных проблем. Например, в области управления информацией часто говорят: "Знание - сила". Информация о компьютере или сети дает вам определенную власть над компьютером, сетью или системой. Например, предположим, что банк настраивает автоматическое резервное копирование для определенной таблицы базы данных; когда остатки на счете, хранящемся в таблице, изменяются на определенную величину, резервное копирование запускается автоматически. Это может показаться вполне разумным вариантом резервного копирования, но оно требует исчерпания некоторого объема данных. Примечание: исчерпание данных - это информация о физических движениях людей или информация, которая может быть использована для вывода о том, что делают эти люди или эта информация. Например, если вы каждое утро едете на работу одним и тем же маршрутом, кто-то может сделать вывод, что после того, как вы проделали какую-то небольшую часть поездки в сочетании со временем суток, вы собираетесь работать. Такие же типы данных существуют и в сетевом мире; если каждый раз, в определенное время суток, через сеть передается определенный фрагмент данных определенного размера, и он случайно совпадает с определенным событием, таким как перевод денег между двумя счетами, то, когда появляются эти конкретные данные, передача должна иметь место. Просмотр, история электронной почты и другие действия в интернете-все это приводит к исчерпанию данных, которые иногда могут быть использованы для вывода содержимого потока данных, даже если поток зашифрован. Уязвимость здесь заключается в следующем: если злоумышленник создает резервную копию вместе с изменением значения учетной записи, этот человек будет точно знать, какова модель активности учетной записи. Достаточное количество таких подсказок можно превратить в целый набор планов атаки. То же самое верно и в отношении людей; знание о людях может дать вам некоторую способность влиять на людей в определенных направлениях. Хотя влияние на людей не так велико, как влияние на машины, передача власти одному человеку над другим всегда несет в себе моральные последствия, с которыми нужно обращаться осторожно. Область решений Хотя каждое решение проблем безопасности и конфиденциальности, описанных в предыдущих разделах, обычно включает в себя сложные математические вычисления, в этом разделе будут (попытаемся) описать решения без математических расчетов. Шифрование Шифрование берет блок информации (открытый текст) и кодирует его, используя некоторую форму математической операции, чтобы скрыть текст, в результате чего получается зашифрованный текст. Чтобы восстановить исходный простой текст, математические операции должны быть отменены. Хотя шифрование часто рассматривается как математическая конструкция, иногда проще начать думать о нем как о шифре подстановки с таблицей подстановок, которая меняется в зависимости от используемого ключа. Рисунок 1 иллюстрирует это. Кстати, про типы шифрования в России и за рубежом можно почитать тут. На рисунке 1 показан четырехбитовый блок информации - тривиальный пример, но все же полезный для демонстрации. Процесс шифрования концептуально представляет собой серию прямых замен: Рис. 1 Блок шифрования как таблица подстановки Если 0001 находится в исходном блоке данных (открытый текст) и используется ключ 1, то 1010 подставляется в фактический передаваемый поток (зашифрованный текст). Если 0010 обнаружен в открытом тексте и используется ключ 1, то 0100 подставляется в передаваемые данные. Если 0001 найден в открытом тексте и используется ключ 2, то в передаваемые данные подставляется 0000. Если 0110 находится в открытом тексте и используется ключ 2, то в передаваемые данные подставляется 1001. Процесс замены одного блока бит на другой называется преобразованием. Эти преобразования должны быть симметричными: они должны не только позволять шифрование открытого текста в зашифрованный текст, но они также должны позволять восстанавливать открытый текст (незашифрованный) из зашифрованного текста. В таблице подстановок этот процесс включает поиск ключа на стороне зашифрованного текста таблицы и замену эквивалента открытого текста. Размер таблицы подстановки определяется размером блока или количеством битов, кодируемых за один раз. Если, например, используется 128-битный блок, в поисковой таблице должно быть 2128 записей - действительно, очень большое количество. Этот вид пространства все еще можно быстро найти с помощью эффективного алгоритма, поэтому блок должен иметь некоторые другие особенности, кроме просто большого размера. Во-первых, шифротекстовая сторона блока подстановки должна быть как можно более случайной. Чтобы преобразование было идеальным, любой шаблон, найденный в открытом тексте, не должен быть доступен для анализа в результирующем зашифрованном тексте. Выход зашифрованного текста должен выглядеть как можно ближе к случайному набору чисел, независимо от того, какой вход. Во-вторых, блок подстановки должен быть настолько большим, насколько это практически возможно. Чем более случайным и большим является блок подстановки, тем труднее вернуться от открытого и зашифрованного текста к обнаружению используемого шаблона подстановки. Чтобы выполнить brute-force атаку против подстановки с использованием 128-битного размера блока, злоумышленник должен соотнести как можно больше из 2128 записей в блоке открытого текста с 2128 записями в блоке подстановки зашифрованного текста-если информация использует только небольшой (или разреженный) набор возможных записей из исходного 128-битного пространства, практически нет способа сделать корреляцию достаточно быстрой, чтобы сделать такую атаку практичной, учитывая, что шифрующий отправитель достаточно часто меняет свой ключ. Примечание. Когда дело доходит до размера блока, существует закон убывающей доходности; в какой-то момент увеличение размера блока не увеличивает эффективность шифра при сокрытии информации. Плотность лучше всего объяснить на примере. Предположим, что вы используете шифр прямой подстановки в английском языке, где каждая буква заменяется буквой, смещенной на четыре шага в алфавите. В этом виде (тривиального) шифра: Каждая буква А будет заменена буквой Е. Каждая буква B будет заменена буквой F. Каждая буква С будет заменена буквой G. и т.д. Теперь попробуйте зашифровать два разных предложения с помощью этого преобразования: THE SKY IS BLUE == XLI WOC MW FPYI THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG == XLI UYMGO FVSAR JSB NYQTIH SZIV XLI PEDC HSK Для злоумышленника, пытающегося выяснить, как версия предложения с зашифрованным текстом соотносится с версией открытого текста, первое предложение представляет 9 совпадающих пар букв из пространства, содержащего 26 возможных букв. Есть хороший шанс, что вы сможете угадать правильное преобразование - переместитесь на четыре шага вправо - из этого небольшого образца, но возможно, что здесь задействован какой-то "трюк", из-за которого будущие сообщения, зашифрованные с помощью этого преобразования, не будут расшифрованы правильно. Однако второе предложение - это хорошо известный пример предложения, содержащего все возможные буквы английского алфавита. Преобразование может быть проверено на соответствие каждому возможному значению во всем диапазоне ввода и вывода, что делает обнаружение преобразования тривиальным. В этом примере первое предложение будет менее плотным, чем второе. В реальных криптографических системах общая идея состояла бы в том, чтобы использовать всего несколько тысяч возможных символов из 2128 или 2512 возможных символов, что создает гораздо менее плотный набор информации для работы. В какой-то момент плотность становится достаточно низкой, преобразование - достаточно сложным, а зашифрованный текст - достаточно случайным, так что не существует практического способа вычислить взаимосвязь между входом (открытым текстом) и выходом (зашифрованный текст). В реальной жизни блоки замены не вычисляются заранее таким образом. Скорее, для вычисления значения замены в реальном времени используется криптографическая функция. Эти криптографические функции принимают входной размер блока, открытый текст, выполняют преобразование и выводят правильный зашифрованный текст. Ключ - это второй вход, который изменяет выходные данные преобразования, поэтому каждый ключ приводит к тому, что преобразование производит разные выходные данные. Если размер ключа равен 128 битам, а размер блока равен 256 битам, существует 2128 × 2256 возможных выходных комбинаций из преобразования. Рисунок 2 иллюстрирует это. На рисунке 2 каждая таблица подстановки представляет собой размер блока. Если размер блока составляет 256 бит, то в каждой таблице имеется 2256 возможных замен. Каждый ключ создает новую таблицу, поэтому, если ключ составляет 128 бит, то существует 2128 возможных таблиц. Есть два основных способа атаковать такую систему шифрования. Первый способ атаковать этот тип системы шифрования-попытаться сопоставить каждое возможное входное значение с каждым возможным выходным значением, раскрывая всю таблицу подстановок. Если входные данные представляют только небольшой набор возможных входных данных (таблица используется редко или, точнее, представляет собой разреженный массив), эта задача практически невыполнима. Если пользователь меняет свой ключ, а следовательно, и конкретную таблицу среди возможного набора таблиц, достаточно часто, нет никакого способа выполнить это сопоставление быстрее, чем изменяется ключ. Примечание. Даже в больших блоках, объединенных с преобразованиями, все еще есть потенциальные слабые места, позволяющие получить почти случайный результат-другими словами, даже если преобразование близко к идеалу. Если вы соберете 23 человека в одной комнате, есть большая вероятность, что у двух из них будет один и тот же день рождения-но это кажется иррациональным, потому что есть 365 потенциальных дней (не считая високосные года), в которые человек может родиться. Причина несоответствия между тем, что должно произойти, и тем, что происходит, заключается в следующем: в реальном мире дни рождения людей группируются по очень небольшому числу дней в течение года. Таким образом, входные данные представляют собой очень плотное "пятно" в умеренно большом наборе возможных значений. Когда это происходит, разреженность данных может работать против системы шифрования. Если небольшой набор данных повторяется в большом наборе на регулярной основе, злоумышленник может сосредоточиться только на наиболее часто используемых заменах и потенциально обнаружить содержимое сообщения, достаточное для восстановления большей части смысла. Второй способ атаковать систему шифрования такого типа - атаковать само преобразование - криптографическую функцию. Помните, что эти большие таблицы подстановки часто невозможно сгенерировать, сохранить и транспортировать, поэтому используется некоторая форма криптографической функции, чтобы принимать блок открытого текста в качестве входных данных и генерировать блок зашифрованного текста в качестве выходных данных. Если бы вы могли обнаружить эту функцию преобразования, то вы могли бы вычислить вывод таким же образом, как передатчик и приемник, и расшифровать открытый текст в реальном времени. В реальном мире эта проблема усложняется из-за: Принцип Керкхоффа, согласно которому само преобразование не должно быть секретом. Скорее, только ключ, используемый для выбора таблицы из возможных, должен храниться в секрете. По крайней мере, некоторый открытый и зашифрованный текст иногда может быть восстановлен из текущей зашифрованной передачи данных по различным причинам-возможно, ошибка, или, возможно, смысл шифрования заключается в проверке текста, а не в том, чтобы не дать тексту быть прочитанным. Учитывая эти ограничения, следует учитывать несколько ключевых моментов: Сложность вычисления ключа из открытого текста, зашифрованного текста и криптографической функции (преобразования) должна быть очень высокой. Случайность вывода криптографической функции должна быть очень высокой, чтобы снизить вероятность успешных brute-force атак - просто перебора всех возможных ключей в пространстве. Ключевое пространство должно быть большим, опять же, чтобы предотвратить успешные brute-force атаки. Качество криптографической функции определяется способностью функции выдавать максимально близкий к случайному результату практически любой вход таким образом, чтобы злоумышленник не мог обнаружить, какой ключ используется, даже если у них есть как открытый текст, так и зашифрованный текст. Таким образом, криптографические функции обычно используют ту или иную форму одной из самых сложных для вычисления задач. В частности, часто используется вычисление множителей очень больших простых чисел. Что произойдет, если вы используете 128-битный блок и у вас есть 56 бит данных для транспортировки? В этой ситуации наиболее естественным образом было бы дополнить открытый текст некоторым числом: скорее всего, всеми нулями или единицами. Качество вывода в некоторой степени зависит от разреженности ввода, чем меньше диапазон чисел используется как вход, тем более предсказуемым будет выход криптографической функции. В этом случае важно использовать заполнение, максимально приближенное к случайному. Существует целая область изучения того, как дополнять блоки открытого текста, чтобы "помочь" криптографической функции создавать зашифрованный текст, максимально приближенный к случайному. Несколько раундов шифрования Одну и ту же информацию можно обрабатывать с помощью криптографической функции несколько раз. Например, если у вас есть 128-битный блок и 128-битный ключ, вы можете: Возьмите открытый текст и с помощью ключа вычислите зашифрованный текст. Назовите это ct1. Возьмите ct1 и с помощью ключа вычислите шифротекст второго раунда; назовите это ct2. Возьмите ct2 и, используя ключ, вычислите шифротекст третьего раунда; назовите это ct3. Фактический передаваемый шифротекст будет последним ct3. К чему приводит этот процесс? Помните, что качество процесса шифрования связано со случайностью выхода по отношению к входу. Каждый раунд во многих ситуациях лишь немного увеличивает случайность. В этом процессе есть точка уменьшения отдачи; обычно после третьего раунда данные не становятся "более случайными", и, следовательно, больше раундов, по сути, просто тратят вычислительную мощность и время для очень небольшого выигрыша. Криптография с открытым и закрытым ключом Существует класс криптографических функций, которые могут преобразовывать открытый текст в зашифрованный текст и обратно, используя два разных ключа. Эта возможность полезна, когда вы хотите иметь возможность зашифровать блок данных одним ключом и позволить кому-то другому расшифровать данные, используя другой ключ. Ключ, который вы держите в секрете, называется закрытым ключом, а ключ, который вы передаете другим или публикуете, называется открытым ключом. Например, чтобы доказать, что вы являетесь фактическим отправителем конкретного файла, вы можете зашифровать файл своим закрытым ключом. Теперь любой человек с вашим открытым ключом может расшифровать файл, который мог быть отправлен только вами. Обычно вы не шифруете весь блок данных своим закрытым ключом (на самом деле большинство систем, использующих пары ключей, спроектированы так, что вы не можете этого сделать). Скорее, с помощью вашего закрытого ключа создается подпись, которая может быть проверена с помощью вашего открытого ключа. Чтобы убедиться, что только человек, которому вы отправляете данные, может что-то прочитать, вы можете зашифровать некоторые данные своим открытым ключом, опубликовать их, и только человек с правильным закрытым ключом может их расшифровать. Такие системы называют криптографией с открытым ключом (иногда названия, которые выбирают инженеры, возможно, слишком очевидны), или асимметричной криптографией. В криптографии с открытым ключом открытый ключ часто "выпускается на волю"; это то, что может найти любой, у кого есть доступ к ключевому серверу или другому источнику. Альтернативой криптографии с открытым ключом является криптография с симметричным ключом. В криптографии с симметричным ключом отправитель и получатель используют один ключ, который используется как для шифрования, так и для расшифровки данных (общий секрет). Учитывая, что общие секреты (очевидно) сложно создавать и использовать, почему вообще используется криптография с симметричным ключом? При выборе между симметричной криптографией и криптографией с открытым / закрытым ключом необходимо учитывать два основных компромисса: Сложность обработки: системы криптографии с открытым ключом обычно требуют гораздо большей вычислительной мощности для шифрования и расшифровки передаваемых данных. Системы с симметричными ключами, как правило, намного проще разрабатывать и развертывать, не требуя больших вычислительных мощностей и времени. Из-за этого криптография с открытым ключом часто используется для шифрования очень небольших объемов данных, таких как закрытый ключ. Безопасность: криптография с открытым ключом обычно требует отчасти уникального набора механизмов математического преобразования. Системы с симметричным ключом, как правило, имеют более широкий диапазон доступных преобразований, которые также являются более сложными и, следовательно, более безопасными (они обеспечивают большую случайность на выходе и, следовательно, их труднее взломать). С учетом этих компромиссов и реальных требований есть место для обоих типов систем.
img
Стандарт 802.11 поддерживал только один способ защиты данных, передаваемых по WI-FI, от перехвата- это WEP. В прошлых статьях мы узнали, что WEP является устаревшим средством защиты данных и его использование не рекомендовано. Какие же еще существуют способы шифрования и защиты данных при передаче по Wi-Fi? TKIP В свое время WEP применялся на беспроводном оборудовании клиента и точки доступа, но он был сильно уязвим. На смену WEP пришел протокол целостности временного ключа (Temporal Key Integrity Protocol (TKIP). TKIP добавляет следующие функции безопасности на устаревшем оборудовании и при использовании базового шифрования WEP: MIC: этот эффективный алгоритм шифрования добавляет хэш-значение к каждому кадру в качестве проверки целостности сообщения, чтобы предотвратить подделку. Time stamp: метка времени добавляется в MIC, чтобы предотвратить атаки, которые пытаются повторно использовать или заменить кадры, которые уже были отправлены. MAC-адрес отправителя: MIC также включает MAC-адрес отправителя в качестве доказательства источника кадра. Счетчик последовательностей TKIP: эта функция обеспечивает запись кадров, отправленных по уникальному MAC-адресу, чтобы предотвратить использование повторение кадров в качестве атаки. Алгоритм смешивания ключей: этот алгоритм вычисляет уникальный 128-битный WEP-ключ для каждого кадра. Более длинный вектор инициализации (IV): размер IV удваивается с 24 до 48 бит, что делает практически невозможным перебор всех ключей WEP путем использования метода вычисления brute-force. До 2012 года протокол шифрования TKIP был достаточно безопасным методом защиты данных. Он применялся до тех пор, пока не появился стандарт 802.11i. Злоумышленники не оставили в стороне протокол TKIP. Было создано много алгоритмов атак против TKIP, поэтому его тоже следует избегать, если есть более лучший метод защиты данных в беспроводных сетях. CCMP Протокол Counter/CBC-MAC (CCMP) считается более безопасным, чем TKIP. CCMP состоит из двух алгоритмов: AES шифрование в режиме счетчика Cipher Block Chaining Message Authentication Code (CBC-MAC) используется в качестве проверки целостности сообщения (MIC) Расширенный стандарт шифрования (AES)- это текущий алгоритм шифрования, принятый Национальным институтом стандартов и технологий США (NIST) и правительством США и широко используемый во всем мире. Другими словами, AES является открытым, общедоступным и представляет собой самый безопасный метод шифрования на данный момент времени. Для использования протокола защиты CCMP, необходимо убедиться, что устройства и точки доступа поддерживают режим счетчика AES и CBC-MAC на аппаратном уровне. CCMP нельзя использовать на устаревших устройствах, поддерживающих только WEP или TKIP. Как определить, что устройство поддерживает CCMP? Ищите обозначение WPA2. GCMP Протокол Galois/Counter Mode Protocol (GCMP)- это надежный набор шифрования, который является более безопасным и эффективным, чем CCMP. GCMP состоит из двух алгоритмов: AES шифрование в режиме счетчика Galois Message Authentication Code (GMAC) используется в качестве проверки целостности сообщения (MIC) GCMP используется в WPA3. WPA, WPA2 и WPA3 На сегодняшний день существует три метода шифрования WPA: WPA, WPA2 и WPA3. Беспроводные технологии тестируются в официальных испытательных лабораториях в соответствии со строгими критериями. Альянс Wi-Fi представил первое поколение сертифицированную WPA (известную просто как WPA, а не WPA1), в то время как поправка IEEE 802.11i для совершенных методов обеспечения безопасности все еще разрабатывалась. WPA была основана на части стандарта 802.11i и включала аутентификацию 802.1x, TKIP и метод динамического управления ключами шифрования. Как только 802.11i был ратифицирован и опубликован, WiFi Alliance включил его в полном объеме в свою сертификацию WPA Version 2 (WPA2). WPA2 основан на превосходных алгоритмах AES CCMP, а не на устаревшем TKIP от WPA. Очевидно, что WPA2 был разработан взамен WPA. В 2018 году Альянс Wi-Fi представил версию WPA3 в качестве замены WPA2, добавив несколько важных и превосходных механизмов безопасности. WPA3 использует более сильное шифрование AES с помощью протокола Galois/Counter Mode Protocol (GCMP). Он также использует защищенные кадры управления (PMF) для защиты кадров управления 802.11 между точкой доступа и клиентами, чтобы предотвратить несанкционированный доступ и нарушение нормальной работы BSS. Обратите внимание, что все три версии WPA поддерживают два режима проверки подлинности клиента: предварительный общий ключ (PSK) или 802.1x, в зависимости от масштаба развертывания. Они также известны как личный режим и режим предприятия, соответственно.
img
В 2013 году была опубликована версия OSPF для маршрутизации IPv6. Известный как OSPFv3, он был первоначально указан в RFC 2740, который позже был заменен на RFC 5340 и обновлен более поздними стандартами. Маршаллинг данных в OSPF Как и многие другие протоколы, разработанные на заре проектирования сетей, OSPF был разработан для минимизации вычислительной мощности, памяти и полосы пропускания, необходимых для передачи информации о маршрутизации IPv4 по сети. Два конкретных выбора, сделанных на ранних этапах процесса проектирования OSPF, отражают эту озабоченность по поводу использования ресурсов: OSPF использует поля фиксированной длины для упорядочивания данных, а не TLV. Это экономит накладные расходы на перенос дополнительных метаданных в виде заголовков Type Length Value (TLV), снижает требования к обработке, позволяя сопоставлять структуры данных фиксированного размера в памяти с пакетами по мере их приема с канала связи, и уменьшает размер данных OSPF на линии. OSPF разбивает базу данных топологии на несколько типов данных, а не полагается на один LSP с TLV. Это означает, что каждый вид информации - доступность, топология и т. д. - передается в уникальном формате пакета. Каждый тип информации, которую OSPF может нести, переносится в разном типе Link State Advertisement (LSA). Вот некоторые из наиболее примечательных типов LSA: Тип 1: код 0x2001, Router LSA Тип 2: код 0x2002, Network LSA Тип 3: код 0x2003, Inter-Area Prefix LSA Тип 4: код 0x2004, Inter-Area Router LSA Тип 5: код 0x4005, AS-external LSA Тип 7: код 0x2007, Type-7 (NSSA) LSA Существует ряд других типов LSA, включая непрозрачные данные, членство в группе многоадресной рассылки и LSA с лавинной рассылкой (например, для одного соседа, одного канала или одного домена лавинной рассылки). Каждый маршрутизатор OSPF генерирует ровно один Router LSA (тип 1). Этот LSA описывает любых соседей, примыкающих к объявляемому маршрутизатору, а также любые подключенные достижимые пункты назначения. Состояние каналов связи на этих соседей и пунктов назначения определяется из объявления соседей и пункта назначения. Несмотря на фразу «состояние канала», каналы не объявляются как отдельная «вещь» (это часто вызывает путаницу). Если Router LSA становится слишком большим, чтобы поместиться в один IP-пакет (из-за MTU канала), он будет разделен на несколько IP-фрагментов для передачи от маршрутизатора к маршрутизатору. Каждый маршрутизатор повторно собирает весь Router LSA перед его локальной обработкой и лавинно рассылает весь Router LSA, если он изменяется. OSPF также использует несколько разных типов пакетов - они не совпадают с типами LSA. Скорее, их можно рассматривать как разные «службы» в OSPF или, возможно, как разные «номера портов», выполняемые поверх протокола User Datagram Protocol (UDP) или протокола Transmission Control Protocol (TCP). Hello - это тип 1. Они используются для обнаружения и сохранения соседей. Database Descriptor (DBD) относится к типу 2. Они используются для описания таблицы локальной топологии. Link State Request (LSR) относится к типу 3. Они используются для запроса определенных объявлений состояния канала от соседнего маршрутизатора. Link State Update (LSU) относится к типу 4. Они используются для передачи объявлений состояния канала. Link State Acknowledgment - это тип 5. Это просто список заголовков LSA. Любой LSA, указанный в этом пакете, подтверждается как полученный передающим маршрутизатором. Обнаружение соседей и топологии В качестве протокола состояния канала OSPF должен гарантировать, что каждый маршрутизатор в пределах области (flooding domain) имеет одну и ту же базу данных для расчета loop-free путей. Любое изменение в базе данных общей топологии может привести к возникновению зацикливания маршрутизации, который будет длиться до тех пор, пока существует изменение в базе данных общей топологии. Таким образом, одной из целей формирования соседей OSPF является обеспечение надежной flooding рассылки информации о топологии через сеть. Вторая причина формирования соседей OSPF - обнаружение топологии сети путем определения того, какие маршрутизаторы находятся рядом с локальным маршрутизатором. На рисунке 1 показан процесс формирования соседей OSPF. На рисунке 1: B отправляет пакет приветствия к A. Поскольку приветствие B содержит пустой список видимых соседей, A переводит B в состояние инициализации и добавляет B в список видимых соседей. A передает приветствие B в списке видимых соседей. B получает приветствие от A и отправляет приветствие с A в списке видимых соседей. A получает это приветствие. Поскольку сам A находится в списке соседей, A помещает B в двустороннее состояние. Это означает, что A проверил наличие двусторонней связи между собой и B. Если по этой линии избираются DR и BDR, то выборы происходят после шага 5. Как только выборы завершены, DR и BDR переводятся в состояние exstart. Во время этого состояния ведущий и ведомый выбираются для обмена DBDS и LSA. По сути, мастер управляет потоком DBDS и LSA между новыми соседними маршрутизаторами. Соседние маршрутизаторы на канале point-to-point технически переходят непосредственно в состояние full state в этой точке. B переведен в состояние обмена. A отправляет B набор DBD с описанием своей базы данных. B отправляет набор DBD с описанием своей базы данных в A. A отправляет запрос состояния канала B для каждого LSA, описанного B, и A не имеет его копии в своей локальной таблице топологии. B отправляет LSA для каждого запроса Link State (LS) от A. 11. Как только базы данных синхронизируются, B переводится в full state. Процесс формирования соседей OSPF проверяет MTU на обоих концах линии связи, передавая MTU исходящего интерфейса в hello сообщении. Если два hello-пакета не совпадают по размеру MTU, два маршрутизатора OSPF не образуют смежности. Надежная лавинная рассылка. OSPF должен не только гарантировать завершение первоначального обмена информацией о топологии, но также гарантировать, что текущие изменения в топологии сети будут переданы на каждый маршрутизатор во flooding domain. На рисунке 2 показан заголовок LSA OSPF. Изучение этого заголовка поможет нам понять, как OSPF надежно массово рассылает информацию о топологии и доступности через сеть. На рисунке 2: LS Age - это (примерно) количество секунд с момента создания Link State Advertisement. Это число идет увеличивается, а не уменьшается. Когда LS Age достигает значения MAXAGE (на любом маршрутизаторе, а не только на исходном маршрутизаторе), маршрутизатор увеличивает порядковый номер на 1, устанавливает для LS Age максимальное число и повторно загружает LSA по всей сети. Это позволяет удалить старую информацию о топологии и доступности, которая не обновлялась некоторое время. Маршрутизатор, который инициирует какой-либо конкретный LSA, обновит свои LSA за некоторое количество секунд до того, как это поле LSA Age достигнет максимума- это интервал обновления LS. Link State Identifier - это уникальный идентификатор, присвоенный исходным маршрутизатором для описания этого LSA. Обычно это адрес канала или какой-либо адрес локального уровня канала (например, Ethernet Media Access Control (MAC-адрес). Advertising Router - это идентификатор маршрутизатора-отправителя. Его часто путают с IP-адресом, поскольку он часто является производным от локально настроенного IP-адреса, но это не IP-адрес. Link State Sequence Number указывает версию LSA. Как правило, более высокие числа означают более новые версии, хотя существуют более ранние версии OSPF, в которых используется круговое числовое пространство, а не абсолютно увеличивающееся. Реализации, которые используют абсолютно увеличивающееся числовое пространство, перезапускают процесс OSPF, если достигнут конец числового пространства. Link State Checksum - это контрольная сумма, вычисляемая для LSA, используемая для обнаружения ошибок при передаче или хранении информации. Рисунок 3 используется для изучения процесса flooding рассылки. На рисунке 3: Линия связи на 2001: db8: 3e8: 100 :: / 64 настроена, запущена, подключена и т. д. A перестраивает свой Router LSA (тип 1), чтобы включить эту новую информацию о доступности, упаковывает его в LSU (который может быть фрагментирован при размещении в IP-пакеты) и лавинно рассылает его B. B получает это LSA и подтверждает его получение подтверждением состояния канала (link state acknowledgment). A повторно отправит LSA, если B не подтвердит его достаточно быстро. Теперь B проверит свою таблицу топологии, чтобы определить, является ли этот LSA новым или копией уже имеющегося. B определяет это в первую очередь путем изучения порядкового номера, включенного в сам LSA. Если это новый (или обновленный) LSA, B инициирует тот же процесс для лавинной рассылки измененного LSA в C. Подведение итогов об OSPF OSPF можно описать как: Изучение доступных пунктов назначения через конфигурацию и локальную информацию (проактивный протокол) Использование лавинной рассылки для синхронизации базы данных в каждой промежуточной системе в домене лавинной рассылки (протокол состояния канала) Расчет путей без петель с использованием алгоритма SPF Дейкстры Проверка двусторонней связи при формировании соседей путем переноса списка «видимых соседей» в своих пакетах приветствия. Проверка MTU при формировании смежности путем переноса MTU в приветственном пакете OSPF широко используется в малых и крупных сетях, включая розничную торговлю, поставщиков услуг, финансовые и многие другие предприятия. Общие элементы OSPF и IS-IS В предыдущих лекциях были рассмотрены аспекты, отличающие OSPF и IS-IS друг от друга. Однако есть ряд вещей, которые OSPF и IS-IS реализовали достаточно схожими способами, чтобы рассматривать их решения как простые варианты. К ним относятся обработка каналов с множественным доступом, концепция Shortest Path Tree и способ way two-way. Каналы с множественным доступом Каналы с множественным доступом, такие как Ethernet, - это каналы, по которым подключенные устройства «совместно используют» доступную полосу пропускания, и каждое устройство может отправлять пакеты напрямую любому другому устройству, подключенному к тому же каналу. Каналы с множественным доступом создают особые проблемы для протоколов, которые синхронизируют базу данных по каналу. Рассмотрим рисунок 3 для понимания. Один из вариантов, который протокол может использовать при работе по каналу с множественным доступом, - это просто сформировать смежности, как это обычно происходит по каналу «точка-точка» (point-to-point). Например, на рисунке 3: A может образовывать смежность с B, C и D. B может образовывать смежность с A, C и D. C может образовывать смежность с A, B и D. D может образовывать смежность с A, B и C Если используется этот шаблон формирования смежности, когда A получает новый фрагмент LSP (IS-IS) или LSA (OSPF) от некоторого маршрутизатора, не подключенного к совместно используемому каналу: A передаст новый фрагмент или LSA по отдельности B, C и D. Когда B получает фрагмент или LSA, он передаст новый фрагмент или LSA в C и D отдельно. Когда C получает фрагмент или LSA, он передает новый фрагмент или LSA D. Учитывая передачу каждого фрагмента или LSA, а также следующий CSNP или подтверждение, чтобы гарантировать синхронизацию локальной базы данных на каждом маршрутизаторе, большое количество пакетов должно пересекать совместно используемый канал, чтобы гарантировать синхронизацию базы данных каждого устройства. Чтобы уменьшить переполнение каналов множественного доступа, IS-IS и OSPF выбирают одно устройство, которое отвечает за обеспечение того, чтобы каждое устройство, подключенное к каналу, имело синхронизированную базу данных. На рисунке 3 для IS-IS: Одно устройство выбрано для управления лавинной рассылкой по каналу. В IS-IS это устройство называется выделенной промежуточной системой (Designated Intermediate System - DIS). Каждое устройство с новой информацией о состоянии канала отправляет фрагмент на адрес многоадресной рассылки, чтобы каждое устройство в общем канале получило его. Ни одно из устройств, подключенных к каналу, не отправляет никаких подтверждений при получении обновленного фрагмента. DIS регулярно отправляет копию своего CSNP на один и тот же адрес многоадресной рассылки, поэтому каждое устройство в канале множественного доступа получает его копию. Если какое-либо устройство на общем канале обнаружит, что в нем отсутствует какой-то конкретный фрагмент, на основе описания базы данных DIS в CSNP, оно отправит PSNP в канал, запрашивая недостающую информацию. Если какое-либо устройство в общем канале обнаружит, что у него есть информация, которой нет у DIS, на основе описания базы данных DIS в CSNP, оно перенаправит недостающий фрагмент в канал. Таким образом, новая информация о состоянии канала передается по линии минимальное количество раз. На рисунке 3 для OSPF: Для управления лавинной рассылкой по каналу выбирается одно устройство, называемое назначенным маршрутизатором (Designated Router - DR). Также выбирается резервное устройство, называемое резервным назначенным маршрутизатором (Backup Designated Router - BDR). Каждое устройство с новой информацией о состоянии канала пересылает ее на специальный адрес многоадресной рассылки, контролируемый DR и BDR (маршрутизаторами, работающими только как DR). DR получает этот LSA, проверяет его, чтобы определить, содержит ли он новую информацию, а затем повторно загружает его на многоадресный адрес, который прослушивают все маршрутизаторы OSPF на канале (все маршрутизаторы SPF). Однако выбор DIS или DR не влияет только на лавинную передачу информации по каналу множественного доступа. Это также влияет на способ вычисления SPF через канал. Рисунок 4 показывает это. На рисунке 4 A выбран в качестве DIS или DR для схемы множественного доступа. A не только гарантирует, что каждое устройство в канале имеет синхронизированную базу данных, но также создает псевдоузел или p-узел и объявляет его, как если бы это было реальное устройство, подключенное к сети. Каждый из маршрутизаторов, подключенных к совместно используемому каналу, объявляет о возможности подключения к p-узлу, а не к каждой из других подключенных систем. В IS-IS A создает LSP для p-узла. Этот p-узел объявляет канал с нулевой стоимостью обратно каждому устройству, подключенному к каналу множественного доступа. В OSPF A создает Network LSA (тип 2). Без этого p-узла сеть выглядит как full mesh (полная сетка) для других промежуточных систем в домене лавинной рассылки, как показано в левой части рисунка 4. С p-узлом сеть выглядит как hub-and-spoke с p-узлом в качестве концентратора. Каждое устройство объявляет канал на p-узел, при этом стоимость канала устанавливается равной стоимости локального интерфейса для совместно используемого канала. В свою очередь p-узел возвращает канал с нулевой стоимостью обратно на каждое устройство, подключенное к общему каналу. Это снижает сложность вычисления SPF для крупномасштабных каналов с множественным доступом. Концептуализация связей, узлов и достижимости в протоколах состояний каналов Один сбивающий с толку аспект протоколов состояния каналов - это то, как узлы, каналы и достижимость взаимодействуют друг с другом. Рассмотрим рисунок 5. И в OSPF, и в IS-IS узлы и каналы используются как Shortest Path Tree, как показано более темными сплошными линиями. Пунктирные линии показывают, как информация о доступности прикрепляется к каждому узлу. Каждый узел, подключенный к конкретному достижимому пункту назначения, объявляет пункт назначения - не только один из двух узлов, подключенных к каналу точка-точка, но и оба. Почему так? Основная причина в том, что это просто самое простое решение для объявления доступных мест назначения. Если вы хотите создать протокол маршрутизации, который объявлял бы каждое достижимое назначение только как подключенное к одному устройству, вам нужно было бы найти способ выбрать, какое из подключенных устройств должно объявлять достижимое назначение. Кроме того, если выбранное устройство выйдет из строя, то какое-то другое устройство должно взять на себя объявление достижимого пункта назначения, что может занять время и негативно повлиять на конвергенцию. Наконец, позволяя каждому устройству объявлять о доступности для всех подключенных пунктов назначения, вы фактически можете найти кратчайший путь к каждому пункту назначения. Проверка двустороннего подключения в SPF Двусторонняя связь является проблемой для плоскостей управления в двух разных местах: между соседними устройствами и при вычислении путей без петель через сеть. И IS-IS, и OSPF также обеспечивают двустороннюю связь при вычислении путей без петель. Существенным элементом является проверка обратной связи. Рисунок 6 используется для демонстрации этого. На рисунке 6 направление каждого звена обозначено стрелкой (или набором стрелок). Связь [A,B] является однонаправленной по отношению к A. Остальные связи являются двусторонними (двунаправленными). При вычислении SPF D будет делать следующее: При обработке информации о состоянии связи C обратите внимание, что C утверждает, что он подключен к B. D найдет информацию о состоянии связи B и проверит, чтобы убедиться, что B также утверждает, что он подключен к C. В этом случае B действительно утверждает, что подключен к C, поэтому D будет использовать канал [B, C]. При обработке информации о состоянии связи B обратите внимание, что B утверждает, что он подключен к A. Однако, изучая информацию о состоянии связи A, D не может найти никакой информации от A, утверждающего, что он подключен к B. Из-за этого D не будет использовать канал [A, B]. Эта проверка обычно выполняется либо до того, как линия связи будет перемещена в TENT, либо до того, как линия связи будет перемещена из TENT в PATH.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59