Протокол обнаружения сервисов
(
англ.
Service Location Protocol
,
SLP
,
srvloc
) — протокол
обнаружения сервисов
, который позволяет компьютерам и иным устройствам находить сервисы в локальной вычислительной сети без предварительной конфигурации. SLP был разработан, чтобы работать как в небольших сетях, так и в больших корпоративных сетях. Он определен в
.
Содержание
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 часто используется в принтерах с возможностью работы в локальной сети, поэтому они могут работать без предварительной конфигурации. Некоторые клиентские драйвера используют протокол для нахождения принтера.
Архитектура для управляющих сетей (
), протокол, разрабатываемый для контроля развлечений, использует SLP для обнаружения устройств управления освещением
Mac OS
и
Mac OS X
вплоть до версии 10.1 используют SLP для обнаружения файловых и других сервисов. Более новые версии
Mac OS X
(старше 10.2), предпочитают
Zeroconf
.
Клиенты
Novell NetWare
в чистом
IP
окружении используют SLP для обнаружения серверов.