RFC4085 — Встраивание глобально маршрутизируемых интернет-адресов считается вредным

Embedding Globally-Routable Internet Addresses Considered Harmful

Выжимка

RFC 4085 не рекомендует встраивать ссылки на уникальные глобально маршрутизируемые IP-адреса в прошивку и фиксированные конфигурации интернет-узлов. Такая практика создаёт зависимость от центральных служб, мешает балансировке нагрузки и переназначению адресных блоков, а после смены назначения адреса может направлять к нему нежелательный трафик. Документ рекомендует отключать ненужные функции по умолчанию, предоставлять оператору управление функциями, генерирующими трафик, и использовать DNS либо механизмы обнаружения локальных служб. Для примеров и документации следует применять специально зарезервированные адресные блоки, а не уникальные глобально маршрутизируемые адреса. Встроенные адреса также создают риск неумышленного доверия посторонним сторонам после изменения роли адреса.

Полный перевод

Global Routing Operations                                      D. Plonka
Network Working Group                            University of Wisconsin
Request for Comments: 4085                                     June 2005
BCP: 105
Category: Best Current Practice


   Встраивание глобально маршрутизируемых интернет-адресов считается вредным

Статус настоящего меморандума

   Этот документ устанавливает Лучшую современную практику Интернета для
   интернет-сообщества и запрашивает обсуждение и предложения по
   улучшениям. Распространение настоящего меморандума не ограничено.

Уведомление об авторских правах

   Авторское право (C) The Internet Society (2005).

Аннотация

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

Содержание

   1. Введение .........................................................2
   2. Проблемы .........................................................2
   3. Рекомендации .....................................................4
      3.1. Отключение неиспользуемых возможностей ......................4
      3.2. Предоставление пользовательского интерфейса для IP-возможностей ...4
      3.3. Использование доменных имён как идентификаторов служб .......4
      3.4. Использование специализированных зарезервированных IP-адресов, когда они доступны ..5
      3.5. Обнаружение и использование локальных служб ..................6
      3.6. Недопущение упоминания IP-адресов служб ......................6
   4. Вопросы безопасности .............................................6
   5. Заключение .......................................................7
   6. Благодарности ....................................................7
   7. Ссылки ...........................................................7
   Приложение A. Предыстория ...........................................9






Plonka                   Best Current Practice                  [Page 1]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


1. Введение

   Некоторые производители бытовой электроники и сетевого оборудования,
   к сожалению, решили встраивать или «жёстко кодировать» глобально
   маршрутизируемые адреса Internet Protocol в микропрограммное обеспечение
   своих продуктов. Эти встроенные IP-адреса обычно являются отдельными
   IP-адресами серверов или префиксами IP-подсетей. Поэтому они иногда
   используются как идентификаторы служб, на которые направляются
   незапрошенные запросы, или как идентификаторы подсетей, задающие
   множества интернет-адресов, которые данный продукт каким-либо образом
   обрабатывает специально.

   Одним из недавних примеров было встраивание глобально маршрутизируемого
   IP-адреса сервера Network Time Protocol в микропрограммное обеспечение
   сотен тысяч интернет-хостов, которые в настоящее время эксплуатируются
   по всему миру. Эти хосты преимущественно, но не обязательно, ограничены
   недорогими маршрутизаторами и промежуточными устройствами для личного
   или домашнего использования. В другом случае префиксы IP-адресов,
   которые ранее были зарезервированы Internet Assigned Numbers Authority
   (IANA), были встроены в маршрутизаторный продукт, чтобы он мог
   автоматически отбрасывать пакеты, у которых, по-видимому, недействительные
   исходные IP-адреса.

   Такое «жёсткое кодирование» глобально маршрутизируемых IP-адресов как
   идентификаторов в микропрограммном обеспечении хоста создаёт существенные
   проблемы для функционирования Интернета и управления его адресным
   пространством.

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

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

2. Проблемы

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




