Thursday, November 29, 2012

Implementasi IPv6

Beberapa distribusi Linux sudah mendukung akan IPv6,seperti Debian, RedHat, PLD, Suse, Mandrake dan sebagainya. Kernel yang mendukung IPv6 bisa dalam bentuk modul atau sudah dimasukkan dalam image kernel. Apabila masih dalam bentuk modul.
Untuk mengecek apakah linux yang digunakan sudah mendukung IPv6 dapat dilakukan dengan melihat apakah pada direktori /proc sudah terdapat file: /proc/net/if_inet6 atau dengan cara:

 # test -f /proc/net/if_inet6 && echo "IPv6 sudah mendukung"


Apabila test diatas gagal kemungkinan IPv6 berbentuk modul dan perlu dipanggil terlebih dahulu. Untuk memanggil modul IPv6 dapat dengan cara: “modprobe ipv6”. Apabila perintah diatas sukses, modul IPv6 akan tampak di daftar modul kernel, untuk mengecek apakah modul ipv6 sudah terpanggil dapat dengan cara:
# modprobe ipv6
# lsmod |grep -w 'ipv6' && echo "modul IPv6 sukses dipangil"


Apabila tampil pernyataan “sukses” berarti ipv6 sudah siap.
Catatan: modul ipv6 tidak dapat dilepas.
Untuk dapat meload kernel modul ipv6 secara otomatis dapat dilakukan dengan menambahkan konfigurasi di file /etc/modules.conf, yaitu:
/etc/modules.conf
alias net-pf-10 ipv6 # automatically load IPv6 module on demand


Apabila cara diatas masih gagal, berarti kernel masih belum mendukung IPv6, untuk itu diperlukan kompilasi ulang kernel. Cara yang perlu dilakukan adalah:
  1. Download source kernel dari http://www.kernel.org, versi stable pada saat dokumen ini ditulis adalah 2.2.20 atau 2.4.18
  2. Extrak file kernel yang didownload di direktori /usr/src dengan perintah:
  3. # tar –jxvf linux2.4.18.tar.bz2 –C /usr/src
  4. Jalankan “make menuconfig” untuk memulai konfigurasi atas kernel.
  5. Konfigurasi yang perlu diperhatikan untuk dapat mendukung IPv6 antara lain:
  6. CONFIG_EXPERIMENTAL=y
    CONFIG_NET=y
    CONFIG_PACKET=y
    CONFIG_PACKET_MMAP=y
    CONFIG_NETLINK_DEV=y
    CONFIG_NETFILTER=y
    CONFIG_NETFILTER_DEBUG=y
    CONFIG_FILTER=y
    CONFIG_UNIX=y
    CONFIG_INET=y
    CONFIG_IP_MULTICAST=y
    CONFIG_IP_ADVANCED_ROUTER=y
    CONFIG_IP_MULTIPLE_TABLES=y
    CONFIG_IP_ROUTE_FWMARK=y
    CONFIG_IP_ROUTE_MULTIPATH=y
    CONFIG_IP_ROUTE_TOS=y
    CONFIG_IP_ROUTE_VERBOSE=y
    CONFIG_IP_ROUTE_LARGE_TABLES=y
    CONFIG_IP_PNP=y
    CONFIG_NET_IPIP=m
    CONFIG_NET_IPGRE=m
    CONFIG_NET_IPGRE_BROADCAST=y
    CONFIG_IP_MROUTE=y
    CONFIG_IP_PIMSM_V1=y
    CONFIG_IP_PIMSM_V2=y
    CONFIG_ARPD=y
    CONFIG_INET_ECN=y
    CONFIG_SYN_COOKIES=y
    CONFIG_IPV6=y
    CONFIG_IP6_NF_IPTABLES=m
    CONFIG_IP6_NF_MATCH_LIMIT=m
    CONFIG_IP6_NF_MATCH_MAC=m
    CONFIG_IP6_NF_MATCH_MULTIPORT=m
    CONFIG_IP6_NF_MATCH_OWNER=m
    CONFIG_IP6_NF_MATCH_MARK=m
    CONFIG_IP6_NF_FILTER=m
    CONFIG_IP6_NF_TARGET_LOG=m
    CONFIG_IP6_NF_MANGLE=m
    CONFIG_IP6_NF_TARGET_MARK=m
  7. Konfigurasi kernel yang lainnya disesuaikan dengan kondisi hardware, dan kemampuan dari linux box tersebut.
  8. Untuk memulai kompilasi jalankan perintah:
  9. # make dep
    # make bzImage atau # make install
    # make modules modules_install

  10. Restart mesin Linux tersebut.
  11. Untuk mengecek apakah kernel sudah mendukung IPv6 dapat dilakukan dengan:
  12. # dmesg | grep IPv6
  13. Apabila terdapat output dibawah ini, berarti kernel sudah mendukung IPv6.
  14. IPv6 v0.8 for NET4.0
    IPv6 over IPv4 tunneling driver

