Saturday, 11 February 2017

MPLS Traffic Engineering


Assalamualaikum,
MPLS-TE.png
Tujuan dari lab kali ini adalah sebagai berikut.
  • Setiap router dapat berkomunikasi satu sama lain
  • Router CE berkomunikasi dengan CE lainnya menggunakan TE Tunnel
  • Manajemen bandwith pada TE Tunnel
  • Jalur cadangan pada TE Tunnel


Oke lansung saja, pertama tama kita akan melakukan konfigurasi ip address dan loopback terlebih dahulu pada router. Buat terlebih dahulu interface bridge pada router. 
[admin@X] > /interface bridge
add name=loopback
Penggunaan interface bridge yang diberikan ip address pada router akan memungkinkan sebuah router memiliki loopback di dalam dirinya. Nantinya, loopback ini akan digunakan untuk penggunaan MPLS. Setelah itu tambahkan ip address pada setiap interface yang ada.




Selanjutnya kita akan menambahkan routing IGP yang nantinya akan digunakan untuk menghubungkan setiap router yang ada. Kita akan menggunakan routing protocol OSPF. 
[admin@P2] > /routing ospf instance
set default mpls-te- area=backbone mpls-te- router-id=loopback redistribute-connected=as-type-1 router-id=4.4.4.4
[admin@P2] > /routing ospf network
add area=backbone disabled=no network=34.34.34.0/24add area=backbone disabled=no network=45.45.45.0/24
[admin@P1] > /routing ospf instance
set default mpls-te- area=backbone mpls-te- router-id=loopback redistribute-connected=as-type-1 router-id=3.3.3.3
[admin@P1] > /routing ospf network
add area=backbone disabled=no network=23.23.23.0/24
add area=backbone disabled=no network=34.34.34.0/24
[admin@PE1] > /routing ospf instance
set default mpls-te- area=backbone mpls-te- router-id=loopback redistribute-connected=as-type-1 router-id=2.2.2.2
[admin@PE1] > /routing ospf network
add area=backbone disabled=no network=23.23.23.0/24
add area=backbone disabled=no network=26.26.26.0/24
[admin@PE2] > /routing ospf instance
set default mpls-te- area=backbone mpls-te- router-id=loopback redistribute-connected=as-type-1 router-id=6.6.6.6
[admin@PE2] > /routing ospf network
add area=backbone disabled=no network=26.26.26.0/24
add area=backbone disabled=no network=56.56.56.0/24
[admin@PE3] > /routing ospf instance
set default mpls-te- area=backbone mpls-te- router-id=loopback redistribute-connected=as-type-1 router-id=5.5.5.5
[admin@PE3] > /routing ospf network
add area=backbone disabled=no network=56.56.56.0/24
add area=backbone disabled=no network=45.45.45.0/24 
Jika sudah, selanjutnya adalah melakukan konfigurasi MPLS pada router. Kita akan menggunakan MPLS LDP dimana LDP sendiri merupakan protocol yang ada pada MPLS yang memungkinkan MPLS memberikan labeling pada setiap router secara dynamic. 
[admin@PE1] > /mpls ldp
set enabled=yes lsr-id=2.2.2.2 transport-address=2.2.2.2
[admin@PE1] > /mpls ldp interface
add interface=ether1
add interface=ether2
[admin@PE2] > /mpls ldp
set enabled=yes lsr-id=6.6.6.6 transport-address=6.6.6.6
[admin@PE2] > /mpls ldp interface
add interface=ether1
add interface=ether2
[admin@PE3] > /mpls ldp
set enabled=yes lsr-id=5.5.5.5 transport-address=5.5.5.5
[admin@PE3] > /mpls ldp interface
add interface=ether1
add interface=ether2
Pada konfigurasi LDP, ada konfigurasi lsr-id dan juga ada transport address. lsr-id merupakan label switching router yang memungkinkan sebuah router memiliki id untuk label dalam mpls sendiri. Lalu ada transport address, yang berguna sebagai identitas sebuah router ketika router tersebut ingin mengirimkan data kepada LDP neighbor. Ketika sebuah router mengirimkan sebuah packet kepada ldp neighbors, maka ldp neighbors akan melihat packet tersebut dan membaca darimanakah packet tersebut berasal. Untuk penggunaan lsr-id dan juga transport address, biasanya keduanya menggunakan loopback yang ada pada router.


