TCP/IP: Quagga OSPF6 untuk IPv6
Contoh Routing Quagga untuk IPv6 Pada kesempatan ini di perlihatkan contoh konfigurasi routing OSPFv3 untuk komputer Ubuntu yang menjalankan Quagga. Quagga adalah sebuah aplikasi yang digunakan untuk aplikasi routing protokol. Struktur Quagga secara umum dapat digambarkan sebagai berikut,
Bagian quagga ada beberapa macam:
- Zebra ; merupakan bagian penghubung antara linux kernel dengan aplikasi routing protokol.
- Routing Daemon ; merupakan aplikasi pengatur routing protokol.
Misal: ospfd adalah daemon yang mengatur routing protocol OSPF, ripd adalah daemon yang mengatur routing protokol RIP.
Asumsi jaringan yang digunakan adalah:
- Router R1 (Linux / Ubuntu atau OpenWRT) dengan dua Ethernet / LAN.
- Router R2 (Linux / Ubuntu atau OpenWRT) dengan dua Ethernet / LAN.
- Masing-masing Router tersambung satu sama lain.
- Masing-masing Router mengkaitkan LAN di belakangnya.
Lebih detail dengan konfigurasi jaringan yang akan kita bahas pada kesempatan ini adalah: Dua (2) buah Router dengan routing ospf6 . R1
eth0 = 2001:0:0:3::4/64 eth1 = fec0:192:168:10::1/64
R2
eth0 = 2001:0:0:3::5/64 eth1 = fec0:192:168:20::1/64
eth0 pada R1 akan terkoneksi dengan eth0 pada R2. eth1 adalah interface untuk ke arah client atau gateway client. Untuk memudahkan dalam contoh Area Quagga yang digunakan adalah 0.0.0.0
Kernel IP Forwarding
Kita perlu mengaktifkan kernel IP forwarding agar Router Quagga dapat berjalan dengan baik,
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Instalasi Quagga
Instalasi Quagga di Linux / Ubuntu dapat dilakukan melalui perintah berikut
# apt-get install quagga
Konfigurasi Awal
Aktifkan Daemon Quagga dengan cara mengedit,
# vi /etc/quagga/daemons
Pastikan isinya minimal:
zebra=yes bgpd=no ospfd=no ospf6d=yes ripd=no ripngd=no isisd=no
Dalam contoh ini, artinya kita mengaktifkan zebra (wajib) dan protokol OSPF6. Jika dibutuhkan kita dapat saja mengaktifkan berbagai protokol lainnya yang ingin digunakan.
Contoh konfigurasi dari berbagai protokol routing yang didukung oleh quagga dapat dilihat di folder
/usr/share/doc/quagga/examples
Beberapa contoh konfigurasi yang ada antara lain adalah,
babeld.conf.sample isisd.conf.sample ripd.conf.sample zebra.conf.sample bgpd.conf.sample ospf6d.conf.sample ripngd.conf.sample bgpd.conf.sample2 ospfd.conf.sample vtysh.conf.sample
Untuk memudahkan, kita dapat mengcopy contoh yang ada ke folder konfigurasi, misalnya,
# cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf # cp /usr/share/doc/quagga/examples/ ospf6d.conf.sample /etc/quagga/ ospf6d.conf
Restart Quagga
Untuk menjalankan daemon quagga, jalankan perintah:
# /etc/init.d/quagga start
Akan keluar kira-kira
Loading capability module if not yet done. Starting Quagga daemons (prio:10): zebra ospf6d. Starting Quagga monitor daemon: watchquagga.
Kita dapat men-start, stop dan restart dengan cara di atas. Untuk melihat service daemon yang running, kita dapat menggunakan perintah,
# sudo netstat -tanp |grep zebra tcp 0 0 127.0.0.1:2601 0.0.0.0:* LISTEN 1186/zebra
dan
# sudo netstat -tanp |grep ospf6 tcp6 0 0 ::1:2606 :::* LISTEN 1190/ospf6d
Ini artinya Zebra bekerja pada port 2601 dan ospf6d pada 2606, begitu juga apabila kita menggunakan service routing yang lain akan memiliki port sendiri. Hal ini juga kita dapat meremote port tersebut.
Mengubah Password
Bila kita tidak mengubah konfigurasi zebra, maka default password-nya adalah zebra. Untuk mengubah konfigurasi zebra kira perlu telnet ke zebra. Dalam contoh telnet ke localhost, untuk keluar ketik exit.
$ sudo telnet localhost 2601
atau
$ sudo telnet ::1 zebra
Interaksi yang dilakukan adalah sebagai berikut,
Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Hello, this is Quagga (version 0.99.22.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Access Verification Password: Router> enable Password: Router#
Hal yang sama dapat kita lakukan untuk ospf6d, sebagai berikut
$ sudo telnet localhost 2606
Interaksi yang dilakukan adalah sebagai berikut,
Trying ::1... Connected to localhost. Escape character is '^]'. Hello, this is Quagga (version 0.99.22.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Access Verification Password: ospf6d@plant# conf t ospf6d@plant(config)# router ospf6 ospf6d@plant(config-ospf6)#
Sampai disini instalasi quagga dan service daemon zebra serta ospf6 dapat dipergunakan sesuai kebutuhan.
Konfigurasi Zebra
Konfigurasi awal pada zebra dapat dilakukan menggunakan telnet ke port 2601. Contoh seperti di bawah ini,
Memberi nama
#config t (config)#hostname zebra
Memberi ip address
#config ter (config)#interface eth0 (config-if)#ipv6 address 2001:0:0:3::4/64 (config-if)#no shutdown
Memberi password
(config)# enable password cobacoba ---- enable password (config)#password cobacoba ---- terminal connection password
Setelah semua di kerjakan, kita dapat melihat hasil akhirnya menggunakan perintah berikut
Zebra1# sh running-config
Hasilnya kira-kira,
Current configuration: ! hostname zebra1 password cobacoba enable password cobacoba ! interface eth0 ipv6 address 2001:0:0:3::4/64 ipv6 nd suppress-ra ! interface eth1 ipv6 address fec0:192:168:10::1/64 ipv6 nd suppress-ra ! interface lo ! line vty ! End
Langkah yang sama kita lakukan juga pada Router 2, yaitu zebra2. Hasilnya dapat dilihat menggunakan perintah berikut,
Zebra2# sh running-config
Hasilnya,
Current configuration: ! hostname zebra2 password zebra enable password zebra ! interface eth0 ipv6 address 2001:0:0:3::5/64 ipv6 nd suppress-ra ! interface eth1 ipv6 address fec0:192:168:20::1/64 ipv6 nd suppress-ra ! interface lo ! line vty ! End
Setelah konfigurasi zebra dilakukan, kita perlu melakukan verifikasi dari ke dua sisi menggunakan ping ke masing-masing interface,
$ ping6 2001:0:0:3::5
PING 2001:0:0:3::5(2001:0:0:3::5) 56 data bytes 64 bytes from 2001:0:0:3::5: icmp_seq=1 ttl=64 time=1.32 ms 64 bytes from 2001:0:0:3::5: icmp_seq=2 ttl=64 time=1.19 ms 64 bytes from 2001:0:0:3::5: icmp_seq=3 ttl=64 time=0.819 ms 64 bytes from 2001:0:0:3::5: icmp_seq=4 ttl=64 time=2.62 ms --- 2001:0:0:3::5 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3012ms rtt min/avg/max/mdev = 0.819/1.491/2.626/0.682 ms
Konfigurasi OSPF6d
Setelah kita mengkonfigurasi zebra, selanjutnya kita dapat mengkonfigurasi routing ospf. Kita dapat melakukan konfigurasi menggunakan telnet ke port 2606 untuk mengakses service ospf6.
$ sudo telnet localhost 2606
atau
$ sudo telnet ::1 ospf6d
Setelah proses konfigurasi dilakukan dengan baik kita dapat melihat menggunakan perintah berikut,
ospf6d@plant# sh running-config
Hasilnya,
Current configuration: ! hostname ospf6d@plant password zebra log stdout service advanced-vty ! debug ospf6 lsa unknown debug ospf6 neighbor state ! interface eth0 ipv6 ospf6 cost 10 ! interface eth1 ipv6 ospf6 cost 10 ! interface fxp0 ipv6 ospf6 priority 0 ! interface lo0 ! router ospf6 router-id 2.2.2.2 redistribute static route-map static-ospf6 interface fxp0 area 0.0.0.0 interface eth0 area 0.0.0.0 interface eth1 area 0.0.0.0 ! access-list access4 permit 127.0.0.1/32 ! ipv6 access-list access6 permit 3ffe:501::/32 ipv6 access-list access6 permit 2001:200::/48 ipv6 access-list access6 permit ::1/128 ! ipv6 prefix-list test-prefix seq 1000 deny any ! route-map static-ospf6 permit 10 match ipv6 address prefix-list test-prefix set metric-type type-2 set metric 2000 ! line vty access-class access4 ipv6 access-class access6 exec-timeout 0 0 ! End
Yang dicetak tebal adalah yang perlu di assign ke dalam konfigurasi ospf6 Selanjutnya kita perlu melakukan verifikasi. Hal ini dapat dilakukan menggunakan perintah,
# show ipv6 ospf6 neighbor # show ipv6 ospf6 spf tree
Rangkuman Konfigurasi Quagga untuk jaringan OSPF IPv6
Edit zebra
# vi /etc/quagga/zebra.conf
Isi dengan
hostname SITENAME password PASSWORD interface LOCALNET description Local Network (biasanya br-lan atau eth0) ! Aktifkan Linux' link detection : link-detect ! Kirim router advertisment messages : no ipv6 nd suppress-ra ! Max time yang di ijinkan antara sending unsolicited ! multicast router advertisements (s) : ipv6 nd ra-interval 10 ! Set IPv6 address pada interface : ipv6 address GLOBAL:#::ffff/64 ipv6 address ULA:#::ffff/64 ! Set the IPv6 prefix (to advertize) : ipv6 nd prefix GLOBAL:#::/64 ipv6 nd prefix ULA:#::/64 interface vpn6 description Tunnel Network Interface kalau ada link-detect ipv6 address ULA::#/64 ipv6 address GLOBAL::#/64 interface lo link-detect ipv6 forwarding ipv6 route ULA:#::/64 LOCALNET ipv6 route GLOBAL:#::/64 LOCALNET ! Catat / Log semua message yang berhubungan dengan komunikasi ! Gunakan level priorotas “informational” pada file /tmp/zebra.log : debug zebra kernel log file /tmp/zebra.log informational
Kadang kala kita perlu mengkonfigurasi routing static di router yang juga melakukan dynamic routing. Static routing ini harus di annouce melalui dynamic routing. Agar hal ini terjadi dengan baik, maka kita perlu menambahkan static routing tersebut di zebra.conf:
! Destination Gateway ipv6 route 2001:db8:f00f::/48 2001:db8:fedc:1::1
Selanjutnya kita dapat mengedit konfigurasi OSPF6
# /etc/quagga/ospf6d.conf
Isi dengan
password PASSWORD !! adapter setup : interface LOCALNET interface vpn6 !! router setup : router ospf6 ! ubah # dengan "ID" dari router : router-id 0.0.0.# ! Redistribute static route ke OSPF6 redistribute static redistribute connected ! Pada router dengan IPv6 uplink kita dapat ! men-redistribute default route: ! (lihat http://wiki.shorewall.net/wiki/IPv6_ospf6d ) redistribute kernel ! Beritahu ospf6d IPv6 network nama termasuk ke ! quagga area nama (ini akan mengaktifkan link aggregation) : area 0.0.0.# range GLOBAL:#::/64 area 0.0.0.# range ULA:#::/64 ! Pecah Network menjadi backbone dan non-backbone areas ! (ini menyebabkan router menjadi "area border router" - ABR) : interface LOCALNET area 0.0.0.# interface vpn6 area 0.0.0.0