11.3.3. Прием пакетов при нахождении вне дома
Находясь вне дома, мобильный узел будет получать пакеты, адресованные на его домашний адрес, одним из двух методов:
- Пакеты, посылаемые узлом-корреспондентом, который не имеет элемента кэша привязок для данного мобильного узла, будут посылаться на домашний адрес, захваченный домашним агентом, и туннелироваться мобильному узлу.
- Пакеты, посылаемые узлом-корреспондентом, который для мобильного узла имеет элемент кэша привязок, содержащий текущий временный адрес мобильного узла, будут посылаться узлом-корреспондентом, используя заголовок маршрутизации типа 2. Пакет будет адресован на временный адрес мобильного узла с последним интервалом в заголовке маршрутизации, направляющим пакет на домашний адрес мобильного узла; обработка этого последнего интервала заголовка маршрутизации полностью выполняется внутри мобильного узла, поскольку оба адреса, временный адрес и домашний адрес, являются адресами внутри мобильного узла.
Для пакетов, полученных первым методом, мобильный узел должен (MUST) проверить, что IPv6-адрес источника туннельного пакета является IP-адресом его домашнего агента. В этом методе мобильный узел может также послать сообщение Binding Update первоначальному отправителю пакета, как описано в разд. 11.7.2, которое является предметом ограничения скорости, определенного в разд. 11.8. Мобильный узел должен (MUST) также обрабатывать принятый пакет способом, определенным для IPv6-инкапсуляции [15], что приведет к тому, что инкапсулированный (внутренний) пакет будет обрабатываться внутри узла протоколами более высокого уровня обычным образом, как если бы он был адресован (только) на домашний адрес мобильного узла.
Для пакетов, полученных вторым методом, следующие правила приведут к тому, что пакет будет обрабатываться внутри узла протоколами более высокого уровня обычным образом, как если бы он был адресован (только) на домашний адрес мобильного узла.
Узел, принимающий пакет, адресованный себе самому (т.е. один из адресов узла находится в поле места назначения IPv6), идет по цепочке «следующий заголовок» и обрабатывает их. Когда во время этой обработки он обнаруживает заголовок маршрутизации типа 2, он выполняет следующие проверки. Если любая из этих проверок не пройдет, узел должен (MUST) молча отбросить этот пакет.
- Поле длины в заголовке маршрутизации в точности равно 2.
- Поле segments left в заголовке маршрутизации «на линии» равно 1. (Но реализации могут обрабатывать заголовок маршрутизации так, что это значение может стать равным 0 после завершения обработки заголовка маршрутизации, но до того, как обрабатывается оставшаяся часть пакета).
- Поле Home Address в заголовке маршрутизации является одним из домашних адресов узла, если поле segments left было равно 1. Таким образом, требуется, в частности, чтобы поле адреса представляло индивидуальный маршрутизируемый адрес.
Когда указанные выше проверки выполнены, узел осуществляет обмен поля места назначения IPv6 с полем Home Address в заголовке маршрутизации, декрементирует значение segments left на единицу от его значения «на линии» и повторно представляет пакет IP для обработки следующего заголовка.
Концептуально это следует той же самой модели, что и в RFC 2460. Однако в случае заголовка маршрутизации типа 2 это может быть упрощено, поскольку известно, что пакет не будет пересылаться на другой узел.
Определение AH требует, чтобы отправитель вычислял контрольное значение целостности AH заголовка маршрутизации тем же самым способом, каким оно получается в приемнике после того, как он обработал заголовок. Поскольку заголовки IPsec следуют за заголовком маршрутизации, любая обработка IPsec будет работать над пакетом с домашним адресом в поле места назначения IP и полем segments left, равным нулю. Таким образом, вычисления AH на отправителе и приемнике будут иметь идентичный вид пакета.