Протокол обнаружения сервисов (англ. Service Location Protocol, SLP, srvloc) — протокол обнаружения сервисов, который позволяет компьютерам и иным устройствам находить сервисы в локальной вычислительной сети без предварительной конфигурации. SLP был разработан, чтобы работать как в небольших сетях, так и в больших корпоративных сетях. Он определен в RFC 2608.

Logical overview править

Роли SLP править

SLP описывает три роли для устройств. Устройство может иметь две или даже три роли одновременно.

  • User Agents (UA) — устройства, которые ищут сервисы
  • Service Agents (SA) — устройства, анонсирующие один или несколько сервисов
  • Directory Agents (DA) — устройства, кеширующие сервисы. Они используются в больших сетях для уменьшения количества трафика и позволяют SLP масштабироваться. Существование DA в сети является необязательным, но если он присутствует, то UA и SA должны использовать его вместо прямых коммуникаций.

Ныне большинство реализаций действуют как UA и SA. Также они могут быть настроены для работы в качестве DA.

Network protocol править

Безопасность править

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

  • Открытый ключ провайдера сервиса должен быть установлен на каждом UA. Это нарушает исходную цель SLP — возможность обнаружения сервисов без предварительной настройки
  • Защиты сервисов не достаточно. URL сервиса содержит имя компьютера или его IP адрес, а в локальной сети почти невозможно предотвратить подделку IP или DNS имени. Поэтому гарантия аутентичности URL бесполезна если любое устройство может отвечать по указанному адресу
  • Поскольку адреса могут быть подделаны, аутентичность устройства должна быть подтверждена на другом уровне, например, на уровне приложения (через SSL) или на уровне пакетов (IPsec). Дополнительная аутентификация в SLP не даст сильного повышения безопасности.

Внедрение править

  • SLP часто используется для нахождения принтеров и поддерживается системами печати, например CUPS.
  • SLP часто используется в принтерах с возможностью работы в локальной сети, поэтому они могут работать без предварительной конфигурации. Некоторые клиентские драйвера используют протокол для нахождения принтера.
  • Архитектура для управляющих сетей (ACN), протокол, разрабатываемый для контроля развлечений, использует SLP для обнаружения устройств управления освещением
  • Mac OS и Mac OS X вплоть до версии 10.1 используют SLP для обнаружения файловых и других сервисов. Более новые версии Mac OS X (старше 10.2), предпочитают Zeroconf.
  • Клиенты Novell NetWare в чистом IP окружении используют SLP для обнаружения серверов.
  • SUSE Linux поддерживает SLP начиная с версии 9.1

См. также править