RFC 2698 A Two Rate Three Color Marker

Network Working Group                                        J. Heinanen
Request for Comments: 2698                                 Telia Finland
Category: Informational                                        R. Guerin
                                              University of Pennsylvania
                                                          September 1999

A Two Rate Three Color Marker

Цветовая маркировка трафика по двум скоростям

PDF

Статус документа

В этом документе представлена информация для сообщества Internet. Документ не задает стандартов Internet и может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). Все права защищены.

Аннотация

Этот документ определяет маркеровку trTCM1, которая могут применяться кондиционерами трафика Diffserv [RFC2475, RFC2474]. Скорость потока измеряется и помечается trTCM в соответствии с двумя параметрами — PIR2 и CIR3, а также размером связанных с ними пиков — зеленым, желтым или красным «цветом». Пакеты помечаются красным в случае превышения PIR и желтым или зеленым в зависимости от превышения CIR.

1. Введение

trTCM измеряет скорость потока пакетов IP и помечает пакеты зеленым, желтым или красным цветом. Пакеты помечаются красным в случае превышения PIR и желтым или зеленым в зависимости от превышения CIR. Маркировка trTCM полезна, например, для входных правил службы, где пиковая скорость должна контролироваться независимо от согласованной.

Измеритель (Meter) учитывает каждый пакет и передает пакет вместе с результатом измерения маркировщику (Marker).

                     +------------+
                     |  Результат |
                     |            V
                 +-------+    +--------+
                 |       |    |        |
Поток пакетов ==>| Измер.|===>| Маркир.|===> Промаркированный поток
                 |       |    |        |
                 +-------+    +--------+


Измеритель работает в одном из двух режимов. В «слепом» режиме (Color-Blind) предполагается, что поток пакетов «не окрашен», а в режиме Color-Aware измеритель знает, что тот или иной элемент уже «окрасил» каждый пакет потока зеленым, желтым или красным цветом. Детали этой предварительной маркировки, включая обработку ошибок и способ обнаружения маркировки зависят от домена дифференцированного обслуживания (DS) и выходят за рамки документа.

Маркировщик «окрашивает» (перекрашивает) пакеты IP в соответствии с результатами измерителя. Цвета представляются в поле DS [RFC2474] пакета в соответствии с PHB (см. 4. Маркировка).

В другом документе [RFC2697] описан еще один вариант цветовой маркировки (srTCM4), где пакеты помечаются на основе значений одной скорости и двух пиков.

2. Настройка конфигурации

Маркировка trTCM настраивается путем задания режима и установки четырех параметров — PIR, PBS5, CIR и CBS6.

PIR и CIR измеряются в байтах пакетов IP за секунду, т. е. учитывает заголовки IP, но не заголовки канального уровня. Значение PIR должно быть не меньше CIR.

PBS и CBS измеряются в байтах и должны быть заданы так, что хотя бы одно из значений было больше 0. Рекомендуется устанавливать отличные от 0 значения так, чтобы они были не меньше размера максимально большого пакета IP, возможного в потоке.

3. Измерение

Поведение измерителя определяется режимом и двумя «корзинами маркеров» (token bucket) P и C, для скоростей PIR и CIR, соответственно. Максимальный размер P задает PBS, а C — CBS.

Изначально (при запуске) P и C заполнены, т. е. Tp(0) = PBS и Tc(0) = CBS. Далее счетчик Tp инкрементируется на 1 PIR раз в секунду вплоть до PBS, а Tc инкрементируется на 1 CIR раз в секунду вплоть до CBS.

Когда пакет размером B байтов приходит в момент t, в режиме Color-Blind выполняются указанные ниже операции.

  • Если Tp(t)-B < 0, пакет маркируется красным.

  • Если Tc(t)-B < 0, пакет маркируется желтым и Tp уменьшается на B.

  • Иначе пакет маркируется зеленым, а Tp и Tc уменьшаются на B.

Когда пакет размером B байтов приходит в момент t, в режиме Color-Aware выполняются указанные ниже операции.

  • Если пакет был красным или Tp(t)-B < 0, пакет маркируется красным.

  • Если пакет был желтым или Tc(t)-B < 0, пакет маркируется желтым и Tp уменьшается на B.

  • Иначе пакет маркируется зеленым, а Tp и Tc уменьшаются на B.

Фактическая реализация измерителя не требует моделирования в соответствии с приведенной выше спецификацией.

4. Маркировка

Маркировщик отражает результаты измерителя путем установки в поле DS пакета соответствующих значений. Для случая AF PHB [RFC2597] цвета могут кодироваться как предпочтительность отбрасывания пакета.

5. Пример сервиса

Маркировку trTCM можно применять для потока пакетов службы где зеленым, желтым и красным пакетам предоставляются разные (убывающие) гарантии обслуживания. Например, красные пакеты могут отбрасываться, поскольку они выходят за пределы допустимых пиков, желтые будут пересылаться по возможности (best effort), а зеленые будут пересылаться с низкой вероятностью отбрасывания.

6. Вопросы безопасности

С trTCM не связано известных проблем безопасности.

7. Литература

[RFC2697] Heinanen, J. and R. Guerin, «A Single Rate Three Color Marker», RFC 2697, September 1999.

[RFC2597] Heinanen, J., Baker, F., Weiss, W. and J. Wroclawski, «Assured Forwarding PHB Group», RFC 2597, June 1999.

[RFC2474] Nichols, K., Blake, S., Baker, F. and D. Black, «Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers», RFC 2474, December 1998.

[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z. and W. Weiss, «An Architecture for Differentiated Services», RFC 2475, December 1998.

8. Адреса авторов

Juha Heinanen

Telia Finland, Inc.

Myyrmaentie 2

01600 Vantaa, Finland

EMail: jh@telia.fi

Roch Guerin

University of Pennsylvania

Department of Electrical Engineering, Rm 367 GRW

200 South 33rd Street

Philadelphia, PA 19104

EMail: guerin@ee.upenn.edu

 

Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

9. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


1Two Rate Three Color Marker — цветовая маркировка трафика по двум скоростям.

2Peak Information Rate — пиковая скорость данных.

3Committed Information Rate — согласованная скорость данных.

4Single Rate Three Color Maker — цветовая маркировка трафика по одной скорости.

5Peak Burst Size — максимальный (пиковый) размер пиков.

6Committed Burst Size — согласованный размер пиков.

Рубрика: RFC | Комментарии к записи RFC 2698 A Two Rate Three Color Marker отключены

RFC 2697 A Single Rate Three Color Marker

Network Working Group                                        J. Heinanen
Request for Comments: 2697                                 Telia Finland
Category: Informational                                        R. Guerin
                                              University of Pennsylvania
                                                          September 1999

A Single Rate Three Color Marker

Цветовая маркировка трафика по одной скорости.

PDF

Статус документа

В этом документе представлена информация для сообщества Internet. Документ не задает стандартов Internet и может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). Все права защищены.

Аннотация

Этот документ определяет маркеровку srTCM1, которая могут применяться кондиционерами трафика Diffserv [RFC2475, RFC2474]. Скорость потока измеряется и помечается srTCM в соответствии с тремя параметрами — CIR2, CBS3 и EBS4 — зеленым, желтым или красным «цветом». Пакеты помечаются зеленым, если не превышается CBS, желтым — при превышении CBS, но не EBS и красным в остальных случаях.

1. Введение

srTCM измеряет скорость потока пакетов IP и помечает пакеты зеленым, желтым или красным цветом. Маркировка выполняется на основе значений CIR, CBS и EBS. Пакеты помечаются зеленым, если скорость потока не превышает CBS, желтым при скорости выше CBS, но ниже EBS и красным в противном случае. Маркировка srTCM полезна, например, для входных правил службы, где доступность сервиса определяет размер пиков, но не пиковая скорость.

Измеритель (Meter) учитывает каждый пакет и передает пакет вместе с результатом измерения маркировщику (Marker).

                     +------------+
                     |  Результат |
                     |            V
                 +-------+    +--------+
                 |       |    |        |
Поток пакетов ==>| Измер.|===>| Маркир.|===> Промаркированный поток
                 |       |    |        |
                 +-------+    +--------+


Измеритель работает в одном из двух режимов. В «слепом» режиме (Color-Blind) предполагается, что поток пакетов «не окрашен», а в режиме Color-Aware измеритель знает, что тот или иной элемент уже «окрасил» каждый пакет потока зеленым, желтым или красным цветом. Детали этой предварительной маркировки, включая обработку ошибок и способ обнаружения маркировки зависят от домена дифференцированного обслуживания (DS) и выходят за рамки документа.

Маркировщик «окрашивает» (перекрашивает) пакеты IP в соответствии с результатами измерителя. Цвета представляются в поле DS [RFC2474] пакета в соответствии с PHB (см. 4. Маркировка).

В другом документе [RFC2698] описан еще один вариант цветовой маркировки (trTCM5), где пакеты помечаются на основе значений двух скоростей и двух пиков.

2. Настройка конфигурации

Настройка srTCM выполняется путем установки режима и значений параметров CIR, CBS и EBS.

CIR измеряется в байтах пакетов IP за секунду, т. е. учитывает заголовки IP, но не заголовки канального уровня.

CBS и EBS измеряются в байтах и должны быть заданы так, что хотя бы одно из значений было больше 0. Рекомендуется устанавливать отличные от 0 значения так, чтобы они были не меньше размера максимально большого пакета IP, возможного в потоке.

3. Измерение

Поведение измерителя определяется режимом и двумя «корзинами маркеров» (token bucket) C и E, которые используют общую скорость CIR. Максимальный размер C задается параметром CBS, а E — EBS.

Изначально (при запуске) C и E заполнены, т. е. Tc(0) = CBS и Te(0) = EBS. Далее счетчики маркеров Tc и Te обновляются CIR раз в секунду, как показано ниже.

  • Если Tc < CBS, значение Tc увеличивается на 1.

  • Если Te < EBS, значение Te увеличивается на 1.

  • В остальных случаях значения Tc и Te не увеличиваются.

Когда пакет размером B байтов приходит в момент t, в режиме Color-Blind выполняются указанные ниже операции.

  • Если Tc(t)-B ≥ 0, пакет маркируется зеленым и Tc уменьшается на величину B вплоть до 0.
  • Если Te(t)-B ≥ 0, пакет маркируется желтым и Te уменьшается на величину B вплоть до 0.
  • Иначе пакет маркируется красным, а значения Tc и Te не уменьшаются.

Когда пакет размером B байтов приходит в момент t, в режиме Color-Aware выполняются указанные ниже операции.

  • Если пакет был зеленым и Tc(t)-B 0, пакет остается зеленым и Tc уменьшается на величину B вплоть до 0.

  • Если пакет был зеленым или желтым и Te(t)-B 0, пакет маркируется желтым и Te уменьшается на величину B вплоть до 0.

  • Иначе пакет маркируется красным, а значения Tc и Te не уменьшаются.

Отметим, что в соответствии с приведенными выше правила для маркировки пакета данным цветом в «корзине» должно быть достаточное (не меньше размера пакета) число маркеров этого цвета. Очевидно, что могут применяться и другие правила. Приведенные здесь правила выбраны для гарантии детерминированного поведения, при котором объем зеленых пакетов никогда не будет меньше заданного параметрами CIR и CBS, т. е. маркеры определенного цвета всегда расходуются на пакеты того же цвета.

Фактическая реализация измерителя не требует моделирования в соответствии с приведенной выше спецификацией.

4. Маркировка

Маркировщик отражает результаты измерителя путем установки в поле DS пакета соответствующих значений. Для случая AF PHB [RFC2597] цвета могут кодироваться как предпочтительность отбрасывания пакета.

5. Пример сервиса

Маркировку srTCM можно применять для потока пакетов службы где зеленым, желтым и красным пакетам предоставляются разные (убывающие) гарантии обслуживания. Например, красные пакеты могут отбрасываться, поскольку они выходят за пределы допустимых пиков, желтые будут пересылаться по возможности (best effort), а зеленые будут пересылаться с низкой вероятностью отбрасывания.

6. Вопросы безопасности

С srTCM не связано известных проблем безопасности.

7. Литература

[RFC2698] Heinanen, J. and R. Guerin, «A Two Rate Three Color Marker», RFC 2698, September 1999.

[RFC2597] Heinanen, J., Baker, F., Weiss, W. and J. Wroclawski, «Assured Forwarding PHB Group», RFC 2597, June 1999.

[RFC2474] Nichols, K., Blake, S., Baker, F. and D. Black, «Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers», RFC 2474, December 1998.

[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z. and W. Weiss, «An Architecture for Differentiated Services», RFC 2475, December 1998.

8. Адреса авторов

Juha Heinanen

Telia Finland, Inc.

Myyrmaentie 2

01600 Vantaa, Finland

EMail: jh@telia.fi

Roch Guerin

University of Pennsylvania

Department of Electrical Engineering, Rm 376 GRW

200 South 33rd Street

Philadelphia, PA 19104

EMail: guerin@ee.upenn.edu

9. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

1Single Rate Three Color Marker — цветовая маркировка трафика по одной скорости.

2Committed Information Rate — согласованная скорость данных.

3Committed Burst Size — согласованный размер пиков.

4Excess Burst Size — размер избыточных пиков.

5Two Rate Three Color Maker — цветовая маркировка трафика по двум скоростям.

Рубрика: RFC | Комментарии к записи RFC 2697 A Single Rate Three Color Marker отключены

RFC 2678 IPPM Metrics for Measuring Connectivity

Network Working Group                                        J. Mahdavi
Request for Comments: 2678             Pittsburgh Supercomputing Center
Obsoletes: 2498                                               V. Paxson
Category: Standards Track         Lawrence Berkeley National Laboratory
                                                         September 1999

IPPM Metrics for Measuring Connectivity

Показатели IPPM для измерения связности

PDF

Статус документа

Этот документ содержит проект стандартного протокола Internet для сообщества Internet и служит приглашением к дискуссии в целях совершенствования протокола. Текущий статус стандартизации протокола можно узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). All Rights Reserved.

1. Введение

Связность является базовым элементом сети Internet. Поэтому показатели, определяющие возможность достижения друг друга парой хостов (адресов IP) должны быть основой измерений. Здесь определено несколько таких показателей, часть которых образует основу для других показателей.

Этот документ определяет серию показателей связности между парой хостов Internet. Документ основан на представлениях, введённых и рассмотренных в RFC 2330, описывающем схему IPPM. Предполагается знакомство читателя с этим документом.

Структура этого документа указана ниже.

  • Аналитический показатель Type-P-Instantaneous-Unidirectional-Connectivity определяет одностороннюю связность в данный момент.

  • С помощью этого показателя определяется метрика Type-P-Instantaneous-Bidirectional-Connectivity для двухсторонней связности в данный момент.

  • С помощью показателей односторонней и двухсторонней связности определяется связность в интервале времени.

  • С помощью этих показателей вводится аналитическая метрика Type-P1-P2-Interval-Temporal-Connectivity для обозначения двухсторонней связности между парой хостов в интервале времени.

  • Представлены и рассмотрены методики оценки Type-P1-P2-Interval-Temporal-Connectivity в разных условиях.

Тщательное определение Type-P1-P2-Interval-Temporal-Connectivity и обсуждение этого показателя и методик его оценки являются основными частями данного документа.

2. Текущая связность в одном направлении

2.1. Имя показателя

Type-P-Instantaneous-Unidirectional-Connectivity

2.2. Параметры показателя

Src

IP-адрес хоста (источника).

Dst

IP-адрес хоста (получателя).

TT

Время.

2.3. Единицы измерения

Логическое значение (Boolean).

2.4. Определение

Src имеет мгновенную одностороннюю связность (Type-P-Instantaneous-Unidirectional-Connectivity) с Dst в момент времени T, если пакет type-P, переданный от Src к Dst в момент T, прибывает на хост Dst.

2.5. Обсуждение

В большинстве случаев (например, в любом соединении TCP) двухсторонняя связность значительно интересней, хотя в некоторых защитных приложениях может быть интересная и связность в одном направлении (например, при тестировании фильтров межсетевого экрана для пакетов ping of death). Большинству приложений требуется связность в интервале времени, тогда как этот показатель относится к мгновенным, хотя для некоторых защитных приложений интересна и мгновенная связность. Мгновенной связности может не быть в результате временных (переходных) событий, таких как переполнение очередей в маршрутизаторах, даже если она была в ближайшей окрестности. Эти вопросы рассматриваются ниже при использовании метрики в качестве основы для других показателей.

Отметим, что момент прибытия пакета к Dst не определяется явно. Поле TTL в пакетах IP предназначено для ограничения срока действия пакета IP 255 секундами (RFC 791). На практике поле TTL может быть строгим счётчиком интервалов пересылки (hop, RFC 1812), который для большинства пересылок в Internet существенно короче секунды. Это означает, что большинство пакетов существует значительно меньше 255 секунд. Однако возможно существование пакета и дольше 255 секунд. Срок существования пакетов должен учитываться при попытках измерения этого показателя.