PE router pada jaringan MPLS berfungsi sebagai router yang berada palinga pojok dalam jaringan MPLS itu sendiri. Dalam artian, router PE merupakan router yang berada antara jaringan MPLS dan non-MPLS. Jadi router tersebut yang menghubungkan jaringan MPLS dengan jaringan yang tidak menggunakan MPLS. 
[admin@P1] > /mpls ldp
set enabled=yes lsr-id=3.3.3.3 transport-address=3.3.3.3
[admin@P1] > /mpls ldp interface
add interface=ether1
add interface=ether2
[admin@P2] > /mpls ldp
set enabled=yes lsr-id=4.4.4.4 transport-address=4.4.4.4
[admin@P2] > /mpls ldp interface
add interface=ether1
add interface=ether2
Selanjutnya ada juga pada router P. lsr-id dan transport address pada jaringan MPLS fungsinya tetap sama pada router P ataupun PE. Yang membedakan hanyalah tugas dari setiap router. Pada router P, router hanya akan fokus untuk melakukan forwading packet MPLS kepada tujuan, sehingga dalam jaringan tersebut proses pengiriman packet antar client akan terasa cepat. Dan berbeda dengan router PE yang berada paling ujung dan menghubungkan jaringan MPLS dengan jaringan yang bukan MPLS.


Selanjutnya kita akan melakukan konfigurasi MPLS Traffic Engineering. Untuk Traffic Engineering sendiri, merupakan protocol yang ada pada MPLS dimana sebuah router dapat melakukan limitasi dalam jaringan MPLS dengan memadukan mekanisme label swapping di layer 2 dan layer 3. Dengan penggunaan ini, akan memungkinkan sebuah jaringan memiliki kemampuan untuk menyeimbangan traffic yang ada dalam beberapa jalur di sebuah jaringan. Untuk konfigurasinya sendiri, sebuah router dapat menentukan bandwith dalam sebuah jaringan menggunakan interface yang telah ia daftarkan ke dalam jaringan MPLS.
[admin@PE1] > /mpls traffic-eng interface
add bandwidth=5Mbps interface=ether1
add bandwidth=20Mbps interface=ether2
[admin@PE2] > /mpls traffic-eng interface
add bandwidth=20Mbps interface=ether1
add bandwidth=20Mbps interface=ether2
[admin@PE3] > /mpls traffic-eng interface
add bandwidth=5Mbps interface=ether1
add bandwidth=20Mbps interface=ether2
[admin@P1] > /mpls traffic-eng interface
add bandwidth=5Mbps interface=ether1
add bandwidth=5Mbps interface=ether2
[admin@P2] > /mpls traffic-eng interface
add bandwidth=5Mbps interface=ether1
add bandwidth=5Mbps interface=ether2
Oke berdasarkan konfigurasi tersebut, kita dapat mengetahui jalur mana yang memiliki bandwth yang lebih besar dan mana yang memiliki bandwith lebih kecil. Lalu kita akan menggunakan Traffic Engineering untuk pembuatan tunneling. Seperti yang kita ketahui sebelumnya, penggunaan tunneling pada jaringan akan membuat seolah olah sebuah network dengan network lainnya seperti terhubung langsung. Jadi tidak banyak hop yang akan dilewat dan dalam penggunaan tunneling, akan memungkinan pengiriman paket yang terenkripsi sehingga dunia luar tidak dapat mengetahui packet yang dikirimkan oleh kedua jaringan tersebut. Oke langsung saja melakukan konfigurasi. 
[admin@PE1] > /mpls traffic-eng tunnel-path
add name=Tunnel1 use-cspf=yes
add disabled=no
hops=23.23.23.3:strict,34.34.34.3:strict,34.34.34.4:strict,45.45.45.4:strict,45.45.45.5:strict
name=PE1-P1- P2-PE3 use-cspf=no
[admin@PE3] > /mpls traffic-eng tunnel-path
add name=Tunnel1 use-cspf=yes
add hops=56.56.56.6:strict,26.26.26.6:strict,26.26.26.2:strict name=PE3-PE2- PE1 record-route=yes use-cspf=no
Seperti yang terlihat pada konfigurasi di atas, konfigurasi tersebut merupakan konfigurasi untuk membuat tunnel path antara PE1 dan PE3. Tunnel path sendiri merupakan path atau jalur yang digunakan untuk mengidentifikasi dimana lokasi neighbor yang akan membuat hubungantunnel dengan router yang kita miliki. Pembuatan ini sama dengan pembuatan tunnel lainnya yang harus saling mengetahui neighbor yang akan dibuat tunnel.


