По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Предыдущая статья из цикла про популярные приложения TCP/IP тут. Установление TCP-соединения происходит до того, как любая из других функций TCP сможет начать свою работу. Установление соединения относится к процессу инициализации полей "Sequence" и "Acknowledgment" и согласования используемых номеров портов. На рисунке 5 показан пример процесса установления соединения. Этот трехсторонний процесс установления соединения (также называемый трехсторонним рукопожатием) должен завершиться до начала передачи данных. Соединение существует между двумя сокетами, хотя в заголовке TCP нет единственного поля сокета. Из трех частей сокета подразумеваются IP-адреса на основе IP-адресов источника и назначения в IP-заголовке. TCP подразумевается, потому что используется заголовок TCP, как указано значением поля протокола в заголовке IP. Следовательно, единственные части сокета, которые необходимо закодировать в заголовке TCP, - это номера портов. TCP сообщает об установлении соединения, используя 2 бита в полях флагов заголовка TCP. Эти биты, называемые флагами SYN и ACK, имеют особенно интересное значение. SYN означает "синхронизировать порядковые номера", что является одним из необходимых компонентов при инициализации TCP. На рисунке 6 показано завершение TCP-соединения. Эта четырехсторонняя последовательность завершения проста и использует дополнительный флаг, называемый битом FIN. (FIN - это сокращение от "finished", как вы могли догадаться.) Одно интересное замечание: перед тем, как устройство справа отправит третий сегмент TCP в последовательности, оно уведомляет приложение о том, что соединение прерывается. Затем он ожидает подтверждения от приложения перед отправкой третьего сегмента на рисунке. На случай, если приложению потребуется некоторое время, чтобы ответить, ПК справа отправляет второй поток на рисунке, подтверждая, что другой ПК хочет разорвать соединение. В противном случае ПК слева может повторно отправить первый сегмент. TCP устанавливает и завершает соединения между конечными точками, а UDP - нет. Многие протоколы работают в рамках одних и тех же концепций, поэтому термины "ориентированный на соединение" и "без установления соединения" используются для обозначения общей идеи каждого из них. Более формально эти термины можно определить следующим образом: Протокол, ориентированный на соединение: протокол, который требует обмена сообщениями до начала передачи данных или который имеет требуемую предварительно установленную корреляцию между двумя конечными точками. Протокол без установления соединения: протокол, который не требует обмена сообщениями и не требует предварительно установленной корреляции между двумя конечными точками. Восстановление после ошибок и надежность TCP обеспечивает надежную передачу данных, что также называется reliability or error recovery. Для обеспечения надежности TCP нумерует байты данных, используя поля "Sequence" и "Acknowledgment" в заголовке TCP. TCP обеспечивает надежность в обоих направлениях, используя поле Sequence Number одного направления в сочетании с полем Acknowledgment в противоположном направлении. На рисунке 7 показан пример того, как поля TCP Sequence и Acknowledgment позволяют ПК отправлять 3000 байтов данных на сервер, при этом сервер подтверждает получение данных. Сегменты TCP на рисунке расположены по порядку, сверху вниз. Для простоты все сообщения содержат 1000 байтов данных в части данных сегмента TCP. Первый порядковый номер - красивое круглое число (1000), опять же для простоты. В верхней части рисунка показаны три сегмента, каждый из которых на 1000 больше предыдущего, что указывает на первый из 1000 байтов сообщения. (То есть в этом примере первый сегмент содержит байты 10001999; второй - байты 20002999, а третий - байты 30003999.) Четвертый сегмент TCP на рисунке - единственный, который возвращается от сервера к веб-браузеру - подтверждает получение всех трех сегментов. Как? Значение подтверждения 4000 означает: "Я получил все данные с порядковыми номерами на единицу меньше 4000, поэтому я готов принять ваш байт 4000 следующим". (Обратите внимание, что это соглашение о подтверждении путем перечисления следующего ожидаемого байта, а не номера последнего полученного байта, называется прямым подтверждением.) Однако этот пример не исправляет никаких ошибок; он просто показывает основы того, как хост-отправитель использует поле порядкового номера для идентификации данных, а хост-получатель использует прямые подтверждения для подтверждения данных. Более интересное обсуждение вращается вокруг того, как использовать эти же инструменты для восстановления ошибок. TCP использует поля "Sequence" и "Acknowledgment", чтобы принимающий хост мог заметить потерю данных, попросить отправляющий хост повторно отправить, а затем подтвердить, что повторно отправленные данные прибыли. Существует множество вариантов того, как TCP выполняет исправление ошибок. На рисунке 8 показан только один такой пример, детализация которого аналогична предыдущему. Веб-браузер снова отправляет три сегмента TCP, снова по 1000 байт каждый, снова с легко запоминающимися порядковыми номерами. Однако в этом примере второй сегмент TCP не может пройти через сеть. Рисунок указывает на три набора идей, лежащих в основе того, как думают два хозяина. Во-первых, справа сервер понимает, что он не получил все данные. Два полученных сегмента TCP содержат байты с номерами 10001999 и 30003999. Очевидно, сервер не получил байты, пронумерованные между ними. Затем сервер решает подтвердить все данные вплоть до потерянных, то есть отправить обратно сегмент с полем подтверждения, равным 2000. Получение подтверждения, которое не подтверждает все данные, отправленные на данный момент, заставляет хост-отправитель повторно отправить данные. ПК слева может подождать несколько секунд, чтобы убедиться, что другие подтверждения не поступят (используя таймер, называемый таймером повторной передачи), но вскоре решит, что сервер сообщает: "Мне действительно нужно 2000 - отправьте его повторно". ПК слева делает это, как показано на пятом из шести сегментов TCP на рисунке. Наконец, обратите внимание, что сервер может подтверждать не только повторно отправленные данные, но и любые предыдущие данные, которые были получены правильно. В этом случае сервер получил повторно отправленный второй сегмент TCP (данные с порядковыми номерами 20002999), и сервер уже получил третий сегмент TCP (данные с номерами 30003999). Следующее поле подтверждения сервера подтверждает данные в обоих этих сегментах с полем подтверждения, равным 4000. Управление потоком с использованием окон TCP реализует управление потоком, используя концепцию окна, которая применяется к количеству данных, которые могут быть ожидающими подтверждения в любой момент времени. Концепция окна позволяет принимающему хосту сообщать отправителю, сколько данных он может получить прямо сейчас, давая принимающему хосту способ замедлить или ускорить отправляющий хост. Получатель может перемещать размер окна вверх и вниз (это называется скользящим окном или динамическим окном), чтобы изменить объем данных, который может отправить хост-отправитель. Механизм раздвижного окна имеет больше смысла на примере. В примере, показанном на рисунке 9, используются те же основные правила, что и в примерах на нескольких предыдущих рисунках. В этом случае ни один из сегментов TCP не содержит ошибок, и обсуждение начинается на один сегмент TCP раньше, чем на предыдущих двух рисунках. Начнем с первого сегмента, отправленного сервером на ПК. Поле Acknowledgment должно быть вам знакомо: оно сообщает ПК, что сервер ожидает следующий сегмент с порядковым номером 1000. Новое поле, поле окна, установлено на 3000. Поскольку сегмент передается на ПК, это значение сообщает ПК, что ПК может послать не более 3000 байтов по этому соединению до получения подтверждения. Итак, как показано слева, ПК понимает, что может отправлять только 3000 байтов, и прекращает отправку, ожидая подтверждения, после отправки трех 1000-байтовых сегментов TCP. Продолжая пример, сервер не только подтверждает получение данных (без потерь), но и решает немного увеличить размер окна. Обратите внимание, что второе сообщение, идущее справа налево на рисунке, на этот раз с окном 4000. Как только ПК получает этот сегмент TCP, ПК понимает, что он может отправить еще 4000 байтов (окно немного больше, чем предыдущее значение). Обратите внимание, что хотя на последних нескольких рисунках показаны примеры с целью объяснения того, как работают механизмы, из этих примеров может сложиться впечатление, что TCP заставляет хосты сидеть и долго ждать подтверждения. TCP не хочет заставлять хост-отправитель ждать отправки данных. Например, если подтверждение получено до того, как окно будет исчерпано, начинается новое окно, и отправитель продолжает отправлять данные до тех пор, пока текущее окно не будет исчерпано. Часто в сети, где мало проблем, мало потерянных сегментов и небольшая перегрузка, окна TCP остаются относительно большими, а узлы редко ждут отправки. Закрепим самое важное про TCP и UDP в следующей статье.
img
Определение проблемного пространства Сетевые инженеры часто сталкиваются с проблемой слишком большого трафика для слишком малого канала связи. В частности, почти в каждом пути через сеть одно звено ограничивает весь путь, так же как один перекресток или одна дорога ограничивает поток трафика. Рисунок ниже иллюстрирует это. На рисунке A обменивается данными с G, а B обменивается данными с E. Если каждая из этих пар устройств использует близкую к доступной полосе пропускания на своих локальных каналах ([A, C], [B, C], [F, G] и D, E]), предполагая, что все каналы имеют одинаковую скорость, канал [C, D] будет перегружен трафиком, превратившись в узкую точку в сети. Когда канал перегружен, например канал [C, D] на рисунке ниже, по каналу будет отправлено больше трафика, чем пропускная способность канала. Во время перегрузки сетевое устройство, такое как маршрутизатор или коммутатор, должно определять, какой трафик следует перенаправить, какой отбросить и в каком порядке следует пересылать пакеты. Для решения этой проблемы были созданы различные схемы приоритезации. Управление перегрузкой каналов путем приоритизации одних классов трафика над другими входит в широкий раздел качества обслуживания (QoS). Восприятие QoS среди сетевых инженеров вызывает беспокойство по многим причинам. Например, многие реализации, даже недавние, как правило, не так хорошо продуманы, как могли бы быть, особенно в том, как они настроены и поддерживаются. Кроме того, ранние схемы не всегда работали хорошо, и QoS часто может добавить проблем в сети, а не облегчить их, и, как правило, очень трудно устранить неполадки. По этим причинам, а также из-за того, что конфигурация, необходимая для реализации схем приоритезации, имеет тенденцию к непостижимости, QoS часто считается темным искусством. Чтобы успешно реализовать стратегию QoS, вы должны классифицировать трафик, определить стратегию организации очередей для различных классов трафика и согласованно установить стратегию на всех сетевых устройствах, которые могут испытывать перегрузку каналов. Хотя можно погрузиться во множество различных функций и функций схем и реализаций QoS, результат всегда должен быть одним и тем же. Почему бы просто не сделать линии связи достаточно большими? После обдумывания ценностного предложения QoS очевидной реакцией будет вопрос, почему сетевые инженеры просто не выбирают достаточно большие линии связи, чтобы избежать перегрузки. В конце концов, если бы линии связи были достаточно большими, перегрузка исчезла бы. Если перегрузка исчезнет, исчезнет необходимость отдавать приоритет одному типу трафика над другим. Весь трафик будет доставлен, и все эти досадные проблемы, связанные с недостаточной пропускной способностью, будут устранены. Действительно, избыточное выделение ресурсов, возможно, является лучшим QoS из всех. К сожалению, стратегия избыточного обеспечения не всегда является доступным вариантом. Даже если бы это было так, самые большие доступные каналы связи не могут преодолеть определенные модели трафика. Некоторые приложения будут использовать столько пропускной способности, сколько доступно при передаче данных, создавая точку перегрузки для других приложений, совместно использующих линию связи. Другие будут передавать в микроперерывах, подавляющих сетевые ресурсы в течение короткого времени, и некоторые транспортные механизмы-такие как протокол управления передачей (TCP)-будут намеренно собирать путь время от времени, чтобы определить наилучшую скорость передачи данных. В то время как более крупная линия связи может сократить время существования состояния перегрузки, в некоторых сценариях нет такой вещи, как наличие достаточной полосы пропускания для удовлетворения всех требований. Большинство сетей построены на модели избыточной подписки, когда некоторая совокупная пропускная способность распределяется в определенных узких местах. Например, коммутатор Top of Rack (ToR) в загруженном центре обработки данных может иметь 48 портов 10GbE, обращенных к хостам, но только 4 порта 40GbE, обращенных к остальной части центра обработки данных. Это приводит к коэффициенту переподписки 480:160, который уменьшается до 3:1. Неявно, 160 Гбит/с полосы пропускания центра обработки данных является потенциальным узким местом - точкой перегрузки - для 480 Гбит/с полосы пропускания хоста. И все же соотношение переподписки 3:1 является обычным явлением в схемах коммутации центров обработки данных. Зачем? Окончательный ответ - часто деньги. Часто можно спроектировать сеть, в которой граничные порты соответствуют доступной пропускной способности. Например, в структуре центра обработки данных, приведенной выше, почти наверняка можно добавить достаточную пропускную способность канала, чтобы обеспечить 480 Гбит / с из ToR в структуру, но стоимость вполне может быть непомерно высокой. Сетевой инженер должен учитывать не только стоимость порта и оптоволокна, но и стоимость дополнительного питания, а также стоимость дополнительного охлаждения, необходимого для управления окружающей средой после добавления необходимых дополнительных устройств, и даже затраты дополнительного места в стойке и веса пола. Затраты денег на обеспечение более высокой пропускной способности сети также могут быть трудно оправданы, если сеть редко перегружена. Некоторые события перегрузки не являются достаточно частыми, чтобы оправдать дорогостоящее обновление сети. Будет ли город тратить миллионы или миллиарды долларов на улучшение транспортной инфраструктуры, чтобы облегчить движение раз в год, когда политик приезжает с визитом? Нет. Вместо этого для решения проблемы с трафиком вносятся другие корректировки. Например, компании могут наиболее остро столкнуться с этим ограничением в глобальных сетях, где каналы арендуются у поставщиков услуг (SP). Частично поставщики услуг зарабатывают деньги на объединении разрозненных географических регионов для организаций, которые не могут позволить себе прокладывать и использовать оптоволоконные кабели большой протяженности самостоятельно. Эти линии дальней связи обычно предлагают гораздо более низкую пропускную способность, чем более короткие, местные линии связи в одном кампусе или даже в одном здании. Высокоскоростное соединение в университетском городке или центре обработки данных может легко перегрузить более медленные каналы дальней связи. Организации будут устанавливать максимально возможные размеры дальних (таких как межсайтовые или даже межконтинентальные) линий связи, но, опять же, важно помнить о деньгах. В мире избыточной подписки и последующих точек перегруженности, а также временных моделей трафика, которые требуют тщательного управления, схемы приоритизации трафика QoS всегда будут необходимы. Классификация Схемы приоритизации QoS действуют на различные классы трафика, но что такое класс трафика и как он определяется? Классы трафика представляют собой агрегированные группы трафика. Потоки данных из приложений, требующих аналогичной обработки или представляющих аналогичные схемы трафика в сети, помещаются в группы и управляются политикой QoS (или классом обслуживания, CoS). Эта группировка имеет решающее значение, поскольку было бы трудно определить уникальные политики QoS для потенциально бесконечного числа приложений. С практической точки зрения сетевые инженеры обычно группируют трафик в четыре класса. Конечно, возможны и другие классы, и такие схемы существуют в производственных сетях. Однако управление системой классификации и политическими действиями становится все более утомительным по мере того, как число классов превышает четыре. Каждый пакет может быть отнесен к определенной CoS на основе адреса источника, адреса назначения, порта источника, порта назначения, размера пакета и других факторов. Предполагая, что каждое приложение имеет свой собственный профиль или набор характеристик, каждое приложение может быть помещено в определенный CoS и действовать в соответствии с локальной политикой QoS. Проблема с этим методом классификации трафика заключается в том, что классификация является только локально значимой-действие классификации относится только к устройству, выполняющему классификацию. Такая классификация пакетов требует много времени, а обработка каждого пакета потребует больших вычислительных ресурсов. Поэтому лучше не повторять эту обработку на каждом устройстве, через которое проходит пакет. Вместо этого лучше один раз классифицировать трафик, пометить пакет в этой единственной точке и действовать в соответствии с этой маркировкой на каждом последующем переходе в сети. Примечание: Несмотря на то, что пакеты и кадры в сети различны, в этой статье будет использоваться термин пакеты. Были разработаны и стандартизированы различные схемы маркировки, такие как 8-битное поле типа обслуживания (ToS), включенное в заголовок Интернет-протокола версии 4 (IPv4). Версия 6 того же протокола (IPv6) включает 8-битовое поле класса трафика, служащее аналогичной цели. Кадры Ethernet используют 3-битное поле как часть спецификации 802.1p. На рисунке показано поле ToS IPv4. В наилучшей сетевой практике классификация трафика должна приводить к одному действию и только к одному действию-маркировке. Когда пакет помечен, присвоенное значение может сохраняться и действовать на протяжении всего пути следования пакета по сетевому пути. Классификация и последующая маркировка должны быть "одноразовым" событием в жизни пакета. Лучшая практика QoS - рекомендуется маркировать трафик, как близко к источнику, насколько это возможно. В идеале трафик будет помечен в точке входа в сеть. Например, трафик, поступающий в сетевой коммутатор с персонального компьютера, телефона, сервера, устройства Интернета вещей и т. д. будет помечена, и метка будет служить классификатором трафика на пути следования пакета по сети. Альтернативная схема классификации и маркировки трафика входящим сетевым устройством заключается в том, что приложение само маркирует свой собственный трафик. Другими словами, пакет отправляется с уже заполненным байтом ToS. Это поднимает проблему доверия. Следует ли разрешить приложению ранжировать собственную важность? В худшем случае все приложения эгоистично помечают свои пакеты значениями, указывающими наивысшую возможную важность. Если каждый пакет помечен как очень важный, то на самом деле ни один пакет не является особо важным. Чтобы один пакет был более важным, чем любой другой, должна быть дифференциация. Классы трафика должны иметь разные уровни важности, чтобы схемы приоритезации QoS имели какое-либо значение. Для сохранения контроля над классификацией трафика все сети, реализующие QoS, имеют границы доверия. Границы доверия позволяют сети избежать ситуации, когда все приложения помечают себя как важные. Представьте, что произошло бы на перегруженной дороге, если бы у каждого автомобиля были мигающие аварийные огни - действительно важные автомобили не выделялись бы. В сети некоторым приложениям и устройствам доверяют отмечать свой собственный трафик. Например, IP-телефонам обычно доверяют соответствующим образом маркировать свой потоковый голосовой трафик и трафик протокола управления, то есть метки, которые IP-телефоны применяют к своему трафику, принимаются входным сетевым устройством. Другие конечные точки или приложения могут быть ненадежными, что означает, что байт ToS пакета стирается или перезаписывается при входе. По умолчанию большинство сетевых коммутаторов стирают метки, отправленные им, если они не настроены на доверие определенным устройствам. Например, производителям, помещенным в пакет сервером, часто доверяют, а маркировкам, установленным конечным хостом, - нет. На рисунке ниже показана граница доверия. На рисунке 3 пакеты, передаваемые B, помечены AF41. Поскольку эти пакеты исходят от хоста в домене доверия QoS, маркировка остается, пока они проходят через D. Пакеты, исходящие от A, помечаются EF; однако, поскольку A находится за пределами доверенного домена QoS, эта маркировка удаляется в D. Пакеты в пределах доверенного домена, исходящие из A, рассматриваются как немаркированные с точки зрения QoS. Маркировка протокола физического уровня и верхнего уровня может быть связана, а может и не быть. Например, маркировка верхнего уровня может быть скопирована в маркировку нижнего уровня, или маркировка нижнего уровня может быть перенесена через сеть, или маркировка нижнего уровня может быть удалена. Существует множество различных возможных реализаций, поэтому вы должны быть осторожны, чтобы понять, как маркировка обрабатывается на разных уровнях, а также на каждом переходе. Хотя операторы сети могут использовать любые значения, которые они выбирают в байте ToS для создания различных классов трафика, часто лучше придерживаться некоторых стандартов, таких как значения, определенные стандартами IETF RFC. Эти стандарты были определены для того, чтобы дать сетевым инженерам логическую схему, позволяющую надлежащим образом различать множество различных классов трафика. Две из этих схем "Per Hop Behavior" появляются в RFC2597, Assured Forwarding (AF), и RFC3246, Expedited Forwarding (EF), а также в различных других RFC, обновляющих или уточняющих содержание этих основополагающих документов. Оба эти RFC определяют схемы маркировки трафика, включая точные значения битов, которые должны заполнять байт ToS или байт класса трафика IP-заголовка, чтобы указать конкретный тип трафика. Они известны как точки кода дифференцированного обслуживания или значения DSCP. Например, схема гарантированной пересылки RFC2597 определяет 12 значений в побитовой иерархической схеме для заполнения восьми битов в поле байта ToS. Первые три бита используются для идентификации класса, а вторые три бита определяют приоритет отбрасывания. Последние два бита не используются. Таблица 1 иллюстрирует маркировку кода для нескольких классов AF. В таблице 1 показано значение бита DSCP для AF11, трафика класса 1 с низким приоритетом отбрасывания, равным 001 010, где "001" обозначает класс 1, а "010" обозначает приоритет отбрасывания. Изучение таблицы более глубоко раскрывает бинарный паттерн, выбранный авторами RFC. Весь трафик класса 1 помечается 001 в первых трех битах, весь класс 2-010 в первых трех битах и т. д. Весь трафик с низким приоритетом отбрасывания помечается 010 во-вторых трех битах, весь трафик со средним приоритетом отбрасывания-100 во-вторых трех битах и т. д. Схема гарантированной пересылки показана в таблице 2 для примера. Это не исчерпывающий список кодовых точек, используемых при классификации трафика QoS. Например, схема выбора класса, описанная в RFC2474, существует для обратной совместимости со схемой маркировки приоритета IP. Приоритет IP использует только первые три бита байта ToS, всего восемь возможных классов. Селектор классов также использует восемь значений, заполняя первые три бита шестибитового поля DSCP значимыми значениями (соответствующими устаревшей схеме приоритета IP), а последние три бита - нулями. В таблице 2 показаны эти селекторы классов. RFC3246 определяет требования к задержке, потерям и джиттеру трафика, который должен быть перенаправлен быстро, вместе с единственной новой кодовой точкой - EF, которой присвоено двоичное значение 101 110 (десятичное 46). Количество и разнообразие формально определенных значений DSCP может показаться ошеломляющим. Комбинированные определения AF, CS и EF сами по себе приводят к формальным определениям для 21 различных классов из возможных 64, использующих шесть битов поля DSCP. Ожидается ли, что сетевые инженеры будут использовать все эти значения в своих схемах приоритезации QoS? Следует ли разбивать трафик с такой высокой степенью детализации для эффективного QoS? На практике большинство схем QoS ограничиваются от четырех до восьми классов трафика. Различные классы позволяют обрабатывать каждую группу по-своему во время перегрузки. Например, один класс трафика может быть сформирован так, чтобы соответствовать определенному порогу пропускной способности. Другой класс трафика может иметь приоритет над всем остальным трафиком. Еще один может быть определен как критически важный для бизнеса или трафик, который важнее большинства, но менее важен, чем некоторые. Трафик сетевого протокола, критичный для стабильности инфраструктуры, можно рассматривать как очень высокий приоритет. Класс трафика scavenger может находиться в конце списка приоритетов, получая немного больше внимания, чем немаркированный трафик. Схема, включающая эти значения, вероятно, будет представлять собой сочетание кодовых точек, определенных в различных RFC, и может несколько отличаться от организации к организации. Обычно принятые значения включают EF для критического трафика с требованием своевременности, например VoIP, и CS6 для трафика управления сетью, такого как протоколы маршрутизации и резервирования на первом этапе. Немаркированный трафик (т.е. значение DSCP, равное 0) доставляется по принципу "максимальных усилий", без каких-либо гарантий уровня обслуживания (обычно это считается классом scavenger, как указано выше).
img
В этой статье рассматривается OSPF и все проблемы, которые могут возникнуть с этим протоколом. OSPF отличается от EIGRP протоколом состояния канала, но общим для них является то, что оба протокола маршрутизации устанавливают соседство до обмена информацией о маршрутизации. В случае OSPF мы обмениваемся LSA (объявление о состоянии канала), чтобы создать LSDB (база данных о состоянии канала). Наилучшая информация из LSDB будет скопирована в таблицу маршрутизации. В этой части мы начнем с устранения неполадок соседей OSPF. Как только у нас есть рабочее соседство OSPF, мы рассмотрим другие проблемы, такие как отсутствующие маршруты. Full просмотр соседства OSPF При просмотре соседства OSPF, мы видим, что оно сообщает нам Full. Необходимо больше информации для понимания состояния Full. Если смежность соседства OSPF не полная, мы рассматриваем одно из следующих состояний: Соседей нет вообще Оно "залипло" в ATTEMPT. Оно "залипло" в INIT. Оно "залипло" в 2-WAY. Оно "залипло" в EXSTART/EXCHANGE. Оно "залипло" в LOADING. Давайте начнем и рассмотрим разные ситуации, которые могут возникнуть с соседством OSPF! Видео: протокол OSPF (Open Shortest Path First) за 8 минут Урок 1 у нас есть 2 маршрутизатора Мы начнем со сценариев, когда OSPF вообще не имеет соседства. В приведенном выше примере у нас есть 2 маршрутизатора. нет никакого OSPF соседства Как вы можете видеть, у нас нет никакого OSPF соседства, что может быть не так? show ip ospf interface show ip ospf interface Можно было просто посмотреть на текущую конфигурацию и выяснить, что не так, но мы не ищем простых путей. Мы используем другие полезные команды OSPF. Сначала используем команду show ip ospf interface. Мы видим, что OSPF не включен на интерфейсе FastEthernet 0/0 R1, но он работает на R2. Кто-то допустил ошибку с командой network и набрал неверный сетевой адрес Кто-то допустил ошибку с командой network и набрал неверный сетевой адрес ... простая ошибка, но такие вещи случаются. R1(config)#router ospf 1 R1(config-router)#no network 192.168.21.0 0.0.0.255 area 0 R1(config-router)#network 192.168.12.0 0.0.0.255 area 0 Настройка правильного сетевого адреса и обратной маски устраняет эту ошибку. Настройка правильного сетевого адреса Проблема решена. Соседство OSPF установлено. Это было легкое начало... Итог урока: проверьте правильность настройки сетевого адреса, обратной маски и области. Урок 2 2 маршрутизатора, но проблема другая Очередная проблема. Схема аналогичная: 2 маршрутизатора, но проблема другая. нет никакого соседства OSPF Как вы видите, нет никакого соседства OSPF. Протокол OSPF был включен на интерфейсе обоих маршрутизаторов Протокол OSPF был включен на интерфейсе обоих маршрутизаторов, поэтому мы знаем, что был использован правильный тип сети. Однако если вы внимательно посмотрите на R1, то увидите, что на нем написано "No Hellos (Пассивный интерфейс)". Если вы настроите пассивный интерфейс, то сеть на интерфейсе все равно будет объявлена, но она не будет отправлять приветственные пакеты OSPF. Таким образом, невозможно создать соседство OSPF. невозможно создать соседство OSPF Вот она проблема. R1(config)#router ospf 1 R1(config-router) #no passive-interface Fe0/0 Удалим пассивный интерфейс. Удалим пассивный интерфейс Соседство OSPF работает. Проблема устранена! Итог урока: проверьте, что OSPF отправляет приветственные пакеты на интерфейс, поскольку, в противном случае, вы не сможете создать соседство. Урок 3 те же маршрутизаторы, другая проблема Следующий сценарий с теми же маршрутизаторами, но другая проблема. R1 показывает, что наш сосед OSPF находится в состоянии INIT R2 ничего не показывает Интересно... R1 показывает, что наш сосед OSPF находится в состоянии INIT, а R2 ничего не показывает. OSPF был правильно настроен на обоих интерфейсах OSPF был правильно настроен на обоих интерфейсах Как мы видим, в примере выше OSPF был правильно настроен на обоих интерфейсах. Поскольку R1 показывает состояние INIT, мы можем сделать вывод, что он получает что-то от R2. R2 ничего не показывает, поэтому, вероятно, ничего не получает от R1. OSPF использует пакеты приветствия для установления соседства OSPF, и они отправляются с использованием многоадресного адреса 224.0.0.5. можем ли мы пропинговать адрес многоадресной рассылки можем ли мы пропинговать адрес многоадресной рассылки Рекомендуется проверить, можем ли мы пропинговать адрес многоадресной рассылки, который OSPF использует для пакетов приветствия. Мы видим, что R1 и R2 оба не получают ответа. Отправка эхо-запросов друг другу проходят без проблем Отправка эхо-запросов друг другу проходят без проблем Отправка эхо-запросов друг другу проходят без проблем. Так что может вызвать проблемы с отправкой и получением многоадресного трафика OSPF? Как насчет списка доступа? на R2 имеется входящий список доступа на R2 имеется входящий список доступа Мы что-то нашли. И это то, что на R2 имеется входящий список доступа с именем BLOCKSTUFF. в нижней части access-list имеется данный запрет Список доступа разрешает только TCP, UDP и ICMP трафик. OSPF не использует TCP или UDP, и он удаляется этим списком доступа из-за deny any. Мы этого не видим в верхнем листинге, но в нижней части access-list имеется данный запрет. R2(config)#ip access-list extended BLOCKSTUFF R2(config-ext-nacl)#5 permit ospf any any проведем коррекцию Проведем коррекцию access-list, чтобы был разрешен трафик OSPF. теперь она отображается как Full Проблема решена, теперь она отображается как Full. теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF Ну что, теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF. Мы видим ответ с другой стороны. Итог урока: не блокируйте многоадресные адреса OSPF 224.0.0.5 и 224.0.0.6 (DR / BDR). Урок 4 от же сценарий, другая проблема Это еще не все! Тот же сценарий, другая проблема: Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе. Пинг на адреса многоадресной рассылки проходит Пинг на адреса многоадресной рассылки проходит Пинг на адреса многоадресной рассылки проходит, так что это уже хорошо. Это хороший момент для включения отладки, чтобы узнать, что происходит: что происходит за кулисами Это очень полезная отладка, которая позволяет увидеть, что происходит за кулисами. сбросим процесс OSPF Мы сбросим процесс OSPF, чтобы ускорить отладку. Имейте в виду, что вы также можете сбросить только одно соседство OSPF. Это лучшая идея, если это применяется в производственной сети (сети предприятия или организации). R1 говорит, что он получил пакет Теперь нам есть с чем работать. R1 говорит, что он получил пакет hello, но у нас есть несоответствующие параметры hello. R означает то, что мы получили, а C - что мы настроили. Как мы видим, существует несоответствие в маске подсети. R1 настроен с маской подсети 255.255.255.0, в то время как R2 имеет маску подсети 255.255.255.128. OSPF будет сравнивать маску подсети только в том случае, если вы используете широковещательный тип сети. show ip ospf interface show ip ospf interface Можно использовать команду show ip ospf interface для проверки типа сети, и видно, что она является broadcast. Здесь мы видим, что R2 имеет другую маску подсети Здесь мы видим, что R2 имеет другую маску подсети Здесь мы видим, что R2 имеет другую маску подсети. Необходимо это исправить! R2(config)#interface Fe0/0 R2(config-if)#ip address 192.168.12.2 255.255.255.0 Достаточно просто... соседство OSPF работает соседство OSPF работает Теперь мы видим, соседство OSPF работает. Итог урока: проверьте правильность использования одинаковых масок подсетей на маршрутизаторах, которые напрямую связаны друг с другом. Урок 5 Та же топология, и у нас очередная проблема с пакетами hello Давайте продолжим, но уже со следующей ошибкой. Та же топология, и у нас очередная проблема с пакетами hello. Сразу перейдем к отладочной части: проблема похожа на наш последний сценарий Эта проблема похожа на наш последний сценарий. Есть часть параметров, которые должны совпадать в hello-пакете, чтобы создать соседство OSPF. dead-interval на R1 сконфигурирован на 24 секунды, а на R2 - на 11 секунд. hello-interval сконфигурирован на 10 секунд на R2 и 6 секунд на R1. Поменяем настройки параметров: R1(config)#interface Fe0/0 R1(config-if)#ip ospf hello-interval 10 R1(config-if)#ip ospf dead-interval 11 Нам нужно изменить это на уровне интерфейса. Введенные команды с новыми параметрами Введенные команды с новыми параметрами решают нашу проблему. Соседство OSPF работает. Урок 6 Топология Еще одна проблема, с которой нам, возможно, придется столкнуться, это аутентификация. OSPF предлагает 3 метода аутентификации: без аутентификации Plaintext MD5 аутентификация нет соседей OSPF нет соседей OSPF Как мы видим, у нас нет соседей OSPF. Давайте используем debug: Debug ip ospf adj Debug ip ospf adj поможет нам решить эти неполадки. Видно, что мы получаем пакет с аутентификацией типа 2, а используется тип 0. Вот что это значит: Type 0: нет аутентификации. Type 1: plaintext аутентификация. Type 2: MD5 аутентификация. Соответственно - R1 сконфигурирован без аутентификации, а R2 сконфигурирован на использование аутентификации MD5. R2 сконфигурирован на использование аутентификации MD5 Мы также можем посмотреть информацию OSPF для каждого интерфейса, чтобы увидеть, включена ли аутентификация или нет. включена ли аутентификация или нет Это то, что настроено на интерфейсе R2. R1(config)#interface FastEthernet0/0 R1(config-if)#ip ospf authentication message-digest R1(config-if)#ip ospf message-digest-key 1 md5 MYKEY Мы копируем и вставляем его в R1. копируем и вставляем его в R1 Проблема устранена! Если вам интересно, вот что вы увидите, когда задан неправильный пароль на одном из маршрутизаторов: R1(config)#interface FastEthernet0/0 R1(config-if)#no ip ospf message-digest-key 1 md5 MYKEY R1(config-if)#ip ospf message-digest-key 1 md5 WRONGKEY Сначала мы поменяем ключ: отладчик говорит нам, что мы используем неправильный ключ Наш отладчик говорит нам, что мы используем неправильный ключ между нашими маршрутизаторами. Извлеченный урок: убедитесь, что вы используете один и тот же тип аутентификации OSPF и пароль между маршрутизаторами. Урок 7 Тот же сценарий Что еще может пойти не так? Кажется, что нет никаких проблем, связанных с соседством OSPF! Тот же сценарий, теперь другая проблема: Соседство отсутствует OSPF Соседство отсутствует OSPF OSPF-соседство отсутствует. есть несоответствие в номере области На одном из наших маршрутизаторов появилось сообщение. Оно не требует объяснений, похоже, у нас есть несоответствие в номере области. R1 настроен для области 1, а R2 настроен для области 0 R1 настроен для области 1, а R2 настроен для области 0 R1 настроен для области 1, а R2 настроен для области 0. Исправляем: network R1(config)#router ospf 1 R1(config-router)#no network 192.168.12.0 0.0.0.255 area 1 R1(config-router)#network 192.168.12.0 0.0.0.255 area 0 Мы используем команду network, чтобы задать правильный номер области. network Ура, все работает! Итог урока: убедитесь, что ваши маршрутизаторы OSPF согласовывают один и тот же номер области. Урок 8 а этот раз R1 и R2 находятся в одной зоне 1 Рисунок выше слегка отличается от предыдущего. На этот раз R1 и R2 находятся в одной зоне 1. нет соседей нет соседей Вот так сюрприз... нет соседей! Запускаем отладку: Запускаем отладку Очень интересно! Существует несоответствие в опции stub/transit area. OSPF имеет различные типы областей, и оба маршрута должны согласовываться с типом области (stub, nssa, totally stub и totally nssa). R1, по-видимому, настроен на использование normal area R1, по-видимому, настроен на использование normal area. R2, похоже, настроен на использование stub area R2, похоже, настроен на использование stub area. Несоответствие в типе области означает, что мы не можем установить соседство OSPF. R2 имеет команду area 1 stub На листинге выше мы видим, что R2 имеет команду area 1 stub. Удалим ее. R2(config)#router ospf 1 R2(config-router)#no area 1 stub Изменим область 1 на normal area для R2. Изменим область 1 на normal area для R2 Изменим область 1 на normal area для R2 Итог урока: убедитесь, что ваши маршрутизаторы OSPF используют один и тот же тип области. Урок 9 Очередная ситуация с неполадками с OSPF Очередная ситуация с неполадками в OSPF, которая на первый взгляд кажется очень запутанной. Давайте посмотрим на конфигурацию OSPF обоих маршрутизаторов: посмотрим на конфигурацию OSPF обоих маршрутизаторов посмотрим на конфигурацию OSPF обоих маршрутизаторов Это простая конфигурация. таблица соседства OSPF не пустая таблица соседства OSPF не пустая У нас таблица соседства OSPF не пустая, но оба маршрутизатора "застряли" в состоянии 2WAY. Помимо поиска нужного нам слова "FULL", следует обратить внимание на две вещи, отображаемые командой show: Оба маршрутизатора показывают друг друга как DROTHER. Приоритет для обоих маршрутизаторов равен 0. В multi-access сети, такой как Ethernet, OSPF будет выполнять выборы DR/BDR, если тип сети broadcast или non-broadcast. Проверяем тип сети: Оба интерфейса настроены для типа сети broadcast Оба интерфейса настроены для типа сети broadcast Оба интерфейса настроены для типа сети broadcast. Это значение по умолчанию для интерфейсов Ethernet. Это означает, что у нас есть выборы DR/BDR, но оба маршрутизатора настроены на приоритет 0, а это означает, что они не будут участвовать в выборах DR/BDR. По этой причине они застряли в состоянии 2WAY. Необходимо это исправить: R1(config)#interface fastEthernet 0/0 R1(config-if)#ip ospf priority 1 Мы изменим приоритет на одном из маршрутизаторов. Мы видим, что R1 был выбран для DR Мы видим, что R1 был выбран для DR Все работает. Мы видим, что R1 был выбран для DR, потому что он имеет приоритет 1. Итог урока: Типы широковещательной и не вещательной сети требуют выбора DR/BDR. Убедитесь, что один из маршрутизаторов выбран. В следующей статье мы разберем еще 8 уроков траблшутинга OSPF.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59