Senin, 19 Desember 2011

Konfigurasi MPLS di GNS 3 part2

PERTAMA. CONFIGURE SEMUA INTERFACE

Anda configure semua interface dalam router PE1, PE2, dan Core. Routing static ataupun dynamic belum perlu Anda terapkan pada langkah ini. Setelah Anda configure semua IP pada interface, cobalah PING router yang interfacenya ada dalam satu network.
Contoh dari PE2, PING ke 192.168.3.1 (Core), jika berhasil maka artinya link antara PE2 dan Core sudah OK. Demikian juga dari Core Anda PING ke 192.168.2.1 (PE1), jika berhasil maka artinya link antara PE1 dan Core sudah OK.

KEDUA. AKTIFKAN DYNAMIC ROUTING

Sekarang tentulah Anda ingin agar routing dimasing-masing router “mengembang” atau “terpopulasi”. Supaya apa? Supaya dari PE1 bisa PING ke PE2 misalkan. Artinya, ada connectivity antara PE1 ke PE2, dan juga antara PE1/PE2 ke Core.

Sampai sejauh ini, Anda tidak akan bisa melakukan PING tsb, sebelum informasi dalam routing-table masing-masing router terisi, atau saling bertukar routing-table. Bagaimana cara “mengembangkan” atau “mempopulasikan”? Ada 2 cara. Statik atau Dymamic. Saya akan pilih dynamic, karena lebih mudah dan scalable. Dan memang demikianlah jika hendak membuat cloud MPLS, semua router dalam cloud tsb harus menggunakan dynamic routing.

Saya akan pilih OSPF.

Ini adalah konfigurasi OSPF untuk router PE2

router ospf 100
network 192.168.3.0 0.0.0.255 area 100
network 192.168.100.3 0.0.0.0 area 100

Ingat network yang akan diadvertise adalah interface loopback 0 dan network dari ethernet yang directly connected. Dalam konteks PE2, interface yang kita advertise hanya network dari Eth 0/0 yang mengarah ke Core. Sedangkan interface Eth 0/1 yang mengarah ke CE 2 tidak kita advertise. Hal ini agar di dalam cloud MPLS, IP prefix yang di advertise hanyalah yang benar-benar ”didalam” cloud. IP kearah customer tidak diconsider untuk ikut di advertise.

Ini adalah konfigurasi OSPF untuk router PE1

router ospf 100
network 192.168.2.0 0.0.0.255 area 100
network 192.168.100.1 0.0.0.0 area 100

Dan ini adalah konfigurasi OSPF untuk router Core

router ospf 100
network 192.168.2.0 0.0.0.255 area 100
network 192.168.3.0 0.0.0.255 area 100
network 192.168.100.2 0.0.0.0 area 100

Sesudah selesai dengan mengaktifkan OSPF, sekarang coba Anda perhatikan apakah routing-table Anda sudah “terpopulasikan”.

Caranya:

Di PE1: Anda periksa routing table Anda.
PE1# sh ip route

Jika ada routing OSPF dari arah PE2, dan Core, maka dapat dipastikan OSPF telah berjalan dengan baik. (catatan: routing OSPF biasanya ditandai dengan “O” pada entry di routing table) Sekarang Anda bisa melakukan PING, dari PE2 ke loopback 0 PE1

PE2# ping 192.168.100.1

Jika ini berhasil maka langkah pada tahap ini selesai.

KETIGA. AKTIFKAN BGP

Perlu Anda ketahui, MPLS-VPN menggunakan MP-BGP (Multiprotocol BGP), yaitu sebuah extension dari protocol BGP Standard. Untuk dapat menggunakan MP-BGP, Anda harus punya BPG connection antar PE. Anda akan mempelajari bagaimana mengconfigure MP-BGP nanti pada langkah KETUJUH. Pada langkah ini kita cukup mengaktifkan BGP dulu. Dalam case kita, maka BGP connection pertama-tama harus established dulu antara PE1 dan PE2. Anda configure BGP pada PE1