Berdasarkan konfigurasi diatas, kita membuat 2 tunnel path dalam 2 router. Pada pembuatan tunnel yang pertama, kita membuat tunnel dinamis dimana nantinya tunnel dinamis tersebut akan kita gunakan sebagai secondary path atau tunnel cadangan. Lalu disamping pembuatan nama untuk tunnel ada CSPF dimana CSPF merupakan sebuah protocol yang memungkinkan tunnel path akan memilih jalurnya sendiri berdasarkan jalur terpendek. Oleh karena itu pada tunnel path dynamic, kita harus mengaktifkan cspf agar tunnel path ditentukan sendiri oleh MPLS.
Lalu pada penambahan jalur utama, ada konfigurasi hops dimana hops tersebut nantinya mendefinisikan jalur mana saja yang akan dijadikan path ataupun jalur dari tunnel yang akan dibuat. Untuk pemilihan jalur secara static, ada 2 cara diantaranya adalah :
  • Strict = yaitu pemilihan jalur yang mendefinisikan secara spesifik jalur mana saja yang akan dilewati.
  • Loose = yaitu pemilihan jalur yang mendefinisikan jalur pertama yang akan dilewati dan juga jalur tujuan (tidak spesifik).
Kemudian untuk konfigurasi cspf, tidak perlu kita aktifkan dikarenakan kita akan menggunakan jalur yang tadi kita definisikan satu per satu. Setelah itu kita akan membuat interface tunnel traffic-engineer. 
[admin@PE1] > /interface traffic-eng
add bandwidth=2Mbps bandwidth-limit=100 disabled=no from-address=2.2.2.2 name=toPE3 primary-path=PE1- P1-P2- PE3 record-route=yes secondary-paths=Tunnel1 to-address=5.5.5.5
[admin@PE3] > /interface traffic-eng
add bandwidth=2Mbps bandwidth-limit=100 disabled=no from-address=5.5.5.5 name=traffic-eng1 primary-path=PE3- PE2-PE1 record-route=yes secondary-paths=Tunnel1 to-address=2.2.2.2
Pada konfigurasi diatas, kita akan memberikan limit terhadap interface tunnel tersebut sebesar 2Mbps. Kemudian bandwith limit merupakan sebuah parameter dalam satuan persentase untuk menentukan berapa persen limitsi dari bandwith yang diberikan tadi.


Lalu konfigurasi selanjutnya yaitu konfigurasi from address dan juga to address. Konfigurasi ini sama halnya ketika kita ingin membuat tunneling menggunakan ipip tunnel. Kita harus mendefinisikan address publik yang kita miliki dan juga address publik router lawan untuk membuat tunneling. Lalu untuk primary path, kita akan menggunakan jalur utama yaitu jalur yang kita konfigurasi hopnya secara static, dan lalu untuk konfigurasi jalur cadangan, kita gunakan jalur dynamic tadi. Setelah itu tambahkan ip address untuk interface tunnel yang kita buat. 
[admin@PE1] > /ip address
add address=25.25.25.2/24 disabled=no interface=toPE3 network=25.25.25.0
[admin@PE3] > /ip address
add address=25.25.25.5/24 disabled=no interface=traffic-eng1 network=25.25.25.0
Setelah itu lakukan verifikasi bahwa status tunneling sudah established. 
[admin@PE1] > interface traffic-eng monitor numbers=0
                tunnel-id: 1
                primary-path- state: established
                primary-path: PE1-P1- P2-PE3
