Sama halnya dengan IPv4, untuk mengonfigurasi DPCPv6 server menggunakan paket isc-dhcp-server. Install paket tersebut dengan perintah :
sudo apt-get install isc-dhcp-server
Catatan: bahwa ISC DHCP Server hanya dapat melayani IPv4 atau IPv6 saja, artinya Anda harus menjalankan daemon dua kali (untuk IPv6 tambahkan opsi “-6”) untuk mendukung kedua protokol.
Buat berkas konfigurasi secara terpisah di /etc/dhcp/dhcp6.conf yang isinya sebagai berikut :
# mulai berkas konfigurasi /etc/dhcp/dhcp6.conf
subnet6 2001:db8:0:f101::/64 {
# untuk klien
range6 2001:db8:0:f101::1000 2001:db8:0:f101::ffff;
#untuk klien temporary
range6 2001:db8:0:f101::/64 temporary;
}
# akhir berkas konfigurasi /etc/dhcp/dhcp6.conf
Jalankan secara manual untuk mengetahui apakah berkas konfigurasi sudah benar dengan perintah :
samsul@tios:/etc/init.d$ sudo /usr/sbin/dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf wlan0
Akan nampak keluaran sebagai berikut :
Internet Systems Consortium DHCP Server 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Wrote 0 leases to leases file. Bound to *:547 Listening on Socket/5/wlan0/2001:db8:0:f101::/64 Sending on Socket/5/wlan0/2001:db8:0:f101::/64
Untuk ISC DHCP IPv4 dapat dijalankan dengan perintah :
sudo service isc-dhcp-server start
atau
sudo /etc/init.d/isc-dhcp-server start
Namun, untuk menjalankan IPv6, kita perlu memodifikasi berkas /etc/init.d/isc-dhcp6-server secara terpisah. Salin berkas startup /etc/init.d/isc-dhcp-server menjadi /etc/init.d/isc-dhcp6-server
cd /etc/init.d/ sudo cp isc-dhcp-server isc-dhcp6-server
Lalu sunting dengan teks editor favorit :
sudo vim isc-dhcp6-server
Tambahkan opsi -6 seperti yang dimaksud di atas sehingga menjadi sebagai berikut :
#!/bin/sh
#
#
### BEGIN INIT INFO
# Provides: isc-dhcp-server
# Required-Start: $remote_fs $network $syslog
# Required-Stop: $remote_fs $network $syslog
# Should-Start: $local_fs slapd $named
# Should-Stop: $local_fs slapd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: DHCP server
# Description: Dynamic Host Configuration Protocol Server
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
test -f /usr/sbin/dhcpd || exit 0
DHCPD_DEFAULT="${DHCPD_DEFAULT:-/etc/default/isc-dhcp-server}"
# It is not safe to start if we don't have a default configuration...
if [ ! -f "$DHCPD_DEFAULT" ]; then
echo "$DHCPD_DEFAULT does not exist! - Aborting..."
if [ "$DHCPD_DEFAULT" = "/etc/default/isc-dhcp-server" ]; then
echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem."
fi
exit 0
fi
. /lib/lsb/init-functions
# Read init script configuration
[ -f "$DHCPD_DEFAULT" ] && . "$DHCPD_DEFAULT"
NAME=dhcpd
DESC="ISC DHCP server"
# fallback to default config file
DHCPD_CONF=${DHCPD_CONF:-/etc/dhcp/dhcp6.conf}
# try to read pid file name from config file, with fallback to /var/run/dhcpd.pid
if [ -z "$DHCPD_PID" ]; then
DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*"(.*)"[ \t]*;.*$/\1/p' < "$DHCPD_CONF" 2>/dev/null | head -n 1)
fi
DHCPD_PID="${DHCPD_PID:-/var/run/dhcpd6.pid}"
test_config()
{
if ! /usr/sbin/dhcpd -6 -t $OPTIONS -q -cf "$DHCPD_CONF" > /dev/null 2>&1; then
echo "dhcpd self-test failed. Please fix $DHCPD_CONF."
echo "The error was: "
/usr/sbin/dhcpd -6 -t $OPTIONS -cf "$DHCPD_CONF"
exit 1
fi
}
# single arg is -v for messages, -q for none
check_status()
{
if [ ! -r "$DHCPD_PID" ]; then
test "$1" != -v || echo "$NAME is not running."
return 3
fi
if read pid < "$DHCPD_PID" && ps -p "$pid" > /dev/null 2>&1; then
test "$1" != -v || echo "$NAME is running."
return 0
else
test "$1" != -v || echo "$NAME is not running but $DHCPD_PID exists."
return 1
fi
}
case "$1" in
start)
test_config
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
--exec /usr/sbin/dhcpd -- \
-q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" $INTERFACES
sleep 2
if check_status -q; then
log_end_msg 0
else
log_failure_msg "check syslog for diagnostics."
log_end_msg 1
exit 1
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --quiet --pidfile "$DHCPD_PID"
log_end_msg $?
rm -f "$DHCPD_PID"
;;
restart | force-reload)
test_config
$0 stop
sleep 2
$0 start
if [ "$?" != "0" ]; then
exit 1
fi
;;
status)
echo -n "Status of $DESC: "
check_status -v
exit "$?"
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|status}"
exit 1
esac
exit 0
Setelah operasi ini, ISC DHCPv6 dapat dijalankan dengan perintah :
sudo service isc-dhcp6-server start
atau
sudo /etc/init.d/isc-dhcp6-server start