Технологии коммутируемого доступа в сеть : Виртуальная частная коммутируемая сеть (VPDN)

Настройка MTU для L2TP

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (22 августа 2015) | Отзыв


Содержание


Введение

В этом документе описывается фрагментация и повторная сборка на соединениях L2TP и объясняется, как настройка максимального размера передаваемого блока данных (MTU) может помочь в решении ряда взаимосвязанных проблем.

Предварительные условия

Требования

Читатели данной документации должны знать:

  • Общие команды Virtual Private Dialup Network (VPDN)

  • Общие темы IP, такие как фрагментация, повторная сборка, MTU, инкапсуляция, заголовки и т.п.

Используемые компоненты

Большая часть конфигурации и усовершенствований функции, обсужденных здесь, доступны в Cisco Выпуски ПО IOS� 12.1T или 12.2T и позже. В связи с этим, для получения дополнительных сведений обратитесь к отдельным разделам, представленным ниже.

Сведения, представленные в этом документе, были получены от устройств в специфической лабораторной среде. Все устройства, используемые в этом документе, были запущены с чистой конфигурацией (конфигурацией по умолчанию). При работе с реальной сетью необходимо полностью осознавать возможные результаты использования всех команд.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Пример фрагментации

Иногда необходимо фрагментировать туннельные инкапсулированные пакеты, чтобы передавать их по проводной линии. Вот пример этого.

В случае подключения L2TP поверх UDP служебная информация всех протоколов включает дополнительный набор заголовков IP, UDP и L2TP. IP-заголовок составляет 20 байтов, заголовок UDP составляет 8 байтов, а заголовок L2TP - обычно 12 байтов. 12 байтов заголовка L2TP включают:

  • поля версии и флага (2 байта)

  • поля туннельного идентификатора и идентификатора сеанса (2 байта каждый)

  • на 2 байта смещения заполнения данных

  • 4 байта инкапсуляции протокола точка-точка (PPP)

На этой схеме представлено больше деталей:

l2tp_mtu_tuning.gif

При активации создания последовательности данных (оно отключено по умолчанию на устройствах Сisco), необходимо добавить дополнительные 4 байта для полей Ns и Nr. Сложите заголовки IP, UDP и L2TP, чтобы увидеть, что L2TP по UDP добавляет 40 байтов инкапсуляции протокола к пакету.

При инкапсуляции пакета IP в 1500 байов в L2TP инкапсулированный пакет получает размер 1540 байтов (1500 + 40 байтов заголовков IP, UDP и L2TP). Необходимо фрагментировать пакет, чтобы передать его по стандартному интерфейсу типа Ethernet (который имеет размер MTUв 1500 байтов). Инкапсулированный пакет фрагментируется на две части. Первый фрагмент состоит из 1500 байтов (1460 байтов исходного пакета IP + 40 байтов инкапсуляции L2TP). Второй фрагмент состоит из 60 байтов (последние 40 байтов исходного пакета IP + 20 байтов служебной информации IP).

Примечание: Только первый фрагмент содержит заголовок L2TP; второй фрагмент содержит только IP-заголовок. Это позволяет одноранговому соединению L2TP выступать как LAC или LNS для повторного сбора двух фрагментов в исходный, извлеченный из туннеля пакет размером 1540 байт.

Проблемы

Одна из проблем, с которыми сталкиваются туннельный протокол уровня 2 (L2TP) по протоколу датаграмм пользователя (UDP) и другие туннельные IP-протоколы уровня 2 и уровня 3 - то, что служебная информация туннельного протокола увеличивает размер туннельного инкапсулированного пакета. Когда исходный пакет уже является полноразмерным, необходимо фрагментировать туннельный инкапсулированный пакет, чтобы передать его по проводной линии.

Одна из проблем, возникающих из-за фрагментации и пересборки пакетов L2TP на концентраторе доступа и сетевом сервере, заключается в том, что сам процесс фрагментации и пересборки происходит на уровне процессов в ПО Cisco IOS. При агрегировании большого числа сеансов L2TP и потоков трафика на сервере LNS происходит существенное снижение производительности процесса коммутации. Поэтому весьма желательно сократить потребность во фрагментации и повторной сборке в ходе коммутации L2TP или вообще избавиться от этого.

Используйте один из методов, описанных в этом документе, для регулировки максимального размера передаваемого блока данных (MTU), чтобы решить данную проблему.

Способы настройки MTU

Разнообразные конфигурации и функции в ПО Cisco IOS были разработаны для того, чтобы избежать фрагментацию и повторную сборку в коммутируемом пути L2TP с помощью регулирования MTU.

Уменьшение размера IP MTU вручную