Plonka                   Best Current Practice                  [Page 2]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


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

   Надёжность, масштабируемость и производительность многих интернет-служб
   требуют, чтобы совокупность пользователей не обращалась к службе
   непосредственно по её IP-адресу. Вместо этого они обычно полагаются на
   уровень косвенного обращения, предоставляемый Domain Name System, RFC
   2219 [6]. При надлежащем использовании DNS позволяет оператору службы
   переконфигурировать ресурсы для обслуживания и выполнять балансировку
   нагрузки без участия пользователей и без необходимости изменения
   конфигурации в клиентских хостах. Например, один распространённый метод
   балансировки нагрузки использует несколько DNS-записей с одним и тем же
   именем; набор возвращаемых ответов циклически чередуется при
   последовательных запросах. Получив такой ответ на запрос, резолверы
   обычно пробуют ответы по порядку, пока один из них не завершится успехом,
   что позволяет оператору распределять нагрузку пользовательских запросов
   между набором серверов с отдельными IP-адресами, которые, как правило,
   остаются неизвестными пользователю.

   Встраивание глобально уникальных IP-адресов обременяет блоки IP-адресов,
   в которых они находятся, уменьшая полезность и мобильность этих блоков
   IP-адресов и увеличивая стоимость эксплуатации. Незапрошенный трафик
   может продолжать доставляться на встроенный адрес ещё долго после того,
   как IP-адрес или блок был переназначен и более не размещает службу, для
   которой предназначался этот трафик. Примерно в 1997 году авторы RFC 2101
   [7] сделали следующее наблюдение:

      Из-за динамического выделения адресов и всё более частой перенумерации
      сетей временная уникальность адресов IPv4 более не гарантируется
      глобально, что ставит под серьёзное сомнение их использование в
      качестве идентификаторов.

   Когда IP-адреса встраиваются в конфигурацию множества интернет-хостов,
   блоки IP-адресов оказываются обременены историей их использования. Это
   может препятствовать возможности Internet Assigned Numbers Authority
   (IANA) и иерархии Internet Registry (IR) полезно перераспределять блоки
   IP-адресов. Аналогично, чтобы облегчить повторное использование IP-адресов,
   RFC 2050 [1] рекомендует поставщикам интернет-услуг (ISPs) рассматривать
   назначения адресов как «займы».

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




Plonka                   Best Current Practice                  [Page 3]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


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

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

   Следующие рекомендации представлены как лучшая практика на сегодняшний
   день.

3.1. Отключение неиспользуемых возможностей

   Поставщикам следует по умолчанию отключать ненужные возможности
   в своих продуктах. Это особенно верно для возможностей, генерирующих
   незапрошенный интернет-трафик. Таким образом, эти хосты будут
   консервативны в отношении создаваемого ими незапрошенного
   интернет-трафика. Например, одним из наиболее распространённых
   применений встроенных IP-адресов было жёсткое кодирование в продуктах
   адресов широко известных общедоступных серверов Simple Network Time
   Protocol (SNTP RFC 2030 [8]). Однако только небольшая доля пользователей
   получит пользу от того, что эти продукты имеют некоторое представление о
   текущих дате и времени.

3.2. Предоставление пользовательского интерфейса для IP-возможностей

   Поставщикам следует предоставлять интерфейс оператора для каждой
   возможности, генерирующей незапрошенный интернет-трафик. Яркий пример
   таков: резолверу Domain Name System следует иметь интерфейс, позволяющий
   оператору либо явно задать выбор серверов, либо включить стандартный
   автоматизированный протокол конфигурирования, такой как DHCP,
   определённый RFC 2132 [9]. Эти возможности следует изначально отключать
   в интерфейсе оператора, а последующее включение этих возможностей следует
   сопровождать предупреждением оператора о существовании этой возможности.
   Это повысит вероятность того, что владелец или оператор продукта сможет
   участвовать в определении и смягчении проблем при их возникновении.

   RFC 2606 [2] определяет зарезервированные IANA домены «example.com»,
   «example.net» и «example.org» для использования в примерах конфигураций
   и документации. Они являются кандидатами для использования в документации
   пользовательского интерфейса.

3.3. Использование доменных имён как идентификаторов служб

   Интернет-хостам следует использовать Domain Name System для
   определения IP-адресов, связанных с необходимыми им интернет-службами.



