[Howto] Bonjour op Linux
Inhoudsopgave
Inleiding


Ik heb gisteren bonjour (was rendezvous; ook wel bekend als zero-configuration networking) op mijn (gentoo) linux server geinstalleerd en zie nu bepaalde services automatisch verschijnen op mijn powerbook. Voor de liefhebbers die het graag ook zouden willen, volg dan de onderstaande stappen. (NB. ik heb het op Gentoo Linux geinstalleerd; voor de overige linux smaakjes heb ik wat voorbeeld info toegevoegd -die ik alleen niet heb getest-). Succes :)
Aan de slag..
Download de software
Download mDNSResponder (de multicast dns responder) source code bij Apple Developer Connection (je moet hier een login hebben/aanmaken). Ik zet de te compileren sources meestal in /usr/src maar je kan het natuurlijk overal neerzetten.
Uitpakken en compileren
Pak het archief uit, compileer de mDNSResponder voor linux en installeer de binaries via:
# tar -zxvf mDNSResponder-107.1.tar.gz
# cd mDNSResponder-107.1/mDNSPosix
# make os=linux
# cd build/prod
# mv mDNS* /usr/local/sbin
Configuratie bestanden
Maak een rendezvous configuratie bestand aan in /etc/rendezvous.conf met -bijvoorbeeld- de volgende services/typen (let op dat je precies 3 regels gebruikt, dan een linebreak, dan weer 3, etc; mDNSResponder blijkt vrij strikt te zijn wbt configuratie format):
/etc/rendezvous.conf:
Mijn Web Server
_http._tcp.
80
Mijn SSH Server
_ssh._tcp.
22
Mijn FTP Server
_ftp._tcp.
21
/etc/init.d/rendezvous voor gentoo:
#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
use net logger
}
checkconfig() {
if [ -f /etc/rendezvous.conf ][ -f /etc/rendezvous.conf ][/]; then
return 0;
else
eerror "Error starting rendezvous. /etc/rendezvous.conf is not present."
return 1;
fi
}
start() { # copied from /etc/usermin/start
checkconfig || return 1
ebegin "Starting Rendezvous"
start-stop-daemon --start --quiet \
--exec /usr/local/sbin/mDNSResponderPosix \
-- -f /etc/rendezvous.conf -b
eend $?
}
stop() {
ebegin "Stopping Rendezvous"
start-stop-daemon --stop --pidfile /var/run/mDNSResponder.pid --quiet
eend $?
}
/etc/init.d/rendezvous voor de meeste andere linux smaken:
#!/bin/sh
#
# A startup script for the Rendezvous mDNS Responder
#
# chkconfig: 345 98 2
# description: This script is used to start the rendezvous \
# server as a background process.\
#
# Usage /etc/init.d/rendezvous start|stop|reload|restart|status
# Source function library.
. /etc/rc.d/init.d/functions
RDV_CONF=/etc/rendezvous.conf
RDV_PID=/var/run/mDNSResponder.pid
prog=Rendezvous
exe=/usr/local/sbin/mDNSResponderPosix
start() {
echo -n "Starting $prog: "
daemon $exe -f $RDV_CONF -b
RETVAL=$?
echo
}
stop() {
echo -n "Stopping $prog: "
killproc $exe -SIGINT
RETVAL=$?
echo
}
reload()
{
echo -n $"Reloading $prog:"
killproc $exe -HUP
RETVAL=$?
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $exe
RETVAL=$?
;;
*)
echo "Usage: rendezvous {start|stop|reload|restart|status}"
exit 1
esac
Runlevels toevoegen & opstarten rendezvous
voor gentoo:
rc-update add rendezvous default
voor de meeste andere linux smaken:
chkconfig --add rendezvous
chkconfig --level 345 rendezvous on
en start rendezvous voor de eerste keer:
/etc/init.d/rendezvous start
Resultaat
Als het goed is moet je in je Apple nu bijvoorbeeld in de terminal (file->connect to server->ssh) automatisch je server zien verschijnen in het overzicht. Is dit niet het geval dan heb je waarschijnlijk een fout in de config file staan. Je kan de mDNSResponderPosix handmatig starten via: /usr/local/sbin/mDNSResponderPosix -v 2 -f /etc/rendezvous.conf waarbij v=2 zorgt voor een verhoogd debug level. Als de responder de file niet kan openen of het formaat juist is, geeft ie altijd een error in de trant van 'cannot read file'. Meestal betekend dat dat je config file dus niet klopt. Debuggen of je mDNSResponder draait kan je ook doen door op je Appl de RenBrowser te installeren.
NB. Ik schrijf als configfile /etc/rendezvous.conf en als init script /etc/init.d/rendezvous omdat ik rendezvous een duidelijker naam vind dan mDNSResponder. Natuurlijk ben je er zelf helemaal vrij in om dit mDSNResponder (of bonjour) te noemen.
[ Voor 99% gewijzigd door leon1e op 01-11-2005 08:56 ]