IPv6 Network Configuration tools

IPv6 Network Configuration tools adalah program/aplikasi yang dapat digunakan untuk mengkonfigurasi jaringan yang mendukung IPv6. Karena tanpa aplikasi ini tidak akan dapat dibangun jaringan yang mendukung IPv6, walaupun kernel sudah mendukung IPv6.

Paket nettools

Pada paket nettools terdapat aplikasi ifconfig dan route, dimana aplikasi ini berguna untuk menyetting IPv6. Jalankan ifconfig -? Atau route -?, apabila menemukan output seperti IPv6 atau inet6 berarti tools ini sudah mendukung IPv6. Atau jalankan:
# /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo “'ifconfig' mendukung IPv6"
# /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "'route' mendukung IPv6"


Paket iproute

Alexey N. Kuznetsov (maintener untuk kode Linux Networking) menbuat satu paket dimana paket tersebut dapat mengkonfigurasi janringan melalui peralatan netlink. Program yang dipakai dari paket iproute ini yaitu: “ip”.
# /sbin/ip 2>&1 |grep -qw 'inet6' && echo "'ip' mendukung IPv6"
Apabila perintah ip ini tidak dapat ditemukan, dianjurkan untuk menginstall paket iproute terlebih dahulu. Paket iproute ini dapat didownload dari ftp://ftp.inr.ac.ru/iprouting/, atau dari distribusi linux yang digunakan. Apabila menggunakan distribusi Debian jalankan perintah “aptget install iproute”.

Program tes IPv6

Setelah memastikan system yang digunakan sudah mendukung IPv6, kemudian perlu dilakukan tes apakah sudah dapat dilakukan komunikasi IPv6

 IPv6 ping

Progam ini biasanya tergabung dalam paket iputils. Program ini didesign untuk melakukan tes sederhana dengan cara mengirimkan ICMPv6 paket echorequest dan menunggu paket ICMPv6 echoreply.
Cara menggunakannya sebagai berikut:
# ping6
# ping6
# ping6 [-I ]

Contoh
# ping6 -c 1 ::1

IPv6 traceroute6

Program ini biasanya tergabung dalam paket iputils. Program ini mirip dengan traceroute dari IPv4. Lain dengan versi IPv4, traceroute IPv6 tidak menggunakan paket ICMP echorequest melainkan menggunakan UDP. Berikut contoh traceroute6:
# traceroute6 www.6bone.net

IPv6 tracepath6

Program ini biasanya tergabung dalam paket iputils. Program ini mirip dengan traceroute6 dan melacak jalur yang dituju, dan MTU pada jalur tersebut. Berikut ini contoh tracepath6:
  # tracepath6 www.6bone.net

IPv6 tcpdump

Linux memiliki utility untuk menangkap paket yang dilewatlan. Berikut ini contoh penggunakan tcpdump. Aplikasi tcpdump yang sudah mendukung IPv6 mulai versi 3.6. Tcpdump menggunakan beberapa opsi untuk memfilter paket sehingga meminimalkan noise:
  • icmp6: memfilter trafik ICMPv6
  • ip6: memfilter trafik IPv6
  • proto ipv6: memfilter trafik tunnel IPv6inIPv4
  • not port ssh: untuk melihat paket yang berjalan di sesi SSH
Begitu juga opsi lainnya yang berguna untuk memberikan informasi tentang paket:
  • “-s 512” : meningkatkan panjang paket sepanjang 512 byte
  • “-vv”    : lebih verbose
  • “-n”     : menampilkan dalam bentuk numeric IP
Contoh penggunaan tcpdump
# tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

Konfigurasi IPv6

Pada node, terdapat beberapa peralatan jaringan, dan dapat dibedakan menjadi 2 kelas
  1. Fisik, seperti eth0, tr0
  2. Virtual, seperti ppp0, tun0, tap0, sit0, isdn0, ippp0
