Bonjour Sleep Proxy / WoWLAN / WoL

bonjourNetworkPROXYsleep-wakevpn

So I've had an interesting issue that I think I know what might have happened, but I'm not sure if it is actually possible. I have 2 Mac's running High Sierra, Laptop and iMac. I have enabled "Wake for Network Access" to facilitate waking the system up for Back to My Mac or some such. Now, my iMac is almost never actually in sleep mode (being a desktop, I don't have it configured to automatically sleep).

Here is what happened, there is a software package I have that has a bug, and automatically tries to reconnect to a voice chat that is over if it's been asleep for over and hour and wakes up. It is in the works to be fixed, but has not been fixed yet (confirmed this with the developers).

Now, 3 times in the middle of the night while I was asleep this behavior occurred. I confirmed that my sleep monitor says I was asleep at the times in question. Since I live alive, I'm not sure why or how the system would have been woken up from sleep. The iMac was not asleep, but the MacBook was; and not on a wired connection. I have a VPN provided by ZeroTier One (not a standard VPN as provided with OpenVPN protocols, LT2P or PPTP).

So here is my basic question… Given that the iMac was awake, could it have received a broadcast packet from the VPN on ZeroTier, from a distant system connected via the VPN / Internet that unintentionally woke up my Laptop? How would I find out if the Laptop woke up and what system triggered the wake up? I have been looking and according to what I read, the computer won't know who or why it was triggered to wake up (unless I read it wrong). My understanding of the "sleep proxy" of Bonjour is that a running system on the LAN could be used to trigger a system on the LAN to wake up based on a signal from a system on the VPN — again, I could be horribly misunderstanding the protocol.

In short, how would I found out if this happened / is it even possible?

Best Answer

Power settings, including sleep and wake:

man pmset

What settings are active?

pmset -g

What is keeping your mac awake?

pmset -g assertions

To find out what woke up your mac, run this before sleep:

pmset -g assertionslog

While this is running, you can find out the state of your assertions with CTRL-T

Assertion status system-wide:
   BackgroundTask                 0
   ApplePushServiceTask           0
   UserIsActive                   1
   PreventUserIdleDisplaySleep    0
   PreventSystemSleep             0
   ExternalMedia                  0
   InternalPreventDisplaySleep    1
   PreventUserIdleSystemSleep     0
   NetworkClientActive            0
Listed by owning process:
   pid 97(hidd): [0x0000c79b00099bde] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4294971710.3" 
    Timeout will fire in 600 secs Action=TimeoutActionRelease
   pid 56(powerd): [0x0000e37c00108184] 00:01:04 InternalPreventDisplaySleep named: "com.apple.powermanagement.delayDisplayOff" 
    Timeout will fire in 235 secs Action=TimeoutActionTurnOff
No kernel assertions.
Idle sleep preventers: IODisplayWrangler

You'll need to take a look at the internal state of mDNS. To enable debug logging:

sudo killall -USR1 mDNSResponder # so much data.

Trim the logorrhoea to what you came for:

sudo syslog -c mDNSResponder en

Dump the state of mDNS to the syslog:

sudo killall -INFO mDNSResponder; tail -1000f /var/log/system.log

The section “Network Interfaces” in the syslog output lists the network interfaces on your machine that Bonjour knows about. For any interface which (a) Bonjour believes to be capable of Wake On LAN and (b) Bonjour has discovered a Bonjour Sleep Proxy, you should see a black sun (“☀”) immediately preceding the address at the end of the line, like this:

------ Network Interfaces ------
v4 en0(4) 00:17:F2:CD:7E:0A 00:00:00:00:00:00 v4 0.0.0.0 ⊙ ⇆ ☀ 192.168.1.50

For any interface which (a) Bonjour believes to be capable of Wake On LAN but (b) no Sleep Proxy has been discovered yet, you should see a white sun (“☼”). This means that Bonjour is willing to use a Sleep Proxy on this interface, but hasn’t found one yet.

------ Network Interfaces ------
v4 en0(4) 00:17:F2:CD:7E:0A 00:00:00:00:00:00 v4 0.0.0.0 ⊙ ⇆ ☼ 192.168.1.50

Review the canon here.