secondary-path- state: not-necessary
                active-path: PE1-P1- P2-PE3
                active-lspid: 1
                active-label: 27
                explicit-route:
S:23.23.23.3/32,S:34.34.34.3/32,S:34.34.34.4/32,S:45.45.45.4/32,S:45.45.45.5/32
                recorded-route: 34.34.34.3[27],45.45.45.4[27],45.45.45.5[0]
                reserved-bandwidth: 2.0Mbps
                rate-limit: 20.0Mbps
                rate-measured- last: 0bps
rate-measured- highest: 0bps
Seperti yang terlihat, jalur yang digunakan sudah established atau dalam artian, kedua router sudah saling membentuk tunneling. Lalu coba disable primary path yang digunakan oleh PE1 yaitu ada pada interface ether1. 
[admin@PE1] > interface ethernet set number=0 disabled=yes
Lalu lakukan verifikasi jalur tunnel manakan yang aktif.
[admin@PE1] > interface traffic-eng monitor numbers=0
              tunnel-id: 1
              primary-path- state: trying-to- establish
              primary-path: PE1-P1- P2-PE3
secondary-path- state: established
              secondary-path: Tunnel1
              active-path: Tunnel1
              active-lspid: 3
              active-label: 30
              explicit-route:
S:23.23.23.3/32,S:34.34.34.3/32,S:34.34.34.4/32,S:45.45.45.4/32,S:45.45.45.5/32
              recorded-route: 34.34.34.3[30],45.45.45.4[30],45.45.45.5[3]
              reserved-bandwidth: 2.0Mbps
              rate-limit: 20.0Mbps
              rate-measured- last: 0bps
rate-measured- highest: 0bps
Terlihat pada verifikasi yang atas bahwa primary path yang tadinya aktif sudah berganti statusnya menjadi trying to establish. Dalam hal ini, router akan terus mencoba untuk mengaktifkan primary tunnel path pada PE1, namun itu akan percuma dikarenakan jalur yang digunakan dan didefinisikan pada hops primary path telah non aktif, dan jalur tersebut tidak dapat digunakan. Apabila gagal, secondary path akan langsung mengantikan jalur utama tersebut dengan jalur miliknya. Lalu coba enable lagi jalur yang tadinya di non aktifkan. Jika sudah, tambahkan static route dari router PE menuju router CE dan pada router CE hanya perlu menggunakan default route. 
[admin@PE1] > /ip route
add dst-address=58.58.58.0/24 gateway=25.25.25.5

[admin@PE3] > /ip route
add dst-address=12.12.12.0/24 gateway=25.25.25.2

[admin@CE1] > /ip route
add dst-address=0.0.0.0/0 gateway=12.12.12.2

[admin@CE2] > /ip route
add dst-address=0.0.0.0/0 gateway=67.67.67.6

[admin@CE3] > /ip route
add dst-address=0.0.0.0/0 gateway=58.58.58.5
Lalu verifikasi pada router CE bahwa jalur yang digunakan adalah tunnel yang tadi telah kita buat pada PE1 dan PE3. Lakukan traceroute untuk pengecekan tunnel yang sudah kita buat. 
[admin@PE1] > tool traceroute 58.58.58.8
# ADDRESS                 RT1 RT2 RT3 STATUS
1 23.23.23.3                 2ms 3ms 2ms <MPLS:L=37,E=0>
2 34.34.34.4                 1ms 1ms 1ms <MPLS:L=37,E=0>
3 25.25.25.5                 1ms 1ms 1ms
4 58.58.58.8                 12ms 1ms 1ms
[admin@PE3] > tool traceroute 12.12.12.1
# ADDRESS           RT1 RT2 RT3 STATUS
1 45.45.45.4           3ms 3ms 3ms <MPLS:L=39,E=0>
2 34.34.34.3           2ms 2ms 2ms <MPLS:L=39,E=0>
3 25.25.25.2           2ms 2ms 2ms
4 12.12.12.1           9ms 3ms 2ms
Dan jalur yang digunakan telah berubah menjadi jalur tunnel. 

Share this