Оценка односторонней связности может быть существенно осложнена отсутствием связности в обратном направлении. Следует учитывать возможность того, что процесс на хосте Dst фиксирует получение пакетов от Src и сообщает об этом по внешнему каналу или позднее, когда у Dst появится связность с Src. Такая методика позволяет надёжно оценивать одностороннюю связность, определяемую этим показателем.

3. Двухсторонняя связность в данный момент

3.1. Имя показателя

Type-P-Instantaneous-Bidirectional-Connectivity

3.2. Параметры показателя

A1

IP-адрес хоста (источника).

A2

IP-адрес хоста (получателя).

T

Время.

3.3. Единицы измерения

Логическое значение (Boolean).

3.4. Определение

Адреса A1 и A2 имеют двухстороннюю связность (Type-P-Instantaneous-Bidirectional-Connectivity) в момент T, если для адреса A1 имеется односторонняя связность (Type-P-Instantaneous-Unidirectional-Connectivity) с адресом A2, а для адреса A2 имеется односторонняя связность с A1.

3.5. Обсуждение

Можно дать другое определение двухсторонней связности. Адреса A1 и A2 имеют полную связность, если в момент T адрес A1 имеет мгновенную связность с A2, а в момент T+dT адрес A2 имеет мгновенную связность с A1, при этом T+dT указывает момент прибытия пакета от A1 на адрес A2. Это определение более полезно для измерений, поскольку можно использовать отклик A2 по адресу A1 для оценки полной связности. Однако это определение сложнее из-за нарушения симметрии A1 и A2, а также необходимости оценки времени прохождения определённого пакета от A1 к A2. Дополнительно это различие обсуждается при описании метрики связности в интервале времени.

4. Односторонняя связность

4.1. Имя показателя

Type-P-Interval-Unidirectional-Connectivity

4.2. Параметры показателя

Src

IP-адрес хоста (источника).

Dst

IP-адрес хоста (получателя).

T

Время.

dT

Продолжительность
{Комментарий. [T, T+dT] указывает интервал времени.}

4.3. Единицы измерения

Логическое значение (Boolean).

4.4. Определение

Src имеет одностороннюю связность (Type-P-Interval-Unidirectional-Connectivity) в интервале времени [T, T+dT] с Dst, если для некого T’ из интервала [T, T+dT] имеется мгновенная связность (Type-P-instantaneous-connectivity) с Dst.

5. Двухсторонняя связность

5.1. Имя показателя

Type-P-Interval-Bidirectional-Connectivity

5.2. Параметры показателя

A1

IP-адрес хоста (источника).

A2

IP-адрес хоста (получателя).

T

Время.

dT

Продолжительность
{Комментарий. [T, T+dT] указывает интервал времени.}

5.3. Единицы измерения

Логическое значение (Boolean).

5.4. Определение

Между адресами A1 и A2 имеется двухсторонняя связность (Type-P-Interval-Bidirectional-Connectivity) в интервале времени [T, T+dT], если адрес A1 имеет одностороннюю связность (Type-P-Interval-Unidirectional-Connectivity) с адресом A2 в течение интервала и адрес A2 имеет одностороннюю связность с A1 в течение интервала времени.

5.5. Обсуждение

Этот параметр не совсем подходит в качестве определения «полезной в общем случае» связности и требует понимания, что пакет, переданный от A1 к A2 может вызвать отклик A2, который достигнет A1. При таком определении может случиться так, что A1 и A2 будут иметь полную связность, лишь в момент T1 в самом начале интервала [T, T+dT], когда A1 и A2 не могут ответить на пакет другой стороны. Для преодоления этого определён следующий показатель.

6. Временная двухсторонняя связность

6.1. Имя показателя

Type-P1-P2-Interval-Temporal-Connectivity

6.2. Параметры показателя

Src

IP-адрес хоста (источника).

Dst

IP-адрес хоста (получателя).

T

Время.

dT

Продолжительность
{Комментарий. [T, T+dT] указывает интервал времени.}

6.3. Единицы измерения

Логическое значение (Boolean).

6.4. Определение

Src имеет временную связность (Type-P1-P2-Interval-Temporal-Connectivity) с адресом Dst в интервале [T, T+dT], если существуют моменты времени T1 и T2, а также интервалы dT1 и dT2 такие, что выполняются условия:

  • T1, T1+dT1, T2, T2+dT2 в диапазоне [T, T+dT];

  • T1+dT1 <= T2;

  • в момент T1 хост Src имеет мгновенную связность Type-P1 с Dst;

  • в момент T2 хост Dst имеет мгновенную связность Type-P2 с Src;

  • dT1 — время, когда пакет для Type-P1, переданный Src в момент T1, прибывает на Dst;

  • dT2 — время, когда пакет для Type-P2, переданный Dst в момент T2, прибывает на Src.

6.5. Обсуждение

Этот показатель определяет «полезную в общем случае» связность — Src может передать Dst пакет, вызывающий отклик. Поскольку многие приложения используют разные типы пакетов для прямого и обратного трафика, возможно (и вероятно), что желаемым откликом на пакет Type-P1 будет Type-P2. Поэтому данная метрика допускает разные типы пакетов в каждом направлении.

6.6. Методики

Далее кратко описан класс методик оценки Type-P1-P2-Interval-Temporal-Connectivity. Это именно класс, а не отдельная методика, поскольку детали зависят от типов P1 и P2.

6.6.1. Входные данные

  • Типы P1 и P2, адреса A1 и A2, интервал [T, T+dT].

  • N — число пакетов, передаваемых для зондирования связности.

  • W — «время ожидания», ограничивающие продолжительность осмысленного ожидания отклика на пакет.

Требования. W <= 255, dT > W.

6.6.2. Рекомендуемые значения

dT = 60 секунд.

W = 10 секунд.

N = 20 пакетов.

6.6.3. Алгоритм

  • Задаются N значение времени отправки случайными числами с однородным распределением из интервала [T, T+dT-W].

  • В каждый момент отправки от A1 передаётся пакет с корректным форматом P1 по адресу A2.

  • Отслеживается входящий трафик на A1 на предмет получения отклика. Детали отслеживания зависят от типов P1 и P2, как описано ниже. При получении пакета устанавливается результат измерения true и процесс можно завершать.

  • Если отклика не получено к моменту T+dT, устанавливается результат измерения false.

6.6.4. Обсуждение

Алгоритм неточен, поскольку он не проверяет (и не способен) временную связность в каждый момент интервала [T, T+dT]. Значение N задаёт компромисс между точностью и загрузкой сети. Состояние исследований Internet пока не даёт точных рекомендация по выбору N. Приведённые выше значения являются лишь ориентировочными.

6.6.5. Методика для TCP

В методе TCP-port-N1-port-N2 передаются пакеты TCP SYN из порта N1 в порт N2 по адресу A2. Входящий трафик A1 интерпретируется, как описано ниже.

  • Пакет SYN-ack от A2 к A1 с подходящими полями подтверждения и номерами портов указывает временную связность. Измерение сразу же завершается с результатом true.

    {Комментарий. Если в качестве побочного эффекта этого метода полностью организовано соединение TCP между A1 и A2, т. е. стек TCP в A1 подтверждает пакет A2 SYN-ack, завершая трехэтапное согласование, соединение между A1 и A2 лучше всего разорвать с использованием обычного FIN, а не пакета RST, поскольку для RST не обеспечивается гарантия доставки. Если трехэтапное согласование не завершено, как в случае, когда средство измерения в A1 синтезирует свой начальный пакет SYN вместо его создания через стек TCP в A1, стек TCP хоста A1 будет автоматически разрывать соединение надёжным способом, когда A2 будет продолжать передачу SYN-ack в попытке организовать соединение. В заключение отметим, что использование стека TCP в A1 для проведения измерений усложняет метод, поскольку стек может повторно передать исходный пакет SYN, меняя число переданных зондов.}

  • Пакет RST от A2 к A1 с корректными номерами портов указывает временную связность между адресами (и отсутствие связности для TCP-port-N1-port-N2, которую вероятно следует проверять с другой метрикой).

  • Пакет ICMP port-unreachable от A2 к A1 указывает временную связность между хостами (и отсутствие связности для TCP-port-N1-port-N2).

    {Комментарий. Реализации TCP обычно не требуется передавать сообщения ICMP port-unreachable, поскольку имеется иной механизм — отправка RST). Однако в RFC 1122 сказано, что стек TCP при получении ICMP port-unreachable должен трактовать это как эквивалентный механизм транспортного уровня (RST для TCP).}

  • Сообщение ICMP host-unreachable или network-unreachable хосту A1 (не обязательно от A2) с вложенным заголовком IP, соответствующим переданному от A1 к A2, указывает отсутствие временной связности. Если к моменту T+dT подтверждения временной связности не будет получено, приём ICMP можно считать дополнительной информацией для установки результата измерения false.

{Комментарий. Нужны аналогичные методики для ICMP Echo, UDP и т. п.}

7. Благодарности

Спасибо Guy Almes, Martin Horneffer, Jeff Sedayao, Sean Shapira за их комментарии.

8. Вопросы безопасности

Как отмечено в RFC 2330, активные методы измерения, такие как описаны в этом документе, могут быть использованы для организации атак на службы, маскируемых под легитимные измерения. Кроме того, тестирование связности может быть использовано зондирования межсетевых экранов и других средств защиты на предмет слабых мест.

9. Литература

[RFC1812] Baker, F., «Requirements for IP Version 4 Routers», RFC 1812, June 1995.

[RFC1122] Braden, R., Editor, «Requirements for Internet Hosts – Communication Layers», STD, 3, RFC 1122, October 1989.

[RFC2330] Paxson, V., Almes, G., Mahdavi, J. and M. Mathis, «Framework for IP Performance Metrics», RFC 2330, May 1998.

[RFC791] Postel, J., «Internet Protocol», STD 5, RFC 791, September 1981.

10. Адреса авторов

Jamshid Mahdavi
Pittsburgh Supercomputing Center
4400 5th Avenue
Pittsburgh, PA 15213
USA
EMail: mahdavi@psc.edu
 
Vern Paxson
MS 50A-3111
Lawrence Berkeley National Laboratory
University of California
Berkeley, CA 94720
USA
Phone: +1 510/486-7504
EMail: vern@ee.lbl.gov

11. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

Рубрика: RFC | Оставить комментарий

RFC 2679 A One-way Delay Metric for IPPM

Заменен RFC 7679

Рубрика: RFC, Измерения и тестирование | Оставить комментарий

RFC 2681 A Round-trip Delay Metric for IPPM

Network Working Group                                           G. Almes
Request for Comments: 2681                                  S. Kalidindi
Category: Standards Track                                   M. Zekauskas
                                             Advanced Network & Services
                                                          September 1999

A Round-trip Delay Metric for IPPM

Метрика круговой задержки для IPPM

PDF

Статус документа

Этот документ содержит проект стандартного протокола Internet для сообщества Internet и служит приглашением к дискуссии в целях совершенствования протокола. Текущий статус стандартизации протокола можно узнать из документа Internet Official Protocol Standards (STD 1). Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). All Rights Reserved.

1. Введение

Этот документ определяет метрику для круговой (round-trip) задержки пакетов на путях Internet. Документ основан на понятиях, введённых и описанных в документе IPPM Framework (RFC 2330) [1] и близко соответствует соответствующему показателю односторонней задержки (A One-way Delay Metric for IPPM [2]). Предполагается знакомство читателя с обоими документами.

Документ в значительной мере копирует материал из документа для односторонней метрики. Предполагается, что похожие показатели описаны близкими или идентичными текстами, а для разных метрик будет использоваться новый или изменённый текст.