Plonka                   Best Current Practice                  [Page 4]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


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

   Например, поставщик с именем «Example, Inc.» и доменом «example.com» мог
   бы настроить свой продукт для поиска своего SNTP-сервера по имени
   «sntp-server.config.example.com» или даже по имени, специфичному для
   продукта и версии, такому как «sntp-
   server.v1.widget.config.example.com». Здесь пространство имён
   «config.example.com» выделено для конфигурации продукта этого поставщика,
   при этом поддомены вводятся по мере необходимости. Такие специализированные
   доменные имена позволяют осуществлять постоянное обслуживание и
   переконфигурирование служб для их клиентских хостов и могут содействовать
   непрерывному измерению использования службы в течение срока службы
   продукта.

   Альтернативой изобретению специфичных для поставщика соглашений об
   именовании доменов для идентификаторов служб продукта является
   использование записей ресурсов (RR) SRV, определённых RFC 2782 [10].
   Записи SRV являются универсальным типом RR, использующим специфичный для
   службы префикс в сочетании с базовым доменным именем. Например,
   поддерживающий SRV клиент SNTP мог бы обнаружить предложенный Example,
   Inc. сервер NTP, выполнив запрос типа SRV для поиска «_ntp._udp.example.com».

   Однако обратите внимание, что простое жёсткое кодирование идентификаторов
   служб в виде DNS-имён вместо IP-адресов не является панацеей. Записи в
   пространстве доменных имён также эфемерны и могут менять владельцев по
   различным причинам, включая приобретения и судебные разбирательства.
   Поэтому разработчикам и поставщикам следует исследовать потенциальные
   режимы отказа продукта, возникающие вследствие утраты административного
   контроля над данным доменом по какой бы то ни было причине.

3.4. Использование специализированных зарезервированных IP-адресов, когда они доступны

   В конфигурациях по умолчанию, документации и примерах конфигураций для
   интернет-хостов следует использовать интернет-адреса, находящиеся
   в специальных блоках, зарезервированных для этих целей, а не уникальные,
   глобально маршрутизируемые IP-адреса. Для IPv4 RFC 3330 [3] указывает,
   что блок 192.0.2.0/24 назначен для использования в документации и
   примерах кода. Префикс глобального одноадресного IPv6-адреса
   2001:DB8::/32 аналогично зарезервирован для целей документации RFC 3849
   [4]. Частные интернет-адреса, определённые RFC 1918 [5], не следует
   использовать для таких целей.




Plonka                   Best Current Practice                  [Page 5]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


3.5. Обнаружение и использование локальных служб

   Поставщикам служб и операторам корпоративных сетей следует объявлять
   идентичности подходящих локальных служб, таких как NTP. Очень часто эти
   службы существуют, но отсутствуют объявление и автоматизированное
   конфигурирование их использования. Например, протокол DHCP, определённый
   RFC 2132 [9], позволяет настроить сервер для ответа на клиентские запросы
   об идентификаторах служб. Когда локальные службы, включая NTP, доступны,
   но не повсеместно объявляются с использованием таких распространённых
   протоколов, разработчики с большей вероятностью будут развёртывать
   специальные механизмы инициализации, которые без необходимости опираются
   на центральные службы.

3.6. Недопущение упоминания IP-адресов служб
Операторам, предоставляющим публичные службы в глобальном Интернете, таким как участники сообщества NTP, следует считать явное объявление IP-адресов публичных служб устаревшим. Эти адреса являются кратковременными. Поэтому их широкое цитирование в индексах публичных служб препятствует возможности переконфигурировать службу, когда это необходимо для реагирования на непредвиденный рост трафика и вышеупомянутые проблемы.

4.  Соображения безопасности

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

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





Plonka                   Лучшая современная практика            [Страница 6]

RFC 4085       Встраивание IP-адресов считается вредным       Июнь 2005


5.  Заключение

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

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

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

   Автор благодарит следующих рецензентов за их вклад в этот документ: Paul
   Barford, Geoff Huston, David Meyer, Mike O'Connor, Michael Patton, Tom
   Petch и Pekka Savola. Harald Alvestrand, Spencer Dawkins, Ted Hardie,
   David Kessens и Thomas Narten предоставили ценные отзывы в ходе
   рассмотрения AD и IESG.

7.  Ссылки

7.1.  Нормативные ссылки

   [1]  Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and J.
        Postel, "Internet Registry IP Allocation Guidelines", BCP 12,
        RFC 2050, November 1996.

   [2]  Eastlake 3rd, D. and A. Panitz, "Reserved Top Level DNS Names",
        BCP 32, RFC 2606, June 1999.

   [3]  IANA, "Special-Use IPv4 Addresses", RFC 3330, September 2002.

   [4]  Huston, G., Lord, A., and P. Smith, "IPv6 Address Prefix
        Reserved for Documentation", RFC 3849, July 2004.

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

