Part II: Apple iPads, Apple TVs, Bonjour & AirPlay Across Subnets Using Open-Source Software

Install And Configure The Avahi Service

Run the following two commands.


# echo "net-dns/avahi -gdbm -introspection" >> /etc/portage/package.use
# emerge avahi

The first command tells portage (Gentoo's package management system) to build avahi without support for gdbm and introspection. These two features are not required and would cause portage to pull in several more uncessary packages when building avhai.

The second command tells portage to download, compile, and install the avahi service.

Red Hat / CentOS:

# yum install avahi

Debian / Ubuntu:

# apt-get install avahi-daemon

Edit the avahi configuration file and make the following changes:

All Distributions

...the rest of this config file should be left unchanged...

# Notice that vlan5 is not included. In this demonstration, there is no
# reason to listen for, nor re-broadcast mDNS traffic onto the Servers
# subnet because there will never be an Apple mobile device, nor an AppleTV
# on the Servers subnet

# This line is the key. It tells the avahi-daemon process to listen for
# mDNS traffic on all of the allowed-interfaces defined above and then 
# re-broadcast any mDNS traffic that it hears onto all of the other 
# allowed interfaces

Start the avahi-daemon service and configure it to start on boot:


# rc-service avahi-daemon start
# rc-update add avahi-daemon default

Red Hat / CentOS:

# service avahi-daemon start
# chkconfig --add avahi-daemon

Ubuntu / Debian:

# service avahi-daemon start
# update-rc.d avahi-daemon defaults

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

CentOS 6

I wanted to show my thanks for this post by giving you my steps in setting up centos 6. Feel free to add/delete/modify whatever you want.

Comparison to Gentoo: Initial installation of the OS is MUCH easier. Setting up the vlans involves 3 files per vlan. So I suppose it's a tossup as far as time. My vlan11 is servers, 10 is workstations, 50 is wifi. For now I'm just joining workstations to wifi

Get the centos installer (I used current which is 6.5)
##make a vm with dvd1 mounted at startup
##choose minimal install (this is different than using the minimal iso as that doesn't even have cron
##reboot and login as root
##Ensure that the module is loaded by entering the following command:
lsmod | grep 8021q
#If the module is not loaded, load it with the following command:
modprobe 8021q
vi /etc/sysconfig/network-scripts/ifcfg-eth0
##press i for insert mode. esc to exit insert mode.
##make it like this
:x to save and exit
vi /etc/sysconfig/network-scripts/ifcfg-vlan11

##repeat for vlan10, vlan50
##then you have to add a route and rule or cenos tries to send traffic from one vlan out the wrong vlan
##this is what I followed:
vi /etc/iproute2/rt_tables
#add the following lines
11 vlan11
50 vlan50
10 vlan10

#then add /etc/sysconfig/network-scripts/route-vlan11 with:
default table vlan11 via
#then add /etc/sysconfig/network-scripts/rule-vlan11 with:
from table vlan11
#repeat for other vlans
#so with 1 network adapter and 3 vlans I have 10 files. lame
#maybe someone can figure out a cleaner way to do this, but my way works!

##continue on to my normal centos setup notes:
#Allow root ssh so you can get out of the stupid vmconsole
vi /etc/ssh/sshd_config
#uncomment the
PermitRootLogin yes

#iptables and SElinux are on. You may need to turn these off.
service iptables stop
vi /etc/sysconfig/selinux

//more good stuff before moving on to app installation///
//get the epel repo up
cd ~
rpm -ivh epel-release-6-8.noarch.rpm
#get git for scripts, zip and unzip are handy too
sudo yum install git zip unzip

/////////VMWARE Tools install////////////////
su root
yum install gcc kernel-devel perl make openssh-clients wget
//Mount the VMWare Tools ISO in the gui
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp /mnt/cdrom/VMwareTools*.gz /tmp
cd /tmp
tar -C /tmp -zxvf VMwareTools*.gz
cd vmware-tools-distrib
//accept the defaults
//then run the config thing
umount /mnt/cdrom

/////////avahi install///////
#basically I followed your simple steps, only thing was I got a dbus error when starting until I figured out I had to start the messagebus service:

yum install avahi

service messagebus start
service avahi-daemon start
chkconfig --add messagebus
chkconfig --add avahi-daemon

Thanks for the feedback

I approved your post because you obviously put some thought into it and I am sure it will help a CentOS user from the future. :)

I would argue though, that leaving "PermitRootLogins = yes" is a no-no, and would recommend that you instead create a user while logged in via the VMware console, and then ssh in as that user. I would also recommend allowing ssh logins via public key only.

Also, I rarely actually have to install Gentoo these days. I keep a "Gentoo64bitTemplate" (mostly) up to date on each of our clients' VMware systems, so deploying a new Gentoo Linux server is a couple clicks, and then a name-changing script away.

And one helpful hint: To su to root and inherit all of root's environment just do:

$ su -

Or if you feel that must enter an account name:

$ su - root

also works.



Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <b> <i> <u> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Enter the code without spaces and pay attention to upper/lower case.