Этот документ рассчитан на повторение структуры в будущих документах по измерению потерь пакетов.

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), не рекомендуется (NOT RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с RFC 2119 [6]. Хотя RFC 2119 относится к протоколам, использование ключевых слов в этом документе очень похоже. Это служит для обеспечения сравнимости результатов разных измерений и выявления случаев, когда реализация может нарушать работу сети.

Структура документа представлена ниже.

  • Вводится одиночный (singleton*) аналитический показатель Type-P-Round-trip-Delay для однократного наблюдения круговой задержки.

  • С использованием этого показателя определяется выборка (sample*) Type-P-Round-trip-Delay-Poisson-Stream для последовательности измерений круговой задержки в соответствии с выборкой Пуассона.

  • С использованием выборки определяется и рассматривается статистика (statistics*).

Такой переход от одиночных измерений через выборки к статистике с их чётким разделением имеет важное значение.

Когда в этом документе первый раз используется термин из IPPM Framework, он помечается звёздочкой в конце. Например, term* указывает термин term, определённый в IPPM Framework.

1.1. Мотивация

Знать круговую задержку пакетов Type-P* от хоста-источника (host*) к хосту-получателю полезно по нескольким причинам.

  • Некоторые приложения не работают хорошо (или совсем), если сквозная задержка между хостами превышает определённый порог.

  • Меняющиеся вариации задержки осложняют или делают невозможной поддержку многих приложений, работающих в реальном масштабе времени.

  • Чем больше задержка, тем сложнее протоколам транспортного уровня поддерживать высокую пропускную способность.

  • Минимальное значение этого параметра указывает задержку, связанную лишь с передачей и распространением.

  • Минимальное значение этого параметра указывает задержку, которая вероятно возникает при прохождении слабо загруженного пути (path*).

  • Значение параметра выше минимального указывают наличие перегрузки на пути.

Измерение круговой задержки вместо односторонней имеет несколько недостатков, указанных ниже.

  • В современной сети Internet путь от источника к получателю может отличаться от обратного пути (асимметрия путей) и на этих путях используются разные последовательности маршрутизаторов.

  • Даже при симметрии пути могут быть существенные различия для направлений из-за асимметрии очередей.

  • Производительность приложения может сильнее зависеть от производительности в одном из направлений.

  • В сетях с поддержкой QoS качество обслуживания в разных направлениях может существенно различаться. Независимые измерения для путей позволяют проверить обслуживание в обоих направлениях.

С другой стороны, измерение круговой задержки обеспечивает два преимущества.

  • Простота развёртывания. В отличие от односторонних измерений круговую задержку часто можно измерить без установки специальных измерительных программ на целевом хосте-получателе. Хорошо известно множество подходов, включая ICMP Echo или методы на основе TCP (подобные описанным в «IPPM Metrics for Measuring Connectivity» [4]). Однако в некоторых случаях могут возникать существенные погрешности, связанные с задержкой отклика получателем (см. параграф 2.7.3).

  • Простота интерпретации. В некоторых случаях круговая задержка может быть фактическим предметом изучения. Выведение круговой задержки из соответствующих односторонних измерений с допущением малого времени отклика получателя является менее прямым и может быть менее точным.

1.2. Общие вопросы, связанные со временем

При упоминании в документе времени (т. е. момента в истории) имеется в виду значение в секундах (и долях) для часового пояса UTC.

Как описано в документе IPPM Framework, есть 4 разных, но связанных понятия неопределённости часов (времени).

synchronization* — синхронизация

Степень согласованности часов в части текущего времени. Например, часы одного хоста могут опережать часы другого на 5,4 мсек.

accuracy* — точность

Степень соответствия данных часов времени UTC. Например, часы хоста могут отставать от UTC на 27,1 мсек.

resolution* — разрешение (дискретность)

Наименьшая единица, на которую могут изменяться показания часов. Это определяет нижнюю граничу неточности часов. Например, часы в старых системах Unix могут «тикать» лишь каждые 10 мсек, поэтому они будут иметь дискретность 10 мсек.

skew* — перекос

Мера изменения точности или синхронизации с течением времени. Например, часы хоста могут отставать на 1,3 мсек за час и отставать на 27,1 мсек от UTC в данный момент, а через час они будут отставать от UTC лишь на 25,8 мсек. В этом случае мы говорим, что часы данного хоста имеют перекос в 1,3 за час относительно UTC в плане точности. Можно также говорить о перекосе одних часов относительно других в плане синхронизации.

2. Определение для одиночного измерения круговой задержки

2.1. Имя показателя

Type-P-Round-trip-Delay — круговая задержка для пакетов Type-P.

2.2. Параметры показателя

Src

IP-адрес хоста (источника).

Dst

IP-адрес хоста (получателя).

TT

Время.

2.3. Единицы измерения

Значение Type-P-Round-trip-Delay является действительным числом, либо неопределённым (неформально, бесконечным) числом секунд.

2.4. Определение

Для действительного числа dT, «задержка Type-P-Round-trip-Delay от Src до Dst в момент T равна dT» означает, что Src передаёт первый бит пакета Type-P получателю Dst в момент времени в линии (wire time*) T, а Dst принимает этот пакет и сразу же передаёт пакет Type-P обратно Src, а Src получает последний бит этого пакета в момент момент времени в линии T+dT.

«Задержка Type-P-Round-trip-Delay от Src до Dst в момент времени T не определена (неформально, бесконечна)» означает, что Src передаёт первый бит пакета Type-P получателю Dst в момент времени в линии T, а Dst не получает этот пакет, не передаёт пакет Type-P в ответ или Src не получает отклика.

«Задержка Type-P-Round-trip-Delay от Src до Dst в момент времени T» означает задержку кругового обхода от Src к Dst или от Dst к Src в момент времени T. При использовании такого понятия роли Src и Dst неоднозначны. {Комментарий. Эта неоднозначность обычно является небольшой платой за возможность выполнить одно измерение с Src или Dst вместо двух.}

Предложения о включении значений метрики в отчёт приводятся в параграфе 3.8 после обсуждения метрики, методики измерения и анализа ошибок.

2.5. Обсуждение

Type-P-Round-trip-Delay представляет собой относительно простую аналитическую метрику, для которой предполагается возможность использовать эффективные методы измерения.

На практике могут возникать указанные ниже проблемы.

  • Значениям временных меток (T), по которым измеряется задержка, следует быть достаточно точными, чтобы можно было делать осмысленные выводы о состоянии сети в момент T. Поэтому хосту Src нужно знать точное время. NTP [3] может обеспечить точность синхронизации в несколько миллисекунд. В зависимости от сервера NTP точность может быть повышена, например, за счёт использования серверов NTP, синхронизируемых от GPS. Отметим, что NTP корректирует часы измерительной системы. Если корректировка происходит во время измерения (между получением начальной и конечной временной метки) это будет вносить погрешность в измерение задержки. Такие погрешности следует учитывать при калибровке инструментария.

  • Методика должна включать способ определения, является значение очень большим (пакет ещё не прибыл в Dst) или оно бесконечно. Как отметили Mahdavi и Paxson [4], можно использовать простую верхнюю границу (например, теоретическое ограничение срока существования пакетов IP в 255 секунд [5]). Но на практике требуется понимать сроки существования пакетов. {Комментарий. Отметим, что для многих применений этого показателя негативное влияние трактовки очень большой задержки как бесконечно, может отсутствовать или быть совсем незначительным. Например, пакет данных TCP, полученный после нескольких периодов RTT, можно считать потерянным.}

  • Если пакет дублируется в пути (путях) и к получателю приходит несколько неповреждённых копий, пакет считается полученным и одностороннюю задержку определяет приём первой копии.

  • Если пакет фрагментирован и по какой-то причине сборка не выполняется, пакет считается потерянным.

2.6. Методики

Как и для всех иных показателей Type-P-*, конкретная методика будет зависеть от Type-P (например, номера протокола, порта UDP/TCP, размера, предпочтений).

В общем случае для данного Type-P методика будет действовать, как указано ниже.

  • На хосте Src выбираются IP-адреса Src и Dst и создаётся тестовый пакет Type-P с этими адресами. Дополняющую часть пакета (padding), служащую для создания нужного размера тестового пакета, следует заполнять случайными битами, чтобы предотвратить сжатие пакетов в пути, которое может повлиять на измерение задержки. Тестовый пакет должен включать те или иные сведения для идентификации, чтобы на хосте Src можно было распознать отклик на этот пакет. Одним из способов идентификации является включение в пакет временной метки непосредственно перед отправкой пакета.

  • На хосте Dst организуется приём пакета и отправка отклика на него. На хосте Src организуется приём соответствующего пакета с откликом.

  • На хосте Src берётся исходная метка времени и подготовленный пакет Type-P передаётся в направлении Dst. Отметим, что метка может помещаться в пакет или сохраняться отдельно, если в пакете имеется подходящий идентификатор, чтобы полученную временную метку можно было сравнить с исходной (момент передачи).

  • Если пакет прибывает на Dst, соответствующий отклик передаётся от Dst к Src как можно скорее.

  • Если пакет отклика приходит в разумные сроки, как можно скорее берётся временная метка момента получения пакета. Вычитая значение одной метки из значения другой, можно рассчитать круговую задержку. При анализе ошибок реализации метода следует учитывать точность синхронизации часов Src и Dst. Если известна разница между исходной временной меткой Src и фактическим временем передачи пакета, это значение можно вычесть из полученной величины задержки. Неопределённость разницы времени генерации метки и отправки пакета должна учитываться при анализе ошибок. Точно так же при известной разнице времени приёма пакета и создания финальной временной метки её можно вычесть из значения задержки. Неопределённость этой разницы должна учитываться при анализе ошибок. Дополнительные сведения приведены в параграфе 2.7. Ошибки и погрешности.

  • Если пакет не прибыл в разумные сроки, круговая задержка считается неопределённой (неформально, бесконечной). Порог «разумности» срока является параметром методики.

Такие вопросы, как формат пакета, способы, с помощью которых Dst узнает, когда следует ждать тестовый пакет, выходят за рамки этой спецификации.

{Комментарий. Отметим, что в общем случае нельзя сложить два значения Type-P-One-way-Delay (см. [2]) для получения Type-P-Round-trip-Delay. Чтобы получить значение Type-P-Round-trip-Delay, получение пакета от Src должно вызывать передачу отклика.}

{Комментарий. В соответствии с этим определением ping является средством измерения круговой задержки с Type-P в виде 60-байтовых пакетов с запросами и откликами ICMP. Однако погрешности, связанные с типичными программами ping, нужно анализировать в соответствии со следующим параграфом, включая учёт типа точки отражения (маршрутизаторы могут не обслуживать запросы ICMP по быстрому пути) и влияние её загрузки.}

2.7. Ошибки и погрешности

В описание любого конкретного метода измерения следует включать учёт и анализ различных источников ошибок и погрешностей. В документе IPPM Framework даны общие рекомендации по этим вопросам, а здесь отмечены:

  • ошибки и погрешности часов на хосте Src;

  • ошибки и погрешности, связанные с разницей времени в линии (wire time) и на хосте (host time);

  • ошибки и погрешности, связанные со временем, затрачиваемым хостом Dst на приём пакета от Src и отправку соответствующего отклика.

Кроме того, на результаты может влиять пороговое значение потерь. Каждый из этих вопросов более подробно рассмотрен ниже, а в параграфе 2.7.4. Калибровка рассмотрен учёт этих ошибок и погрешностей.

2.7.1. Ошибки и погрешности, связанные с часами

Погрешность измерения круговой задержки отчасти связана с часами хоста Src. Далее часы, используемые для фиксации момента отправки с хоста Src называются часами источника, время, наблюдавшееся при отправке пакета источником обозначается как Tinitial, а время, наблюдавшееся при получении отклика источником, — как Tfinal. В предположении синхронизации часов с учётом их точности, дискретности и перекоса отметим указанное ниже.

  • Хотя при измерении односторонней задержки возникает проблема синхронизации часов источника и получателя, при определении круговой задержки важнее (более простая) «самосинхронизация» между временем отправки тестового пакета по часам источника и временем получения отклика по тем же часам. Теоретически ошибки здесь могут возникать лишь из-за очень сильного перекоса. На практике более серьёзным источником ошибок может быть прерывание работы часов источника (по любой причине) в интервале между фиксацией начальной и финальной временной метки. Это может быть связано, например, с некоторыми реализациями NTP.

  • Точность часов важна для определения момента измерения задержки. Сама по себе, точность часов не влияет на точность измерения задержки.

  • Разрешение (дискретность) часов добавляет погрешность к любому измерению времени этими часами. Таким образом, если часы источника имеют разрешение 10 мсек, это добавит погрешность в 10 к любому времени, измеренному этими часами. Разрешение часов будет обозначать Rsource.

С учётом сказанного естественный расчёт Tfinal — Tinitial будет давать погрешность 2*Rsource.

2.7.2. Ошибки и погрешности, связанные с временем в линии и на хосте

В соответствии с определением круговой задержки нужно измерить время между выходом тестового пакета из сетевого интерфейса Src и прибытием (полностью) соответствующего отклика на сетевой интерфейс Src — это называется временем в линии (wire time). Однако измерение времени выполняется программами на хосте Src, который могут лишь фиксировать время между созданием (получением) временной метки на Src перед отправкой пакета и после получения отклика — это называется временем хоста.

Другой вклад в ошибку связан со временем, которое проходит между получением хостом Dst тестового пакета и отправкой отклика на него. В идеале это время равно 0 и более подробно рассматривается в следующем параграфе.

Данные о разнице времени между хостом и линией можно использовать для корректировки измерения времени на хосте для повышения точности оценки желаемого показателя (время в линии).

Неопределённость различия времени между хостом и линией должна учитываться при анализе погрешности измерения для данного метода. Обозначим верхнюю границу этой неопределённости на хосте Src при отправке пакета как Hinitial, а при получении отклика — как Hfinal. Совместно они вносят погрешность Hinitial + Hfinal. Эту оценку общей погрешности разницы времени на хосте и в линии обычно следует включать в анализ ошибок и погрешностей любой реализации измерения.

2.7.3. Ошибки и погрешности, связанные с временем отклика Dst

Время, прошедшее на хосте-получателе от приёма и распознавания пакета от Src до создания и отправки соответствующего отклика вносит дополнительную ошибку в измерение круговой задержки. Ошибка равна разнице между временем в линии для момента поступления первого бита тестового пакета в Dst и временем в линии для момента отправки первого бита отклика от Dst. Когда эта разница известна, её можно использовать для корректировки измеряемого показателя. Неопределённость этого времени должна учитываться при анализе ошибок в реализации измерения. Обозначим эту неопределённость как Hrefl. Оценку этой погрешности следует включать в анализ ошибок и погрешностей любой реализации измерения.

2.7.4. Калибровка

3.7.3. Калибровка ошибок и погрешностей

В общем случае измеренное значение можно представить в форме

   измеренное значение = истинное значение + систематическая ошибка + случайная ошибка

Если систематическую ошибку (постоянное отклонение измеряемых значений) можно определить, можно компенсировать её в получаемых (reported) результатах.

   полученный результат = измеренное значение - систематическая ошибка

Из этого следует, что

   полученный результат = истинное значение + случайная ошибка

Целью калибровки является определение систематических и случайных ошибок, вносимых хостами, как можно более подробно. Как минимум следует найти границу (e), указывающую, что полученное значение находится в диапазоне от (истинное значение — e) до (истинное значение + e) не менее 95% времени. Будем называть «e» ошибкой калибровки для измерений. Эта ошибка представляет степень повторяемости значений, создаваемых измерительным хостом, т. е. близость полученных значений к реальным. {Комментарий. Значение 95% выбрано потому, что (1) желательно иметь некий уровень доверия для удаления выбросов, которые могут возникать при измерении любого физического свойства и (2) нужно указать определённый уровень доверия для возможности сравнения результатов независимых измерений.}

В соответствии с тремя предыдущими параграфами ошибка измерений может быть ограничена определением отдельных погрешностей и их сложением в виде

       2*Rsource + Hinitial + Hfinal + Hrefl.

Разумные границы неопределённостей, связанных с часами (первые 3 члена выражения) и хостом (2 последних члена), можно оценить, тщательно подбирая методику и калибруя хосты с использованием известной сети в лабораторных условиях.

Связанные с хостом погрешности Hinitial + Hfinal + Hrefl можно ограничить соединением хостов напрямую через высокоскоростной последовательный канал или изолированный сегмент ЛВС. В этом случае повторяющиеся измерения будут давать одинаковую круговую задержку.

Если тестовые пакеты малы, такое соединение будет вносить очень малую задержку, которую можно аппроксимировать значением 0. Поэтому измеряемая задержка будет включать лишь систематические и случайные ошибки на измерительных хостах. «Среднее значение» повторяющихся измерений будет определять систематическую ошибку, а вариации — случайную.

Одним из способов рассчитать систематическую ошибку и случайную ошибку с уровнем доверия 95% является многократное повторение измерений (по меньшей мере сотни раз). Систематическая ошибка будет определяться медианой, а случайную ошибку можно определить, исключив систематическую из полученных значений. Доверительный интервал 95% будет диапазоном процентилей от 2,5 до 97,5 для отклонений от истинного значения. Ошибкой калибровки (e) можно считать большее абсолютное значение из этих двух с добавлением погрешности, связанной с часами. {Комментарий. Как указано выше, эта привязка является относительно слабой, поскольку погрешности складываются и используется абсолютное значение большего отклонения. Пока полученное значение не составляет значимую часть измеряемых значений, это будет разумной границей. Если же значение погрешности составляет существенную часть измеряемых величин, требуются более точные методы расчёта ошибок калибровки.}

Отметим, что случайная ошибка зависит от загрузки измерительного устройства. Например, при измерении на одном хосте параметров для множества путей может возрастать нагрузка на систему прерываний, планировщики процессов, устройства ввода-вывода (например, для записи результатов), которая может увеличивать случайную ошибку одиночных измерений (singleton). Поэтому в дополнение к минимальной измерительной нагрузке при определении систематических ошибок следует применять такой же уровень нагрузки, который хост будет иметь при реальных (полевых) измерениях.

Отметим ещё раз, что эта статистическая трактовка относится к калибровке хоста и определяет степень соответствия результатов измерений реальным значениям.

Помимо калибровки хостов для измерения конечной задержки следует выполнить ещё две проверки, чтобы не было ложных сообщений о потере пакетов. Во-первых, следует проверить пороговое значение потерь. В частности, нужно убедиться, что «разумный» порог действительно является разумным и очень маловероятно поступление пакета по достижении порога и, следовательно, число теряемых за интервал пакетов, не зависит от связанных с измерением ошибок. Во-вторых, следует учесть вероятность того, что пакет приходит на сетевой интерфейс, но теряется в результате перегрузки на этом интерфейсе или нехватки на хосте иных ресурсов (например, буферов).

2.8. Отчёты об измерениях

Калибровка и контекст выполнения измерений должны тщательно рассматриваться и их следует включать в отчёт вместе с измеренными значениями. Далее представлены 4 элемента, которые следует включать в отчёт: Type-P для тестовых пакетов, порог бесконечной задержки (при наличии), калибровка ошибок и путь, по которому проходят пакеты. Список не является исчерпывающим и следует включать в отчёт любые дополнительные сведения, которые могут быть полезны при интерпретации показателей.

2.8.1. Type-P

Как указано в документе IPPM Framework [1], значение показателя может зависеть от типа пакетов IP, применяемых для измерений — Type-P. Значение Type-P-Round-trip-Delay может меняться при смене протокола (UDP или TCP), номера порта, размера пакетов или особых условий (например, поле предпочтений IP или RSVP). В отчёт должно включаться точное указание Type-P при измерениях.

2.8.2. Пороговое значение потерь

В отчёт должно включаться пороговое значение (или метод) для различия конечной задержки и потери.

2.8.3. Результаты калибровки

  • Если систематическую ошибку можно определить, её следует исключить из измеренных значений.

  • Следует указывать в отчёте ошибку калибровки e так, чтобы истинным значением было указанное в отчёте значение плюс-минус e с уровнем доверия 95%.

  • По возможности следует включать в отчёт условия, при которых тестовый пакет с конечной задержкой указывается как потерянный в результате нехватки ресурсов на измерительном хосте.

2.8.4. Путь

В отчёте следует по возможности указывать путь, по которому проходят пакеты. В общем случае сложно узнать точный путь, по которому данный пакет прошёл через сеть. Точный путь может быть известен для некоторого Type-P на коротком и стабильном участке. Если Type-P включает опцию записи маршрута (или loose-source route) в заголовке IP, путь достаточно короток и все маршрутизаторы (router*) на пути поддерживают опцию source route (или loose-source route), путь будет записан точно. Это непрактично, поскольку требует достаточно короткого пути, многие маршрутизаторы не поддерживают опцию записи маршрута (или она отключена), а применение этого свойства зачастую снижает производительность. Однако частичные сведения о пути обеспечивают значимый контекст. Например, если хост может выбирать между двумя каналами (link*) и, следовательно, двумя разными маршрутами от Src к Dst, используемый канал обеспечивает значимый контекст. {Комментарий. Например в Merit NetNow Src, являющийся одной из точек доступа в сеть (Network Access Point — NAP) может достичь Dst в другой точке NAP по любой из сетевых магистралей.}

3. Определение выборки для круговой задержки

На основе одиночной (singleton) метрики Type-P-Round-trip-Delay определим конкретную выборку таких одиночных измерений. Идея выборки (sample) заключается в отборе конкретной связки параметров Src, Dst, Type-P и определении выборки значений параметра T. Способ определения T состоит в выборе начального (T0) и конечного (Tf) времени, а также средней частоты lambda и последующем задании псевдослучайного процесса Пуассона со скоростью lambda в интервале от T0 до Tf. Интервал времени между последовательными значениями T имеет среднее значение 1/lambda.

{Комментарий. Выборка Пуассона является лишь одним из вариантов. Преимуществом её является ограничение смещения (bias), но в других ситуациях могут оказаться лучше иные методы выборки. Всем, кто находит соответствующие случаи, рекомендуется использовать эту общую схему и представить свой метод выборки для стандартизации.}

3.1. Имя показателя

Type-P-Round-trip-Delay-Poisson-Stream

3.2. Параметры показателя

Src

IP-адрес хоста (источника).

Dst

IP-адрес хоста (получателя).

T0

Время (начала).

Tf

Время (завершения).

lambda

Число измерений в секунду.

3.3. Единицы измерения

Последовательность пар (T, dT), где T указывает время, а dT является действительным числом или неопределённым числом секунд. Значения T в последовательности измерений возрастают монотонно. Отметим, что параметры T и dT действительны также для метрики Type-P-Round-trip-Delay.

3.4. Определение

На основе T0, Tf и lambda рассчитывается псевдослучайный процесс Пуассона, начинающийся не позже T0, включающий среднюю частоту прибытия пакетов lambda и завершающийся не раньше Tf. Значения времени выборки относятся к диапазоны от T0 до Tf. В каждый из выбранных моментов измеряется одно значение Type-P-Round-trip-Delay. Значением выборки является последовательность пар (время, задержка).

3.5. Обсуждение

Читателю следует ознакомиться с углублённым обсуждением выборки Пуассона в документе IPPM Framework [1], где рассмотрены методы расчёта и проверки псевдослучайных пуассоновских процессов.

Значение lambda осознанно не ограничивается за исключением указания крайних точек. Если частота слишком велика, тестовый трафик будет нарушать работу сети и сам вызывать перегрузки. При слишком малой частоте могут быть упущены некоторые интересные детали поведения сети. {Комментарий. Предполагается описать опыт и предложения для значений lambda в отдельном документе серии BCP.}

Поскольку применяются псевдослучайные значения, последовательность моментов измерения и, следовательно, значение выборки не задаётся полностью. Для достижения желаемого качества нужен хороших генератор псевдослучайных чисел.

Выборка определяется как пуассоновский процесс, чтобы избежать самосинхронизации и обеспечить выборку, статистически наиболее достоверную (unbiased). {Комментарий. Конечно не принимается допущений о том, что реальный трафик Internet прибывает в соответствии с распределением Пуассона.} Пуассоновский процесс служит для планирования измерений задержки. Тестовые пакеты в общем случае не будут приходить на Dst в соответствии с распределением Пуассона, поскольку сеть оказывает влияние на их доставку.

Все одиночные (singleton) показатели Type-P-Round-trip-Delay в последовательности измерений будут иметь одни значения Src, Dst, Type-P.

Отметим также, что данная выборка с момента T0 до Tf и субпоследовательность от T0′ до Tf’, где T0 <= T0′ <= Tf’ <= Tf, также будет действительной выборкой Type-P-Round-trip-Delay-Poisson-Stream.

3.6. Методики

Методика включает указанные ниже действия.

  • Выбора конкретных значений времени измерения с использованием заданного процесса Пуассона для прибытия.

  • Методика, рассмотренная для одиночного (singleton) измерения Type-P-Round-trip-Delay.

Следует корректно обрабатывать нарушения порядка прибытия тестовых пакетов. Src может передать тестовый пакет в момент TS[i], а затем передать следующий в момент TS[i+1], при этом Dst может получить сначала второй пакет в момент TR[i+1], а позднее — первый в момент TR[i].

3.7. Ошибки и погрешности

В дополнение к ошибкам и погрешностям, связанным с методом одиночных измерений, входящих в выборку, необходимо тщательно проанализировать точность процесса Пуассона в части времени в линии при отправке тестовых пакетов. Проблемы в этом процессе могут быть связаны с несколькими обстоятельствами, включая метод генерации псевдослучайных чисел для процесса Пуассона и вариации значения Hsource (рассмотрено выше для одиночных измерений). В документе IPPM Framework показано, как использовать тест Anderson-Darling для проверки точности пуассоновского процесса в коротких интервалах времени. {Комментарий. Цель состоит в передаче тестовых пакетов «достаточно близко» к планированию Пуассона без возникновения периодической отправки.}

3.8. Отчёты об измерениях

Калибровка и контекст для одиночных измерений должны указываться в отчёте (см. 2.8. Отчёты об измерениях).

4. Определения статистики для односторонней задержки

На основе выборки Type-P-Round-trip-Delay-Poisson-Stream предлагается несколько вариантов статистики. Описание статистики служит в основном для иллюстрации того, что можно сделать.

4.1. Type-P-Round-trip-Delay-Percentile

Для данной выборки Type-P-Round-trip-Delay-Poisson-Stream и значения X от 0% до 100% — это X-й процентиль от всех значений dT в потоке. При расчёте процентиля неопределённые значения считаются бесконечно большими. Это означает, что процентиль также может быть неопределённым (неформально, бесконечным). Кроме того, Type-P-One-way-Delay-Percentile будет неопределённым для пустой выборки.

Предположим в качестве примера выборку, показанную ниже.

   Stream1 = <
   <T1, 100 msec>
   <T2, 110 msec>
   <T3, undefined>
   <T4, 90 msec>
   <T5, 500 msec>
   >

50-й процентиль будет иметь значение 110 мсек, поскольку 90 и 100 мсек меньше, а 500 мсек и undefined больше него. Расчёт процентилей описан в параграфе 11.3 [RFC2330].1

Отметим, что при наличии вероятности того, что пакет с конечной задержкой, указанный как потерянный, является значимым, высокий процентиль (90-й или 95-й) можно указать как бесконечный вместо конечного.

4.2. Type-P-Round-trip-Delay-Median

Для данной выборки Type-P-Round-trip-Delay-Poisson-Stream — это медиана всех значений dT в потоке. При расчёте медианы неопределённые значения считаются бесконечно большими. Как и Type-P-Round-trip-Delay-Percentile, медиана Type-P-Round-trip-Delay-Median не определена для пустой выборки.

Как указано в документе IPPM Framework, медиана отличается от 50-го процентиля только для выборов с сетным числом значений (в этом случае используется среднее значение двух «центральных» измерений.

Предположим в качестве примера выборку, показанную ниже.

   Stream1 = <
   <T1, 100 msec>
   <T2, 110 msec>
   <T3, undefined>
   <T4, 90 msec>
   >

Медиана будет иметь значение 105 мсек (среднее между 100 и 110 мсек).

4.3. Type-P-Round-trip-Delay-Minimum

Для данной выборки Type-P-Round-trip-Delay-Poisson-Stream — это минимальное значение dT в потоке. При расчёте неопределённые значения считаются бесконечно большими. Это означает, что минимум также может быть неопределённым (неформально, бесконечным), если все значения dT являются неопределёнными. Значение Type-P-Round-trip-Delay-Minimum будет неопределённым для пустой выборки.

В приведённом выше примере минимальное значение составляет 90 мсек.

4.4. Type-P-Round-trip-Delay-Inverse-Percentile

Для данной выборки Type-P-Round-trip-Delay-Poisson-Stream и порога продолжительности часть всех значений dT в потоке будет не выше порога. Значение может быть от 0% (все значения dT выше порога) до 100%. Значение Type-P-Round-trip-Delay-Inverse-Percentile будет неопределённым для пустой выборки.

В приведённом выше примере Inverse-Percentile для 103 мсек составляет 50%.

5. Вопросы безопасности

Проведение измерений в Internet создаёт проблемы безопасности и приватности. Этот документ не задаёт реализацию показателей, поэтому он напрямую не влияет на безопасность Internet и приложений Internet. Однако при реализации измерений требуется учитывать вопросы безопасности и приватности.

Имеется два типа проблем, связанных с безопасностью — потенциальные угрозы в результате проведения измерений и возможные угрозы для самих измерений. Измерения могут наносить вред, поскольку они являются активными и внедряют свои пакеты в сеть. Параметры измерений должны выбираться осторожно и тщательно, чтобы объем внедряемого в сеть трафика был мал по сравнению с обычным трафиком. Внедрение «слишком большого» трафика может искажать результаты измерений, а в пределе вызывать перегрузки и отказы в обслуживании.

Измерения сами могут страдать от маршрутизаторов, предоставляющих измерительному трафику приоритет, отличающийся от приоритета для обычного трафика или внедряемых атакующим пакетов. Если маршрутизаторы могут распознавать измерительный трафик и обрабатывать его особо, измерения не будут отражать реальный пользовательский трафик. Если злоумышленник внедряет искусственный трафик, воспринимаемый как легитимный, коэффициент потерь будет искусственно занижен. Поэтому в методики измерения следует включать подходящие методы для снижения вероятности специальной обработки измерительного трафика. Можно применять средства аутентификации, такие как цифровые подписи, для защиты от внедряемого злоумышленниками трафика.

Проблемы приватности при сетевых измерениях не возникают при описанных в этом документе активных измерениях. Эти они отличаются от пассивных измерений, где могут просматриваться данные пользователей.

6. Благодарности

Большое спасибо Vern Paxson и Will Leland за полезные предложения.

7. Литература

[1] Paxson, D., Almes, G., Mahdavi, J. and M. Mathis, «Framework for IP Performance Metrics», RFC 2330, May 1998.

[2] Almes, G., Kalidindi,S. and M. Zekauskas, «A One-way Delay Metric for IPPM», RFC 2679, September 1999.

[3] Mills, D., «Network Time Protocol (v3)», RFC 1305, April 1992.

[4] Mahdavi, J. and V. Paxson, «IPPM Metrics for Measuring Connectivity», RFC 2678, September 1999.

[5] Postel, J., «Internet Protocol», STD 5, RFC 791, September 1981.

[6] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, March 1997.

8. Адреса авторов

Guy Almes
Advanced Network & Services, Inc.
200 Business Park Drive
Armonk, NY 10504
USA
Phone: +1 914 765 1120
EMail: almes@advanced.org
 
Sunil Kalidindi
Advanced Network & Services, Inc.
200 Business Park Drive
Armonk, NY 10504
USA
Phone: +1 914 765 1128
EMail: kalidindi@advanced.org
 
Matthew J. Zekauskas
Advanced Network & Services, Inc.
200 Business Park Drive
Armonk, NY 10504
USA
Phone: +1 914 765 1112
EMail: matt@advanced.org

9. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.


Перевод на русский язык

Николай Малых
nmalykh@protokols.ru

1В исходном документе это предложение содержало ошибку. См. https://www.rfc-editor.org/errata/rfc2681. Прим. перев.

Рубрика: RFC, Измерения и тестирование | Оставить комментарий

RFC 2659 Security Extensions For HTML

Network Working Group                                    E. Rescorla
Requests for Comments: 2659                               RTFM, Inc.
Category: Experimental                                  A. Schiffman
                                                Terisa Systems, Inc.
                                                         August 1999

 

Защитные расширения для HTML

Security Extensions For HTML

PDF

Статус документа

Этот документ определяет экспериментальный протокол для сообщества Internet. Документ не задает каких-либо стандартов Internet. Принимаются предложения и комментарии к документу. Документ может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). All Rights Reserved.

Аннотация

Этот документ описывает синтаксис для вложенных параметров согласования S-HTTP в документах HTML. Расширение S-HTTP, описанное в RFC 2660, содержит концептуальное описание заголовков согласования, отражающие потенциальные предпочтения получателя сообщения как криптографическое расширение, которое должно быть применено к сообщению. Документ описывает синтаксис связывания этих параметров согласования с “якорями” HTML.

1. Введение

2. Атрибуты Anchor

Определим три новых атрибута “якорей” (anchor) и передачи форм (form submission):

DN — отличительное имя доверителя (principal), для которого должен шифроваться запрос при разыменовании (dereferencing) “якоря” в url. Это требование не включено в спецификацию, но отказ от его выполнения может привести к тому, что клиент не сможет определить DN и, следовательно, не сможет выполнить шифрование. Имя должно указываться в формате RFC1485 с использованием соглашений SGML.

NONCE — строка произвольного формата (в “кавычках” SGML), которая включается в заголовок SHTTP-Nonce: (после удаления “кавычек” SGML) при разыменовании “якоря”.

CRYPTOPTS — информация о криптографических опциях в соответствии с [SHTTP] (в частности, <cryptopt-list>).

2.1. Элемент CERTS

Определяется новый элемент HTML CERTS, который передает группу сертификатов (не обязательно связанных), обеспечиваемых в качестве дополнительной информации (advisory data). Содержимое этого элемента не предназначено для вывода на экран пользователя. Могут использоваться группы сертификатов для PEM или PKCS-7. Такие сертификаты передаются в документах HTML для удобства получателя, который при отсутствии данных может оказаться неспособен найти сертификаты (цепочки), соответствующие DN, указанному в ссылке (anchor).

Формат элемента должен быть таким же, как для строки заголовка Certificate-Info [SHTTP]; единственное отличие состоит в том, что должен обеспечиваться спецификатор <Cert-Fmt> как атрибут FMT в теге.

Допускается использование множества элементов CERTS; предполагается, что сами элементы CERTS включаются в заголовок (HEAD) документа HTML (чтобы данные из этого элемента не выводились на экран браузерами HTML, которые не поддерживают S-HTTP).

2.2. Элемент CRYPTOPTS

Опции Cryptopts также могут включаться в элемент и указываться в “якоре” по имени. Атрибут NAME задает имя, которым этот элемент может быть указан в атрибуте CRYPTOPTS “якоря”. Имена должны иметь в начале по крайней мере один символ #.

2.3. Пример HTML

Ниже приведен пример криптографических данных, вложенных в “якорь” и содержащих группу сертификатов. Отметим использование синтаксиса SGML для записи данных.

        <CERTS FMT=PKCS-7>
        MIAGCSqGSIb3DQEHAqCAMIACAQExADCABgkqhkiG9w0BBwEAAKCAM
        IIBrTCCAUkCAgC2MA0GCSqGSIb3DQEBAgUAME0xCzAJBgNVBAYTAlVTMSAwH
        gYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEcMBoGA1UECxMTUGVyc
        29uYSBDZXJ0aWZpY2F0ZTAeFw05NDA0MDkwMDUwMzdaFw05NDA4MDIxODM4N
        TdaMGcxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0e
        SwgSW5jLjEcMBoGA1UECxMTUGVyc29uYSBDZXJ0aWZpY2F0ZTEYMBYGA1UEA
        xMPU2V0ZWMgQXN0cm9ub215MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMy8Q
        cW7RMrB4sTdQ8Nmb2DFmJmkWn+el+NdeamIDElX/qw9mIQu4xNj1FfepfJNx
        zPvA0OtMKhy6+bkrlyMEU8CAwEAATANBgkqhkiG9w0BAQIFAANPAAYn7jDgi
        rhiIL4wnP8nGzUisGSpsFsF4/7z2P2wqne6Qk8Cg/Dstu3RyaN78vAMGP8d8
        2H5+Ndfhi2mRp4YHiGHz0HlK6VbPfnyvS2wdjCCAccwggFRAgUCQAAAFDANB
        gkqhkiG9w0BAQIFADBfMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhd
        GEgU2VjdXJpdHksIEluYy4xLjAsBgNVBAsTJUxvdyBBc3N1cmFuY2UgQ2Vyd
        GlmaWNhdGlvbiBBdXRob3JpdHkwHhcNOTQwMTA3MDAwMDAwWhcNOTYwMTA3M
        jM1OTU5WjBNMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2Vjd
        XJpdHksIEluYy4xHDAaBgNVBAsTE1BlcnNvbmEgQ2VydGlmaWNhdGUwaTANB
        gkqhkiG9w0BAQEFAANYADBVAk4GqghQDa9Xi/2zAdYEqJVIcYhlLN1FpI9tX
        Q1m6zZ39PYXK8Uhoj0Es7kWRv8hC04vqkOKwndWbzVtvoHQOmP8nOkkuBi+A
        QvgFoRcgOUCAwEAATANBgkqhkiG9w0BAQIFAANhAD/5Uo7xDdp49oZm9GoNc
        PhZcW1e+nojLvHXWAU/CBkwfcR+FSf4hQ5eFu1AjYv6Wqf430Xe9Et5+jgnM
        Tiq4LnwgTdA8xQX4elJz9QzQobkE3XVOjVAtCFcmiin80RB8AAAMYAAAAAAA
        AAAAA==
        </CERTS>
        <A name=foobar
        DN="CN=Setec Astronomy, OU=Persona Certificate,
            O=&quot;RSA Data Security, Inc.&quot;, C=US"
        CRYPTOPTS="SHTTP-Privacy-Enhancements: recv-refused=encrypt;
        SHTTP-Signature-Algorithms: recv-required=NIST-DSS"
        HREF="shttp://research.nsa.gov/skipjack-holes.html">
        Don't read this. </A>

3. Вопросы безопасности

Весь документ посвящен вопросам безопасности.

4. Адреса авторов

Eric Rescorla

RTFM, Inc.

30 Newell Road, #16

East Palo Alto, CA 94303

Phone: (650) 328-8631

EMail: ekr@rtfm.com

 

Allan M. Schiffman

SPYRUS/Terisa

5303 Betsy Ross Drive

Santa Clara, CA 95054

Phone: (408) 327-1901

EMail: ams@terisa.com


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

5. Литература

[SHTTP] Rescorla, E. and A. Schiffman, «The Secure HyperText Transfer Protocol», RFC 2660, August 1999.

6. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечивается Internet Society.

Рубрика: RFC | Оставить комментарий

RFC 2644 Changing the Default for Directed Broadcasts in Routers

Network Working Group                                       D. Senie
Request for Comments: 2644                    Amaranth Networks Inc.
Updates: 1812                                           August 1999
BCP: 34
Category: Best Current Practice

Смена принятого по умолчанию поведения маршрутизаторов по отношению к пакетам Directed Broadcast

Changing the Default for Directed Broadcasts in Routers

PDF

Статус документа

В этом документе приведена основанная на обобщении опыта информация, которая может быть полезна сообществу Internet. Документ служит приглашением к дискуссии в целях дальнейшего совершенствования и может распространяться без ограничений.

Авторские права

Copyright (C) The Internet Society (1999). All Rights Reserved.

1. Введение

В требованиях к маршрутизаторам [1] указано, что эти устройства должны принимать и пересылать широковещательный трафик directed broadcast1. В этом же документе указано, что маршрутизаторы должны иметь опцию, позволяющую запретить эту функцию, и по умолчанию функция приема и пересылки directed broadcast должна быть включена. Однако поддержка пересылки таких пакетов обеспечивает возможность организации эффективных атак на другие сети.

Смена принятого по умолчанию поведения маршрутизаторов позволит при подключении новых маршрутизаторов к сети Internet не усугублять уже существующую проблему.

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не нужно (SHALL NOT), следует (SHOULD), не следует (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе должны интерпретироваться в соответствии с RFC 2119.

2. Обсуждение

Разрушительные атаки на службы2 привели к необходимости разработки системы фильтрации входящего трафика — Ingress Filtering [2]. Фильтрация на входе сейчас используется многими сетевыми операторами, а также в корпоративных сетях для предотвращения DOS-атак.

Недавние Smurf-атаки [3] были направлены против сетей, которые поддерживают directed broadcast из внешних сетей. Поддержка directed broadcast делала такие сети «усилителями» Smurf-атак.

Реализация ingress-фильтров является наилучшим решением проблемы, однако ограничение использования directed broadcast также сыграет позитивную роль.

Провайдеры и корпоративные пользователи хотят оградить свои сети от пакетов directed broadcast, приходящих из внешних сетей.

Mobile IP [4] предлагает использовать directed broadcast в мобильных узлах для динамического детектирования сетей. Хотя такая функция применяется в некоторых реализациях, польза ее совершенно не очевидна. В работе [5] предложены другие способы решения таких задач. Имеет смысл рассмотреть вопрос об отмене использования directed broadcast в Mobile IP, пока рассматривается вопрос о принятии стандарта.

3. Рекомендации

Внести в документ [1] следующие изменения:

Параграф 4.2.2.11 (d) заменить на:

(d) { <Network-prefix>, -1 }

Directed Broadcast – широковещательный адрес для сети с указанным префиксом. Недопустимо использование таких адресов в поле отправителя. Маршрутизатор может генерировать пакеты Network Directed Broadcast. Маршрутизатор может иметь конфигурационную опцию, разрешающую прием пакетов directed broadcast, однако эта опция должна быть отключена по умолчанию и, таким образом, для маршрутизаторов недопустимо принимать пакеты Network Directed Broadcast, пока это на задано явно конечным пользователем.

Второй абзац параграфа 5.3.5.2 заменить на:

Маршрутизатор может иметь опцию, разрешающую прием широковещательных пакетов для заданной префиксом сети (network-prefix-directed broadcast) на уровне интерфейсов и может иметь опцию для разрешения пересылки таких пакетов. Эти опции по умолчанию должны быть отключены, чтобы блокировать прием и передачу пакетов network-prefix-directed broadcast.

4. Вопросы безопасности

Задача этого документа состоит в снижении эффективности некоторых типов атак на службы (DoS).

5. Литература

[1] Baker, F., «Requirements for IP Version 4 Routers», RFC 1812, June 1995.

[2] Ferguson, P. and D. Senie, «Ingress Filtering», RFC 2267, January 1998.

[3] Публикация Craig Huegen на сайте http://www.quadrunner.com/~chuegen/smurf.txt и документ CERT http://www.cert.org/advisories/CA-98.01.smurf.html

[4] Perkins, C., «IP Mobility Support», RFC 2002, October 1996.

[5] P. Calhoun, C. Perkins, «Mobile IP Dynamic Home Address Allocation Extensions», Work in Progress5.

6. Благодарности

Автор благодарит Брэндона Росса (Brandon Ross) из Mindspring и Гэбриела Монтенегро (Gabriel Montenegro) из Sun за их вклад в работу.

7. Адрес автора

Daniel Senie

Amaranth Networks Inc.

324 Still River Road

Bolton, MA 01740

Phone: (978) 779-6813

EMail: dts@senie.com


Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

8. Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.

1Directed Broadcast — широковещательный пакет, направленный в сеть с заданным префиксом (номер сети). Прим. перев.

2 Denial of Service — DOS. Прим. перев.

5Этот документ опубликован как RFC 2794 — Mobile IP Network Access Identifier Extension for IPv4. Прим. перев.

Рубрика: RFC | Оставить комментарий

RFC 2663 IP Network Address Translator (NAT) Terminology and Considerations

Network Working Group                                   P. Srisuresh
Request for Comments: 2663                               M. Holdrege
Category: Informational                          Lucent Technologies
                                                         August 1999

Транслятор сетевых адресов IP (NAT) — терминология и рассмотрение

IP Network Address Translator (NAT) Terminology and Considerations

PDF

Статус документа

Этот документ содержит информацию для сообщества Internet и не определяет каких-либо стандартов. Документ может распространяться свободно.

Авторские права

Copyright (C) The Internet Society (1999). All Rights Reserved.

Предисловие

Мотивом создания документа послужило желание внести ясность в терминологию, используемую в связи с трансляторами сетевых адресов (Network Address Translator). Сам термин «транслятор сетевых адресов» может относиться к разным субъектам в зависимости от контекста. Целью этого документа является определение различных вариантов NAT1 и стандартизация значений применяемых терминов.

Указанные в списке авторы являются редакторами этого документа и обязаны отметить существенный вклад членов рабочей группы. Значительные фрагменты документа под названием IP Network Address Translator (NAT) были использованы почти дословно и обеспечили стартовую базу для этого документа. Редакторы рады поблагодарить авторов этого документа Pyda Srisuresh и Kjeld Egevang. Редакторы рады поблагодарить Praveen Akkiraju за его вклад в описание сценариев развертывания NAT. Редакторы также выражают свою признательность членам IESG Scott Bradner, Vern Paxson и Thomas Narten за детальный анализ документа и улучшение текста.

Аннотация

NAT представляет собой метод отображения адресов IP из одного диапазона на адреса из другого диапазона в попытке обеспечить прозрачную маршрутизацию к хостам. Традиционно устройства NAT используются для подключения областей с изолированными приватными (не регистрируемыми) адресами к внешним областям, где применяются зарегистрированные адреса с глобальной маршрутизацией. В этом документе предпринимается попытка описать работу устройств NAT и связанные с этим вопросы, а также определить термины, используемые для идентификации разных вариантов NAT.

1. Введение и обзор

Необходимость трансляции адресов IP возникает в тех случаях, когда внутренние IP-адреса сети не могут использоваться за пределами этой сети по причине того, что они недопустимы для внешнего применения, или требуется скрыть структуру частной сети от внешних сетей.

Трансляция адресов позволяет (во многих случаях, за исключением отмеченных в разделах 8 и 9) хостам частных сетей взаимодействовать с адресатами из внешних сетей и наоборот. Имеется множество вариантов NAT и связанных с ними терминов. Этот документ пытается определить терминологию, используемую для идентификации разных вариантов NAT. Рассматриваются также другие вопросы, относящиеся к устройствам NAT в целом.

Отметим, что документ не является описанием работы отдельных вариантов NAT или применимости устройств NAT.

Устройства NAT пытаются обеспечить прозрачную маршрутизацию для конечных хостов, пытающихся работать из областей с немаршрутизируемыми адресами. Это осуществляется путем замены адресов конечных узлов маршрута и поддержкой информации о таких заменах таким образом, чтобы относящиеся к сессии дейтаграммы корректно маршрутизировались нужным конечным узлам любых областей. Такое решение работает только для приложений, не использующих пространство адресом IP в качестве части самого протокола. Например, идентификация конечных точек с использованием имен DNS вместо адресов делает приложения менее зависимыми от реальных адресов, которые выбирает NAT и избавляет от необходимости преобразования содержимого дейтаграмм при изменении адресов IP с помощью NAT.

Функция NAT сама по себе не может обеспечит прозрачную поддержку всех приложений и часто требует применения дополнительных шлюзов прикладного уровня (ALG2). При возникновении потребности развернуть решение на основе NAT следует сначала определиться с требованиями приложений и оценить требуемые для обеспечения прозрачности расширения NAT (например, ALG).

Методы IPsec, предназначенные для сокрытия адресов конечных точек в пакетах IP в большинстве практических ситуаций не будут работать через NAT. Методы типа AH и ESP защищают содержимое заголовков IP (включая адреса отправителей и получателей) от изменения, а основной задачей NAT как раз является изменение адресов в заголовках IP.

2. Терминология и используемые концепции

В этом разделе определяются термины, часто используемые в контексте NAT.

2.1. Область адресации (область)

Область адресации (address realm) представляет собой часть сети (домен), в которой обеспечивается уникальная адресация объектов, обеспечивающая возможность маршрутизации дейтаграмм между этими объектами. Используемые внутри домена протоколы маршрутизации отвечают за поиск маршрутов к объектам по сетевым адресам последних. Отметим, что этот документ ограничивается описанием NAT в среде IPv4 и не рассматривает NAT в других типах сред (например, IPv6).

2.2. Прозрачная маршрутизация

Термин «прозрачная маршрутизация» используется в этом документе для обозначения функциональности в части маршрутизации, обеспечиваемой устройством NAT. Это отличается от функциональности обычных маршрутизаторов, которые пересылают пакеты между областями с однотипной адресацией .

Прозрачная маршрутизация выполняется между областями с несовместимой маршрутизацией путем замены адресных полей в заголовках IP значениями, которые будут корректны в той области, куда направляется дейтаграмма. Более подробное описание прозрачной маршрутизации приведено в параграфе 3.2.

2.3. Сессии и потоки трафика

Поток соединения или сессии отличается от просто потока пакетов. Поток сессии показывает направление, в котором сессия была инициирована, относительно сетевого интерфейса. Поток пакетов представляет собой направление, в котором пакеты перемещаются относительно сетевого интерфейса. Рассмотрим в качестве примера исходящую сессию telnet. Такая сессия включает поток пакетов в обоих направлениях (входящие и исходящие). Исходящие пакеты передают информацию о нажатии клавиш, а входящие — содержимое «экрана» на сервере telnet.

В контексте данного документа сессией считается подмножество трафика, управляемое, как единица (элемент) трансляции. Сессии TCP/UDP однозначно идентифицируются квадруплетом (IP-адрес отправителя, порт TCP/UDP отправителя, IP-адрес получателя, порт TCP/UDP получателя). Сессии ICMP определяются тремя параметрами (IP-адрес отправителя, идентификатор запроса ICMP, IP-адрес получателя). Все остальные сессии идентифицируются тройкой параметров (IP-адрес отправителя и получателя, протокол IP).

Выполняемая NAT трансляция адресов происходит на уровне сессии и включает преобразование как входящих, так и исходящих пакетов для данной сессии. Направление сессии определяется направлением передачи первого пакета данной сессии (см. параграф 2.5).

Отметим, что определение сессии в контексте NAT не будет совпадать с представлениями о сессии в приложениях. Приложение может рассматривать группу сессий NAT, как одну прикладную сессию или даже не считать обмен пакетами между партнерами какой-то сессией. Не все приложения могут работать в несовместимых областях адресации, даже при наличии ALG (определены в параграфе 2.9).

2.4. Порты TU, порты серверов и клиентов

В оставшейся части документа порты TCP/UDP, связанные с адресом IP, будут называться просто «портами TU».

Для большинства хостов TCP/IP диапазон портов TU с номерами 0-1023 используется серверами для прослушивания входящих вызовов. Инициирующие соединения клиенты обычно указывают номер порта-источника из диапазона 1024-65535. Однако это соглашение не является универсальным и выполняется не во всех случаях. Некоторые клиентские станции инициируют соединения, используя номер порта-источника из диапазона 0-1023, а некоторые серверы прослушивают порты TU с номерами из диапазона 1024-65535.

Список выделенных номеров портов TU можно найти в RFC 1700 [Ref 2].

2.5. Начало сессии для TCP, UDP и др.

Первый пакет каждой сессии TCP пытается организовать сессию и содержит стартовую информацию для соединения. Первый пакет сессии TCP можно распознать по наличию бита SYN и отсутствию бита ACK в поле флагов TCP. Во всех пакетах TCP, за исключением первого, флаг ACK должен быть установлен.

Однако не существует детерминированного метода детектирования начала сессий UDP или других протоколов, отличных от TCP. Эвристический метод будет полагать первый пакет с не существовавшими доселе параметрами сессии (определены в параграфе 2.3), как начальный пакет новой сессии.

2.6. Завершение сессии для TCP, UDP и др.

Завершение сессии TCP детектируется подтвержденными FIN для обеих сторон или получением одной из сторон сегмента с битом RST в поле флагов TCP. Однако, поскольку устройство NAT не может знать о реальной доставке пакетов другой стороне (они могут быть отброшены на пути), оно не может быть уверенным в том, что сегменты с флагами FIN или RST3 будут последними в сессии (т. е., возможен повтор передачи). Следовательно, считать сессию завершенной можно лишь по истечение 4 минут с момента обнаружения указанных выше событий. Необходимость столь длительного ожидания описана в RFC 793 [Ref 7], где предложено значение TIME-WAIT в 2 * MSL4 (4 минуты).

Отметим, что возможны разрывы соединений TCP, которые устройство NAT не сможет детектировать (например, при перезагрузке одной из сторон). Следовательно, на устройствах NAT нужна «сборка мусора» для удаления несуществующих сессий TCP. Однако в общем случае нет возможности отличить простаивающее соединение от разорванного. Для сессий UDP нет однозначного способа детектировать разрыв сессии, поскольку протоколы на основе UDP существенно зависимы от приложений.

Для детектирования завершение сессий применяется множество эвристических методов. Например, можно считать прерванными сессии TCP, бездействующие, более 24 часов, или сессии других протоколов, не используемые в течение нескольких минут. Зачастую такие предположения будут работать, но иногда нет. Интервалы допустимого бездействия очень сильно различаются между приложениями и даже для разных сессий одного приложения. Следовательно, значения тайм-аутов должны быть настраиваемыми. Но даже это не гарантирует удовлетворительного результата. Более того, как отмечено в параграфе 2.3, нет гарантии, что представление NAT о разрыве сессии совпадет с представлением приложения.

Другим способом обработки разрыва сессий является введение временных меток и их хранение для определения возможных периодов бездействия.

2.7. Публичная/глобальная/внешняя сеть

Глобальная (Global) или публичная (Public) сеть представляет собой адресную область с уникальными для каждого узла адресами, выделенными IANA5) или другим регистратором. В контексте NAT такую сеть также будем называть внешней (External).

2.8. Частная/локальная сеть

Частная сеть представляет собой область адресации, которая не зависит от внешних сетевых адресов. Частные (Private) сети называют также локальными (Local). Прозрачная маршрутизация между частной сетью и внешними сетями облегчается за счет использования NAT-маршрутизаторов.

В RFC 1918 [Ref 1] даны рекомендации по использованию адресного пространства в частных сетях. Агентство IANA выделило 3 блока адресов IP (10/8, 172.16/12, 192.168/16) для использования в частных сетях. В нотации, принятой до CIDR, первый блок является сетью класса A, второй представляет собой непрерывный блок из 16 сетей класса B, а третий — непрерывный блок из 256 сетей класса C.

Организация, решившая использовать в своей сети адреса из перечисленных блоков, может делать это без координации с IANA или иным регистратором, типа APNIC, RIPE и ARIN. Эти блоки адресов могут одновременно использоваться во множестве независимых организаций. Однако, если позднее такая организация пожелает организовать сетевое взаимодействие с другой организацией или подключиться к сети Internet, ей потребуется поменять блок адресов в своей сети или включить NAT на своих граничных маршрутизаторах.

2.9. Шлюзы прикладного уровня

Не все приложения легко перевести на работу через устройства NAT — в частности, это относится к приложениям, которые используют адреса IP и номера портов TCP/UDP в полях данных6. Шлюзы прикладного уровня (ALG7) обеспечивают функции специфических агентов трансляции, которые позволяют приложениям на хосте с адресом из одной области прозрачно подключаться к системам, работающим на хостах других адресных областей. ALG могут взаимодействовать с NAT для организации состояния, использовать информацию о состоянии NAT, менять содержимое полей данных прикладных пакетов и выполнять иные операции, которые могут потребоваться для работы через разнородные области адресации.

ALG могут использовать информацию о состоянии NAT не во всех случаях. Они могут подбирать данные приложений и просто сообщать NAT о необходимости добавить информацию о состоянии в некоторых случаях. Шлюзы ALG похожи на прокси (Proxy) в том, упрощают специфические для приложения коммуникации между клиентами и серверами. Прокси используют специальный протокол для коммуникаций с клиентами, транслируя данные клиентов на серверы, и наоборот. В отличие от прокси, шлюзы ALG не используют специальных протоколов для коммуникаций с клиентскими приложениями и не требуют внесения изменений в приложения-клиенты.

3. Что такое NAT?

Трансляция сетевых адресов (NAT8) представляет собой метод отображения адресов IP из одного блока на адреса из другого блока, обеспечивающий прозрачную маршрутизацию для оконечных хостов. Существует множество вариантов трансляции адресов, предназначенных для решения разных задач. Однако всем устройствам NAT следует поддерживать;

  1. прозрачное выделение адресов;

  2. прозрачную маршрутизацию через систему трансляции (маршрутизация в данном случае рассматривается, как пересылка пакетов, а не обмен маршрутными данными);

  3. трансляция полей данных сообщений ICMP об ошибках.

На рисунке показано использование NAT в оконечном домене, подключенном к сети Internet через региональный маршрутизатор сервис-провайдера.

    \ | /                  .                               /
+---------------+  WAN     .           +-----------------+/
|Регион. Маршр. |----------------------|Маршрутиз. с NAT |---
+---------------+          .           +-----------------+\
                           .                      |        \
                           .                      |  ЛВС
                           .               ---------------
               Граница оконечного домена

Рисунок 1: Типичный сценарий работы NAT

3.1. Прозрачное выделение адресов

NAT связывает адреса приватной сети с адресами глобальной сети и наоборот для обеспечения прозрачной маршрутизации дейтаграмм через границу адресных областей. В некоторых случаях трансляция может расширяться на идентификаторы транспортного уровня (например, номера портов TCP/UDP). Привязка адресов происходит в начале сессии. Ниже описаны два варианта выделения адресов.

3.1.1. Статическое выделение адресов

При статическом выделении адресов выполняется взаимно-однозначное (one-to-one) отображение между адресами хостов приватной сети и внешними сетевыми адресами на время действия операции NAT. При статическом выделении адресов не требуется управлять этим выделением в зависимости от потоков данных сессий.

3.1.2. Динамическое выделение адресов

В этом случае внешние адреса присваиваются хостам приватной сети (и наоборот) динамически на основе операционных требований и сеансовых потоков, эвристически определенных NAT. При завершении последней сессии, использовавшей привязку NAT будет освобождать данную привязку для последующего использования внешних адресов. Детали процесса выделения адресов зависят от конкретной реализации NAT.

3.2. Прозрачная маршрутизация

Маршрутизатор NAT размещается на границе между двумя адресными областями и транслирует адреса в заголовках пакетов IP так, чтобы при переходе пакета из одной адресной области в другую маршрутизация выполнялась корректно. Поскольку устройства NAT подключаются к нескольким адресным областям, они должны быть аккуратны в части распространения информации (например, через протоколы маршрутизации) о сетях из одной области в другую.

Трансляция адресов включает три фазы, описанные ниже. Суммарно эти три фазы обеспечивают создание, поддержку и удаление состояний для сессий, организуемых через устройства NAT.

3.2.1. Привязка адресов

В фазе привязки адресов локальны адрес IP связывается с внешним адресом (и наоборот) для последующей трансляции. Привязка адресов бывает статической при статическом распределении адресов и динамической (в начале сессии) при динамическом распределении. После связывания пары адресов все последующие сессии, исходящие от данного хоста или входящие к нему, будут использовать данную привязку для трансляции пакетов.

Новая привязка адресов организуется при старте новой сессии, если нужно привязки адресов не было организовано ранее. После того, как локальный адрес связан с внешним адресом, все последующие сессии, организуемые с этого адреса или направленные ему, будут использовать эту же привязку.

Начало каждой сессии будет приводить к организации состояния, позволяющего транслировать дейтаграммы этой сессии. Для одной адресной привязки может быть организовано множество сессий, организованных одним хостом.

3.2.2. Просмотр и трансляция адресов

После организации состояния для сессии для всех относящихся к ней пакетов будет выполняться просмотр адресов (в некоторых случаях идентификаторов транспортного уровня) и их трансляция.

Трансляция адреса и транспортного идентификатора для дейтаграммы будет приводить к соответствующему изменению адресной информации в заголовке.

3.2.3. Отвязывание адресов

Разрыв привязок (освобождение адресов) представляет собой фазу, когда приватный адрес перестает быть связанным с глобальным адресом для целей трансляции. NAT будет освобождать адреса по результатам принятия решения о разрыве последней из использовавших данную привязку сессий. Эвристические аспекты обработки разрыва сессий рассмотрены в параграфе 2.6.

3.3. Преобразование пакетов для сообщений об ошибках ICMP

Все сообщения ICMP об ошибках (за исключением сообщений типа Redirect) должны изменяться при прохождении через NAT. Типы сообщений ICMP об ошибках, которые нужно изменять при прохождении через NAT, включают Destination-Unreachable, Source-Quench, Time-Exceeded и Parameter-Problem. NAT не будет пытаться изменить сообщения типа Redirect.

Изменения в сообщениях ICMP будут включать модификацию исходного пакета IP (или его частей), вложенного в поле данных сообщения ICMP об ошибке. Для обеспечения полной прозрачности NAT с точки зрения конечных хостов адрес IP во вложенном в поле данных пакета ICMP заголовке IP должен быть изменен, а поле контрольной суммы этого заголовка IP рассчитано заново. То же самое относится и к заголовку транспортного уровня. Контрольная сумма заголовка ICMP также должна пересчитываться с учетом изменений адреса IP и транспортного заголовка в поле данных. Следовательно, обычный заголовок IP также требует изменений.

4.0. Варианты NAT

Существует множество вариантов трансляции адресов, рассчитанных для разных приложений. Перечисленные ниже варианты NAT не описывают всех ситуаций, но показывают существенные различия между вариантами.

Приведенная на рисунке схема будет служить базовой моделью для иллюстрации вариантов NAT. Host-A с адресом Addr-A размещается в приватной области, представленной сетью N-Pri. Сеть N-Pri отделена от внешних сетей маршрутизатором NAT. Host-X с адресом Addr-X размещается во внешней области, представленной сетью N-Ext. Маршрутизатор NAT с двумя интерфейсами, подключенными к разным областям, обеспечивает прозрачную маршрутизацию между этими областями. Интерфейс во внешнюю сеть имеет адрес Addr-Nx, а приватный интерфейс — Addr-Np. Следует понимать, что адреса Addr-A и Addr-Np относятся к сети N-Pri, а Addr-X и Addr-Nx — к сети N-Ext.

                           ________________
                          (                )
                         (   Область        )    +--+
                        (  внешних адресов   )-- |__|
                         (     (N-Ext)      )   /____\
                          (________________)    Host-X
                                 |              (Addr-X)
                                 |(Addr-Nx)
                     +--------------+
                     |              |
                     |маршрутиз. NAT|
                     |              |
                     +--------------+
                       |(Addr-Np)
                       |
              ----------------
             (                )
 +--+       (     Область      )
 |__|------(  приватных адресов )
/____\      (     (N-pri)      )
Host-A       (________________)
(Addr-A)

Рисунок 2. Базовая модель для иллюстрации NAT.

4.1. Traditional NAT (или) Outbound NAT

Традиционная (или исходящая) трансляция NAT обеспечивает хостам из приватной сети прозрачный доступ к хостам внешней сети для большинства случаев. В традиционной NAT сессии являются односторонними, исходящими из приватной сети. В отличие от этого Bi-directional NAT (двухсторонняя трансляция) поддерживает как исходящие, так и входящие сессии. Более подробное описание Bi-directional NAT приведено в параграфе 4.2.

Ниже описаны адресные области, поддерживаемые традиционной трансляцией NAT. IP-адреса хостов во внешней сети являются уникальными и корректны как во внешней, так и во внутренней сети. Однако адреса хостов из приватной сети уникальны лишь в рамках данной сети и могут быть не корректны для внешних сетей. Иными словами, NAT не будет анонсировать приватные сети во внешнюю область. Недопустимо перекрытие адресов внутренней сети с адресами из внешних сетей. Любой конкретный адрес должен относиться либо ко внешней, либо к приватной сети, но не может относиться к обеим сразу.

Традиционный маршрутизатор NAT на рисунке 2 будет позволять Host-A инициировать сессии с хостом Host-X, но не будет поддерживать вызовов в обратном направлении. Адреса N-Ext являются маршрутизируемыми внутри N-Pri, но адреса N-Pri не будут маршрутизироваться в N-Ext.

Traditional NAT обычно используется сайтами с адресами из приватных блоков для доступа во внешние сети.

Существует два варианта традиционной NAT — базовый (Basic NAT) и NAPT9 (трансляция адресов и портов). Оба варианта рассматриваются в двух следующих параграфах.

4.1.1. Basic NAT

В Basic NAT для трансляции адресов хостов приватной сети используется блок внешних адресов при организации соединений из приватной сети со внешними доменами. Для исходящих из приватной сети пакетов IP-адрес отправителя и связанные поля типа контрольных сумм заголовков IP, TCP, UDP и ICMP соответствующим образом транслируются. Для принимаемых пакетов транслируется адрес получателя и указанные контрольные суммы.

Маршрутизатор Basic NAT на рисунке 2 может быть настроен на трансляцию N-Pri в блок адресов (например, Addr-i — Addr-n), выбранных из внешней сети N-Ext.

4.1.2. Трансляция адресов и номеров портов (NAPT)

NAPT расширяет трансляцию, добавляя возможность преобразования идентификаторов транспортного уровня (например, номера порта TCP или UDP, идентификатора запроса ICMP). Это позволяет мультиплексировать транспортные идентификаторы множества приватных хостов в транспортные идентификаторы одного внешнего адреса. NAPT позволяет множеству внутренних хостов пользоваться одним внешним адресом. Отметим, что NAPT может комбинироваться с Basic NAT, чтобы использовать блок внешних адресов вкупе с трансляцией портов.

Для исходящих из приватной сети пакетов NAPT будет транслировать IP-адрес и транспортный идентификатор отправителя, а также такие поля, как контрольные суммы заголовков IP, TCP, UDP и ICMP. Транспортными идентификаторами могут служить номера портов TCP/UDP или идентификаторы запросов ICMP. Для входящих пакетов будут транслироваться IP-адрес и транспортный идентификатор получателя, а также контрольные суммы заголовков.

Маршрутизатор NAPT на рисунке 2 можно настроить на трансляцию сессий, организованных из N-Pri, на один внешний адрес (например, Addr-i).

Зачастую при трансляции адресов N-Pri они отображаются на внешний адрес Addr-Nx маршрутизатора NAPT.

4.2. Bi-directional NAT (или) Two-Way NAT

При двухсторонней трансляции (Bi-directional NAT) сессии могут инициироваться как с хостов приватной сети, так и из внешней сети. Адреса приватной сети привязываются к уникальны в глобальном масштабе адресам статически или динамически при организации сессий в обоих направлениях. В пространстве имен (т. е., FQDN10) для хостов приватной и внешних сетей предполагается уникальность каждого имени. Хосты из внешней области получают доступ к хостам внутренней области, используя для преобразования имен в адреса систему DNS. В дополнение к Bi-Directional NAT требуется развертывание DNS-ALG для корректного отображения адресов. В частности, с помощью DNS-ALG должна обеспечиваться возможность трансляции адресов из приватной области в запросах и откликах DNS на внешние привязки для этих адресов (и обратно) при прохождении пакетов DNS между приватной и внешней областями.

Требования к адресному пространству, отмеченные для Traditional NAT, применимы и в данном случае.

Маршрутизатор Bi-directional NAT на рисунке 2 позволит Host-A инициировать сессии с Host-X, а Host-X, в свою очередь — инициировать сессии с Host-A. Как и для традиционной трансляции NAT, адреса N-Ext будут маршрутизироваться в N-Pri, но адреса N-Pri не будут маршрутизироваться из N-Ext.

4.3. Twice NAT

Двойная трансляция (Twice NAT) — это вариант NAT, в котором устройство NAT при прохождении дейтаграммы через границу между сетями меняет адреса как отправителя, так и получателя. Этим данный вариант отличается от Traditional-NAT и Bi-Directional NAT, где преобразуется лишь один из адресов (отправителя или получателя, в зависимости от направления). Отметим, что термин Once-NAT (однократная трансляция) не используется.

Twice NAT требуется использовать в тех случаях, когда адресные пространства внешней и внутренней сети конфликтуют между собой11. Наиболее вероятно возникновение такой ситуации при некорректном применении во внутренней публичных адресов из блока, выделенного другой организации. Аналогичная ситуация может возникнуть и при смене организацией провайдера без замены внутренних адресов, выделенных прежним провайдером. Основной проблемой в таких случаях является совпадение части адресов внутренней и внешней сетей. При указании такого адреса в заголовке пакета этот пакет будет направлен скорей всего внутреннему хосту, а не на устройство NAT для трансляции. Twice-NAT пытается организовать мост между двумя областями путем трансляции адресов отправителя и получателя в пакетах IP при пересечении пакетом границы между областями.

Twice-NAT работает следующим образом. Когда Host-A инициирует сессию с Host-X, он отправляет запрос DNS для имени Host-X. Система DNS-ALG перехватывает запрос DNS и в отклике возвращаемом на хост Host-A меняет адрес Host-X на адрес, для которого обеспечивается корректная маршрутизация на локальном сайте (например, Host-XPRIME). После этого Host A инициирует взаимодействие с Host-XPRIME. Когда пакеты проходят через устройство NAT, IP-адрес отправителя транслируется (как в Traditional NAT), а адрес получателя транслируется в адрес Host-X. Аналогичные преобразования выполняются для пакетов, приходящих от Host-X.

Далее описываются свойства адресных областей, поддерживаемых Twice-NAT. Адреса хостов внешней сети уникальны в рамках этой сети, но могут иметь совпадения с адресами внутренней сети. Аналогично, адреса хостов приватной сети уникальны внутри этой сети, но могут совпадать со внешними адресами. Иными словами, по адресам хостов нет возможности определить принадлежность ко внутренней или внешней сети. Трансляция Twice NAT не допустима для анонсирования локальных сетей во внешние и обратно.

Маршрутизатор Twice NAT на рисунке 2 будет позволять Host-A инициировать сессии с Host-X, а Host-X — инициировать сессии с Host-A. Однако сеть N-Ext (или подмножество N-Ext) не будет маршрутизироваться из сети N-Pri, а сеть N-Pri не будет маршрутизироваться из N-Ext.

Twice NAT обычно используется в тех случаях, когда адресное пространство внутренней сети пересекается с адресным пространством внешней сети. Например, на приватном сайте, использующем блок адресов 200.200.200.0/24, официально выделенный другому сайту во внешней сети. Предположим, что Host_A (200.200.200.1) из приватной сети Private пытается связаться с Host_X (200.200.200.100) во внешней сети Public. Для организации такого соединения адрес Host_X отображается на другой адрес для Host_A (и обратно). Двойную трансляцию на граничном маршрутизаторе сети Private можно настроить следующим образом:

Private -> Public : 200.200.200.0/24 -> 138.76.28.0/24
Public <- Private : 200.200.200.0/24 -> 172.16.1.0/24
Поток дейтаграмм : Host_A(Private) -> Host_X(Public)
  1. В приватной сети

DA: 172.16.1.100 SA: 200.200.200.1
  1. После трансляции twice-NAT

DA: 200.200.200.100 SA: 138.76.28.1
Поток дейтаграмм Host_X (Public) -> Host_A (Private)
  1. В публичной сети

DA: 138.76.28.1 SA: 200.200.200.100
  1. В приватной сети после трансляции twice-NAT

SA: 200.200.200.1 DA: 172.16.1.100

4.4. Multihomed NAT

При использовании NAT возникают некоторые ограничения. Например, запросы и отклики, относящиеся к одной сессии, должны маршрутизироваться через одно устройство NAT, поскольку маршрутизатор NAT поддерживает информацию о состоянии организованных через него сессий. По этой причине часто предполагается, что маршрутизатор NAT является единственным краевым маршрутизатором оконечного домена и все пакеты IP при междоменных коммуникациях проходят через этот маршрутизатор NAT.

Для того, чтобы обеспечить приватной сети доступ во внешние сети даже при отказе одного из каналов NAT, желательно сделать приватную сеть многодомной с каналами к одному или нескольким провайдерам. Такие соединения могут быть организованы через одно или разные устройства NAT.

Например, приватная сеть может иметь соединения с двумя провайдерами и сессии хостов этой сети будут проходить через маршрутизаторы NAT с выбором лучшей метрики на пути к адресату. При отказе одного из маршрутизаторов NAT оставшийся может маршрутизировать трафик для всех соединений.

Множество устройств NAT или множество каналов на одном устройстве NAT, использующих общие настройки NAT, могут обеспечивать резервирование один для другого. В таких случаях резервное устройство NAT должно обмениваться данными с активным маршрутизатором NAT, чтобы при возникновении в том отказа сессии автоматически переносились на резервное устройство. Работа с резервным устройством NAT упрощается при использовании статических отображений.

5.0. Специфические для области адреса IP (RSIP)

Аббревиатура RSIP12 используется для обозначения функциональности (осведомленного о наличии областей) хоста из приватной сети принимать специфический для области адрес IP для взаимодействия с хостом приватной или внешней области.

Клиентом RSIP считается хост в приватной сети, принимающий адрес из внешней области при соединении с хостами из этой области. Пакеты, генерируемые хостами с обеих сторон такого соединения, будут использовать адреса, являющиеся уникальными для внешней области и не требующие трансляции.

Сервером RSIP считается узел, который входит как в приватную, так и во внешнюю сеть и может маршрутизировать пакеты из внешней сети в приватную сеть. Такие пакеты могут исходить от клиента RSIP или быть направленными клиенту RSIP. Сервер RSIP может также служить узлом, выделяющим адреса из внешней области клиентам RSIP.

Существует два варианта RSIP — RSA-IP13 и RSAP-IP14, которые описаны ниже.

5.1. Специфический для области адрес (RSA-IP)

Клиент RSA-IP принимает адрес IP из внешнего адресного пространства при соединении с хостом из внешней области. После того, как клиент RSA-IP примет внешний адрес, ни один другой хост приватной или внешней сети не сможет принимать этот адрес, пока он не будет освобожден клиентом RSA-IP.

Ниже приводится обсуждение вариантов маршрутизации, с помощью которых может быть реализована сквозная маршрутизация пакетов RSA-IP в приватной сети. Одним из вариантов является туннелирование пакетов до адресата. Внешний заголовок может транслироваться NAT, как обычно, не оказывая влияния на адресацию во внутреннем заголовке. Другим вариантом является организация двухстороннего туннеля между клиентом RSA-IP и граничным маршрутизатором, соединяющим две адресных области. Пакеты к клиенту и от него будут туннелироваться, но пересылка пакетов между граничным маршрутизатором и удаленным получателем будет происходить, как обычно. Отметим, что туннель от клиента к граничному маршрутизатору не является обязательным. Можно просто пересылать пакеты напрямую. Это будет работать, если во внутренней сети не используется фильтрации пакетов по адресам отправителей (которые в данном случае будут из внешней сети).

Например, Host-A на рисунке 2 может принять адрес Addr-k из внешней области и действовать, как клиент RSA-IP, чтобы обеспечить возможность организации сквозных сессий между Addr-k и Addr-X. Прохождение пакетов через приватную область можно проиллюстрировано ниже.

Первый метод использует трансляцию на маршрутизаторе NAT.

      ======================================================
   Host-A               маршрутизатор NAT        Host-X
   ------               -----------------        ------
   <Внешний заголовок IP с
   src=Addr-A, Dest=Addr-X>,
   вложенный <«сквозной» пакет с
   src=Addr-k, Dest=Addr-X>
   ----------------------------->
                        <Внешний заголовок IP с
                        src=Addr-k, Dest=Addr-X>,
                        вложенный <«сквозной» пакет с
                        src=Addr-k,  Dest=Addr-X>
                        --------------------------->
                             .
                             .
                             .
                                              <Внешний заголовок IP с
                                              src=Addr-X, Dest=Addr-k>,
                                              вложенный <«сквозной» пакет с
                                              src=Addr-X, Dest=Addr-k>
                                     <---------------------------------
                        <Внешний заголовок IP с
                        src=Addr-X, Dest=Addr-A>,
                        вложенный <«сквозной» пакет с 
                        src=Addr-X, Dest=Addr-k>
              <--------------------------------------

Второй метод использует туннель внутри приватной области.

      ======================================================
   Host-A               маршрутизатор NAT        Host-X
   ------               -----------------        ------
   <Внешний заголовок IP с
   src=Addr-A, Dest=Addr-Np>,
   вложенный <«сквозной» пакет с
   src=Addr-k, Dest=Addr-X>
   ----------------------------->
                        <«Сквозной» пакет с 
                        src=Addr-k, Dest=Addr-X>
                        ------------------------------->
                             .
                             .
                             .
                                             <«Сквозной» пакет с 
                                             src=Addr-X, Dest=Addr-k>
                                    <--------------------------------
                        <Внешний заголовок IP с
                        src=Addr-Np, Dest=Addr-A>,
                        вложенный <«сквозной» пакет с
                        src=Addr-X, Dest=Addr-k>
                  <----------------------------------

Могут использоваться и другие варианты.

Ниже приведены характеристики клиента RSA-IP. Набор выполняемых клиентом RSA-IP операций может быть обозначен термином RSA-IP.

  1. Осведомлен об областях, в которых могут размещаться партнерские узлы.

  2. Принимает адрес из внешней области при взаимодействии с хостами из данной области. Адрес может присваиваться статически или выделяться динамическими (протокол будет определен) узлом, способным выделять адреса из внешней области. Распределение адресов из внешней области может координировать сервер RSA-IP.

  3. Маршрутизирует пакеты внешним хостам, используя подходящий сервер RSA-IP. В любом случае клиент RSA-IP будет служить конечной точкой туннеля, инкапсулирующей пакеты для сквозной пересылки и декапсулирующей возвращаемые пакеты.

Сервер RSA-IP представляет собой узел, подключенный к приватной и внешней сети, который обеспечивает маршрутизацию пакетов из внешней области клиентам RSA-IP в приватной области. Сервер RSA-IP можно описать следующими характеристиками.

  1. Может обеспечивать статическое или динамическое выделение адресов из внешней области клиентам RSA-IP.

  2. Должен быть маршрутизатором, подключенным к приватной и внешней области адресов.

  3. Должен обеспечивать механизм маршрутизации пакетов из внешней области внутри приватной области. Описаны два варианта такой маршрутизации.

    В первом варианте сервер RSA-IP должен быть устройством NAT с прозрачной маршрутизацией по внешним заголовкам. В этой модели внешний партнер должен быть конечной точкой туннеля.

    Во второй модели сервером RSA-IP может служить любой маршрутизатор (независимо от NAT), который может быть конечной точкой туннеля к клиенту RSA-IP. Маршрутизатор будет детуннелировать сквозные пакеты, идущие наружу от клиентов RSA-IP, и пересылать их внешним хостам. На пути возврата маршрутизатор будет находить туннель с клиентом RSA-IP по адресу получателя в сквозном пакете и инкапсулировать пакеты для пересылки клиенту RSA-IP.

Клиенты RSA-IP могут применять любые методы IPsec (а именно, транспортный или туннельный режим с поддержкой аутентификации и шифрования на основе заголовков AH и ESP во вложенных пакетах). Для инкапсуляции между клиентом RSA-IP и сервером RSA-IP или внешним хостом могут применяться любые методы туннелирования. Например, инкапсуляция в туннельном режиме IPsec является корректным типом инкапсуляции, которая обеспечивает аутентификацию и шифрование IPsec для вложенных сквозных пакетов.

5.2 Специфический для области адрес и порт (RSAP-IP)

RSAP-IP является вариантом RSIP, в котором множество хостов приватной области может использовать один внешний адрес с мультиплексированием по идентификаторам транспортного уровня (номерам портов TCP/UDP, ICMP Query ID).

Клиент RSAP-IP может быть определен по аналогии с клиентом RSA-IP, но при соединении с хостами внешней области он получает не только адрес, но и идентификатор транспортного уровня. В связи с этим коммуникации клиентов RSAP-IP с внешними областями могут быть ограничены сессиями TCP, UDP и ICMP.

Сервер RSAP-IP похож на сервер RSA-IP в том, что он обеспечивает маршрутизацию внешних пакетов, адресованных клиентам RSAP-IP в приватной области. Обычно сервер RSAP-IP будет также присваивать клиентам пары адрес-транспортный идентификатор.

Маршрутизатор NAPT может работать в качестве сервера RSAP-IP, когда внешняя инкапсуляция основана на TCP/UDP и пакеты передаются между клиентом RSAP-IP и внешним партнером. В этой модели внешний партнер должен быть конечной точкой туннеля TCP/UDP. Клиенты RSAP-IP могут использовать любые методы IPsec (а именно, транспортный или туннельный режим с поддержкой аутентификации и шифрования на основе заголовков AH и ESP во вложенных пакетах). Отметим, однако, что туннельный режим IPsec не является подходящим типом инкапсуляции, поскольку маршрутизатор NAPT не может обеспечить прозрачной маршрутизации для протоколов AH и ESP.

В другом варианте пакеты могут туннелироваться между клиентом и сервером RSAP-IP, а сервер будет детуннелировать пакеты от клиентов RSAP-IP и пересылать их внешним хостам. На обратном пути сервер RSAP-IP будет находить туннель с клиентом RSAP-IP по паре (адрес — порт получателя) и инкапсулировать исходный пакет в туннель для пересылки клиенту RSAP-IP. В этом варианте не возникает ограничений на методы туннелирования между клиентом и сервером RSAP-IP. Однако здесь возникают ограничения на сквозное использование защиты на основе IPsec. В транспортном режиме может быть обеспечена аутентификация и защита целостности. Однако конфиденциальность защитить не удастся, поскольку сервер RSAP-IP должен иметь доступ к транспортному идентификатору получателя для определения туннели RSAP-IP. По этой причине через сервер RSAP-IP в этом варианте могут проходить только пакеты TCP, UDP и ICMP в транспортном режиме IPsec с защитой AH и ESP.

В качестве примера предположим, что Host-A на рисунке 2 получает пару (Addr-Nx, TCP port T-Nx) от маршрутизатора NAPT для работы в качестве клиента RSAP-IP с целью организации сквозной сессии TCP с Host-X. Прохождение пакетов через приватную область проиллюстрировано ниже. В первом варианте внешний уровень исходящего от Host-A пакета использует пару (приватный адрес Addr-A, порт отправителя T-Na) для взаимодействия с Host-X. Маршрутизатор NAPT транслирует эту пару в (Addr-Nx, Port T-Nxa). Трансляция не зависит от параметров адресации клиента RSAP-IP, указанных во вложенном пакете.

В первом варианте используется маршрутизатор NAPT для трансляции:

      ======================================================
   Host-A               маршрутизатор NAT        Host-X
   ------               -----------------        ------
   <Внешний пакет TCP/UDP с
   src=Addr-A, Src Port=T-Na, Dest=Addr-X>,
   вложенный <«сквозной» пакет с 
   src=Addr-Nx, Src Port=T-Nx, Dest=Addr-X>
   ----------------------------->
                        <Внешний пакет TCP/UDP с
                        src=Addr-Nx, Src Port=T-Nxa, Dest=Addr-X>,
                        вложенный <«сквозной» пакет с
                        src=Addr-Nx, Src Port=T-Nx, Dest=Addr-X>
                        --------------------------------------->
                             .
                             .
                             .
                                             <Внешний пакет TCP/UDP с
                                             src=Addr-X, Dest=Addr-Nx, Dest Port=T-Nxa>,
                                             вложенный <«сквозной» пакет с
                                             src=Addr-X, Dest=Addr-Nx, Dest Port=T-Nx>
                                     <----------------------------------
                        <Внешний пакет TCP/UDP с
                        src=Addr-X, Dest=Addr-A, Dest Port=T-Na>,
                        вложенный <«сквозной» пакет с
                        src=Addr-X, Dest=Addr-Nx, Dest Port=T-Nx>

Во втором варианте организуется туннель в приватной области:

      ======================================================
   Host-A               маршрутизатор NAT        Host-X
   ------               -----------------        ------
   <Внешний заголовок IP с
   src=Addr-A, Dest=Addr-Np>,
   вложенный <«сквозной» пакет с
   src=Addr-Nx, Src Port=T-Nx, Dest=Addr-X>
   ----------------------------->
                        <«сквозной» пакет с
                        src=Addr-Nx, Src Port=T-Nx, Dest=Addr-X>
                        -------------------------------->
                             .
                             .
                             .
                                             <«сквозной» пакет с
                                             src=Addr-X, Dest=Addr-Nx, Dest Port=T-Nx>
                                   <----------------------------------
                        <Внешний заголовок IP с
                        src=Addr-Np, Dest=Addr-A>,
                        вложенный <«сквозной» пакет с
                        src=Addr-X, Dest=Addr-Nx, Dest Port=T-Nx>
                <----------------------------------

6.0. Приватные сети и туннели

Рассмотрим ситуацию с подключением приватной сети к внешнему миру через туннель. В этом случае инкапсулированный в туннель трафик может включать транслированные пакеты в зависимости от параметров соединяемых туннелем областей адресации.

Ниже рассмотрены использования туннелей (a) с трансляцией адресов и (b) без таковой.

6.1. Туннелирование транслированных пакетов

Все рассмотренные выше варианты трансляции адресов могут применяться как для физических каналов, так и для туннелей или VPN15.

Например, приватная сеть, подключенная к деловому партнеру через облако VPN, может применять традиционную NAT для обмена информацией с партнером. При пересечении адресных пространств в сетях партнеров можно воспользоваться Twice NAT. Устройство NAT может быть установлено как на одной стороне туннеля, так и на обоих его концах. Во всех случаях трафик через VPN может шифроваться для обеспечения его защиты в сети VPN. Для сквозной защиты трафика потребуется использование в приватной сети доверенного устройства NAT.

6.2. Приватные сети, сегментированные магистралями

Во многих случаях приватная сеть (например, сеть компании) территориально распределена и использует публичные сетевые магистрали для связи между разнесенными фрагментами сети. В таких случаях трансляция адресов нежелательна поскольку через магистрали могут взаимодействовать многочисленные хосты (это потребует поддержки очень больших таблиц состояний), а также по причине того, что многие приложения настраиваются на работу с конкретными адресами без использования серверов имен. Такие сети будем называть «сегментированными магистралями приватными сетями».

Сегментированным магистралями оконечным сетям следует вести себя так, как будто они не сегментированы. Т. е., маршрутизаторам в каждом сегменте следует поддерживать маршруты к адресным блокам всех сегментов. Маршруты к этим адресам не будут, естественно, поддерживаться (публичными) магистралями. Следовательно, граничным маршрутизаторам следует поддерживать туннели (с помощью VPN) через магистрали, используя инкапсуляцию. Для решения этой задачи каждому устройству NAT будет нужен внешний адрес, через который будут создаваться туннели.

Когда NAT-устройство x в оконечном сегменте X желает доставить пакет в оконечный сегмент Y, оно будет инкапсулировать пакет с указанием во внешнем заголовке глобального IP-адреса NAT-устройства y. Когда NAT-устройство y получит пакет со своим адресом во внешнем заголовке, оно будет декапсулировать пакет и пересылать его адресату в своей локальной сети. Отметим, что в этом случае трансляция адресов не используется и пакеты приватной сети просто туннелируются через магистраль.

7.0. Рабочие характеристики NAT

Устройства NAT не осведомлены о приложениях, поскольку трансляции ограничены заголовками IP/TCP/UDP/ICMP и сообщениями ICMP об ошибках. Устройства NAT не меняют данных в пакетах, поскольку содержимое полей данных зависит от приложений.

Устройства NAT (не включая ALG) не проверяют и не меняют данные транспортного уровня. По этой причине во многих случаях устройства NAT прозрачны для приложений. Однако существуют две области, в которых использование устройств NAT может создавать сложности: 1) данные приложений включают адреса IP и 2) требуется сквозное обеспечение защиты. Отметим, что могут быть и другие задачи, где трансляция создает проблемы.

