Служба Bonjour Sleep Proxy от Apple — это компонент с открытым исходным кодом [1] для сетей с нулевой конфигурацией , разработанный для снижения энергопотребления сетевых электронных устройств. [2] Он позволяет устройству, предоставляющему такие услуги, как общий доступ к файлам, общий доступ к принтерам или удаленный вход в систему , перейти в спящий режим, т. е. перейти в режим пониженного энергопотребления, при этом его услуги остаются доступными даже по всему миру, путем регистрации на прокси-сервере сна в локальной сети. Прокси-сервер сна продолжает как рекламировать услуги в локальной сети от имени хоста сна, так и прослушивать входящие соединения, независимо от того, доступны ли услуги только локально или через Интернет. Когда какое-либо устройство пытается использовать любую прокси-службу, прокси-сервер пробуждает спящее устройство, и служба работает так, как если бы спящее устройство оставалось полностью включенным.
Любое устройство, которое может выступать в качестве спящего прокси-сервера, объявляет об этом во всех локальных сетях, частью которых оно является. Устройство, предоставляющее сетевые услуги, такие как обмен файлами, когда его услуги не используются активно, может зарегистрировать свои услуги на доступном спящем прокси-сервере и спать до тех пор, пока одна из его услуг не понадобится. Спящий прокси-сервер продолжает объявлять услуги в Multicast DNS (mDNS) от имени спящего хоста. [2] Когда спящий прокси-сервер видит попытку использования любой такой услуги, он пробуждает спящий хост, и услуга продолжает работать нормально, а в случае SSH сервер с активным сеансом может зарегистрироваться на прокси, спать и быть разбуженным следующим полученным пакетом, продолжая тот же сеанс. [3] [2]
Apple называет эту службу Bonjour Sleep Proxy в своих документах поддержки. [4] Служба использует функцию Wake on Demand , впервые предложенную в Mac OS X Snow Leopard . [5]
Когда спящий прокси-сервис принимает запрос на прокси, он фактически берет на себя IP-адреса прокси-серверов, объявляя об этом через протокол разрешения адресов (ARP) и протокол обнаружения соседей (NDP). Чтобы заявить трафик для IPv4-адресов прокси-хоста, он отправляет безвозмездные объявления ARP , чтобы пакеты, адресованные прокси-серверу, отправлялись на прокси-сервер, а для IPv6 он делает то же самое, используя аналогичный NDP. Чтобы поддерживать ассоциацию, он отвечает от имени спящего хоста на запросы ARP и NDP. Этот процесс эффективно сопоставляет IP-адреса прокси-серверов с физическим портом прокси-сервера.
Когда из любой точки Интернета поступает пакет для проксируемой службы, спящий прокси-сервер пробуждает спящий хост и выполняет описанный выше процесс в обратном порядке, снова используя ARP и NDP для повторной привязки тех же IP-адресов к нужному компьютеру, и любая служба продолжает работу так, как будто сервер не находился в спящем режиме.
Это может показаться запутанным для сетевых администраторов, которые не ожидают такого поведения при смене MAC-адресов .
Метод, с помощью которого спящий прокси-сервер пробуждает спящий хост, называется wake-on-LAN . Сетевой интерфейс спящего хоста с этой возможностью разбудит машину, когда получит определенную серию битов, а пакет, содержащий этот шаблон, является магическим пакетом . Ранние реализации Wake on LAN (WoL) требовали проводных сетевых интерфейсов. В беспроводном случае ( Wi-Fi ) пакет пробуждения отправляется через Wireless Multimedia Extensions (WMM). [5] В любом случае функция должна поддерживаться сетевым интерфейсом. Apple предоставляет инструкции по проверке совместимости с этой функцией для компьютеров Macintosh. [4]
Служба sleep proxy может рекламировать любые службы, поддерживаемые Bonjour , пока хост-компьютер спит. Вот некоторые примеры поддерживаемых служб: [4]
Реализации в локальной сети можно увидеть с помощью браузера Bonjour .
Настройка Wake on Demand", "Настройка Bonjour Sleep Proxy
Как это работает", "Панель настроек энергосбережения
{{cite web}}
: CS1 maint: archived copy as title (link)