TCP/IP: Quagga OSPF6 untuk IPv6

From OnnoWiki
Jump to navigation Jump to search

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