Методы защиты на прикладных уровнях, не использующие адресов IP и не зависящие от них, будут корректно работать через NAT (например, TLS, SSL и ssh). Напротив, методы защиты на транспортном уровне (например, транспортный режим IPSec или TCP MD5 Signature Option RFC 2385 [17]) не будут работать при трансляции адресов.

В транспортном режиме IPSec контроль целостности для AH и ESP целиком включает поле данных (payload) пакета. Если данные относятся к протоколу TCP или UDP, контроль целостности учитывает и поле контрольной суммы TCP/UDP. Когда устройство NAT меняет адрес, контрольная сумма с учетом нового адреса становится иной. Обычно NAT обновляет и поле контрольной суммы, но этого сделать нельзя при использовании AH или ESP. Следовательно, получатели будут отбрасывать пакеты по результатам проверки целостности IPSec (если устройство NAT изменяет контрольную сумму) или по причине некорректности контрольной суммы (если NAT ее не меняет).

Отметим, что IPsec в туннельном режиме ESP можно применять, пока на содержимое вложенных пакетов не оказывает влияния трансляция внешнего заголовка IP. Хотя этот метод не работает с традиционной NAT (где хосты просто не знают о наличии NAT), он применим к трансляции Realm-Specific IP, описанной в параграфе 5.0.