7.2.  Информационные ссылки

   [6]  Hamilton, M. and R. Wright, "Use of DNS Aliases for Network
        Services", BCP 17, RFC 2219, October 1997.



Plonka                   Лучшая современная практика            [Страница 7]

RFC 4085       Встраивание IP-адресов считается вредным       Июнь 2005


   [7]  Carpenter, B., Crowcroft, J., and Y. Rekhter, "IPv4 Address
        Behaviour Today", RFC 2101, February 1997.

   [8]  Mills, D., "Simple Network Time Protocol (SNTP) Version 4 for
        IPv4, IPv6 and OSI", RFC 2030, October 1996.

   [9]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
        Extensions", RFC 2132, March 1997.

   [10] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
        specifying the location of services (DNS SRV)", RFC 2782,
        February 2000.

   [11] Plonka, D., "Flawed Routers Flood University of Wisconsin
        Internet Time Server", August 2003.
        http://www.cs.wisc.edu/~plonka/netgear-sntp/





























Plonka                   Лучшая современная практика            [Страница 8]

RFC 4085       Встраивание IP-адресов считается вредным       Июнь 2005


Приложение A.  Предыстория

   В мае 2003 года Университет Висконсина обнаружил, что производитель
   сетевых продуктов NetGear изготовил и поставил более 700 000 маршрутизаторов
   с микропрограммным обеспечением, содержащим жёстко закодированную ссылку на
   IP-адрес одного из NTP-серверов Университета: 128.105.39.11, который также
   был известен как "ntp1.cs.wisc.edu", публичный NTP-сервер уровня stratum-2.

   Из-за этой встроенной фиксированной конфигурации и не связанной с ней ошибки
   в клиенте SNTP затронутые продукты иногда демонстрируют режим отказа, при
   котором каждый дефектный маршрутизатор создаёт один запрос в секунду,
   направленный на IP-адрес 128.105.39.11, и, следовательно, создаёт
   крупномасштабный поток интернет-трафика с сотен тысяч адресов источников,
   направленный в сеть Университета, что приводит к значительным проблемам
   эксплуатации.

   Эти дефектные маршрутизаторы широко развёрнуты по всему глобальному
   Интернету и, вероятно, будут использоваться ещё многие годы. Поэтому
   Университет Висконсина при содействии NetGear создаст новую службу времени
   anycast, предназначенную для смягчения ущерба, вызываемого неправильной
   работой этих дефектных маршрутизаторов.

   Технический отчёт с подробностями этой ситуации доступен во Всемирной
   паутине: Flawed Routers Flood University of Wisconsin Internet Time Server
   [11].

Адрес автора

   David Plonka
   University of Wisconsin - Madison

   EMail: plonka@doit.wisc.edu
   URI:   http://net.doit.wisc.edu/~plonka/














Plonka                   Лучшая современная практика            [Страница 9]

RFC 4085       Встраивание IP-адресов считается вредным       Июнь 2005


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

   Copyright (C) The Internet Society (2005).

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

   Этот документ и содержащаяся в нём информация предоставляются на условиях
   «КАК ЕСТЬ», И УЧАСТНИК, ОРГАНИЗАЦИЯ, КОТОРУЮ ОН/ОНА ПРЕДСТАВЛЯЕТ ИЛИ КОТОРОЙ
   СПОНСИРУЕТСЯ (ЕСЛИ ТАКОВАЯ ИМЕЕТСЯ), INTERNET SOCIETY И INTERNET ENGINEERING
   TASK FORCE ОТКАЗЫВАЮТСЯ ОТ ВСЕХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ,
   СРЕДИ ПРОЧЕГО, ЛЮБУЮ ГАРАНТИЮ ТОГО, ЧТО ИСПОЛЬЗОВАНИЕ ПРИВЕДЁННОЙ ЗДЕСЬ
   ИНФОРМАЦИИ НЕ НАРУШАЕТ НИКАКИХ ПРАВ, ИЛИ ЛЮБЫЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ
   ТОВАРНОЙ ПРИГОДНОСТИ ИЛИ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ.

