10.5.1 did not change this issue.
so, tried ipfw zero and show, got no deny's in the rules list. there were a few deny rules, but no packets in either column. i ran it for about 15 mins. itunes on. itunes off. firewall on, firewall off. i did see lots of packets allowed in the 5353 port, multicast, as expected. but i couldn't find an entry that was related, only to say that even when the airtunes connection was refused packets were still flowing in udp5353... so.. it thought it was sending them.. i get nothing on the allow rules for 224xxx, which is odd, because the tcp dump shows that is the address that this process is working on:
--IPFW ON--
*16:10:39.407887 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0*- [0q] 3/0/0 (Cache flush) A 192.168.0.5,[|domain]*
*16:12:18.026616 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0*- [0q] 3/0/0 (Cache flush) A 192.168.0.5,[|domain]*
--IPFW OFF--
*16:12:59.086113 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0 [2q][|domain]*
*16:13:00.076391 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0 [2q][|domain]*
*16:13:02.079234 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0 [2q][|domain]*
*16:13:06.078753 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0 [2q][|domain]*
--IPFW ON AGAIN--
*16:13:47.493542 arp who-has 192.168.0.10 (00:00:83:aa:96:8f) tell 192.168.0.5*
*16:13:47.493593 arp reply 192.168.0.10 is-at 00:16:cb:a9:33:ac*
*16:13:47.494174 IP 192.168.0.5.1160 > 192.168.0.10.123: NTPv1, Client, length 48*
*16:13:47.494391 IP 192.168.0.10.123 > 192.168.0.5.1160: NTPv1, Server, length 48*
*16:13:56.626805 IP 192.168.0.5.5353 > 224.0.0.251.5353: 0*- [0q] 3/0/0 (Cache flush) A 192.168.0.5,[|domain]*
the bottom line is: firewall off, music playing, express selected, express plays... firewall on -- music stops. the packets still flow if the connection was already established, but they don't make it to the express (or express doesn't play)... firewall off, music starts again. lol.
i don't know what the numbers are exactly in this, but the "[2q]" seems to indicate things are flowing fine, the "[0q]" is when they aren't. what does: "3/0/0" refer to? the traffic, which the dump says is on 224xxx, does not get reflected in the allow or deny rules at any time that i can see.
so....
it's going out on the multicast as it should, but even though the 5353 port is open to all traffic:
12352 0 0 allow tcp from any to any dst-port 5353
12352 3 491 allow udp from any to any dst-port 5353
and the ip range is open to all outgoing:
12364 1 64 allow ip from 192.168.0.0/24 to any via en0 keep-state
12364 0 0 allow ip from 224.0.0.0/24 to any via en0 keep-state (and the inverse)
besides, all traffic to and from lo0 is open.
but even though i've opened the port and the ip involved in the firewalls, it doesn't connect. if it is connected and playing, and then the fw is engaged, i get one more buffer's worth of music, and then it stops.
i really think this is a dns/arp issue. somehow. the entry in the terminal for one thing, and then when the firewall is on, and i try to select the express, i see allow packets in the to 224.x.x.x rule. (server admin also shows this dump with auto refreshes and is a lot easier to use that the terminal in this case..) so, this is it trying to establish a link with the express, but that's the only traffic i see on this address range. then i see the server ping my dns service (opendns.org), like it is looking for the express.
i just don't know enough. or, it's a f-ing bug, which... lordy, if it isn't, it should be.