Отметим также сквозная аутентификация и защита конфиденциальности в транспортном режиме на основе ESP может использоваться для таких пакетов, как ICMP, где содержимое поля данных IP не меняется в результате трансляции внешнего заголовка IP.

Устройства NAT также нарушают фундаментальные допущения инфраструктур распределения открытых ключей типа Secure DNS RFC 2535 [18] и сертификатов X.509 с подписанными открытыми ключами. В случае Secure DNS каждый набор DNS RRset подписывается ключом зоны. Кроме того, аутентичность конкретного ключа проверяется по цепочке доверия до корня DNS. Когда DNS-ALG меняет адреса (например, в случае Twice-NAT), проверка подписи завершается отказом.

Будет интересно отметить, что IKE (протокол согласования сеансовых ключей) представляет собой основанный на UDP протокол сеансового уровня и не защищен с помощью IPsec. Защищена лишь часть данных IKE. По этой причине сессии IKE могут проходить через NAT, пока данные IKE не включают адресов или транспортных идентификаторов, специфичных для одной области и не известных другой. С учетом того, что IKE используется для организации защищенных связей IPSec и в настоящее время не известно способов организации работы IPSec через NAT, следует вести работу в направлении использования IKE через NAT.

Одно из популярных Internet-приложений FTP не работает с NAT, как описано выше. В следующем параграфе описана поддержка FTP в устройствах NAT. FTP ALG является встроенной частью большинства реализаций NAT. Некоторые разработчики могут включать дополнительные ALG для поддержки работы других приложений через NAT.

