11.7.2. Регистрация в узле-корреспонденте
Когда мобильный узел уверен в том, что его домашний адрес является годным, он может инициировать регистрацию в узле-корреспонденте с целью разрешения узлу-корреспонденту кэшировать текущий временный адрес мобильного узла. Эта процедура включает процедуру обратной маршрутизируемости, за которой следует регистрация.
В данном разделе определено, когда должна инициироваться регистрация в узле-корреспонденте, и правила, которым необходимо следовать во время ее выполнения.
После того, как мобильный узел послал сообщение Binding Update домашнему агенту, регистрируя свой новый основной временный адрес (как описано в разд. 11.7.1), мобильный узел должен (SHOULD) инициировать регистрацию в узле-корреспонденте для каждого узла, который уже имеется в списке обновлений привязки мобильного узла. Запускаемые процедуры могут использоваться либо для обновления, либо для удаления информации о привязке в узле-корреспонденте.
Для тех узлов, которые отсутствуют в списке обновлений привязки мобильного узла, мобильный узел может (MAY) инициировать регистрацию в узле-корреспонденте в любой момент времени после посылки сообщения Binding Update своему домашнему агенту.
Соображения относительно того, когда (и при каких условиях) инициировать эту процедуру, зависят от конкретного перемещения и характера трафика мобильного узла и выходят за рамки данного документа.
Кроме того, мобильный узел может (MAY) инициировать регистрацию в узле-корреспонденте в ответ на получение пакета, который удовлетворяет всем следующим проверкам:
- Пакет был туннелирован с использованием IPv6-инкапсуляции.
- Адрес места назначеия в туннельном (внешнем) IPv6-заголовке равен любому из временных адресов мобильного узла.
- Адрес места назначеия в оригинальном (внутреннем) IPv6-заголовке равен любому из домашних адресов мобильного узла.
- Адрес источника в туннельном (внешнем) IPv6-заголовке отличается от адреса источника в оригинальном (внутреннем) IPv6-заголовке.
- Пакет не содержит сообщений Home Test, Home Test Init, Care-of Test или Careof Test Init.
Если мобильный узел имеет несколько домаших адресов, то для использования в регистрации в узле-корреспонденте важно выбрать правильный адрес. Используемый домашний адрес должен (MUST) быть адресом места назначения оригинального (внутреннего) пакета.
Адрес партнера, используемый в этой процедуре, должен (MUST) определяться следующим образом:
- Если в оригинальном (внутреннем) пакете опция места назначения Home Address присутствует, то используется адрес из этой опции.
- В противном случае, используется адрес источника в оригинальном (внутреннем) IPv6-заголовке пакета.
Заметим, что законность (правильность) оригинального пакета проверяется до попытки инициирования регистрации в узле-корреспонденте. Например, если в оригинальном пакете имеется опция места назначения Home Address, то применяются правила из разд. 9.3.1.
Мобильный узел может (MAY) также принять решение сохранить свое топологическое местоположение в секрете от некоторых узлов-корреспондентов, и, таким образом, не нуждается в инициировании регистрации в узле-корреспонденте.
После успешного завершения процедуры обратной маршрутизируемости, а также после получения от домашнего агента успешного сообщения Binding Acknowledgement, узлу-корреспонденту может (MAY) быть послано сообщение Binding Update.
В любом сообщении Binding Update, посылаемом мобильным узлом, временный адрес (либо адрес источника в IPv6-заголовке пакета, либо временный адрес в опции мобильности Alternate Care-of Address данного сообщения Binding Update) должен (MUST) быть установлен равным одному из временных адресов, используемому мобильным узлом в настоящий момент времени, или домашнему адресу мобильного узла. Для посылки сообщений Binding Update различным узлам-корреспондентам мобильный узел может (MAY) установить временный адрес по-разному.
Мобильный узел может (MAY) также послать такому узлу-корреспонденту сообщение Binding Update, отдавая ему распоряжение удалить любую существующую привязку для мобильного узла из его кэша привязок, как описано в разд. 6.1.7. Даже в этом случае, сначала требуется успешное завершение процедуры обратной маршрутизируемости.
Если временный адрес не установлен равным домашнему адресу мобильного узла, то сообщение Binding Update требует, чтобы узел-корреспондент создал или обновил для этого мобильного узла элемент кэша привязок в узле-корреспонденте. Это делается для того, чтобы сохранить временный адрес для использования при посылке будущих пакетов мобильному узлу. В этом случае значение, указанное в поле Lifetime и посылаемое в сообщении Binding Update, должно быть (SHOULD) меньше или равно оставшемуся времени жизни регистрации в домашнем агенте и временного адреса, указанного для привязки. Временный адрес, заданный в сообщении Binding Update, может (MAY) отличаться от основного временного адреса мобильного узла.
Если сообщение Binding Update посылается узлу-корреспонденту, требуя стирания любого существующего элемента кэша привязок, который он имеет для этого мобильного узла, то временный адрес устанавливается равным домашнему адресу мобильного узла, а поле Lifetime устанавливается в ноль. В этом случае генерация ключа управления привязкой зависит исключительно от маркера home keygen token (разд. 5.2.5). В этом случае индекс одноразового номера care-of nonce index должен (SHOULD) быть установлен в ноль. При соблюдении указанных ниже правил создания сообщений Binding Update временный адрес должен (MUST) быть установлен равным домашнему адресу, если мобильный узел находится дома, или текущему временному адресу, если он находится вне дома.
Если мобильный узел хочет иметь гарантию того, что его новый временный адрес был записан в кэш привязок узла-корреспондента, он должен потребовать подтверждения путем установки в сообщение Binding Update бита Acknowledge (A).
Сообщение Binding Update создается следующим образом:
- Текущий временный адрес мобильного узла должен (MUST) посылаться либо в поле Source Address IPv6-заголовка, либо в опции мобильности Alternate Care-of Address.
- Поле Destination Address IPv6-заголовка должно (MUST) содержать адрес узла- корреспондента.
- Заголовок мобильности конструируется в соответствии с правилами из разд. 6.1.7 и 5.2.6, включая поле Binding Authorization Data (вычисленное, как определено в разд. 6.2.7), и возможно опции мобильности Nonce Indices.
- К пакету в опции места назначения Home Address должен (MUST) быть добавлен домашний адрес мобильного узла, если только поле Source Address не является этим домашним адресом.
Каждое сообщение Binding Update должно (MUST) иметь порядковый номер больший, чем значение Sequence Number, посланное в предыдущем сообщении Binding Update на тот же самый адрес места назначения (если оно было). Порядковые номера сравниваются по модулю 2**16, как описано в разд. 9.5.1. Однако отсутствует требование на то, чтобы порядковый номер строго увеличивался на 1 при каждой посылке или приеме нового сообщения Binding Update до тех пор, пока это значение находится внутри окна. Последнее значение порядкового номера, посланное на некоторое место назначения в сообщении Binding Update, сохраняется мобильным узлом в его элементе списка обновлений привязки для данного места назначения. Если посылающий мобильный узел не имеет элемента списка обновлений привязки, порядковый номер должен (SHOULD) начинаться со случайного значения. Мобильный узел не должен (MUST NOT) использовать тот же самый порядковый номер в двух различных сообщениях Binding Update для одного и того же узла-корреспондента, даже если эти сообщения Binding Update предоставляют различные временные адреса.
Мобильный узел несет ответственность за завершение регистрации в узле-корреспонденте, а так же за любые повторные передачи, которые могут потребоваться (предмет для ограничения скорости, определенного в разд. 11.8).