From: Chris S. <ch...@or...> - 2004-07-28 20:07:54
|
I've had BackupPPC running great in a mixed platform environment for a while now. I had to tweak things a bit to get the Mac OS X clients discovered fairly consistently using nmb, but my goal now is to have the Macs instead discovered via mDNS (multicast DNS, part of Apple's Rendezvous technology, aka zeroconf). Apple provides the open source mDNS bits that I've installed on the Slackware Linux BackupPC server, and using it I'm able to resolve a Mac Client's "Rendezvous name" to an IP. I've integrated the command into a script and pointed $Conf{NmbLookupFindHostCmd} to that script. It looks like I'll be able to get it all working without much more work, but there are a couple of hangups I'm having, mostly due to my less than full grasp of BackupPC's complete discovery process. Before I go in and look some more at the code, I'm wondering if I'm missing something fundamental that should make this work more easily. The Macs are set up in hosts like this: > macchris 1 chris And have this in their config.pl: > $Conf{XferMethod} = 'rsync'; Here are my questions: 1. I'm pointing to my script like this: $Conf{NmbLookupFindHostCmd} = '/usr/local/backup/bin/mDNSLookupPath.sh $host'; At first I had the script just return the IP, but BackupPC wouldn't parse just that; I needed to re-format it to look like an nmblookup reply. Once I did, I could get this far: > [backuppc@gazelle: /]$ /usr/local/backup/bin/BackupPC_dump -v -f > macchris > Name server doesn't know about macchris; trying NetBios > cmdSystemOrEval: about to system > /usr/local/backup/bin/mDNSLookupPath.sh macchris > cmdSystemOrEval: finished: got output 172.24.30.173 macchris<00> > > NetBiosHostIPFind: found IP address 172.24.30.173 for host macchris > cmdSystemOrEval: about to system /bin/ping -c 1 -w 3 172.24.30.173 > cmdSystemOrEval: finished: got output PING 172.24.30.173 > (172.24.30.173) 56(84) bytes of data. > 64 bytes from 172.24.30.173: icmp_seq=1 ttl=64 time=0.305 ms So, it works, but my question is, do I *need* to make my script output "172.24.30.173 macchris<00>", or is there another way to make it work with just the bare IP? (aside from modifying the code, which I'll do, if necessary) 2. This next issue, though, is the show stopper for me so far. I've got this in the client's config.pl: $Conf{NmbLookupPath} = '/usr/local/bin/mDNSIdentify'; $Conf{NmbLookupCmd} = '$nmbLookupPath $host'; So, when NetBiosInfoGet is expecting a reply that looks like it came from nmblookup -A, my lookup (from mDNSIdentify) returns this instead: > CheckHostAlive: returning 0.340 > cmdSystemOrEval: about to system /usr/local/bin/mDNSIdentify > 172.24.30.173 > cmdSystemOrEval: finished: got output 173.30.24.172.in-addr.arpa. > 173.30.24.172.in-addr.arpa. PTR Trying multicast > 173.30.24.172.in-addr.arpa. PTR MacChris.local. > MacChris.local. ANY Trying multicast > MacChris.local. AAAA FE80:0000:0000:0000:020A:95FF:FE89:063C > MacChris.local. Addr 172.24.30.173 > HINFO Hardware: PowerBook5,1 > HINFO Software: Mac OS X 10.3.4 (7H63), mDNSResponder-58.8 (Apr 24 > 2004 20:38:40) > > NetBiosInfoGet: failed: can't parse return string > dump failed: host macchris has mismatching netbios name So, aside from re-formatting the mDNSIdentify reply so that it looks like it came from nmblookup (which seems kludgy to me), is there another way to overcome this? My first though is since mDNS discovery works directly with the client instead of through a DNS or WINS server, that a reverse lookup isn't really necessary anyway. If that's true, is there a way to eliminate this lookup? Again, I'll look at the code and tweak it where necessary, but if there's an easier way, I'm all ears ;-) Thanks, --Chris |