7.1. Поддержка FTP

Команда PORT и отклик на команду PASV в данных управления сеансом FTP идентифицируют IP-адрес и номер порта TCP, которые должны использоваться для передачи данных в этой сессии. Аргументами команды PORT и отклика на команду PASV являются адрес IP и номер порта TCP в формате ASCII. Шлюз FTP ALG должен контролировать и обновлять данные управления сеансом FTP, чтобы содержащаяся в них информация относилась к нужным оконечным узлам. Шлюз ALG должен также обновлять NAT с учетом пар адрес-порт и направления сессии, чтобы устройство NAT могло поддерживать состояние для сессий передачи данных FTP.

Поскольку адреса и номера портов TCP указываются в формате ASCII, изменение этих параметров может приводить к изменению размера пакетов. Например, последовательность 10,18,177,42,64,87 имеет размер 18 символов ASCII, а 193,45,228,137,64,87 — 20 символов. Если размер пакета сохраняется, требуется лишь заново рассчитать контрольную сумму TCP. Однако при изменении размера пакета требуется менять порядковые номера TCP с учетом изменения размера управляющих данных FTP. В устройствах ALG могут применяться специальные таблицы для корректировки порядковых номеров и номеров подтверждений TCP. Корректировка порядковых номеров и номеров подтверждений должна выполняться и для всех последующих пакетов данного соединения.