Интеллектуальная собственность

   IETF не занимает позиции относительно действительности или объёма каких-либо
   прав интеллектуальной собственности или иных прав, которые могут заявляться
   как относящиеся к реализации или использованию технологии, описанной в этом
   документе, либо относительно того, в какой степени какая-либо лицензия по
   таким правам может быть или не быть доступна; также IETF не заявляет, что
   предпринимала какие-либо независимые усилия по выявлению таких прав.
   Информация о процедурах, относящихся к правам в документах RFC, приведена в
   BCP 78 и BCP 79.

   Копии раскрытий IPR, сделанных Секретариату IETF, и любых заверений о
   лицензиях, которые будут предоставлены, либо результат попытки получить
   общую лицензию или разрешение на использование таких прав собственности
   реализаторами или пользователями этой спецификации можно получить из
   интерактивного репозитория IPR IETF по адресу
   http://www.ietf.org/ipr.

   IETF предлагает любой заинтересованной стороне довести до её сведения любые
   авторские права, патенты или заявки на патенты либо иные права собственности,
   которые могут охватывать технологию, которая может потребоваться для
   реализации этого стандарта. Просим направлять эту информацию в IETF по адресу
   ietf-ipr@ietf.org.

Благодарность

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





Plonka                   Лучшая современная практика           [Страница 10]

Оригинал (EN)





Global Routing Operations                                      D. Plonka
Network Working Group                            University of Wisconsin
Request for Comments: 4085                                     June 2005
BCP: 105
Category: Best Current Practice


   Embedding Globally-Routable Internet Addresses Considered Harmful

Status of This Memo

   This document specifies an Internet Best Current Practices for the
   Internet Community, and requests discussion and suggestions for
   improvements.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document discourages the practice of embedding references to
   unique, globally-routable IP addresses in Internet hosts, describes
   some of the resulting problems, and considers selected alternatives.
   This document is intended to clarify best current practices in this
   regard.

Table of Contents

   1. Introduction ....................................................2
   2. Problems ........................................................2
   3. Recommendations .................................................4
      3.1. Disable Unused Features ....................................4
      3.2. Provide User Interface for IP Features .....................4
      3.3. Use Domain Names as Service Identifiers ....................4
      3.4. Use Special-Purpose, Reserved IP Addresses When Available ..5
      3.5. Discover and Utilize Local Services ........................6
      3.6. Avoid Mentioning the IP Addresses of Services ..............6
   4. Security Considerations .........................................6
   5. Conclusion ......................................................7
   6. Acknowledgements ................................................7
   7. References ......................................................7
   Appendix A.  Background ............................................9








Plonka                   Best Current Practice                  [Page 1]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


1.  Introduction

   Some vendors of consumer electronics and network gear have
   unfortunately chosen to embed, or "hard-code", globally-routable
   Internet Protocol addresses within their products' firmware.  These
   embedded IP addresses are typically individual server IP addresses or
   IP subnet prefixes.  Thus, they are sometimes used as service
   identifiers, to which unsolicted requests are directed, or as subnet
   identifiers, specifying sets of Internet addresses that the given
   product somehow treats specially.

   One recent example was the embedding of the globally-routable IP
   address of a Network Time Protocol server in the firmware of hundreds
   of thousands of Internet hosts that are now in operation worldwide.
   The hosts are primarily, but are not necessarily, limited to low-cost
   routers and middleboxes for personal or residential use.  In another
   case, IP address prefixes that had once been reserved by the Internet
   Assigned Numbers Authority (IANA) were embedded in a router product
   so that it can automatically discard packets that appear to have
   invalid source IP addresses.

   Such "hard-coding" of globally-routable IP addresses as identifiers
   within the host's firmware presents significant problems to the
   operation of the Internet and to the management of its address space.

   Ostensibly, this practice arose as an attempt to simplify IP host
   configuration by pre-loading hosts with IP addresses.  Products that
   rely on such embedded IP addresses initially may appear to be
   convenient to the product's designer and to its operator or user, but
   this dubious benefit comes at the expense of others in the Internet
   community.

   This document denounces the practice of embedding references to
   unique, globally-routable IP addresses in Internet hosts, describes
   some of the resulting problems, and considers selected alternatives.
   It also reminds the Internet community of the ephemeral nature of
   unique, globally-routable IP addresses; the assignment and use of IP
   addresses as identifiers is temporary and therefore should not be
   used in fixed configurations.

