Network Working Group S. Hanks Request for Comments: 1702 NetSmiths, Ltd. Category: Informational T. Li D. Farinacci P. Traina cisco Systems October 1994
Инкапсуляция GRE в сетях IPv4
Generic Routing Encapsulation over IPv4 networks
Статус документа
Этот документ содержит информацию для сообщества Internet и не задает каких-либо стандартов Internet. Распространение документа не ограничено.
Введение
В предыдущем документе [RFC 1701] был описан механизм GRE для инкапсуляции произвольных пакетов в произвольный транспортный протокол. Данный документ служит дополнением, описывающим использование GRE с протоколом IP. Рассмотрены случаи использования IP в качестве протокола доставки и инкапсулируемого протокола, а также в качестве того и другого одновременно. Документ также описывает использование адресов IP и номеров автономных систем, как части задаваемого отправителем маршрута GRE.
IP в качестве протокола доставки
Пакеты GRE инкапсулируются в IP с использованием типа протокола IP 47.
IP в качестве инкапсулируемого протокола
Пакеты IP инкапсулируются с полем Protocol Type = 0x800.
Для Address Family = 0x800 поле Routing Information будет включать список адресов IP, задающих маршрут, указанный отправителем (IP source route). Первый октет поля Routing Information задает 8-битовое целочисленное смещение от начала SRE1, называемое смещением SRE (SRE Offset). Это смещение указывает первый октет следующего адреса IP. Поле SRE Length указывает общий размер списка адресов IP (IP Address List) в октетах. Формат показан на рисунке
0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Family | SRE Offset | SRE Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address List ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Для Address Family = 0xfffe поле Routing Information содержит список номеров автономных систем (АС) и задает указанный отправителем маршрут через АС (AS source route). Третий октет поля Routing Information содержит 8-битовое целочисленное смещение от начала SRE, называемое смещением SRE. Это смещение указывает на первый октет следующего номера АС. Поле SRE Length указывает общий размер списка номеров АС в октетах.
0 1 2 3 0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Family | SRE Offset | SRE Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AS Number List ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP в качестве инкапсулируемого протокола и протокола доставки
При инкапсуляции IP в IP поля TTL, TOS и опций IP security могут копироваться из инкапсулируемого пакета в заголовок внешнего пакета. Значение поля TTL в инкапсулируемом пакете должно декрементироваться при декапсуляции, чтобы убедиться в том, что время жизни пакета не истекло.
Задаваемые отправителем маршруты IP
Когда система обрабатывает SRE с полем Address Family, указывающим IP source route, она должна использовать значение SRE Offset для определения адреса следующего получателя. Если этот адрес указывает на текущую систему, значение поля SRE Offset следует увеличить на 4 (размер адреса IP). Если значение SRE Offset совпадает со значением поля SRE Length в данной SRE, поле Offset в заголовке GRE следует изменить так, чтобы оно указывало на следующую SRE (при ее наличии). Эту процедуру следует повторять до тех пор, пока адрес следующего получателя не совпадет с адресом данной системы или целиком не завершится обработка SRE.
Если заданный отправителем маршрут не полон, проверяется бит Strict Source Route. Если маршрут строго задан отправителем, а следующим получателем IP является не смежная система, покат должен быть отброшен. В остальных случаях системе следует использовать IP-адрес, заданный полем Offset для замены адреса получателя во внешнем заголовке и пересылки пакета.
Задаваемые отправителем маршруты через АС
Когда система обрабатывает SRE с полем Address Family, указывающим AS source route, она должна использовать значение SRE Offset для определения номера следующей АС. Если следующей указана локальная АС, значение поля SRE Offset следует уменьшить на 2 (размер номера АС). Если значение SRE Offset совпадает со значением поля SRE Length в данной SRE, поле Offset в заголовке GRE следует изменить так, чтобы оно указывало на следующую SRE (при наличии). Эту процедуру следует повторять до тех пор, пока номер следующей АС не совпадет с номером локальной АС или SRE не будет обработана целиком.
Если заданный отправителем маршрут не полон, проверяется бит Strict Source Route. Если маршрут строго задан отправителем, а следующим получателем является не смежная АС, пакет следует отбросить. В остальных случаях следует использовать номер АС, заданный полем Offset для замены адреса получателя во внешнем заголовке и пересылки пакета. Точный механизм определения адреса следующего получателя, определяемого заданным номером АС выходит за рамки данного документа.
Вопросы безопасности
Вопросы безопасности не рассматриваются в этом документе.
Адреса авторов
Stan Hanks
NetSmiths, Ltd.
2025 Lincoln Highway
Edison, NJ 08817
EMail: stan@netsmiths.com
Tony Li
cisco Systems, Inc.
1525 O’Brien Drive
Menlo Park, CA 94025
EMail: tli@cisco.com
Dino Farinacci
cisco Systems, Inc.
1525 O’Brien Drive
Menlo Park, CA 94025
EMail: dino@cisco.com
Paul Traina
cisco Systems, Inc.
1525 O’Brien Drive
Menlo Park, CA 94025
EMail: pst@cisco.com
Перевод на русский язык
Николай Малых
Литература
RFC 1701 Hanks, S., Li, T, Farinacci, D., and P. Traina, “Generic Routing Encapsulation”, RFC 1701, NetSmiths, Ltd., and cisco Systems, October 1994.
1Source Route Entry — элемент задаваемого отправителем маршрута.