Кіріспе
Жергілікті желідегі құрылғыларды анықтау процесі
Қызметтің орналасу протоколы (SLP, srvloc) – бұл компьютерлер мен басқа құрылғыларға алдын ала конфигурациялаусыз жергілікті желіде қызметтерді табуға мүмкіндік беретін қызметтерді анықтау протоколы. SLP кішкентай, басқарылмайтын желілерден бастап, ірі кәсіпорын желілеріне дейін кеңейтуге арналған. Ол RFC 2608 және RFC 3224 стандарттар жинағы ретінде белгіленген.
Желілік протокол
SLP – пакеттік бағытталған протокол. Көптеген пакеттер UDP арқылы жіберіледі, бірақ TCP ұзын пакеттерді жіберу үшін де қолданылуы мүмкін. UDP-нің сенімділігі төмен болуы мүмкін болғандықтан, SLP жауап алынғанға дейін барлық көп таратуларды арттырып отыратын аралықтармен бірнеше рет қайталайды. Барлық құрылғылар UDP пакеттерін 427 портта тыңдауы керек, ал SAs және DAs сол портта TCP арқылы да тыңдауы керек. SLP көп таратуды кеңінен пайдаланады, әсіресе желіге қосылатын және басқа құрылғыларды табуға мұқтаж құрылғылар үшін. SLP-нің жұмысы желіде Directory Agent (DA) бар-жоғына байланысты едәуір өзгешеленеді. Клиент желіге алғаш қосылғанда, ол желідегі DA-ларға сұрау жібереді. Егер ешқандай DA жауап бермесе, ол DA жоқ желіде екенін болжайды. Кейіннен DA-ларды қосуға болады, себебі олар белгілі бір интервалмен «жүрек соғуы» пакетін көп тарату арқылы жібереді, оны басқа барлық құрылғылар қабылдайды. SA DA-ны тапқанда, ол барлық қызметтерді DA-да тіркеуге міндетті. Қызмет жоғалған жағдайда, SA DA-ға хабарлап, оны тіркеуден шығаруы керек. DA жоқ желіде сұрау жіберу үшін UA сұрауды қамтитын көп тарату UDP пакетін жібереді. Сәйкес келетін барлық SAs UA-ға UDP жауабын жібереді. Егер жауап бір UDP пакетіне сыймаса, пакет «асып толып» (overflowed) деп белгіленеді және UA сұрауды тікелей SA-ға TCP арқылы жіберуге құқылы, ол кез келген өлшемдегі пакеттерді жібере алады. DA бар желіде сұрау жіберу үшін UA сұрау пакетін UDP немесе TCP арқылы DA-ға жібереді. Әрбір SA барлық қызметтерді DA-да тіркеуге тиіс болғандықтан, DA сұрауды толыққанды орындай алады және нәтижені UA-ға қайта жібереді.
Қауіпсіздік
SLP қызмет туралы хабарламаларға қол қоюға мүмкіндік беретін, ашық кілтті криптографияға негізделген қауіпсіздік механизмін қамтиды. Бірақ іс жүзінде ол сирек қолданылады: әрбір қызмет провайдерінің ашық кілттері әрбір UA-ға орнатылуы тиіс. Бұл талап SLP-нің бастапқы мақсатына қайшы келеді, ол қызметтерді алдын ала конфигурациясыз табу мүмкіндігін көздеген. Тек қызметтерді қорғау жеткіліксіз. Қызмет URL-дері хост аттарын немесе IP-адрестерді қамтиды, ал жергілікті желіде IP немесе DNS-тің бұрмалануын тоқтату дерлік мүмкін емес. Сондықтан URL-дің нақтылығына кепілдік беру жеткіліксіз, егер кез келген құрылғы сол адреске жауап бере алатын болса. IP-адрестерді бұрмалау мүмкін болғандықтан, құрылғының нақтылығы басқа деңгейде, мысалы, қолданба протоколында (SSL сияқты) немесе пакеттік қабатта (IPsec) дәлелденуі керек. SLP-де қосымша шаралар қабылдау көп қосымша қауіпсіздікке әкелмейді.
The public keys of every service provider must be installed on every UA. This requirement defeats the original purpose of SLP, being able to locate services without prior configuration. Protecting only the services is not enough. Service URLs contain host names or IP addresses, and in a local network it is almost impossible to prevent IP or DNS spoofing. Thus only guaranteeing the authenticity of the URL is not enough if any device can respond to the address. As addresses can be spoofed, the authenticity of the device must be proven at a different level anyway, e. g. in the application protocol (e. g. with SSL) or in the packet layer (IPsec). Doing it additionally in SLP does not provide much additional security.
Бала асырап алу
SLP жиі принтерлерді табу үшін қолданылады және CUPS сияқты баспа жүйелерімен қолдау көрсетіледі. SLP көбінесе LAN-ға қосылған принтерлерде кездеседі, осылайша оларды тікелей қораптан шығарып табуға болады. Кейбір клиенттік принтер драйверлері принтерді табу үшін оны пайдалана алады. ACN, ойын-сауық басқаруы үшін әзірленудегі протокол, диммерлер және интеллектуалды шамдар сияқты әртүрлі құрылғыларды табу үшін SLP-ні қолданады. Ескі Mac OS және Mac OS X 10.1 нұсқасына дейін SLP файлдарды бөлісу және басқа қызметтерді табу үшін пайдаланылды. Дегенмен, Mac OS X-пен енгізілген мүмкіндіктер (10.2 нұсқасынан бастап) Zeroconf-ты қолданады. Таза IP ортасында Netware Core Protocol (NCP) клиенттері Novell NetWare және Novell Open Enterprise Server (OES) серверлерін табу үшін SLP-ні пайдаланады. SUSE Linux 9.1 нұсқасынан бастап SLP-ні әртүрлі қызметтер үшін қолдайды. Sun Microsystems SLPv1 және SLPv2, соның ішінде SA, UA және DA функционалдығын қолдайды. Distributed Management Task Force SLP арқылы WBEM қызметтерін табуды стандарттады. Storage Networking Industry Association Storage Management Initiative Specification-те қызметтерді табу үшін SLP-ні пайдалануды міндеттеді.