On Mar 29, 2016, at 4:08 PM, Quinn The Eskimo! <email@hidden> wrote:
I'm not clear on why you'd want local services resolved to internet routable IPv4 or IPv6 addresses.
In the IPv4 case there's a clear need for this. Keep in mind that our systems don't, in general, generate an IPv4 link-local address unless the interface can't assign an IPv4 address any other way. For Bonjour to guarantee that "local." services only advertised link-local IPv4 addresses, the system would have to /always/ generate an IPv4 link-local address, which is not a good idea.And you can't resolve this by special casing IPv4 private addresses (10/8, 192/16, 172/24) because not every one uses NAT.
It would, however, be very useful to be able to exclude interfaces from being advertised by Bonjour — or to have Bonjour advertise appropriate addresses on multi-homed machines.
Specifically, I have a small block (/29) of IP addresses from Comcast who also forces me to rent their crappy SMC “business gateway” which can’t do QoS or NAT loopback.
I have 3 logical networks (implemented as VLANs on GigE):
1) WAN (public IP addresses) 2) Private (my office network) 3) Public (guest WiFi, shared printers, etc.)
I have a AirPort extreme generating NAT for the public network and a Time Machine generating NAT for my office network.
My server is multi-homed on all 3.
The problem is that it advertises addresses via Bonjour that may not be reachable from the network it is advertised on — i.e. office address on public WiFi.
Also, because the Comcast gateway doesn’t support NAT loopback, my public (static) server addresses aren’t accessible to anything NAT’ed behind it.
This could all be solved if I could configure Bonjour to only advertise the IP of the interface it’s multicasting on — or if Apple implemented source-aware routing on multi-homed machines.
Cheers,
-Steve
P.S. For anyone with a similar network, a Ubiquiti EdgeRouter-3 Lite is a well-spent $100.
|