Interface yang termasuk kelas fisik yaitu Ehternet atau TokenRing dan tidak diperlukan perlakuan khusus. Interface yang termasuk kelas virtual diperlukan perlakuan khusus, misal
  • Interface tunnel IPv6inIPv4, biasanya dilambangkan dengan sitX. Nama sit merupakan singkatan dari Simple Internet Transition. Perangkat ini memiliki kemampuan untuk mengencapsulasi paket IPv6 kedalam paket IPv4 dan ditunnelkan ke titik terakhir. Sit0 merupakan device khusus dan tidak dapat digunakan.
  • Interface PPP, mendukung IPv6 dari PPP daemon
  • Interface ISDN HDLC, sudah mendukung IPv6 dari kernel.
  • Interface ISDN PPP (ippp), masih belum mendukung IPv6.
  • SLIP + PLIP, interface ini masih belum mendukung IPv6.
  • Ethertap,sudah mendukung IPv6 dan merupakan stateless configuration.
  • ATM, sudah mendukung IPv6 dengan menggunakan kernel dari USAGI.

Interface

Untuk mengkonfigurasi interface dapat dilakukan dengan metode:
  • IP
Untuk up/down interface:
# ip link set dev eth0 up
# ip link set dev eth0 down
Untuk melihat alamat IPv6 interface
# /sbin/ip -6 addr show dev eth0
Untuk menambah alamat IPv6 pada interface
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
Untuk menghilangkan alamat IPv6 dari interface
# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0
  • Ifconfig
Untuk up/down interface:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
Untuk melihat alamat IPv6 pada interface:
# /sbin/ifconfig eth0 |grep "inet6 addr:"
Untuk menambah alamat IPv6 pada interface:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
Untuk menghilangkan alamat IPv6 dari interface:
# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64
  • Routing
Untuk mengkonfigurasi routing dapat menggunakan metode:
  • IP
Melihat table routing:
# /sbin/ip -6 route show dev eth0
Menambah routing melalui gateway
# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1
Menghilangkan routing yang melalui gateway
# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1
Menambah routing melalui interface
# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1
Menghilangkan routing melalui interface:
# /sbin/ip -6 route del 2000::/3 dev eth0
  • Route
Melihat table routing:
# /sbin/route -A inet6 |grep -w "eth0"
Menambahkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
Menghilangkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1
Menambahkan routing IPv6 melalui interface:
# /sbin/route -A inet6 add 2000::/3 dev eth0
Menghilangkan routing IPv6 melalui interface:
# /sbin/route -A inet6 del 2000::/3 dev eth0

Interface
Untuk mengkonfigurasi interface dapat dilakukan dengan metode:
IP
Untuk up/down interface:
# ip link set dev eth0 up
# ip link set dev eth0 down
Untuk melihat alamat IPv6 interface
# /sbin/ip -6 addr show dev eth0
Untuk menambah alamat IPv6 pada interface
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
Untuk menghilangkan alamat IPv6 dari interface
# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0
Ifconfig
Untuk up/down interface:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
Untuk melihat alamat IPv6 pada interface:
# /sbin/ifconfig eth0 |grep "inet6 addr:"
Untuk menambah alamat IPv6 pada interface:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
Untuk menghilangkan alamat IPv6 dari interface:
# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64
Routing
Untuk mengkonfigurasi routing dapat menggunakan metode:
IP
Melihat table routing:
# /sbin/ip -6 route show dev eth0
Menambah routing melalui gateway
# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1
Menghilangkan routing yang melalui gateway
# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1
Menambah routing melalui interface
# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1
Menghilangkan routing melalui interface:
# /sbin/ip -6 route del 2000::/3 dev eth0

  • Route
Melihat table routing:
# /sbin/route -A inet6 |grep -w "eth0"
Menambahkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
Menghilangkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1
Menambahkan routing IPv6 melalui interface:
# /sbin/route -A inet6 add 2000::/3 dev eth0
Menghilangkan routing IPv6 melalui interface:
# /sbin/route -A inet6 del 2000::/3 dev eth0
 

semoga bermanfaat bagi anda
lanjut ke Tunnel IPv6 in IPv4

0 komentar:

Post a Comment

silahkan komentar untuk membangun
Jangan lupa untuk komentar yang lainya OK