Apple Bonjour over VPN. Please help!

hi there!
I setup my openwrt as OpenVPN server and my Mac can connect just fine (tun, not tap) but it doesn't see other devices on the network: they don't automatically show up in finder (this worked with vpn over tap interface).

how do I get my other Macs and Bonjour devices to show up on my Mac connected to home network over VPN without switching back to TAP VPN? I tried playing with Avahi, mdnsd and other packages but I can't get it to work.

PLEASE HELP :frowning:

mDNS, Bonjour, and the like are link-local protocols. They do not route.

You either need to bridge the networks involved, or provide a relay and alternate resolution with Avahi or the like.

yea but how do I configure Avahi and which package exactly do I install? I need details please :slight_smile:

Since you've got a single client, or perhaps a couple, and, from what I can tell, want it to be as if they are on your interior network, why not just a use L2 tunnel?

Forcing routing on yourself seems like unnecessary complication to me, pushing you into the world of "faking" L2 networking over a L3 boundary.

What are the devices you want to be seen/made available?
Why not stick with DNS beyond the VPN connection?

What problem were you solving by moving from tap to tun?

I switched back to TUN so that my iPhone can VPN to home network. TAP is not supported by iOS OpenVPN client :frowning:

well, mdns and bojour only work with tap not tun.
you could run two vpn's ...

I switched it back to TAP. does anyone know of an iPhone VPN app that works with TAP?

Might be a challenge on iOS, based on https://docs.openvpn.net/connecting/connecting-to-access-server-with-apple-ios/faq-regarding-openvpn-connect-ios/

The iOS VPN API supports only tun-style tunnels at the moment. This is a limitation of the iOS platform.

You might look into IPsec-based protocols, or perhaps Wireguard.

Edit: I didn't see much helpful at https://developer.apple.com/documentation/networkextension as, at least as I read it, is about routing packets, not providing L2 bridging of any sort. There may be other APIs that can be leveraged on an iOS device.