Categories
Networks

Using AirServer across subnets

AirServer (http://www.airserver.com) is a great tool for mirroring iOS Devices (iPad, iPhone, iPod etc.) to your Apple Mac or PC.  Sadly out of the box it won’t work across VLANs/subnets as it requires Bonjour (mDNS, ZeroConf, what ever you like to call it) to work.

Detailed below is the process that I used to get AirServer working across VLANs and subnets.

Basically there is a free tool named Avahi that will, with minimal tweaking, provide a proxy for Bonjour/mDNS.  It doesn’t bridge the subnets together in the way some similar tools do which means you aren’t flooding broadcast traffic across subnets, it simply collects all the information of any Bonjour services and then rebroadcasts them as appropriate.

The basic process requires setting up a linux box (I used Ubuntu 12.04 on a virtual machine within VMWare, but other virtualisation technologies or even a physical box would do), configuring the network interfaces, configuring Avahi and then using AirServer!

Setting up the server

Avahi isn’t very processor or RAM intensive.  In my setup I used 1 core and 1GB of RAM, although I suspect it will run fine with a smaller amount of memory. These instructions assume you choose to use Ubuntu, but should be similar for most distributions.

For simplicity’s sake during the intial setup I configured the virtual machine to use a client VLAN and allowed the server to pick up a DHCP address.

Once you’ve ran through the basic install, run the following commands to get up to date and enable SSH.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server

At this point you can switch across to using an SSH client of your choice (As always I recommend Putty)

Configuring the interfaces

At this point, if you haven’t already done so, you can switch your link to the box to a 802.1q trunk.  Depending upon your configuration this may sever your link to the box via SSH so the next section need to be carried out locally.

Use a text editor to edit /etc/network/interfaces, I like nano

sudo nano /etc/network/interfaces

For each VLAN you wish to use Avahi on add the following lines, adjusting as required.  The example below configures a virtual interface for VLAN 159 using DHCP for the IP addressing.

auto eth0.159
iface eth0.159 inet dhcp

For the native VLAN you need to configure the physical interface.  The below example shows a static IP address assignment for the native VLAN.

iface eth0 inet static
address 192.168.3.230
netmask 255.255.252.0

Once you’ve configured all your interfaces restart the network subsystem

sudo /etc/init.d/networking restart

Installing & Configuring Avahi

Simply install Avahi

sudo apt-get install avahi-daemon

To enable the functionality we require open the config file

sudo nano /etc/avahi/avahi-daemon.conf

Find the section

[reflector]
#enable-reflector=no
#reflect-ipv=no

And change it to

[reflector]
enable-reflector=yes
#reflect-ipv=no

And then restart the service

sudo /etc/init.d/avahi-daemon restart

That’s it!

And that is pretty much it. if you’ve done everything right you should now be able to connect to your AirServer/Apple TV on one subnet from your iPad/iPhone on another.