Россия, Санкт-Петербург, Северо-Западный заочный технический университет, 2007 |
Способы передачи РРР по Ethernet
Обзор существующих AVP
Перечислим основные AVP, определенные в протоколе L2TP. После названия AVP перечислены типы сообщений, в которых используется данный AVP. Далее следует краткое описание, для чего предназначен AVP, и детальное описание формата Value и, возможно, некоторая дополнительная информация, необходимая для описания использования AVP.
AVP, используемые во всех управляющих сообщениях
Message Type (все сообщения)
Определяет управляющее сообщение и контекст, в котором используются последующие AVP. Этот AVP является первым в сообщении, непосредственно следуя за заголовком управляющего сообщения.
Бит Mandatory (M) в Message Type AVP имеет специальное значение. Он указывает, что сам AVP должен игнорироваться, если не распознается. Он также определяет, что само управляющее сообщение должно игнорироваться. Таким образом, если бит М установлен в Message Type AVP, и Message Type не известен, то туннель уничтожается. Если бит М не установлен, то неизвестный тип сообщения может игнорироваться.
Random Vector (все сообщения)
Random Vector AVP используется для обеспечения возможности скрытия значений некоторых AVP. Этот случайный вектор будет использоваться при вычислении хэш-кода MD5 для скрытых значений.
В сообщение может быть несколько Random Vector AVP. Данный AVP посылается до первого AVP с установленным битом H.
Бит М в данном AVP установлен, AVP не должен быть скрыт.
Коды результата и коды ошибок
Result Code (CDN, STOPCCN)
Result Code AVP указывает причину завершения управляющего канала или сессии. Данный AVP не должен быть скрыт, бит М должен быть установлен.
В сообщении STOPCCN определены следующие коды результата:
- -Общий запрос на освобождение управляющего соединения.
- -Общая ошибка – в Error Code указана причина.
- -Управляющий канал уже существует.
- -Запрашивающая сторона не авторизована устанавливать управляющий канал.
- -Версия протокола не поддерживается получателем. В Error Code указана максимальная поддерживаемая версия.
- -Запрашивающая сторона остановлена.
- -Ошибка машины конечных состояний.
В сообщении CDN определены следующие коды результата:
- -Разрыв соединения из-за потери несущей.
- -Разрыв соединения из-за причины, указанной в коде ошибки.
- -Разрыв соединения из-за административных причин.
- -Сбой вызова из-за временного отсутствия необходимых усло-вий.
- -Сбой вызова из-за постоянного отсутствия необходимых усло-вий.
- -Недействительный получатель.
- -Сбой вызова из-за отсутствия несущей.
- -Сбой вызова из-за того, что сигнал занят.
- -Сбой вызова из-за потери тонального набора.
- -Вызов не был установлен в течение времени, отведенного LAC.
- -Вызов был установлен, но не обработан требуемым образом.
Коды ошибок, приведенные ниже, не относятся к типам ошибок, которые специфичны для конкретного L2TP-запроса, а скорее к ошибкам протокола или формата сообщений. Если в L2TP-ответе указано, что произошла общая ошибка, необходимо проанализировать значение General Error, чтобы определить конкретную причину. Определены следующие коды ошибок:
- -Не существует управляющего соединения для данной пары LAC-LNS.
- -Неправильная длина.
- -Одно из значений полей выходит за допустимый диапазон или зарезервированное поле имеет ненулевое значение.
- -Недостаточно ресурсов для выполнения данной операции.
- -Session ID является недействительным в данном контексте.
- -На стороне LAC произошла общая ошибка, специфичная для данного производителя.
- -Следует попытаться заново установить соединение. Если LAC известны другие возможные LNS, он должен попытаться соединиться с ними. Это может использоваться для того, чтобы поведение LAC зависело от политики LNS.
- -Сессия или туннель удалены из-за получения неизвестного AVP с установленным битом М.
AVP, используемые в управляющих соединениях
Protocol Version (SCCRP, SCCRQ)
Значение 2 указывает на протокол L2TP.
Framing Capabilities (SCCRP, SCCRQ)
AVP указывает противоположной стороне тип обработки: синхронная или асинхронная. Противоположная сторона не должна делать запрос входящего или исходящего вызова со значением Framing Type AVP, которое не соответствует полученному при установлении управляющего соединения. Попытки сделать это приведут к тому, что вызов будет сброшен.
Данный AVP может быть скрыт. Бит М для данного AVP всегда установлен.
Bearer Capabilities (SCCRP, SCCRQ)
Bearer Capabilities AVP указывает противоположной стороне типы устройств аппаратных интерфейсов, а именно, поддерживается ли аналоговый и цифровой доступ.
LNS не должен в исходящем вызове указывать значение в Bear Capabilities AVP, которое не соответствует тому, которое он получил от LAC при установлении управляющего соединения. Попытка сделать это приведет к тому, что вызов будет сброшен.
Заметим, что LNS, который не может функционировать как LAC, а также не поддерживает аппаратные устройства, обрабатывающие входящие и исходящие вызовы, должен либо установить соответствующие биты в 0, либо не посылать данный AVP вовсе. Наличие данного сообщения не гарантирует, что данный исходящий вызов будет получен, так как необходимы еще и физические условия.
Данный AVP может быть скрыт, бит М не установлен.
Tie Breaker (SCCRQ)
Tie Breaker AVP говорит о том, что отправитель хочет, чтобы существовал единственный туннель между данной парой LAC-LNS.
Host Name (SCCRP, SCCRQ)
Host Name AVP указывает имя LAC или LNS, чаще всего это DNS-имя.
Assigned Tunnel ID (SCCRP, SCCRQ, STOPCCN)
Assigned Tunnel ID AVP указывает идентификатор, связанный с данным туннелем отправителем. Данное значение используется для мультиплексирования и демультиплексирования нескольких туннелей между LNS и LAC. Противоположная сторона размещает данное значение в заголовке Tunnel ID во всех управляющих сообщениях и сообщениях данных, которые передаются по этому туннелю. Перед тем, как получить Assigned Tunnel ID AVP от противоположной стороны, данной стороне посылаются управляющие сообщения со значением Assigned Tunnel ID, равным нулю.
В управляющем сообщении STOPCCN Assigned Tunnel ID AVP имеет тоже самое значение, что и в первый раз посланный Assigned Tunnel ID AVP, что позволяет противоположной стороне определить соответствующий туннель, даже если STOPCCN послан до того, как получен Assigned Tunnel ID AVP.
Данный AVP может быть скрыт. Бит М должен быть установлен.
Receive Window Size (SCCRQ, SCCRP)
Receive Window Size AVP определяет размер окна получателя.
Challenge (SCCRP, SCCRQ)
Challenge AVP говорит о том, что противоположная сторона хочет выполнить аутентификацию с использованием СНАР-механизма.
Данный AVP может быть скрыт. Бит М для данного AVP всегда установлен.
Challenge Response (SCCCN, SCCRP)
Response AVP передает ответ на полученный запрос.
Данный AVP всегда присутствует в SCCRP или SCCCN, если ранее был получен запрос в SCCRQ или SCCRP.
Данный AVP может быть скрыт. Бит М должен быть установлен.
Операции протокола
Установка туннелирования для РРР-сессии состоит из двух шагов:
- Установление управляющего соединения для туннеля.
- Установление сессии, которая запускается при входящих и исходящих вызовах.
Туннель и управляющее соединение должны быть установлены до инициализации входящего или исходящего вызова. L2TP-сессия должна быть установлена до того, как L2TP начнет туннелировать РРР-кадры. Че-рез единственный туннель может существовать несколько сессий, несколь-ко туннелей может быть создано между одними и теми же LAC и LNS.