2.  Problems

   The embedding of IP addresses in products has caused an increasing
   number of Internet hosts to rely on a single central Internet
   service.  This can result in a service outage when the aggregate
   workload overwhelms that service.  When fixed addresses are embedded





Plonka                   Best Current Practice                  [Page 2]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


   in an ever-increasing number of client IP hosts, this practice runs
   directly counter to the design intent of hierarchically deployed
   services that would otherwise be robust solutions.

   The reliability, scalability, and performance of many Internet
   services require that the pool of users not access a service using
   its IP address directly.  Instead, they typically rely on a level of
   indirection provided by the Domain Name System, RFC 2219 [6].  When
   appropriately utilized, the DNS permits the service operator to
   reconfigure the resources for maintenance and to perform load
   balancing, without the participation of the users and without a
   requirement for configuration changes in the client hosts.  For
   instance, one common load-balancing technique employs multiple DNS
   records with the same name; the set of answers that is returned is
   rotated in a round-robin fashion in successive queries.  Upon
   receiving such a response to a query, resolvers typically will try
   the answers in order, until one succeeds, thus enabling the operator
   to distribute the user request load across a set of servers with
   discrete IP addresses that generally remain unknown to the user.

   Embedding globally-unique IP addresses taints the IP address blocks
   in which they reside, lessening the usefulness and mobility of those
   IP address blocks and increasing the cost of operation.  Unsolicited
   traffic may continue to be delivered to the embedded address well
   after the IP address or block has been reassigned and no longer hosts
   the service for which that traffic was intended.  Circa 1997, the
   authors of RFC 2101 [7] made this observation:

      Due to dynamic address allocation and increasingly frequent
      network renumbering, temporal uniqueness of IPv4 addresses is no
      longer globally guaranteed, which puts their use as identifiers
      into severe question.

   When IP addresses are embedded in the configuration of many Internet
   hosts, the IP address blocks become encumbered by their historical
   use.  This may interfere with the ability of the Internet Assigned
   Numbers Authority (IANA) and the Internet Registry (IR) hierarchy to
   usefully reallocate IP address blocks.  Likewise, to facilitate IP
   address reuse, RFC 2050 [1], encourages Internet Service Providers
   (ISPs) to treat address assignments as "loans".

   Because consumers are not necessarily experienced in the operation of
   Internet hosts, they cannot be relied upon to fix problems, if and
   when they arise.  Therefore, a significant responsibility lies with
   the manufacturer or vendor of an Internet host to avoid embedding IP
   addresses in ways that cause the aforementioned problems.





Plonka                   Best Current Practice                  [Page 3]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


3.  Recommendations

   Internet host and router designers, including network product
   manufacturers, should not assume that their products will be deployed
   and used in only the single global Internet that they happen to
   observe today.  A myriad of private or future internetworks in which
   these products will be used may not allow those hosts to establish
   communications with arbitrary hosts on the global Internet.  Since
   the product failure modes resulting from an unknown future
   internetwork environment cannot be fully explored, one should avoid
   assumptions regarding the longevity of our current Internet.

   The following recommendations are presented as best practice today.

3.1.  Disable Unused Features

   Vendors should, by default, disable unnecessary features in their
   products.  This is especially true of features that generate
   unsolicited Internet traffic.  In this way, these hosts will be
   conservative regarding the unsolicited Internet traffic they produce.
   For instance, one of the most common uses of embedded IP addresses
   has been the hard-coding of addresses of well known public Simple
   Network Time Protocol (SNTP RFC 2030 [8]) servers in products.
   However, only a small fraction of users will benefit from these
   products having some notion of the current date and time.

3.2.  Provide User Interface for IP Features

   Vendors should provide an operator interface for every feature that
   generates unsolicited Internet traffic.  A prime example is this:
   the Domain Name System resolver should have an interface enabling the
   operator to either explicitly set the choice of servers or enable a
   standard automated configuration protocol such as DHCP, defined by
   RFC 2132 [9].  These features should originally be disabled within
   the operator interface, and subsequently enabling these features
   should alert the operator that the feature exists.  This will make it
   more likely that the product's owner or operator can participate in
   problem determination and mitigation when problems arise.

   RFC 2606 [2] defines the IANA-reserved "example.com", "example.net",
   and "example.org" domains for use in example configurations and
   documentation.  These are candidate examples to be used in user
   interface documentation.