8.0. Ограничения NAT

8.1. Приложения с адресами IP в поле данных

Не все приложения легко можно адаптировать для работы через устройства NAT. В частности, сложности возникают с приложениями, которые передают адрес IP (и номер порта в случае NAPT) в поле данных пакетов. Для таких приложений требуется использовать специализированные шлюзы прикладного уровня (ALG16). Шлюзы ALG могут предоставлять адреса (и номера портов), подобно NAT, а также выполнять специфическую трансляцию, нужную для работы приложения. Комбинация функций NAT и ALG не позволяет организовать сквозную защиту с помощью IPsec. Однако можно воспользоваться туннельным режимом IPsec с маршрутизатором NAT в качестве окончания туннеля.

Приложения SNMP17 относятся к числу передающих адреса в поле данных пакетов. Маршрутизаторы NAT не будут транслировать такие адреса IP в пакетах SNMP. Зачастую для SNMP применяются специализированные ALG (на маршрутизаторе NAT) для трансляции SNMP MIB18 в приватной сети.

8.2. Приложения со связанными сессиями для управления и данных

Устройства NAT работают в предположении независимости каждой сессии. Параметры сессии (направление, адреса и транспортные идентификаторы отравителя и получателя, сеансовый протокол) определяются независимо при организации каждой сессии.