Настройте меньшее IP MTU на виртуальном интерфейсе с помощью команды ip mtu. Настройка меньшего IP MTU вынуждает маршрутизатор отбраковывать все пакеты IP, которые превышают IP MTU и имеют установленный бит DF (не фрагментировать) в IP-заголовке. В этом случае маршрутизатор генерирует сообщение протокола ICMP типа 3 о недоступности хоста, код 4 (требуется фрагментация) источнику пакета (исходному хосту). Это сообщение указывает IP MTU интерфейса, поэтому источник может уменьшить размер пакетов, чтобы они соответствовали размеру интерфейса. Этот процесс также известен как "обнаружение MTU пути" (PMTUD). Для получения дополнительной информации обратитесь к RFC 1191leavingcisco.com. leavingcisco.comНастройте IP MTU на самый большой размер IP-пакета, который не будет превышать PMTU между LAC и LNS, когда будет добавлен полный заголовок L2TP. PMTU в 1500 байт и стандартному заголовку L2TP в 40 байт необходимо назначить IP MTU, равный 1460 (1500-40 байт заголовка).

Если PMTU между LAC и LNS неизвестен (или изменяется), можно настроить команду ip pmtu под vpdn-group. Команда ip pmtu была добавлена в программное обеспечение Cisco IOS выпуска 12.2(4)T с использованием идентификатора ошибки CSCds72714 (недоступен для просмотра внешним пользователям). Функция ip pmtu копирует бит DF из внутреннего пакета во внешний заголовок L2TP и включает PMTUD между маршрутизатором и его конечной точкой туннеля L2TP.

Корректировка PMTU на ПК, работающих под управлением Windows

В операционной системе Microsoft Windows имеется запись реестра, которая позволяет вам включить функцию задержки для обнаружения их PMTU. Для получения сведений о Windows NT обратитесь к следующей статье на веб-узле Microsoft: Изменение алгоритма обнаружения "черных дыр" PMTU для Windows NT 3.51 (Q136970).leavingcisco.com leavingcisco.com

Для Windows 2000/XP в статье Microsoft Как устранить неполадки в вопросах маршрутизаторов "черных дыр" (Q314825)leavingcisco.com описаны различные методы, используемые в Windows для того, чтобы избежать этой проблемы. leavingcisco.com В этой статье дается определение маршрутизатора "черной дыры" , описывается метод определения местоположения маршрутизаторов "черных дыр" и предлагаются три способа избежать потери данных, которая может произойти из-за маршрутизатора "черной дыры".

Автоматическая настройка IP MTU

Можно также включить автоматическую настройку IP MTU. Эта возможность позволяет маршрутизатору автоматически настроить IP MTU на интерфейсе виртуального доступа, чтобы компенсировать размер заголовка L2TP и MTU выходного интерфейса. Эта опция была добавлена в Cisco IOS Software Release 12.1 (5) T с использованием идентификатора ошибки CSCdr01713(только для зарегистрированных клиентов).

Примечание: IP MTU настраивается только автоматически, если нет IP MTU, настроенных вручную на виртуальном интерфейсе (с помощью параметра из предыдущего раздела).

Первоначально эта функция была включена по умолчанию без возможности ее выключить. Идентификатор ошибки CSCdt67753(только для зарегистрированных клиентов) в Cisco IOS Software Release 12.2 (3) и 12.2 (4) T и более новых добавил команду [no] ip mtu adjust в разделе vpdn-group для включения и отключения этой опции. Значением по умолчанию было включение этой функции. Эта функция не имеет интерфейса командной строки (CLI) для изменения заданных по умолчанию настроек только для соединений L2X, которые не связываются с vpdn-group (такие, как инициируемый в SGBP туннель L2F или L2TP). Невозможность ее отключения для топологий на основе многоблочного многоканального протокола передачи "точка-точка" вместе с проблемами PMTUD, описанными ниже, является причиной многих жалоб пользователей. Поэтому настройка по умолчанию была изменена на отключенное автоматическое регулирование IP MTU, начиная с версии Cisco IOS Software Release 12.2 (6) и 12.2 (8) T и более поздних с использованием идентификатора ошибки CSCdu69834(только для зарегистрированных клиентов).

И ручная, и автоматическая настройка MTU базируютсяна PMTUD между конечными хостами. Несмотря на красивую теорию, на практике с Интернетом PMTUD работает не очень хорошо. См. RFC 2923leavingcisco.comдля подробного описания того, как PMTUD отказывает в Интернете. leavingcisco.com Основная проблема - наличие устаревших ссылок, которые приводят к зависанию веб-страницы при загрузке. Устаревание ссылок объясняется тем, что межсетевые экраны и маршрутизаторы настроены для фильтрации сообщений ICMP. Когда источник больших пакетов не в состоянии получить сообщение "Недостижим узел ICMP" от маршрутизатора, указывающее, что MTU был превышен, он не может сократить размер пакета. Вместо этого он продолжает пытаться повторно передать тот же самый пакет снова и снова с использованием установленного бита CLP. Эти пакеты отбраковываются LNS, так как они превышают PMTU, и соединение прекращает отвечать.