3.3.  Use Domain Names as Service Identifiers

   Internet hosts should use the Domain Name System to determine the IP
   addresses associated with the Internet services they require.



Plonka                   Best Current Practice                  [Page 4]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


   When using domain names as service identifiers in the configurations
   of deployed Internet hosts, designers and vendors are encouraged to
   introduce service names.  These names should be within a domain that
   they either control or are permitted to utilize by an agreement with
   its operator (such as for public services provided by the Internet
   community).  This is commonly done by introducing a service-specific
   prefix to the domain name.

   For instance, a vendor named "Example, Inc." with the domain
   "example.com" might configure its product to find its SNTP server by
   the name "sntp-server.config.example.com" or even by a name that is
   specific to the product and version, such as "sntp-
   server.v1.widget.config.example.com".  Here the "config.example.com"
   namespace is dedicated to that vendor's product configuration, with
   subdomains introduced as deemed necessary.  Such special-purpose
   domain names enable ongoing maintenance and reconfiguration of the
   services for their client hosts and can aid in the ongoing
   measurement of service usage throughout the product's lifetime.

   An alternative to inventing vendor-specific domain naming conventions
   for a product's service identifiers is to utilize SRV resource
   records (RRs), defined by RFC 2782 [10].  SRV records are a generic
   type of RR that uses a service-specific prefix in combination with a
   base domain name.  For example, an SRV-cognizant SNTP client might
   discover Example, Inc.'s suggested NTP server by performing an SRV-
   type query to lookup for "_ntp._udp.example.com".

   However, note that simply hard-coding DNS name service identifiers
   rather than IP addresses is not a panacea.  Entries in the domain
   name space are also ephemeral and can change owners for various
   reasons, including acquisitions and litigation.  As such, developers
   and vendors should explore a product's potential failure modes
   resulting from the loss of administrative control of a given domain
   for whatever reason.

3.4.  Use Special-Purpose, Reserved IP Addresses When Available

   Default configurations, documentation, and example configurations for
   Internet hosts should use Internet addresses that reside within
   special blocks that have been reserved for these purposes, rather
   than unique, globally-routable IP addresses.  For IPv4, RFC 3330 [3]
   states that the 192.0.2.0/24 block has been assigned for use in
   documentation and example code.  The IPv6 global unicast address
   prefix 2001:DB8::/32 has been similarly reserved for documentation
   purposes RFC 3849 [4].  Private Internet Addresses, as defined by RFC
   1918 [5], should not be used for such purposes.





Plonka                   Best Current Practice                  [Page 5]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


3.5.  Discover and Utilize Local Services

   Service providers and enterprise network operators should advertise
   the identities of suitable local services, such as NTP.  Very often
   these services exist, but the advertisement and automated
   configuration of their use is missing.  For instance, the DHCP
   protocol, as defined by RFC 2132 [9], enables one to configure a
   server to answer client queries for service identifiers.  When local
   services, including NTP, are available but not pervasively advertised
   using such common protocols, designers are more likely to deploy ad
   hoc initialization mechanisms that unnecessarily rely on central
   services.

3.6.  Avoid Mentioning the IP Addresses of Services

   Operators who provide public services on the global Internet, such as
   those in the NTP community, should deprecate the explicit
   advertisement of the IP addresses of public services.  These
   addresses are ephemeral.  As such, their widespread citation in
   public service indexes interferes with the ability to reconfigure the
   service when necessary to address unexpected, increased traffic and
   the aforementioned problems.

4.  Security Considerations

   Embedding or "hard-coding" IP addresses within a host's configuration
   often means that a host-based trust model is being employed, and that
   the Internet host with the given address is trusted in some way.  Due
   to the ephemeral roles of globally-routable IP addresses, the
   practice of embedding them within products' firmware or default
   configurations presents a security risk in which unknown parties may
   be trusted inadvertently.

   Internet host designers may be tempted to implement some sort of
   remote control mechanism within a product, by which its Internet host
   configuration can be changed without reliance on, interaction with,
   or even the knowledge of, its operator or user.  This raises security
   issues of its own.  If such a scheme is implemented, its presence
   should be fully disclosed to the customer, operator, and user, so
   that an informed decision can be made, perhaps in accordance with
   local security or privacy policy.  Furthermore, the significant
   possibility of malicious parties exploiting such a remote control
   mechanism may completely negate any potential benefit of the remote
   control scheme.  Therefore, remote control mechanisms should be
   disabled by default, to be subsequently enabled and disabled by the
   user.





