| |||||||
Helsinki Teknoloji Üniversitesinin MIPL projesi Linux için güncel tek Gezici IPv6 uygulamasıdır. Desteklediği son çekirdek 2.6.15'dir ve RFC3775 ile uyumludur Makaleler, yazılımlar ya da e-posta arşivleri için http://www.mobile-ipv6.org/ adresini ziyaret edebilirsiniz.
Uygulama çekirdeğin yamanmasını ve kullanıcı tarafı programlarını içermektedir.
![]() | Uyarı |
|---|---|
Çekirdeğe yama yapılması ve yeniden derlenmesi kolayca sisteminizi açılamaz hale getirebilir. Eğer daha önce bunu yapmmışsanız Linux Çekirdek NASIL belgesini okumanızı öneririm. | |
MIPL MIPv6 gerçekleştirimi çekirdeğin yamanmasını gerektirir. Bu gerçenim çekirdeğin IPv6 yığıtını (stack) değiştirdiğinden çekirdeğin yeniden derlenmesi gerekir. Kurulum süreci iyi belgelendirilmiş olmasına rağmen burada özet olarak adım adım anlatacağım.
Gezici Düğüm'ün (MN) ve Ev Yetkilisi'nin (HA) çekirdeklerinin yamalanması gerekir ama aynı çekirdek parametlerelerini kullanmaları gerekmez. Ayrıntılar aşağıda verilmektedir.
# cd /usr/local/src # http://mobile-ipv6.org/download/mipv6-2.0-v2.6.15.tar.gz # tar zxfv mipv6-1.0-v2.4.22.tar.gz |
# cd /usr/src # wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.15.tar.bz2 # tar jxvf linux-2.6.15.tar.bz2 # ln -s linux-2.6.15 linux # cd linux |
# zcat /usr/local/src/mipv6-2.0.1-linux-2.6.15.patch.gz | patch -p1 --dry-run |
![]() | Uyarı |
|---|---|
Eğer hatalar ile karşılaşırsanız devam etmeden önce yukarıdaki adımı dikkatle tekrarlayın. | |
--dry-run seçeneği yamayı uygulamaz, yamanın düzgün yapılıp yapılamayacağını anlamanızı sağlar. Herşey yolunda giderse yamayı uygulayın:
# zcat /usr/local/src/mipv6-2.0.1-linux-2.6.15.patch.gz | patch -p1 |
Aşağıdaki seçenekler iki durumda da bulunmalıdır:
CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y CONFIG_PROC_FS=y CONFIG_NET=y CONFIG_INET=y CONFIG_IPV6=y CONFIG_IPV6_MIP6=y CONFIG_XFRM=y CONFIG_XFRM_USER=y CONFIG_XFRM_ENHANCEMENT=y CONFIG_IPV6_TUNNEL=y CONFIG_IPV6_ADVANCED_ROUTER=y CONFIG_IPV6_MULTIPLE_TABLES=y |
Gezici Düğüm için aşağıdakiler de bulunmalıdır:
CONFIG_IPV6_SUBTREES=y CONFIG_ARPD=y |
IPSec'i de aktif etmek istediğimizden aşağıdakileri de ekliyoruz:
CONFIG_INET6_ESP=y CONFIG_NET_KEY=y CONFIG_NET_KEY_MIGRATE=y |
Uygun tüm seçenekleri etkinleştirdiğinizden emin olmak için MIPL ile birlikte gelen chkconf_kernel.sh kabuk betiğini çalıştırabilirsiniz. Eğer betik eksik seçenekler raporlarsa devam etmeden önce onları düzeltin.
# ./chkconf_kernel.sh /usr/src/linux
Checking kernel configuration...
Using /usr/src/linux/.config
All kernel options are as they should. |
![]() | İpucu |
|---|---|
Bu çekirdeği diğerlerinden kolayca ayırmak için /usr/src/linux/Makefile dosyasındaki EXTRAVERSION değişkenine -MIPv6-1 değerini atayabilirsiniz. | |
Çekirdeğin yamanması, derlenmesi ve kurulması ile ilgili detaylı bilgiyi Linux Çekirdek NASIL belgesinde bulabilirsiniz.
Modülün düzgün çalışması için mipdiag aracı, yapılandırma dosyaları ve başlatma betikleri yüklenmelidir:
# cd /usr/local/src # wget http://mobile-ipv6.org/software/download/mipv6-2.0.1.tar.gz # tar zxfv mipv6-2.0.1.tar.gz # cd mipv6-2.0.1 |
Kaynak kodu yapılandırıp, derleyip yüklemelisiniz. Yapılandırma sırasında --enable-vt seçeneğini eklediğimize dikkat edin. Bu seçenek gerekli olmamakla birlikte 7777 nolu portu dinleyen bir sanal terminale izin vererek yararlı bilgiler almamıza yardımcı olacaktır.
# CPPFLAGS=-I/usr/src/linux/include ./configure --enable-vt # make # make install |
Belgelerde extra/ dizini altında init (başlangıç) betikleri olduğu belirtiliyor olsa da ben sadece bir kaç örnek yapılandırma dosyası bulabildim. Aşağıda Debian ve Ubuntu için bir init betiği bulunuyor ama küçük değişikliklerle diğer dağıtımlarda da çalışabilecek hale getirilebilir.
Bütün init betikleri /etc/init.d dizininde bulunur ve uygun runlevel'a (/etc/rcX.d) sembolik linkle bağlanmışlardır.
#!/bin/sh
#
# mip6d: Starts the Mobile IPv6 Daemon
#
# description: This is a daemon which provide IPv6 Mobility
# support (RFC3775). Init script for Debian and Ubuntu.
#
# (C) GNU GPL Lars Strand <lars strand at linpro no>
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
DAEMON=/usr/local/sbin/mip6d
DESC=mip6d
CONFIG=/etc/mip6d.conf
OPTIONS="-d 0 -c $CONFIG"
set -e
# Check for IPv6 support in kernel
if [ ! -e /proc/sys/net/ipv6 ]; then
echo "IPv6 support must be enabled in the kernel for $DESC to work."
exit 1
fi
# Can we fint the mip6d?
if [ ! -x $DAEMON ]; then
echo "Unable to find $DAEMON."
exit 1
fi
chkconfig() {
if [ ! -e $CONFIG -o ! -s $CONFIG ]; then
echo ""
echo "ERROR: $CONFIG does not exist or is empty."
echo " See mip6d.conf(5) for configuration file syntax and example"
echo " configuration. $DESC will *not* be started."
echo ""
exit 1
fi
}
# See how we were called.
case "$1" in
start)
echo -n "Starting $DESC..."
chkconfig
if ! start-stop-daemon --oknodo --start --exec $DAEMON -- $OPTIONS; then
echo "failed." && exit 1
fi
echo " done."
;;
stop)
echo -n "Stopping $DESC..."
start-stop-daemon --oknodo --stop --exec $DAEMON
echo " done."
;;
restart)
chkconfig
echo -n "Restarting $DESC..."
start-stop-daemon --oknodo --stop --exec $DAEMON
sleep 1
start-stop-daemon --oknodo --start --exec $DAEMON -- $OPTIONS
echo " done."
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac
exit 0 |
| ||||||||||