Поскольку сложно быть уверенным, что PMTUD обнаружит, что IP MTU меньше при передаче по туннелю L2TP, Cisco добавил функцию настройки максимального размера сегмента (MSS) TCP Cisco IOS Software Release 12.2(4)T.

Настройка максимального размера сегмента TCP

Функция регулирования параметра Maximum Segment Size TCP - добавлена с идентификатором ошибки CSCds69577(только для зарегистрированных клиентов), начиная с версии Cisco IOS Software Release 12.2 (4) T и позднее, и позволяет маршрутизатору модифицировать объявленный TCP MSS во входящих и исходящих синхронизированных (SYN) пакетах, передаваемых конечными хостами. Путем изменения TCP MSS на меньшее значение, чем обычно заданное по умолчанию (1460), можно устранить TCP как источник полноразмерных пакетов. Необходимо настроить значение TCP MSS, при котором размер сегмента TCP вместе с заголовком TCP/IP и инкапсулированными данными L2TP по сети UDP не превышает максимального размера блока данных IP MTU для исходящего интерфейса. Заголовок TCP/IP - обычно 40 байтов, а заголовок L2TP по UDP - дополнительно 40 байтов. Поэтому в целом TCP MSS должен быть настроен на 1420 (1500 - 40 байтов заголовка TCP/IP - 40 байтов заголовка L2TP по UDP).

Команда, используемая для этого: ip tcp adjust-mss <mss>, которая является командой уровня интерфейса.

Последняя опция для уменьшения фрагментации в сети L2TP требует поддержки для согласования Maximum Receive Unit (MRU) с клиентом PPP. Параметр MRU в PPP позволяет узлу анонсировать, каков его Maximum Receive Unit. Например, если узел будет анонсировать MRU 1460, то этот узел не будет обрабатывать кадр PPP с информационным наполнением, большим, , чем 1460 байтов. В реализации Cisco PPP используется MTU интерфейса как значение MRU, которое он анонсировал во время согласования PPP. Если MTU установлен равным значению по умолчанию (1500 байтов), никакой MRU не анонсируется, поскольку это стандартный по умолчанию размер для PPP. Однако если установлено значение MTU 1460, то объявляется значение PPP MRU 1460. Если узел PPP примет вызов MRU во время согласования и настроит свой MTU (и косвенно MTU IP) для этого канала PPP, можно будет избежать фрагментации. С анонсировавшим MRU PPP 1460 узел должен установить IP MTU в значение 1460. При этом, в свою очередь, модифицируется TCP MSS, который анонсируется узлом при открытии TCP-подключений и устраняется фрагментация по сети L2TP.

Настройка меньшего значения MTU

Используйте команду mtu <bytes>для настройки более низкого значения MTU на интерфейсе virtual-template. Опять это требует поддержки на клиенте PPP для прослушивания анонсированного MRU во время согласования PPP. Один известный клиент, который прослушивает параметр MRU – это PPP-клиент Windows XP. К сожалению, другие обычно развернутые клиенты PPP не придерживаются анонсируемого MRU PPP, хотя должны это делать. См. документацию на клиент PPP для определения, использует ли он должным образом анонсируемый MRU PPP. При работе L2TP вместе с прокси-LCP согласование LCP необходимо, поскольку параметр MRU согласовывается во время фазы LCP. Для включения повторного согласования LCP настройте lcp renegotiation on-mismatch или lcp renegotiation always в vpdn-group.

Одна проблема с понижением MTU - то, что IP MTU также автоматически понижается. В настоящее время невозможно настроить значение IP MTU, большее, чем MTU, на интерфейсе virtual-template. Отслеживание осуществляется с помощью ID ошибки CSCdx39828 в виде запроса функции/Усовершенствования (невидимого для внешних пользователей).

Этот метод требует, чтобы клиенты прослушивали параметр MRU во время согласования LCP. Часто подключаются разные клиенты: одни прослушивают MRU, другие нет. Клиенты, которые игнорируют MRU, сталкиваются с неполадками PMTUD, описанными в разделе Автоматическая регулировка IP MTU. Для этих клиентов можно использовать другое временное решение: фактическое выключение PMTUD путем сброса бита DF во внутреннем пакете IP. Это можно сделать при помощи следующей конфигурации:

interface virtual-template1
   ip policy route-map clear-df
   !
  route-map clear-df permit 10
   match ip address 101
   set ip df 0
   !
  access-list 101 permit tcp any any

Заключение

ПО Cisco IOS предоставляет много различных способов максимизации производительности коммутации L2TP. PMTUD — идеальное решение. Однако вследствие проблем с доступом в Интернет оно не всегда надежно. Программное обеспечение Cisco IOS предоставляет некоторые альтернативные механизмы для того, чтобы поддержать быстродействие коммутации L2TP на высоком уровне и максимально увеличить возможности подключения пользователей.

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения


Document ID: 24320