Plonka                   Best Current Practice                  [Page 6]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


5.  Conclusion

   When large numbers of homogeneous Internet hosts are deployed, it is
   particularly important that both their designers and other members of
   the Internet community diligently assess host implementation quality
   and reconfigurability.

   Implementors of host services should avoid any kind of use of unique
   globally-routable IP addresses within a fixed configuration part of
   the service implementation.  If there is a requirement for pre-
   configured state, then care should be taken to use an appropriate
   service identifier and to use standard mechanisms for dynamically
   resolving the identifier into an IP address.  Also, any such
   identifiers should be alterable in the field through a conventional
   command and control interface for the service.

6.  Acknowledgements

   The author thanks the following reviewers for their contributions to
   this document: Paul Barford, Geoff Huston, David Meyer, Mike
   O'Connor, Michael Patton, Tom Petch, and Pekka Savola.  Harald
   Alvestrand, Spencer Dawkins, Ted Hardie, David Kessens, and Thomas
   Narten provided valuable feedback during AD and IESG review.

7.  References

7.1.  Normative References

   [1]  Hubbard, K., Kosters, M., Conrad, D., Karrenberg, D., and J.
        Postel, "Internet Registry IP Allocation Guidelines", BCP 12,
        RFC 2050, November 1996.

   [2]  Eastlake 3rd, D. and A. Panitz, "Reserved Top Level DNS Names",
        BCP 32, RFC 2606, June 1999.

   [3]  IANA, "Special-Use IPv4 Addresses", RFC 3330, September 2002.

   [4]  Huston, G., Lord, A., and P. Smith, "IPv6 Address Prefix
        Reserved for Documentation", RFC 3849, July 2004.

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

7.2.  Informative References

   [6]  Hamilton, M. and R. Wright, "Use of DNS Aliases for Network
        Services", BCP 17, RFC 2219, October 1997.



Plonka                   Best Current Practice                  [Page 7]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


   [7]  Carpenter, B., Crowcroft, J., and Y. Rekhter, "IPv4 Address
        Behaviour Today", RFC 2101, February 1997.

   [8]  Mills, D., "Simple Network Time Protocol (SNTP) Version 4 for
        IPv4, IPv6 and OSI", RFC 2030, October 1996.

   [9]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
        Extensions", RFC 2132, March 1997.

   [10] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
        specifying the location of services (DNS SRV)", RFC 2782,
        February 2000.

   [11] Plonka, D., "Flawed Routers Flood University of Wisconsin
        Internet Time Server", August 2003.
        http://www.cs.wisc.edu/~plonka/netgear-sntp/



































Plonka                   Best Current Practice                  [Page 8]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


Appendix A.  Background

   In May 2003, the University of Wisconsin discovered that a network
   product vendor named NetGear had manufactured and shipped over
   700,000 routers with firmware containing a hard-coded reference to
   the IP address of one of the University's  NTP servers:
   128.105.39.11, which was also known as "ntp1.cs.wisc.edu", a public
   stratum-2 NTP server.

   Due to that embedded fixed configuration and an unrelated bug in the
   SNTP client, the affected products occasionally exhibit a failure
   mode in which each flawed router produces one query per second
   destined for the IP address 128.105.39.11, and hence produces a large
   scale flood of Internet traffic from hundreds of thousands of source
   addresses, destined for the University's network, resulting in
   significant operational problems.

   These flawed routers are widely deployed throughout the global
   Internet and are likely to remain in use for years to come.  As such,
   the University of Wisconsin, with the cooperation of NetGear, will
   build a new anycast time service that aims to mitigate the damage
   caused by the misbehavior of these flawed routers.

   A technical report regarding the details of this situation is
   available on the world wide web: Flawed Routers Flood University of
   Wisconsin Internet Time Server [11].

Author's Address

   David Plonka
   University of Wisconsin - Madison

   EMail: plonka@doit.wisc.edu
   URI:   http://net.doit.wisc.edu/~plonka/

















Plonka                   Best Current Practice                  [Page 9]

RFC 4085       Embedding IP Addresses Considered Harmful       June 2005


Full Copyright Statement

   Copyright (C) The Internet Society (2005).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.







Plonka                   Best Current Practice                 [Page 10]