По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Девятая часть тут. Ни одна среда передачи данных не может считаться совершенной. Если среда передачи является общей, как радиочастота (RF), существует возможность возникновения помех или даже столкновений дейтаграмм. Это когда несколько отправителей пытаются передать информацию одновременно. Результатом является искаженное сообщение, которое не может быть понято предполагаемым получателем. Даже специализированная среда, такая как подводный оптический кабель типа point-to-point (световолновой), может испытывать ошибки из—за деградации кабеля или точечных событий-даже, казалось бы, безумных событий, таких как солнечные вспышки, вызывающие излучение, которое, в свою очередь, мешает передаче данных по медному кабелю. Существует два ключевых вопроса, на которые сетевой транспорт должен ответить в области ошибок: Как можно обнаружить ошибки при передаче данных? Что должна делать сеть с ошибками при передаче данных? Далее рассматриваются некоторые из возможных ответов на эти вопросы. Обнаружение ошибок Первый шаг в работе с ошибками, независимо от того, вызваны ли они отказом носителя передачи, повреждением памяти в коммутационном устройстве вдоль пути или любой другой причиной, заключается в обнаружении ошибки. Проблема, конечно, в том, что когда получатель изучает данные, которые он получает, нет ничего, с чем можно было бы сравнить эти данные, чтобы обнаружить ошибку. Проверка четности — это самый простой механизм обнаружения. Существуют два взаимодополняющих алгоритма проверки четности. При четной проверке четности к каждому блоку данных добавляется один дополнительный бит. Если сумма битов в блоке данных четная—то есть если в блоке данных имеется четное число битов 1, то дополнительный бит устанавливается равным 0. Это сохраняет четное состояние четности блока. Если сумма битов нечетна, то дополнительный бит устанавливается равным 1, что переводит весь блок в состояние четной четности. Нечетная четность использует ту же самую дополнительную битную стратегию, но она требует, чтобы блок имел нечетную четность (нечетное число 1 бит). В качестве примера вычислите четную и нечетную четность для этих четырех октетов данных: 00110011 00111000 00110101 00110001 Простой подсчет цифр показывает, что в этих данных есть 14 «1» и 18 «0». Чтобы обеспечить обнаружение ошибок с помощью проверки четности, вы добавляете один бит к данным, либо делая общее число «1» в недавно увеличенном наборе битов четным для четной четности, либо нечетным для нечетной четности. Например, если вы хотите добавить четный бит четности в этом случае, дополнительный бит должен быть установлен в «0». Это происходит потому, что число «1» уже является четным числом. Установка дополнительного бита четности на «0» не добавит еще один «1» и, следовательно, не изменит, является ли общее число «1» четным или нечетным. Таким образом, для четной четности конечный набор битов равен: 00110011 00111000 00110101 00110001 0 С другой стороны, если вы хотите добавить один бит нечетной четности к этому набору битов, вам нужно будет сделать дополнительный бит четности «1», так что теперь есть 15 «1», а не 14. Для нечетной четности конечный набор битов равен: 00110011 00111000 00110101 00110001 1 Чтобы проверить, были ли данные повреждены или изменены при передаче, получатель может просто отметить, используется ли четная или нечетная четность, добавить число «1» и отбросить бит четности. Если число «1» не соответствует используемому виду четности (четное или нечетное), данные повреждены; в противном случае данные кажутся такими же, как и первоначально переданные. Этот новый бит, конечно, передается вместе с оригинальными битами. Что произойдет, если сам бит четности каким-то образом поврежден? Это на самом деле нормально - предположим, что даже проверка четности на месте, и передатчик посылает 00110011 00111000 00110101 00110001 0 Приемник, однако, получает 00110011 00111000 00110101 00110001 1 Сам бит четности был изменен с 0 на 1. Приемник будет считать «1», определяя, что их 15. Поскольку даже проверка четности используется, полученные данные будут помечены как имеющие ошибку, даже если это не так. Проверка на четность потенциально слишком чувствительна к сбоям, но в случае обнаружения ошибок лучше ошибиться в начале. Есть одна проблема с проверкой четности: она может обнаружить только один бит в передаваемом сигнале. Например, если даже четность используется, и передатчик отправляет 00110011 00111000 00110101 00110001 0 Приемник, однако, получает 00110010 00111000 00110101 00110000 0 Приемник подсчитает число «1» и обнаружит, что оно равно 12. Поскольку система использует четную четность, приемник будет считать данные правильными и обработает их в обычном режиме. Однако оба бита, выделенные жирным шрифтом, были повреждены. Если изменяется четное число битов в любой комбинации, проверка четности не может обнаружить изменение; только когда изменение включает нечетное число битов, проверка четности может обнаружить изменение данных. Циклическая проверка избыточности (Cyclic Redundancy Check - CRC) может обнаруживать более широкий диапазон изменений в передаваемых данных, используя деление (а не сложение) в циклах по всему набору данных, по одной небольшой части за раз. Работа с примером - лучший способ понять, как рассчитывается CRC. Расчет CRC начинается с полинома, как показано на рисунке 1. На рис. 1 трехчленный многочлен x3 + x2 + 1 расширен, чтобы включить все члены, включая члены, предшествующие 0 (и, следовательно, не влияют на результат вычисления независимо от значения x). Затем эти четыре коэффициента используются в качестве двоичного калькулятора, который будет использоваться для вычисления CRC. Чтобы выполнить CRC, начните с исходного двоичного набора данных и добавьте три дополнительных бита (поскольку исходный полином без коэффициентов имеет три члена; следовательно, это называется трехбитной проверкой CRC), как показано здесь: 10110011 00111001 (оригинальные данные) 10110011 00111001 000 (с добавленными битами CRC) Эти три бита необходимы для обеспечения того, чтобы все биты в исходных данных были включены в CRC; поскольку CRC перемещается слева направо по исходным данным, последние биты в исходных данных будут включены только в том случае, если эти заполняющие биты включены. Теперь начните с четырех битов слева (потому что четыре коэффициента представлены в виде четырех битов). Используйте операцию Exclusive OR (XOR) для сравнения крайних левых битов с битами CRC и сохраните результат, как показано здесь: 10110011 00111001 000 (дополненные данные) 1101 (Контрольные биты CRC) ---- 01100011 00111001 000 (результат XOR) XOR'инг двух двоичных цифр приводит к 0, если эти две цифры совпадают, и 1, если они не совпадают. Контрольные биты, называемые делителем, перемещаются на один бит вправо (некоторые шаги здесь можно пропустить), и операция повторяется до тех пор, пока не будет достигнут конец числа: 10110011 00111001 000 1101 01100011 00111001 000 1101 00001011 00111001 000 1101 00000110 00111001 000 110 1 00000000 10111001 000 1101 00000000 01101001 000 1101 00000000 00000001 000 1 101 00000000 00000000 101 CRC находится в последних трех битах, которые были первоначально добавлены в качестве заполнения; это "остаток" процесса разделения перемещения по исходным данным плюс исходное заполнение. Получателю несложно определить, были ли данные изменены, оставив биты CRC на месте (в данном случае 101) и используя исходный делитель поперек данных, как показано здесь: 10110011 00111001 101 1101 01100011 00111001 101 1101 00001011 00111001 101 1101 00000110 00111001 101 110 1 00000000 10111001 101 1101 00000000 01101001 101 1101 00000000 00000001 101 1 101 00000000 00000000 000 Если данные не были изменены, то результат этой операции всегда должен быть равен 0. Если бит был изменен, результат не будет равен 0, как показано здесь: 10110011 00111000 000 1101 01100011 00111000 000 1101 00001011 00111000 000 1101 00000110 00111000 000 110 1 00000000 10111000 000 1101 00000000 01101000 000 1101 00000000 00000000 000 1 101 00000000 00000001 000 CRC может показаться сложной операцией, но она играет на сильных сторонах компьютера—бинарных операциях конечной длины. Если длина CRC задается такой же, как у стандартного небольшого регистра в обычных процессорах, скажем, восемь бит, вычисление CRC-это довольно простой и быстрый процесс. Проверка CRC имеет то преимущество, что она устойчива к многобитовым изменениям, в отличие от проверки четности, описанной ранее. Исправление ошибок Однако обнаружение ошибки — это только половина проблемы. Как только ошибка обнаружена, что должна делать транспортная система? Есть, по существу, три варианта. Транспортная система может просто выбросить данные. В этом случае транспорт фактически переносит ответственность за ошибки на протоколы более высокого уровня или, возможно, само приложение. Поскольку некоторым приложениям может потребоваться полный набор данных без ошибок (например, система передачи файлов или финансовая транзакция), у них, вероятно, будет какой-то способ обнаружить любые пропущенные данные и повторно передать их. Приложения, которые не заботятся о небольших объемах отсутствующих данных (например, о голосовом потоке), могут просто игнорировать отсутствующие данные, восстанавливая информацию в приемнике, насколько это возможно, с учетом отсутствующей информации. Транспортная система может подать сигнал передатчику, что произошла ошибка, и позволить передатчику решить, что делать с этой информацией (как правило, данные при ошибке будут повторно переданы). Транспортная система может выйти за рамки отбрасывания данных, включив достаточное количество информации в исходную передачу, определить, где находится ошибка, и попытаться исправить ее. Это называется Прямой коррекцией ошибок (Forward Error Correction - FEC). Коды Хэмминга, один из первых разработанных механизмов FEC, также является одним из самых простых для объяснения. Код Хэмминга лучше всего объяснить на примере - для иллюстрации будет использована таблица 1. В Таблице № 1: Каждый бит в 12-битном пространстве, представляющий собой степень двух (1, 2, 4, 6, 8 и т. д.) и первый бит, устанавливается в качестве битов четности. 8-битное число, которое должно быть защищено с помощью FEC, 10110011, распределено по оставшимся битам в 12-битном пространстве. Каждый бит четности устанавливается равным 0, а затем четность вычисляется для каждого бита четности путем добавления числа «1» в позиции, где двоичный бит имеет тот же бит, что и бит четности. В частности: P1 имеет набор крайних правых битов в своем битовом номере; другие биты в числовом пространстве, которые также имеют набор крайних правых битов, включены в расчет четности (см. вторую строку таблицы, чтобы найти все позиции битов в номере с набором крайних правых битов). Они указаны в таблице с X в строке P1. Общее число «1»-нечетное число, 3, поэтому бит P1 устанавливается равным 1 (в этом примере используется четная четность). P2 имеет второй бит из правого набора; другие биты в числовом пространстве, которые имеют второй из правого набора битов, включены в расчет четности, как указано с помощью X в строке P2 таблицы. Общее число «1»-четное число, 4, поэтому бит P2 установлен в 0. P4 имеет третий бит из правого набора, поэтому другие биты, которые имеют третий бит из правого набора, имеют свои номера позиций, как указано с помощью X в строке P3. В отмеченных столбцах есть нечетное число «1», поэтому бит четности P4 установлен на 1. Чтобы определить, изменилась ли какая-либо информация, получатель может проверить биты четности таким же образом, как их вычислял отправитель; общее число 1s в любом наборе должно быть четным числом, включая бит четности. Если один из битов данных был перевернут, приемник никогда не должен найти ни одной ошибки четности, потому что каждая из битовых позиций в данных покрыта несколькими битами четности. Чтобы определить, какой бит данных является неправильным, приемник добавляет позиции битов четности, которые находятся в ошибке; результатом является положение бита, которое было перевернуто. Например, если бит в позиции 9, который является пятым битом данных, перевернут, то биты четности P1 и P8 будут ошибочными. В этом случае 8 + 1 = 9, так что бит в позиции 9 находится в ошибке, и его переворачивание исправит данные. Если один бит четности находится в ошибке—например, P1 или P8—то это тот бит четности, который был перевернут, и сами данные верны. В то время как код Хэмминга гениален, есть много битовых шаблонов-перевертышей, которые он не может обнаружить. Более современный код, такой как Reed-Solomon, может обнаруживать и исправлять более широкий диапазон условий ошибки, добавляя меньше дополнительной информации в поток данных. Существует большое количество различных видов CRC и кодов исправления ошибок, используемых во всем мире связи. Проверки CRC классифицируются по количеству битов, используемых в проверке (количество битов заполнения или, точнее, длины полинома), а в некоторых случаях - по конкретному применению. Например, универсальная последовательная шина использует 5-битный CRC (CRC-5-USB); Глобальная система мобильной связи (GSM), широко используемый стандарт сотовой связи, использует CRC-3-GSM; Мультидоступ с кодовым разделением каналов (CDMA), другой широко используемый стандарт сотовой связи, использует CRC-6-CDMA2000A, CRC-6-CDMA2000B и CRC-30; и некоторые автомобильные сети (CAN), используемые для соединения различных компонентов в автомобиле, используют CRC-17-CAN и CRC-21-CAN. Некоторые из этих различных функций CRC являются не единственной функцией, а скорее классом или семейством функций со многими различными кодами и опциями внутри них.
img
Всем привет! Мы продолжаем рассказывать про протокол маршрутизации OSPF. В этой статье мы рассмотрим создание конкретных типов областей. Подробнее про области можно прочитать в предыдущей статье. Предыдущие статьи: Расширенные возможности OSPF: Области Короткая Область (Stubby Area) Рисунок 1 - топология OSPF Пришло время сделать нашу область 1 из рисунка 1 короткой областью. Это внесение небольших настроек в конфигурацию. На каждом устройстве в этой области нам нужно установить область 1 в качестве заглушки. Вот наша конфигурация: ATL2# configuration terminal Enter configuration commands, one per line. End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router)#area 1 stub ATL2 (config-router)#end ATL2# ORL# configuration terminal Enter configuration commands, one per line. End with CNTL/Z . ORL(config)#router ospf 1 ORL(config-router)#area 1 stub ORL(config-router)#end ORL# Это вызовет сброс соседства. После внесения изменений настало время просмотреть таблицу маршрутизации и базу данных OSPF. show ip route ospf Как мы и надеялись, теперь таблица маршрутизации стала меньше! Больше нет детализации внешних префиксов из ASBR. Вместо этого у нас есть маршрут по умолчанию, автоматически генерируемый ABR. Этот маршрут по умолчанию конечно необходим, потому что маршрутизаторы в области 1 все еще должны иметь возможность доступа к удаленным префиксам (если это необходимо). Теперь пришло время изучить базу данных OSPF. Это именно то, что мы ожидали бы увидеть в области заглушки: show ip ospf database Type 4 LSA и Type 5 LSA фильтруются, и теперь существует Type 3 LSA для маршрута по умолчанию. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Полностью Короткая Область (Totally Stubby Area) Если мы хотим быть еще более эффективными в нашем примере, мы можем преобразовать область 1 в полностью короткую область. Это устранит Type 3 LSA, которые используются для объявления Loopback 0 на ATL и связей между ATL и AT2. Конечно, все равно будет объявлен маршрут по умолчанию, потому что теперь он нужен больше, чем когда-либо! Вот такая конфигурация и верификация: ATL2# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router )#area 1 stub no-summary ATL2 (config-router )#end ATL2# show ip route ospf show ip ospf database Not So Stubby Area (NSSA) Если вам необходимо ввести внешние префиксы в область заглушки, вы должны сделать ее Not So Stubby Area (NSSA). Это позволяет внешние префиксы, которые будут пересылаться через зону-заглушку, определять как LSA типа 7. Затем ABR преобразует их в LSA типа 5 для распространения через домен OSPF (потенциально). Ниже настройка для нашей схемы: ATL2# configuration terminal Enter configuration commands , one per line. End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router)#no area 1 stub ATL2 (config-router)#area 1 nssa ATL2 (config-router)#end ATL2# ORL# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ORL(config)#router ospf 1 ORL(config-router)#no area 1 stub ORL(config-router)#area 1 nssa ORL(config)#interface loopback10 ORL(config-if)#ip address 172.16.10.З 255.255.255.0 ORL(config)#interface loopback20 ORL(config-if)#ip address 172.16.20.З 255.255.255.0 ORL(config-if)#exit ORL(config)#router eigrp 200 ORL(config-router)#network 172.16.10.З 0.0.0.0 ORL(config-router)#network 172.16.20.З 0.0.0.0 ORL(config-router)#exit ORL(config)#router ospf 1 ORL(config-router)#redistribute eigrp 200 subnets metric 1000 ORL(config-router)#end ORL# Интересно просмотреть результаты нашей настройки. Давайте начнем с изучения маршрутов OSPF и базы данных OSPF на ORL: show ip route ospf show ip ospf database Из таблицы маршрутизации видно, что мы снова изучаем объявления Type 3 из области 0 (1.1.1.1 и 10.12.12.0). База данных OSPF доказывает, что NSSA работает так, как объявлено на данный момент. Мы можем видеть внешние префиксы, внесенные в область 1 как Type 7 в базе данных. Давайте быстро проверим ATL, чтобы увидеть, появляются ли они там как Type 5 LSA, как мы ожидаем. show ip route ospf show ip ospf database Да, выводимая информация дает нам полное понимание, как работает NSSA. Префиксы существуют как Type 5s, и мы видим это в таблице маршрутизации. Примечание: область NSSA не имеет динамически генерируемого маршрута по умолчанию без настройки этой функции. Так, наша сеть не будет работать! Чтобы создать маршрут по умолчанию, просто используйте следующую команду на маршрутизаторе ATL2: area 1 nssa default-information-originate Totally NSSA Поскольку вы уже освоили Totally Stubby, скорее всего вы уже понимаете, что происходит с Totally NSSA. Здесь мы блокируем дополнительные типы LSA из этой области. К ним относятся Type 3 LSA. И снова для нас автоматически создается маршрут по умолчанию. Вот настройки и результирующие проверки: ATL2# configuration terminal Enter configuration commands , one per line . End with CNTL/Z. ATL2 (config)#router ospf 1 ATL2 (config-router )#area 1 nssa no-summary ATL2 (config-router )#end ATL2# show ip route ospf show ip ospf database Как видно из выводимой информации, что у нас невероятно сжатая таблица маршрутизации (для OSPF) на роутере ORL. Как вы можете видеть, OSPF отлично справляется с автоматической фильтрацией маршрутов за счет использования специальных областей и типов LSA. В следующий раз мы рассмотрим варианты ручной фильтрации маршрутов в OSPF.
img
Для захвата трафика можно использовать маршрутизаторы Cisco, при помощи утилиты Cisco Embedded Packet Capture, которая доступна, начиная с версии IOS 12.4.20T. В этой статье мы расскажем, как настроить EPC для захвата пакетов на роутере, сохранять их на flash памяти или экспортировать на ftp/tftp сервер для будущего анализа, при помощи анализатора пакетов, например, такого как Wireshark. Давайте рассмотрим некоторые из основных функций, которые предлагает нам Embedded Packet Capture: Экспорт пакетов в формате PCAP, обеспечивающий анализ с помощью внешних инструментов Возможность задать различные параметры буфера захвата Отображение буфера захвата Захват IPv4 и IPv6 пакетов в пути Cisco Express Forwarding Прежде чем начать конфигурацию Cisco EPC необходимо разобраться с двумя терминами, которые будут использоваться в процессе – Capture Buffer(буфер захвата) и Capture Point (точка захвата) Capture buffer – это зона в памяти для хранения пакетных данных. Существует два типа буферов захвата Linear (линейный) и Circular (кольцевой): Linear Capture Buffer – когда буфер захвата заполнен, он перестает захватывать данные Circular Capture Buffer – когда буфер заполнен, он продолжает захватывать данные, перезаписывая старые данные Capture Point – это точка транзита трафика, в которой фиксируется пакет. Тут определяется следующее: IPv4 или IPv6 CEF (Cisco Express Forwarding) или Process-Switched Интерфейс (например Fast Ethernet 0/0, Gigabit Ethernet 1/0) Направление трафика: входящий (in), исходящий (out) или оба Настройка Cisco Embedded Packet Capture Рассмотрим настройку на примере нашей схемы, где мы хотим захватить входящие и исходящие пакеты на интерфейсе FastEthernet 0/0 от ПК с адресом 192.168.1.5 до веб-сервера wiki.merionet.ru с адресом 212.193.249.136 Первым делом мы создадим буфер, который будет хранить захваченные пакеты. Для этого используем команду monitor capture buffer [имя] size[размер] [тип] . Создадим буфер merionet_cap, размером 1024 килобайта (1 мегабайт, стандартный размер) и сделаем его линейным. Router#monitor capture buffer merionet_cap size 1024 linear Далее мы можем настроить захват определенного трафика. В нашем случае нужно захватить трафик между 192.168.1.5 и 212.193.249.136. Это достигается при помощи списков контроля доступа ACL. Мы можем использовать стандартные или расширенные списки доступа в зависимости от требуемой детализации. Если список доступа не настроен, то захвачен будет весь трафик. Router(config)#ip access-list extended web-traffic Router(config-ext-nacl)#permit ip host 192.168.1.5 host 212.193.249.136 Router(config-ext-nacl)#permit ip host 212.192.249.136 host 192.168.1.5 Наш список доступа включает трафик, исходящий от обоих хостов, потому что мы хотим захватить двунаправленный трафик. Если бы мы включили только один оператор ACL, тогда был бы зафиксирован только односторонний трафик. Теперь свяжем наш буфер с access-list’ом, при помощи команды monitor capture buffer [название_буфера] filter access-list [название_ACL] Router#monitor capture buffer merionet_cap filter access-list web-traffic Затем следующем шагом мы определяем, какой интерфейс будет точкой захвата. В нашем случае это FastEthernet 0/0, и мы будем захватывать как входящие, так и исходящие пакеты. Во время этой фазы конфигурации нам нужно предоставить имя для точки захвата. Также очень важно ввести команду ip cef для обеспечения минимального влияния на процессор маршрутизатора, при помощи Cisco Express Forwarding. Если ip cef не включен, то появится сообщение IPv4 CEF is not enabled. Используем команду monitor capture point ip cef [имя_точки] [интерфейс] [направление] . Router#monitor capture point ip cef MNpoint FastEthernet0/0 both Теперь мы связываем сконфигурированную точку захвата с буфером захвата командой monitor capture point associate [название_точки][название_буфера] . На этом этапе мы готовы начать сбор пакетов. Router#monitor capture point associate MNpoint merionet_cap Чтобы начать сбор пакетов используем команду monitor capture point start [название_интерфейса] . Router# monitor capture point start MNpoint Чтобы остановить процесс захвата используется команда monitor capture point stop [название_интерфейса] . Router# monitor capture point stop MNpoint Полезные команды проверки: show monitor capture buffer – показывает состояние буфера захвата show monitor capture point – показывает состояние точки захвата show monitor capture buffer [название_буфера] – показывает информацию о захваченных пакетах show monitor capture buffer [название_буфера] dump – показывает содержание буфера Экспорт данных В большинстве случаев захваченные данные необходимо будет экспортировать в сетевой анализатор трафика (например, WireShark) для дополнительного анализа в удобном для пользователя интерфейсе. Захваченный буфер можно экспортировать в несколько местоположений, включая: flash: (на маршрутизаторе), ftp, tftp, http, https, scp и другие. Для экспорта буфера используется команда monitor capture buffer[имя_буфера] export [адрес] . Router#monitor capture buffer merionet_cap export tftp://192.168.1.10/capture.pcap После этого файл capture.pcap появится на нашем TFTP сервере, и мы можем открыть его в сетевом анализаторе.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59