router bgp 100
no synchronization
neighbor 192.168.100.3 remote-as 100
neighbor 192.168.100.3 update-source Loopback0
no auto-summary

dan Anda, juga configure BGP pada PE2

router bgp 100
no synchronization
neighbor 192.168.100.1 remote-as 100
neighbor 192.168.100.1 update-source Loopback0
no auto-summary

Setelah Anda configure, maka Anda periksa apakah TCP connection antara BGP yang ada di PE1 dan PE2 sudah established, atau belum. Jika tertulis statusnya Active (bukan Established) maka dapat dipastikan bahwa peering BGP belum terbentuk. Anda periksa lagi configurasi yang digunakan. Cara lain untuk memeriksa status BGP, bisa memeriksa disalah satu router.

PE1# sh ip bgp neigh

Ada banyak informasi yang akan keluar. Yang Anda perlu tahu hanyalah apakah peering (atau bisa disebut tunnel) BGP sudah terbentuk antara PE1 dan PE2. Anda bisa juga melihat hal tsb dengan perintah berikut.

PE1# sh ip bgp sum

Perhatikan statusnya, apakah Active, jika active maka connection (BGP peering) belum terbentuk.
Oke. Jika sampai tahap ini BGP connection sudah established, maka langkah selanjutnya adalah, membuat router virtual di PE1 dan PE2.

Mengapa kita perlu router virtual? Karena kita berhadapan dengan customer yang bisa saja IP prefix yang digunakan sama. Idenya adalah, bahwa router virtual di PE1 dan PE2 itu adalah ”mini-router” yang dedicated untuk mengatur routing table Customer A (vpn1) dan Customer B (vpn2). Karena konsepnya dedicated, maka jumlah router virtual ini akan sebanyak jumlah VPN Customer yang terhubung ke PE itu (dalam case kita ada 2 router virtual didalam pysical router PE1, karena ada 2 customer yang terhubung ke dia). Masing-masing router virtual (dalam satu physical router PE), memiliki routing table sendiri-sendiri yang saling terpisah. Nantinya Anda akan bisa memeriksa routing table pada router virtual untuk Customer A (vpn1) misalkan:

PE1# sh ip ro vrf vpn1

Perintah diatas adalah untuk melihat isi routing table sebuah router virtual bernama vpn1 di dalam router PE1. Kita akan mendalami hal ini nanti. Sekarang kita cukupkan langkah ke tiga ini dimana Anda telah berhasil meng-configure BGP antara PE1 dan PE2. Langkah selanjutnya adalah mengaktifkan MPLS di PE1, PE2, dan Core.

KEEMPAT. AKTIFKAN MPLS

Agar MPLS aktif di Core dan PE1 dan PE2, maka interface yang harus menerapkan (meng-impose) label, mestilah kita aktifkan MPLS nya. Perintah berikut digukan untuk mengaktifkan MPLS di PE1.

ip cef
mpls label protocol ldp
mpls ldp router-id Loopback0 force
interface Ethernet0/0
description *** Connection to Core ***
ip address 192.168.2.1 255.255.255.0
mpls ip

Perintah berikut digunakan untuk mengaktifkan MPLS di PE2.

ip cef
mpls label protocol ldp
mpls ldp router-id Loopback0 force
interface Ethernet0/0
description *** Connection to Core ***
ip address 192.168.3.2 255.255.255.0
mpls ip
!

Dan terakhir aktifkan MPLS di Core.

interface Ethernet0/0
description *** Connection to PE1 ***
ip address 192.168.2.2 255.255.255.0
mpls ip
!
interface Ethernet0/1
description *** Connection to PE2 ***
ip address 192.168.3.1 255.255.255.0
mpls ip
!

Setelah MPLS aktif, Anda dapat memastikan bahwa MPLS sudah bekerja, dengan memeriksa:

PE1# show mpls ldp neigh

Anda akan melihat apakah PE1 mengenal Core sebagai router MPLS, atau tidak. Jika sudah terbentuk, maka protocol LDP akan saling bertukar MPLS lable table.

KELIMA. BUAT ROUTER VIRTUAL

Pada langkah KETIGA, Anda telah diperkenalkan dengan konsep router virtual. Bagaimana cara meng-configure-nya? Langkah berikut akan menjelaskan prosesnya. Untuk membuat router virtual di PE1 dan PE2, Anda menggunakan perintah sbb ini. Contoh untuk PE1 (hal yang sama anda terapkan pada PE2).

PE1# sh run
ip vrf vpn1
rd 100:1
route-target export 100:1
route-target import 100:1
!
ip vrf vpn2
rd 100:2
route-target export 100:2
route-target import 100:2
Perintah export di PE1, artinya semua routing table (atau disebut routing prefix) di router virtual vrf vpn1, jika diadvertise ke PE2, maka akan diberi tanda dengan RD (route distinghuser) 100:1.
Routing prefix tersebut setelah sampai di PE2, akan digunakan. Tapi untuk dapat menggunakannya PE2 harus meng-import dulu route dengan RD 100:1 tsb. Itulah routing untuk Customer A (rd 100:1 vpn1). Sedangkan routing untuk customer B, menggunakan rd 100:2 (untuk vpn2)

Perhatikan bahwa nama vpn1 dan vpn2 berlaku / dikenal secara local di router itu saja. Yang dipertukarkan adalah rd 100:1 dan 100:2. Nomer rd ini akan dipertukarkan antar PE, jadi harus lebih berhati-hati dengan penomoran RD ini. Setelah Anda masukkan configurasi diatas, maka dalam PE1 dan PE2 akan tercipta 2 router virtual yaitu yang ber-id vrf vpn1 dan vrf vpn2.

Sekarang, router virtual itu belum punya interface. Maka kita akan apply router virtual tsb ke interface yang mengarah ke Customer.

Contoh di PE1

interface Ethernet0/1
description *** Connection to VPN1_A***
ip vrf forwarding vpn1
ip address 192.168.1.2 255.255.255.0
!
interface Ethernet0/2
description *** Connection to VPN2_X ***
ip vrf forwarding vpn2
ip address 192.168.6.2 255.255.255.0
Contoh di PE2
interface Ethernet0/1
description *** Connection to VPN1_B ***
ip vrf forwarding vpn1
ip address 192.168.4.1 255.255.255.0
!
interface Ethernet0/2
description *** Connection to VPN2_Y ***
ip vrf forwarding vpn2
ip address 192.168.5.1 255.255.255.0

Nah, sekarang, kita sudah punya interface connected dalam masing-masing router virtual tsb. Kita bisa periksa apakah benar sudah ada interface di routing table router virtual kita.

PE1# sh ip ro vrf vpn1

Maka sekarang akan muncul satu interface Connected, di routing table vrf vpn1 Selanjutnya, idenya adalah bahwa kita harus bisa ”mempopulasi / mengembangkan” routing table masing-masing router virtual. Kdnapa?
Kasusnya mirip dengan awal cerita kita pada langkah PERTAMA, dimana satu router tidak mengenal routing prefix router didepan / dibelakangya. Artinya satu router tidak bisa PING ke router yang bukan directly connected ke dia. Supaya bisa, maka routingtable harus saling dipertukarkan.

Oke. Sekarang kita sudah punya router virtual, dan sudah punya satu interface Connected dalam routing table router virtual. Sebelum mempertukarkan isi routing-table dari router virtual, maka kita tambahkan dulu routing static yang perlu untuk masing-masing router virtual.

KEENAM. MENAMBAHKAN ROUTING DI ROUTER VIRTUAL