Однако существуют приложения (например, H.323), которые используют одну или несколько сессий для управления характеристиками сеанса обмена данными. Для таких приложений нужны специализированные шлюзы ALG, способные анализировать и интерпретировать данные сессии. Такая интерпретация будет помогать NAT в обработке связанных сессий передачи данных.

8.3. Отладка

NAT повышает вероятность ошибочной адресации. Например, тот или иной локальный адрес может оказаться связанным с разными внешними адресами в разное время, а один внешний адрес — с разными внутренними. В результате рассмотрение трафика на основе лишь глобальных адресов и номеров портов может приводить к путанице и ошибочным трактовкам.

Если хост в том или ином смысле некорректно ведет себя в сети Internet (например, попытка атаки другого хоста или рассылка спама), идентифицировать такой хост сложнее, если он скрыт за маршрутизатором NAT.

8.4. Трансляция фрагментированных пакетов управления FTP

Трансляция фрагментированных пакетов управления FTP, содержащих команду PORT или отклик на команду PASV, достаточно сложна. Ясно, что в этом (патологическом) случае маршрутизатору NAT может потребоваться сборка фрагментов до трансляции и пересылки пакета.

Другая ситуация возникает когда каждый символ пакета с командой PORT или откликом на команду PASV передается в отдельной дейтаграмме (без фрагментирования). В этом случае NAT будет просто пропускать пакеты без трансляции данных TCP. Если для приложения такая трансляция нужна, неизбежно возникнет отказ в его работе. В редких случаях приложение будет работать, если содержимое данных корректно в обеих адресных областях. Например, сеанс FTP с хоста приватной сети будет работать при прохождении после традиционной или двухсторонней трансляции NAT, пока у управляющей сессии FTP используется команда PASV для организации сессий передачи данных. Причина этого заключается в том, что адрес и номер порта, заданные сервером FTP в отклике на команду PASV (переданном во множестве пакетов без фрагментирования), будут корректны для приватного хоста без их трансляции. Устройство NAT будет просто рассматривать сессию передачи данных (с того же приватного хоста), как независимый сеанс TCP.

8.5. Вычислительные ресурсы

NAT требует достаточно больших вычислительных ресурсов (даже при использовании эффективного алгоритма пересчета контрольных сумм), поскольку устройство NAT должно просматривать и изменять все пакеты. В результате производительность маршрутизатора может заметно снижаться. Однако, пока производительность NAT выше скорости обработки пакетов на линейных интерфейсах, проблем возникать не должно.

9.0. Вопросы безопасности

Многие люди рассматривают традиционные маршрутизаторы NAT, как односторонние (сеансовые) фильтры трафика, ограничивающего доступ внешних хостов к ресурсам внутренней сети. В дополнение к этому динамически выделяющий адреса маршрутизатор NAT осложняет организацию атак на любой конкретный хост в домене NAT. Маршрутизаторы NAT могут использоваться совместно с межсетевыми экранами для фильтрации нежелательного трафика.

Если устройства NAT и ALG не находятся в доверенной зоне, это вызывает существенные проблемы безопасности, поскольку ALG могут просматривать данные из пользовательского трафика. Данные сеансового уровня можно зашифровать, если эти данные не содержат адресов IP и транспортных идентификаторов, которые требуют трансляции. За исключением случая RSIP, сквозная защита на уровне IP с помощью IPsec не может применяться при наличии NAT. Одной из конечных точек должно быть устройство NAT. В параграфе 7.0 было показано, почему сквозная защита IPsec не может быть реализована при наличии в пути устройств NAT.

Совместное использование NAT, ALG и межсетевых экранов будет обеспечивать прозрачную среду для приватного сетевого домена. За исключением случая RSIP, сквозная защита на сетевом уровне с помощью IPsec не может быть обеспечена для хостов приватной сети (работа RSIP описана в параграфе 5.0). В остальных случаях для сквозной защиты IPsec на пути передачи не должно быть устройств NAT. Если устройства NAT находятся в доверенной зоне, можно реализовать туннельный режим IPsec с использованием в качестве конечной точки туннеля устройства NAT (или комбинации NAT, ALG и межсетевого экрана).

Устройства NAT при совместном использовании с ALG будут предотвращать попадание из сети Internet дейтаграмм с приватными адресами в заголовках или полях данных. Пакеты приложений, не соответствующие этим требованиям можно отбрасывать с помощью фильтров на межсетевом экране. Поэтому зачастую функции NAT, ALG и межсетевого экрана используются совместно для защиты на периметре приватной сети. Шлюзы NAT могут служить конечными точками туннелей для организации защищенного транспорта (VPN) пакетов через внешние сети.

Ниже перечислены некоторые проблемы безопасности, связанные с маршрутизаторами NAT.

  1. Сессии UDP не защищены по своей природе. Отклики на дейтаграммы могут приходить с адреса, отличающегося от указанного отправителем в исходном пакете [4]. В результате входящие пакеты UDP могут лишь частично соответствовать исходящим сессиям традиционной трансляции NAT (адрес и порт получателя будут соответствовать, адрес и порт отправителя — не будут). В таких случаях могут возникать проблемы безопасности, если устройство NAT будет принимать пакеты с частичным соответствием. Проблемы безопасности UDP присущи и межсетевым экранам.

    Традиционные устройства NAT не отслеживают дейтаграммы по сессиям, а взамен объединяют множество сессий UDP с одинаковой адресной привязкой в одну унифицированную сессию, что дополнительно снижает уровень безопасности. Это связано с тем, что проверка соответствия пакетов сессии ограничена лишь совпадением адреса получателя во входящих пакетах UDP.

  2. Групповые адреса (для UDP) создают другую проблему безопасности для традиционных маршрутизаторов NAT. Снова подчеркнем, что такая же проблема присуща межсетевым экранам.

    Предположим, что хост приватной сети инициирует групповую сессию. Отправленные этим хостом дейтаграммы могут вызвать отклики множества внешних хостов. Традиционные маршрутизаторы NAT, использующие одно состояние для групповой сессии, не могут определить, относится входящий пакет UDP к существующей групповой сессии UDP или является частью атаки извне.

  3. Устройства NAT могут быть целью атак.

    Поскольку устройства NAT являются хостами Internet, они могут подвергаться различным атакам, включая лавинную передачу пакетов SYN или ping. Устройства NAT должны поддерживать те или иные методы защиты себя, как это делается на серверах Internet.

Литература

[1] Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot,G. and E. Lear, «Address Allocation for Private Internets», BCP 5, RFC 1918, February 1996.

[2] Reynolds, J. and J. Postel, «Assigned Numbers», STD 2, RFC 170019, October, 1994.

[3] Braden, R., «Requirements for Internet Hosts — Communication Layers», STD 3, RFC 1122, October 1989.

[4] Braden, R., «Requirements for Internet Hosts — Application and Support», STD 3, RFC 1123, October 1989.

[5] Baker, F., «Requirements for IP Version 4 Routers», RFC 1812, June 1995.

[6] Postel, J. and J. Reynolds, «File Transfer Protocol (FTP)», STD 9, RFC 959, October 1985.

[7] Postel, J., «Transmission Control Protocol (TCP) Specification», STD 7, RFC 793, September 1981.

[8] Postel, J., «Internet Control Message Protocol Specification» STD 5, RFC 792, September 1981.

[9] Postel, J., «User Datagram Protocol (UDP)», STD 6, RFC 768, August 1980.

[10] Mogul, J. and J. Postel, «Internet Standard Subnetting Procedure», STD 5, RFC 950, August 1985.

[11] Carpenter, B., Crowcroft, J. and Y. Rekhter, «IPv4 Address Behavior Today», RFC 2101, February 1997.

[12] Kent, S. and R. Atkinson, «Security Architecture for the Internet Protocol», RFC 2401, November 1998.

[13] Kent, S. and R. Atkinson, «IP Encapsulating Security Payload (ESP)», RFC 2406, November 1998.

[14] Kent, S. and R. Atkinson, «IP Authentication Header», RFC 2402, November 1998.

[15] Harkins, D. and D. Carrel, «The Internet Key Exchange (IKE)», RFC 2409, November 1998.

[16] Piper, D., «The Internet IP Security Domain of Interpretation for ISAKMP», RFC 2407, November 1998.

[17] Heffernan, A., «Protection of BGP Sessions via the TCP MD5 Signature Option», RFC 2385, August 1998.

[18] Eastlake, D., «Domain Name System Security Extensions», RFC 2535, March 1999.

Адреса авторов

Pyda Srisuresh

Lucent Technologies

4464 Willow Road

Pleasanton, CA 94588-8519

U.S.A.

Phone: (925) 737-2153

Fax: (925) 737-2110

EMail: srisuresh@lucent.com

Matt Holdrege

Lucent Technologies

1701 Harbor Bay Parkway

Alameda, CA 94502

Phone: (510) 769-6001

EMail: holdrege@lucent.com

Перевод на русский язык

Николай Малых

nmalykh@protokols.ru

Полное заявление авторских прав

Copyright (C) The Internet Society (1999). Все права защищены.

Этот документ и его переводы могут копироваться и предоставляться другим лицам, а производные работы, комментирующие или иначе разъясняющие документ или помогающие в его реализации, могут подготавливаться, копироваться, публиковаться и распространяться целиком или частично без каких-либо ограничений при условии сохранения указанного выше уведомления об авторских правах и этого параграфа в копии или производной работе. Однако сам документ не может быть изменён каким-либо способом, таким как удаление уведомления об авторских правах или ссылок на Internet Society или иные организации Internet, за исключением случаев, когда это необходимо для разработки стандартов Internet (в этом случае нужно следовать процедурам для авторских прав, заданных процессом Internet Standards), а также при переводе документа на другие языки.

Предоставленные выше ограниченные права являются бессрочными и не могут быть отозваны Internet Society или правопреемниками.

Этот документ и содержащаяся в нем информация представлены «как есть» и автор, организация, которую он/она представляет или которая выступает спонсором (если таковой имеется), Internet Society и IETF отказываются от каких-либо гарантий (явных или подразумеваемых), включая (но не ограничиваясь) любые гарантии того, что использование представленной здесь информации не будет нарушать чьих-либо прав, и любые предполагаемые гарантии коммерческого использования или применимости для тех или иных задач.

Подтверждение

Финансирование функций RFC Editor обеспечено Internet Society.

1Network Address Translation — трансляция сетевых адресов.

2Application level gateway.

3В оригинале ошибочно сказано SYN. См. http://www.rfc-editor.org/errata_search.php?eid=400. Прим. перев.

4Maximum Segment Lifetime — максимальное время жизни сегмента.

5Internet Assigned Numbers Authority.

6Не в заголовках. Прим. перев.

7Application Level Gateway.

8Network Address Translation.

9Network Address Port Translation.

10Fully Qualified Domain Name — полное доменное имя.

11Не обеспечивается уникальности адресов. Прим. перев.

12Realm Specific IP.

13Realm Specific Address IP.

14Realm Specific Address and port IP.

15Virtual private network — виртуальная частная сеть.

16Application Level Gateway.

17Simple Nework Management Protocol – простой протокол сетевого управления. Прим. перев.

18Management Information Base – база управляющей информации. Прим. перев.

19В соответствии с RFC 3232 документ Assigned Numbers утратил силу. Данные сейчас доступны по ссылке.

20Документ признан устаревшим и заменен RFC 4301. Прим. перев.

21Документ признан устаревшим и заменен RFC 4303 и RFC 4305. Прим. перев.

22Документ признан устаревшим и заменен RFC 4302 и RFC 4305. Прим. перев.

23Документ признан устаревшим и заменен RFC 4306. Прим. перев.

24Документ признан устаревшим и заменен RFC 4033, RFC4034, RFC4035. Прим. перев.

Рубрика: RFC | Комментарии к записи RFC 2663 IP Network Address Translator (NAT) Terminology and Considerations отключены

RFC 2671 Extension Mechanisms for DNS (EDNS0)

Заменен RFC 6891

Рубрика: RFC | Оставить комментарий

RFC 2672 Non-Terminal DNS Name Redirection

Заменен RFC 6672

Рубрика: RFC | Оставить комментарий