I have recently installed Jaguar on my iBook, and I am impressed with where Apple is going with networking. The Rendezvous component of iChat, for example, makes it easy to find other iChat users on the local network, without having to log into AOL’s central chat server.

I’ve just been poking around with tcpdump and the iChat client. It appears that it’s using multicast UDP port 5353 for its transport.

When taking rendezvous offline:

10:42:59.246820 10.1.31.19.5353 > 224.0.0.251.5353: udp 56
10:43:00.090607 10.1.31.19.5353 > 224.0.0.251.5353: udp 58
10:43:00.232728 10.1.31.19.5353 > 224.0.0.251.5353: udp 58

When coming back online:

10:43:14.740378 10.1.31.19.5353 > 224.0.0.251.5353: udp 181
10:43:14.797714 10.1.19.49925 > 224.0.0.251.5353: udp 48 [ttl 1]
10:43:14.798237 10.1.31.19.5353 > 224.0.0.251.5353: udp 1427
10:43:14.798355 10.1.31.19.5353 > 224.0.0.251.5353: udp 95
10:43:14.798653 10.1.31.75.5353 > 10.1.31.19.49925: udp 426
10:43:14.800206 10.1.31.19.49925 > 224.0.0.251.5353: udp 48 [ttl 1]

…etc, for several hundred more lines, all coming from other rendezvous users (as we negotiate names, status, and those almost too cute user photos.)

A couple of us at ORA were kicking around what would be involved in getting rendezvous to find users not only on our network, but on a private network at another office. Obviously, if it’s using multicast, we’re missing each other as we’re separated by a router hop (we’re using 10.1/16 in one office, and 10.2/16 in the other.)

What about setting up multicast routing between the two networks? I’ve never done it, but it sounds like running DVMRP under Zebra on a machine on each side might do the trick.

Has anybody done this? It’d make a nifty hack to be able to get Rendezvous traffic bridged between arbitrary networks… Having multicast routed across the already forming GRE network that carries community wireless traffic cross-country would be pretty spiffy. (Think true peer-to-peer chat and file sharing, without a centralized server to login to, available at any free public wireless node…)

Has anyone found a better source of information on Multicast and Linux than the HOWTO?

Have you ever set up multicast traffic to cross a router hop? Is there an easier way to make rendezvous traffic flow between networks?