Kalau kita lihat, router virtual kita baru punya satu baris routing table. Dan kita ingat bahwa router virtual ini akan berhadapan dengan CE. Oleh karena kita sudah memutuskan antara PE (lebih tepatnya antara router virtual dalam PE) ke CE menggunakan routing static, maka kita perlu menambahkan routing static kearah CE yang directly connected tsb.

Perintah berikut menambahkan routing static ke arah VPN1_B dan VPN2_Y, di PE2

ip route vrf vpn1 202.147.192.2 255.255.255.255 192.168.4.2
ip route vrf vpn2 202.147.192.2 255.255.255.255 192.168.5.2

Perintah berikut menambahkan routing static ke arah VPN1_A dan VPN2_X, di PE1

ip route vrf vpn1 202.147.192.1 255.255.255.255 192.168.1.1
ip route vrf vpn2 202.147.192.1 255.255.255.255 192.168.6.1

Setelah Anda tambahkan, Anda dapat memeriksa tambahan routing tsb di dalam router virtual.

PE1# sh ip ro vrf vpn1
PE1# sh ip ro vrf vpn2

Anda akan melihat bahwa sekarang di router virtual (misalkan vrf vpn1) akan ada 3 baris routing, satu Connected, dan 2 baris untuk Static. Nah, ini langkah terakhir. Bagaimana caranya routing table di router virtual (misalkan vrf vpn1) yang ada di PE1 dapat di ”export” ke PE2, agar network di PE1 router virtual vrfvpn1 bisa masuk di routing table di PE2 router virtual vrf vpn1? Langkah ini akan dijelaskan sbb.

KETUJUH. AKTIFKAN MP-BGP

Anda masih ingat di langkah KETIGA, yaitu kita sudah mengaktifkan BGP antara PE1 dan PE2. Anda bisa membayangkan ”tunnel” BGP ini akan berisi ”sub-tunnel” MP-BGP untuk membawa routing table vrf vpn1 dari PE1 ke PE2. Demikian juga dengan sebaliknya. Dan ”sub-tunnel” MP-BGP ini juga akan membawa routing table vrf vpn2 dari PE1 ke PE2. Demikian juga dengan sebaliknya. Begini caranya Anda mengaktifkan MP-BGP di PE1.

router bgp 100
address-family vpnv4
neighbor 192.168.100.3 activate
neighbor 192.168.100.3 send-community both
exit-address-family
!

Langkah diatas mengatakan, seolah-olah kita membuka sebuah subtunnel di tunnel BGP ASnumber 100 yang sebelumnya sudah ada, yaitu subtunnel untuk “melewatkan” routing table vrf vpn1 dan vrf vpn2. Perhatikan bahwa untuk mengaktifkan “sub-tunnel” tersebut kita pakai command neighbor <IP_Address> activate. Perhatikan juga bahwa MB-BGP memanfaatkan fasilitas community pada standar BGP, baik yang standard maupun extended, yang kedua nya – standard atau extended (both) saling dipertukarkan.

Setelah subtunnel itu terbentuk, Anda bisa memeriksa statusnya, dengan:

PE1# sh ip bgp neigh

Anda akan melihat pada bagian address-family: vpnp4 sudah aktif atau belum. Dan Anda juga bisa melihat apakah ada prefix yang sudah diterima oleh PE1 atau dikirimkan oleh PE1. Jika Anda berhasil menemukan hal ini, maka berarti langkah Anda sudah benar. Dan perlu dicatat bahwa saat Anda memasukkan dan mengaktifkan MP-BGP diatas, maka konfigurasi untuk persiapan “menyuntikkan” routing prefix untuk vrf vpn1 dan vrf vpn2 langsung terbentuk, sbb:

PE1# sh run
address-family ipv4 vrf vpn2
no synchronization
exit-address-family
!
address-family ipv4 vrf vpn1
no synchronization
exit-address-family
!

