Reply To: NSLU2 with nightly, but Soundbridge will not connect

#9155
clouseau
Guest

Before stumbling on the solution presented by Christoph (thanks), I found another (slightly more aggressive) workaround that worked well for me so far: On the FireFly server (wired), I enabled a firewall rule to convert (matching) outgoing multicast packets into (local) broadcast packets, which my Zyxel router *does* forward to the wireless domain.

Even though I prefer Christoph’s fix (I’ll try it soon), I’m posting my workaround here as it may be useful for other multicast eating routers as well and it points out a strange difference between the iTunes and FireFly servers.

My setup: I don’t have any Soundbridge (yet?), my client is iTunes on a wireless old (and hence small) iBook and my server is a wired linux box running FireFly (actually another, slightly more recent iBook). I also have a Zyxel Prestige router (660HW-67, FW version V3.40(QD.7)).

I experienced the same effect, i.e. things worked well while the client was plugged in wired but not if it was connected wirelessly. By sniffing packets on client and server, I could prove the suspect, which was already stated multiple times, that the router isn’t forwarding multicasts from wired -> wireless domain while wireless -> wired works for whatever reason.

Setting up the following firewall rule on the FireFly box `solved’ the problem:


iptables -t nat -v -A OUTPUT -d 224.0.0.251 -p udp --dport 5353 -j DNAT --to-destination 192.168.1.255
# (replace 192.168.1.255 with your local subnet broadcast address, of course)

However, the thing that still wonders me is that even without the workaround, things work well if I use iTunes instead of FireFly as the (still wired) music server. (Even though it’s running only on a virtual OSX on the same linux iBook via MOL).

I’ve seen that in this case, the MDNS packets, that are sent from the server to the client during client startup phase are *NOT* using multicast but unicast, directed directly to the client, which has sent several MDNS multicast packets before. (Which makes sense to me as the client is now known, but note that I’ve absolutely no knowledge about the whole MDNS stuff, I don’t even know what it stands for, it’s just what wireshark is telling me). And even more strange, this is not always the case: If I plug in the iTunes client wired (where multicasts are well forwarded by the router), the server *is* using multicast for his MDNS packets. As if iTunes knowed when to prefer unicast to multicast. Maybe I should repeat this test with Christian’s router fix…

However, here are my wireshark logs during client iTunes startup phase. Sorry for the CUPS stuff in between. Let me know if you need the full logs.

my IP addresses:

192.168.1.1 – Zyxel router
192.168.1.33 – wired FireFly server
192.168.1.34 – wireless iTunes client
192.168.1.37 – wired iTunes client
192.168.1.50 – wired iTunes server (virtual)

(1) wired iTunes server, wireless iTunes client:


No. Time Size Source S-port Destination D-port Protocol Info
1 0.000000 70 fe80::230:65ff:fe1d:cef0 ff02::2 ICMPv6 Router solicitation
2 1.494134 231 192.168.1.33 631 192.168.1.255 631 CUPS ipp://192.168.1.33:631/printers/hpcolor-2 (idle)
3 6.624196 46 192.168.1.34 51219 192.168.1.1 192 UDP Source port: 51219 Destination port: 192
4 7.474241 247 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _afpovertcp._tcp.local, "QM" question PTR _smb._tcp.local, "QM" question[Packet size limited during capture]
5 7.969598 526 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query response[Packet size limited during capture]
6 8.209587 78 192.168.1.34 51220 239.255.255.253 427 SRVLOC Service Request
7 8.212093 78 192.168.1.34 51221 239.255.255.253 427 SRVLOC Service Request
8 8.214295 78 192.168.1.34 51222 239.255.255.253 427 SRVLOC Service Request
9 8.216470 78 192.168.1.34 51223 239.255.255.253 427 SRVLOC Service Request
10 8.312628 70 fe80::230:65ff:fe1d:cef0 ff02::2 ICMPv6 Router solicitation
11 10.138452 92 192.168.1.34 51224 192.168.1.255 137 NBNS Name query NB WORKGROUP<1d>
12 10.414420 92 192.168.1.34 51224 192.168.1.255 137 NBNS Name query NB WORKGROUP<1d>
13 10.755506 92 192.168.1.34 51224 192.168.1.255 137 NBNS Name query NB WORKGROUP<1d>
14 12.382816 92 192.168.1.34 51225 192.168.1.255 137 NBNS Name query NB WORKGROUP<00>
15 12.658288 92 192.168.1.34 51225 192.168.1.255 137 NBNS Name query NB WORKGROUP<00>
16 12.980166 92 192.168.1.34 51225 192.168.1.255 137 NBNS Name query NB WORKGROUP<00>
17 15.211276 78 192.168.1.34 51220 239.255.255.253 427 SRVLOC Service Request
18 15.212986 78 192.168.1.34 51221 239.255.255.253 427 SRVLOC Service Request
19 15.215217 78 192.168.1.34 51222 239.255.255.253 427 SRVLOC Service Request
20 15.217522 78 192.168.1.34 51223 239.255.255.253 427 SRVLOC Service Request
21 15.898782 104 192.168.1.50 49293 192.168.1.34 51220 UDP Source port: 49293 Destination port: 51220
22 15.903162 104 192.168.1.50 49294 192.168.1.34 51220 UDP Source port: 49294 Destination port: 51220
23 16.328913 70 fe80::230:65ff:fe1d:cef0 ff02::2 ICMPv6 Router solicitation
24 17.515005 222 192.168.1.33 631 192.168.1.255 631 CUPS ipp://192.168.1.33:631/printers/hpcolor (idle)
25 20.251739 84 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QU" question
26 20.352655 79 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv._tcp.local, "QU" question
27 20.453208 76 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _daap._tcp.local, "QU" question
28 20.466010 311 192.168.1.50 5353 192.168.1.34 5353 MDNS Standard query response PTR Jever OSX._daap._tcp.local[Packet size limited during capture]
29 20.642771 125 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
30 20.892840 125 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
31 21.143958 125 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
32 21.251533 135 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
33 21.395122 386 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::230:65ff:fe1d:cef0[Packet size limited during capture]
34 22.394255 386 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::230:65ff:fe1d:cef0[Packet size limited during capture]
35 23.444972 171 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
36 24.379173 265 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query SRV Jever OSX._daap._tcp.local, "QU" question TXT Jever OSX._daap._tcp.local, "QU" question[Packet size limited during capture]
37 24.509087 386 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::230:65ff:fe1d:cef0[Packet size limited during capture]
38 24.730718 70 fe80::230:65ff:fe1d:cef0 ff02::2 ICMPv6 Router solicitation
39 25.384780 498 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query SRV Jever OSX._daap._tcp.local, "QM" question TXT Jever OSX._daap._tcp.local, "QM" question[Packet size limited during capture]
40 27.463268 356 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
41 28.508214 386 192.168.1.34 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::230:65ff:fe1d:cef0[Packet size limited during capture]

(2) wired iTunes server, wired iTunes client:


No. Time Size Source S-port Destination D-port Protocol Info
1 0.000000 235 192.168.1.33 631 192.168.1.255 631 CUPS ipp://192.168.1.33:631/printers/hpcolor-2 (idle)
2 5.822212 247 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _afpovertcp._tcp.local, "QM" question PTR _smb._tcp.local, "QM" question[Packet size limited during capture]
3 6.662941 195 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query response PTR[Packet size limited during capture]
4 16.001773 226 192.168.1.33 631 192.168.1.255 631 CUPS ipp://192.168.1.33:631/printers/hpcolor (idle)
5 22.457521 84 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QU" question
6 22.558238 79 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv._tcp.local, "QU" question
7 22.658735 100 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _daap._tcp.local, "QU" question[Packet size limited during capture]
8 22.867931 125 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
9 23.118196 125 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
10 23.368666 125 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
11 23.470204 135 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
12 23.620209 386 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::203:93ff:fe46:ff5e[Packet size limited during capture]
13 24.316159 363 192.168.1.50 5353 224.0.0.251 5353 MDNS Standard query[Packet size limited during capture]
14 24.620557 386 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::203:93ff:fe46:ff5e[Packet size limited during capture]
15 25.470377 171 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
16 26.916340 386 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::203:93ff:fe46:ff5e[Packet size limited during capture]
17 27.052508 80 192.168.1.50 5353 224.0.0.251 5353 MDNS Standard query PTR _raop._tcp.local, "QM" question
18 28.724075 498 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query SRV Jever OSX._daap._tcp.local, "QM" question TXT Jever OSX._daap._tcp.local, "QM" question[Packet size limited during capture]
19 29.470108 171 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query PTR _appletv-pair._tcp.local, "QM" question[Packet size limited during capture]
20 29.672458 352 192.168.1.50 5353 224.0.0.251 5353 MDNS Standard query response A, cache flush 192.168.1.50 AAAA, cache flush[Packet size limited during capture]
21 30.915906 386 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query response AAAA, cache flush fe80::203:93ff:fe46:ff5e[Packet size limited during capture]
22 31.022144 235 192.168.1.33 631 192.168.1.255 631 CUPS ipp://192.168.1.33:631/printers/hpcolor-2 (idle)
23 34.725444 498 192.168.1.37 5353 224.0.0.251 5353 MDNS Standard query SRV Jever OSX._daap._tcp.local, "QM" question TXT Jever OSX._daap._tcp.local, "QM" question[Packet size limited during capture]