rfc2866 (1027732), страница 3
Текст из файла (страница 3)
Поля пакета передаются слева направо.01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code| Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|||Request Authenticator|||||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Attributes ...+-+-+-+-+-+-+-+-+-+-+-+-+Code = 4IdentifierЗначение поля Identifier должно меняться при всяком изменении содержимого поля Attributes и при получении корректногоотклика на предыдущий запрос. При повторной передаче пакетов без их изменения значение поля Identifier должно сохраняться.Отметим, что при включении атрибутов Acct-Delay-Time в пакет Accounting-Request значение Acct-Delay-Time будет обновлятьсяпри повторной передаче пакета, следовательно изменение содержимого поля Attributes требует заново вычислять значения полейIdentifier и Request Authenticator.Request AuthenticatorПоле Request Authenticator в пакетах Accounting-Request содержит 16-октетное хэш-значение MD5, рассчитанное в соответствии сописанной выше процедурой (см.
Request Authenticator).AttributesПоле Attributes имеет переменную длину и содержит список атрибутов.4.2. Accounting-ResponseПакеты Accounting-Response передаются сервером RADIUS accounting клиенту в качестве подтверждения приема и успешнойзаписи пакетов Accounting-Request. Если принятый пакет Accounting-Request был записан без ошибок, сервер RADIUS accountingдолжен передать пакет с Code = 5 (Accounting-Response). При получении пакета Accounting-Response клиент проверяет значениеполя Identifier для определения соответствия отправленному запросу Accounting-Request.
Поле Response Authenticator должносодержать корректный отклик для ожидающего пакета Accounting-Request. Некорректные пакеты отбрасываются безуведомления.Пакеты Accounting-Response могут не содержать никаких атрибутов.Формат пакетов Accounting-Response показан ниже. Поля пакета передаются слева направо.www.bilim.com4www.protocols.ruПеревод RFC 2866Разумные сети от компании BiLiM Systems01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code| Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|||Response Authenticator|||||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Attributes ...+-+-+-+-+-+-+-+-+-+-+-+-+Code = 5IdentifierПоле Identifier содержит копию одноименного поля из пакета Accounting-Request, послужившего причиной передачи пакетаAccounting-Response.Response AuthenticatorПоле Response Authenticator в пакетах Accounting-Response содержит 16-октетное значение MD5, рассчитанное в соответствии сописанной выше процедурой (см.
Response Authenticator).AttributesПоле Attributes имеет переменную длину и содержит список атрибутов.5. АтрибутыАтрибуты RADIUS используются для передачи информации, связанной с аутентификацией и проверкой полномочийпользователей, а также учетом их работы.Некоторые атрибуты могут присутствовать в пакете в нескольких экземплярах (это указывается ниже при описании атрибутов).Завершение списка атрибутов определяется значением поля Length в пакетах RADIUS.Формат атрибутов показан ниже. Поля атрибута передаются слева направо.0120 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Length| Value ...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+TypeОднооктетное поле, определяющее тип атрибута. Актуальные значения поля типа для атрибутов RADIUS вы можете узнать изпоследнего варианта документа Assigned Numbers [6].
Значения 192-223 предназначены для экспериментальных целей, значения224-240 зарезервированы для разработчиков (специфические для реализации типы), а значения 241-255 являются резервными и недолжны использоваться. Рассматриваемые в данной спецификации значения приведены в таблице.ЗначениеТипЗначениеТип1-39См. спецификацию RADIUS [2]46Acct-Session-Time40Acct-Status-Type47Acct-Input-Packets41Acct-Delay-Time48Acct-Output-Packets42Acct-Input-Octets49Acct-Terminate-Cause43Acct-Output-Octets50Acct-Multi-Session-Id44Acct-Session-Id51Acct-Link-CountAcct-Authentic60+См. спецификацию RADIUS [2]45LengthОднооктетное поле Length указывает размер данного атрибута с учетом полей Type, Length и Value.
При получении атрибута снекорректно указанным размером в пакетах Accounting-Request, такие пакеты должны отбрасываться без уведомления.ValueНеобязательное поле Value содержит значение атрибута. Формат и размер значения атрибута определяются значениями полейType и Length.Отметим, что ни один из типов RADIUS не использует в качестве завершения NUL-символ (hex 00). В частности, значения типаtext и string в протоколе RADIUS не завершаются NUL-символом. Для каждого атрибута имеется поле размера, поэтому символызавершения не требуются.
Значения типа text представляет собой последовательность символов в кодировке UTF-8 10646 [7], азначения типа string содержат 8-битовые бинарные данные. Серверы и клиенты RADIUS должны быть способны работать состроками, содержащими NUL-символы. При реализации RADIUS на основе языка C не следует использовать для обработки строкфункцию strcpy().Значение атрибута может относиться к одному из пяти поддерживаемых типов данных. Отметим, что тип text является частнымслучаем (подмножеством) типа string.textот 1 до 253 октетов, содержащих символы в кодировке UTF-8 10646 [7]. Недопустима передача текстовых атрибутовнулевой длины.
В таких случаях следует просто исключить атрибут.www.bilim.com5www.protocols.ruРазумные сети от компании BiLiM SystemsПеревод RFC 2866string от 1 до 253 октетов, содержащих бинарные данные (значения от 0 до 255, включительно). Недопустима передача stringатрибутов нулевой длины. В таких случаях следует просто исключить атрибут.address 32-битовое значение, первый октет является старшим.integer 32-битовое беззнаковое целое, первый октет является старшим.time32-битовое беззнаковое целое (первый октет является старшим), показывающее число секунд, прошедших с 1 января 1970г.
(00:00:00 по Гринвичу – UTC). Стандартные атрибуты RADIUS не используют этот тип, но он добавлен для будущихрасширений.5.1. Acct-Status-TypeЭтот атрибут определяет на что указывает данный пакет Accounting-Request – начало (Start) или завершение (Stop) обслуживанияпользователя.Атрибут может использоваться клиентом для маркировки начала учета (например, при загрузке) путем указания Accounting-Onили для маркировки завершения учета (например, перед перезагрузкой) с помощью Accounting-Off.Формат атрибута Acct-Status-Type показан ниже. Поля передаются слева направо.01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Length|Value+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Value (cont)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Type = 40Length = 6ValueЧетырехоктетное поле.1Start2Stop3Interim-Update7Accounting-On8Accounting-Off9-14 Зарезервированы для Tunnel Accounting15Зарезервировано для отказов (Failed)5.2.
Acct-Delay-TimeЭтот атрибут показывает число секунд, в течение которых клиент пытается передать данную запись, и значение атрибута можетвычитаться из времени доставки пакета на сервер для приблизительного определения момента генерации пакета AccountingRequest (время передачи через сеть не принимается во внимание).Отметим, что изменение Acct-Delay-Time требует менять значение поля Identifier (см. выше).Формат атрибута Acct-Delay-Time показан ниже. Поля передаются слева направо.01230 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Length|Value+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Value (cont)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Type = 41Length = 6ValueЧетырехоктетное поле.5.3. Acct-Input-OctetsЭтот атрибут показывает количество октетов, полученных из порта за время, в течение которого предоставляется данный сервис.Атрибут может включаться только в пакеты Accounting-Request, где Acct-Status-Type = Stop.Формат атрибута Acct-Input-Octets показан ниже.