Konfigurasi diatas tidak Anda ketik manual, tetapi otomatis ditambahkan oleh Cisco IOS. Nah jika Anda sudah menemukan konfigurasi tsb, ini adalah langkah terakhir yang perlu Anda lakukan. Yaitu, kita akan me-nyuntik-kan routing table vrf vpn1 yang static dan connected. Caranya seperti ini.

PE1(config)#router bgp 100
PE1(config-router)#address-family ipv4 vrf vpn1
PE1(config-router-a)# redistribute connected
PE1(config-router-a)# redistribute static

Sehingga secara lengkap konfigurasi BGP + MP-BGP untuk router PE1, adalah: PE1# sh run

router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 192.168.100.3 remote-as 100
neighbor 192.168.100.3 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 192.168.100.3 activate
neighbor 192.168.100.3 send-community both
exit-address-family
!
address-family ipv4 vrf vpn2
redistribute connected
redistribute static
no synchronization
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
redistribute static
no synchronization
exit-address-family
!

Demikian juga hal dan tahapan yang sama Anda lakukan untuk PE2, sehingga secara lengkap konfigurasi BGP + MP-BGP untuk router PE2, adalah:

PE2# sh run
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 192.168.100.1 remote-as 100
neighbor 192.168.100.1 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 192.168.100.1 activate
neighbor 192.168.100.1 send-community both
exit-address-family
!
address-family ipv4 vrf vpn2
redistribute connected
redistribute static
no synchronization
exit-address-family
!
address-family ipv4 vrf vpn1
redistribute connected
redistribute static
no synchronization
exit-address-family
!

Setelah Anda mengaktifkan MP-BGP, dan menyuntikkan routing table PE1 vrf vpn1 dan routing table PE1 vrf vpn2 kedalam MP-BGP, Anda bisa memeriksa apakah prefik yang Anda suntikkan tersebut diterima di PE2. Anda bisa memeriksa dengan:

PE2# sh ip bgp neigh

Pada bagian address-family: vpnv4, Anda akan bisa melihat bahwa ada beberapa prefix yang di receive oleh PE2 yang di kirim oleh PE1. Disamping itu ada juga informasi bahwa ada beberapa prefix yang dikirim oleh PE2 ke PE1.
Jika Anda berhasil dengan langkah KETUJUH ini maka langkah terakhir adalah, mengaktifkan dan meng-configure router VPN1_A, dan VPN1_X yang terhubung ke PE1. Setelah itu Anda aktifkan dan configure router VPN1_B, dan VPN1_Y, yang terhubung ke PE2.

KEDELAPAN. MENGAKTIFKAN CE dan MENGUJI LINK END-To-END

Setelah selesai dengan langkah KETUJUH, maka pada langkah ini, Anda harus mengaktifkan dan meng-configure router VPN1_A, dan VPN1_X yang terhubung ke PE1. Setelah itu Anda aktifkan dan configure router VPN1_B, dan VPN1_Y, yang terhubung ke PE2.

Konfigurasinya ke-empat router CE tersebut sangat sangat sederhana, karena Anda tidak perlu meng-configure MPLS, BGP, MB-BGP, dan VRF. Silahkan lihat pada bagian Appendix untuk konfigurasi lengkap 4 router CE tsb. Setelah itu, pekerjaan paling final, adalah memeriksa apakah router VPN1_A bisa PING ke lawannya yaitu router VPN1_B, dan sebaliknya? Contohnya:

VPN1_A# ping 202.147.192.2
VPN1_B# ping 202.147.192.1

Jika sukses maka berarti Anda sudah berhasil mensimulasikan jaringan MPLS VPN end to end. Dan jika Anda ingin yakin bahwa paket PING tsb dibalas oleh “lawan” yang benar, Anda bisa mencoba telnet:

VPN1_A# telnet 202.147.192.2

Jika kemudian Anda terhubung dengan router VPN1_B (bukan VPN2_Y), maka… Selamat!!! Anda telah berhasil mensimulasikan sebuah jaringan MPLS VPN.