Cisco Phones and IPv6

Cisco phones of a certain generation and later support IPv6 transport. To be of use, your call server must also support IPV6 and so must any phone on your network you wish to be reachable. Since voice traffic travels peer to peer and not through a server, talking to an IPv4 only phone would require reverting to IPv4 protocol. (Though there are complex workarounds using proxy servers.)

To set up a system to configure Cisco phones for IPv6, there must be a router advertisement as well as DHCPv6.

Configuring necessary services in Linux:


For router advertisement, install and configure radvd with your IPv6 prefix. Three flags are of interest here.

Tell devices not to auto assign their addresses. i.e. SLAAC off.
AdvAutonomous off;
Tell devices to get their address from DHCPv6 instead of SLAAC. Cisco phones don't seem to like SLAAC.
AdvManaged on;
Tell devices to request DHCPv6 options, which is where tftp server location is encapsulated
AdvOtherConfigFlag on;


Then install and configure DHCPv6 server. This example uses isc-dhcp-server. Follow man pages to setup your prefix and address pools and to assure you are starting the v6 dhcp server and not only the v4 dhcp server.

In the dhcp6.conf file, the vendor specific information field needs to be used to reply with the tftp server address from which the phone will obtain its config file (Cisco details). Unfortunately, this information needs to be encoded manually and described as raw data. (See Vendor Encapsulated Options in dhcp-options and section 22.17 in RFC3315)

Add to dhcp6.conf
option dhcp6.vendor-opts
00:00:00:09: This is the 32 bit vendor id field. 9 = Cisco Systems
00:01: The suboption number. 1 says to expect an IPv6 numeric address. 2 says to expect a name field.
00:10: The length of the following data field in octets. In this case, an IPv6 address which is 16 octets long, expressed in hex is 0010''
20:01:19:20:01:cf:00:00:00:00:00:00:00:00:00:01; the IPv6 address of tftp server. Replace with your information

After changing this config file, restart the dhcp service
sudo service isc-dhcp-server6 restart
and reboot the Cisco phone. Check the phone for a correctly assigned IPv6 address and TFTP server.


There is a TFTP flag that may force your server to answer only IPv4 packets. On Ubuntu, look for /etc/xinetd.d/tftp. If there is a flag IPv4 set, remove it. The default is to allow both IPv4 & IPv6.

Modifying phone config files for IPv6

Have not seen this work yet.

Created by: Randomandy, Last modification: Thu 29 of May, 2014 (04:17 UTC)
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+