Konfigurasi MPLS ( Multi Protocol Label Switching ) pada Cisco


Assalamu'alaikum wr.wb 
Multiprotocol Label Switching (disingkat menjadi MPLS) adalah teknologi penyampaian paket pada jaringan backbone berkecepatan tinggi. Asas kerjanya menggabungkan beberapa kelebihan dari sistem komunikasi circuit-switched dan packet-switched yang melahirkan teknologi yang lebih baik dari keduanya.

1. MPLS Dasar

Syarat untuk membangun MPLS ada 4, diantaranya adalah :
1. Mengaktifkan CEF ( Cisco Express Forwarding ), tetapi secaradefault fitur ini sudah aktif.
2. Memasang IGP ( Interior Gateway Protocol), bisa menggunakan apapun yang penting bisa komunikasi ke semua router yang menjalankan MPLS.
3. Mengaktifkkan MPLS itu sendiri di global konfig dan di interface.
4. Men-setting MTU tetapi untuk pilihan ini tidak wajib, minimal tidak wajib pada saat kita nge-lab.

Mari kita langsung praktekan untuk membangun MPLS Area dari dasar.

Untuk membangun MPLS ini kita aktifkan dulu routing protocol, disini kita menggunakan routing protocol OSPF, masukkan konfig berikut ini ke dalam R1.


R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#
R1(config-if)#interface lo0
R1(config-if)#ip address 1.1.1.1 255.255.255.255
R1(config-if)#
R1(config-if)#router ospf 10
R1(config-router)#log-adjacency-changes
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 12.12.12.1 0.0.0.0 area 0
    

Masukkan konfig berikut ini ke dalam R2.

R2(config)#interface FastEthernet0/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#
R2(config-if)#interface FastEthernet0/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#
R2(config-if)#interface lo0
R2(config-if)#ip address 2.2.2.2 255.255.255.255
R2(config-if)#
R2(config-if)#router ospf 10
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#network 12.12.12.2 0.0.0.0 area 0
R2(config-router)#network 23.23.23.2 0.0.0.0 area 0
    

Masukan konfig berikut ini ke dalam R3.

R3(config)#interface FastEthernet0/1
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#
R3(config-if)#interface lo0
R3(config-if)#ip address 3.3.3.3 255.255.255.255
R3(config-if)#
R3(config-if)#router ospf 10
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#network 23.23.23.3 0.0.0.0 area 0
    

Chek dari R1 apakah sudah terlihat IP Loopback R2 & R3 ?

R1#show ip route ospf
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/11] via 12.12.12.2, 00:00:37, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/21] via 12.12.12.2, 00:00:37, FastEthernet0/0
     23.0.0.0/24 is subnetted, 1 subnets
O       23.23.23.0 [110/20] via 12.12.12.2, 00:00:37, FastEthernet0/0
R1#

    
    


Terlihat dari hasil routing di R1 sudah bisa melihat loopback R2 & R3, selanjutnya kita tinggal mengaktifkan MPLS nya.

Masukkan konfig berikut ini untuk mengaktifkan MPLS di R1.

R1(config)#ip cef
R1(config)#mpls label protocol ldp
R1(config)#mpls ip
R1(config)#
R1(config)#interface FastEthernet0/0
R1(config-if)#mpls ip
    

Masukkan konfig berikut ini untuk mengaktifkan MPLS di R2

R2(config)#ip cef
R2(config)#mpls label protocol ldp
R2(config)#mpls ip
R2(config)#
R2(config)#interface FastEthernet0/0
R2(config-if)#mpls ip
R2(config-if)#
R2(config-if)#interface FastEthernet0/1
R2(config-if)#mpls ip
    

Masukkan konfig berikut ini untuk mengaktifkan MPLS di R3

R3(config)#ip cef
R3(config)#mpls label protocol ldp
R3(config)#mpls ip
R3(config)#
R3(config)#interface FastEthernet0/1
R3(config-if)#mpls ip
    

Terlihat di konfig untuk MPLS ada ip cef tetapi untuk konfig tersebut secara default sudah aktif, untuk melakukan pengetesan apakah CEF sudah aktif apa belum bisa di coba dengan menampilkan CEF Table dengan perintah show ip cef. Berikut ini hasil dari IP CEF.

R1#show ip cef
Prefix              Next Hop             Interface
0.0.0.0/0           drop                 Null0 (default route handler entry)
0.0.0.0/8           drop
0.0.0.0/32          receive
1.1.1.1/32          receive
2.2.2.2/32          12.12.12.2           FastEthernet0/0
3.3.3.3/32          12.12.12.2           FastEthernet0/0
12.12.12.0/24       attached             FastEthernet0/0
12.12.12.0/32       receive
12.12.12.1/32       receive
12.12.12.2/32       12.12.12.2           FastEthernet0/0
12.12.12.255/32     receive
23.23.23.0/24       12.12.12.2           FastEthernet0/0
127.0.0.0/8         drop
224.0.0.0/4         drop
224.0.0.0/24        receive
240.0.0.0/4         drop
255.255.255.255/32  receive
R1#  
    
    


Untuk MPLS IP di global konfig umumnya sudah diaktifkan juga secara default dan untuk MPLS setiap interface yang menjalankan MPLS harus diaktifkan juga. MPLS membutuhkan suatu protocol untuk mendistribusikan label dan protocol tersebut adalah LDP, protocol label distribusi ada 2 yaitu TDP & LDP, defaultnya adalah LDP

Kita bisa melihat interface mana saja yang mengaktifkan MPLS dan protocol label distribusi menggunakan protocol apa dengan perintah show mpls interfaces.

R2#show mpls interfaces
Interface              	 IP            Tunnel   Operational
FastEthernet0/0        Yes (ldp)     	No       Yes
FastEthernet0/1        Yes (ldp)	No       Yes
R2#   
    
    


Selanjutnya bisa di lihat apakah router yang menjalankan MPLS sudah saling mengenali tetangganya apa belum bisa menggunakan perintah show mpls ldp neighbor.

R2#show mpls ldp neighbor
    Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 2.2.2.2:0
        TCP connection: 1.1.1.1.646 - 2.2.2.2.37128
        State: Oper; Msgs sent/rcvd: 13/13; Downstream
        Up time: 00:05:04
        LDP discovery sources:
          FastEthernet0/0, Src IP addr: 12.12.12.1
        Addresses bound to peer LDP Ident:
          12.12.12.1      1.1.1.1
    Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 2.2.2.2:0
        TCP connection: 3.3.3.3.37144 - 2.2.2.2.646
        State: Oper; Msgs sent/rcvd: 11/11; Downstream
        Up time: 00:03:21
        LDP discovery sources:
          FastEthernet0/1, Src IP addr: 23.23.23.3
        Addresses bound to peer LDP Ident:
          23.23.23.3      3.3.3.3
R2#    
    
    

Terlihat dari hasil perintah di atas terdapat ada 2 peer neighbor dari R2, yaitu ke LDP-ID 1.1.1.1 & ke LDP-ID 3.3.3.3 sedangkan LDP-ID kita adalah 2.2.2.2

Secara default LDP-ID memilih ip loopback tertinggi, kita juga bisa mendifinisikan mau menggunakan LDP-ID berapa dengan menggunakan perintah mpls ldp router-id <interface fisikal><force>

R2(config)#mpls ldp router-id loopback 0 ?
  force  Forcibly change the LDP router id 
  <cr> 
  
R2(config)#    
    

Perintah force digunakan jika MPLS kita sudah terbentuk dan kita memaksa router untuk merubah LDP-Id nya, tetapi jika MPLS belum terbentuk kita bisa menggunakan perintah tersebut tanpa menggunakan force.

Untuk melihat LDP-ID dan juga melihat MPLS tetangganya bisa juga menggunakan perintah show mpls ldp discovery.

R2#show mpls ldp discovery
 Local LDP Identifier:
    2.2.2.2:0
    Discovery Sources:
    Interfaces:
        FastEthernet0/0 (ldp): xmit/recv
            LDP Id: 1.1.1.1:0
        FastEthernet0/1 (ldp): xmit/recv
            LDP Id: 3.3.3.3:0
R2#
    
    

Di IGP memiliki routing table, begitupun di MPLS juga ada label table yang bisa di lihat dengan perintah show mpls forwarding-table.

R1#show mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     2.2.2.2/32		0	Fa0/0      12.12.12.2
17     17          3.3.3.3/32		0	Fa0/0      12.12.12.2
18     Pop tag     23.23.23.0/24	0	Fa0/0      12.12.12.2
R1#
   
    

Terlihat disana untuk menuju ke IP Loopback R3 3.3.3.3/32 di R1 akan menggunakan label 17 dan di lempar ke router MPLS tetangganya di R1 yang lewat interface F0/0 yaitu R2, di R2 akan menggunakan label 17 juga, ada baiknya lakukan perintah yang sama untuk di R2 & di R3.

Untuk melakukan manajemen penggunaan label agar bisa melihat labelnya bisa menggunakan perintah mpls label rang <label awal> <label akhir>.

R1(config)#mpls label range 100 199
% Label range changes will take effect at the next reload.
R1(config)#
    

Tetapi routernya harus di reload dahulu, ada baiknya melakukan perencanaan terlebih dahulu sebelum implement MPLS, apakah mau menggunakan perintah mpls label range apa tidak.

Kita juga bisa melihat path dari tujuan kita akan melewati router MPLS yang mana saja dengan perintah show mpls ldp bindings jika ingin spesifik bisa menambahkan IP tujuan dan lanjutkan detail.

R1#show mpls ldp bindings
  tib entry: 1.1.1.1/32, rev 2
        local binding:  tag: imp-null
        remote binding: tsr: 2.2.2.2:0, tag: 16
  tib entry: 2.2.2.2/32, rev 4
        local binding:  tag: 16
        remote binding: tsr: 2.2.2.2:0, tag: imp-null
  tib entry: 3.3.3.3/32, rev 6
        local binding:  tag: 17
        remote binding: tsr: 2.2.2.2:0, tag: 17
  tib entry: 12.12.12.0/24, rev 10
        local binding:  tag: imp-null
        remote binding: tsr: 2.2.2.2:0, tag: imp-null
  tib entry: 23.23.23.0/24, rev 8
        local binding:  tag: 18
        remote binding: tsr: 2.2.2.2:0, tag: imp-null
R1#show mpls ldp bindings 3.3.3.3 32 detail
  tib entry: 3.3.3.3/32, rev 6
        local binding:  tag: 17
          Advertised to:
          2.2.2.2:0
        remote binding: tsr: 2.2.2.2:0, tag: 17
R1#   
    

Selanjutnya untuk verifikasi kita bisa melakukan ping ke semua loopback di semua router, ping disini untuk melakukan verifikasi IGP.

R1#ping 1.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms
R1#ping 2.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/35/40 ms
R1#ping 3.3.3.3

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/60/80 ms
R1#   
    

Dan ternyata berhasil, anda bisa lakukan hal yang sama untuk R2 & R3, selanjutnya yakinkan bahwa semua router di MPLS area bisa ping MPLS.

R1#ping mpls ipv4 1.1.1.1/32
% Directly connected address not allowed
R1#
R1#ping mpls ipv4 2.2.2.2/32
Sending 5, 100-byte MPLS Echos to 2.2.2.2/32,
     timeout is 2 seconds, send interval is 0 msec:

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/27/32 ms
 Total Time Elapsed 168 ms
R1#
R1#ping mpls ipv4 3.3.3.3/32
Sending 5, 100-byte MPLS Echos to 3.3.3.3/32,
     timeout is 2 seconds, send interval is 0 msec:

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/60/76 ms
 Total Time Elapsed 340 ms

R1#    
    

Terlihat bahwa kita tidak bisa mpls ke diri kita sendiri, selain verifikasi ping MPLS kita juga bisa verifikasi traceroute MPLS, anda juga bisa lakukan hal yang sama untuk R2 & R3.

R1#traceroute mpls ipv4 1.1.1.1/32
% Directly connected address not allowed
R1#
R1#traceroute mpls ipv4 2.2.2.2/32
Tracing MPLS Label Switched Path to 2.2.2.2/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
  0 12.12.12.1 MRU 1500 [Labels: implicit-null Exp: 0]
! 1 12.12.12.2 20 ms
R1#
R1#traceroute mpls ipv4 3.3.3.3/32
Tracing MPLS Label Switched Path to 3.3.3.3/32, timeout is 2 seconds

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
  'L' - labeled output interface, 'B' - unlabeled output interface,
  'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
  'M' - malformed request, 'm' - unsupported tlvs, 'N' - no label entry,
  'P' - no rx intf label prot, 'p' - premature termination of LSP,
  'R' - transit router, 'I' - unknown upstream index,
  'l' - Label switched with FEC change, 'd' - see DDMAP for return code,
  'X' - unknown return code, 'x' - return code 0

Type escape sequence to abort.
  0 12.12.12.1 MRU 1500 [Labels: 17 Exp: 0]
L 1 12.12.12.2 MRU 1504 [Labels: implicit-null Exp: 0] 124 ms
! 2 23.23.23.3 60 ms
R1#    
    

Terlihat traceroute ke semua ip loopback di semua router dan kita tidak bisa traceroute ke dirinya sendiri, anda juga bisa lakukan hal yang sama untuk R2 & R3.

Berikut ini adalah konfig full ( show run ) untuk semua router dari MPLS Dasar.

R1#show run
Building configuration...

Current configuration : 1221 bytes
!
! Last configuration change at 23:32:45 UTC Mon Nov 30 2020
!
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
!
!
no ip domain lookup
no ipv6 cef
!
!
mpls label range 100 199
mpls label protocol ldp
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
 ip address 12.12.12.1 255.255.255.0
 speed auto
 duplex auto
 mpls ip
!
interface FastEthernet0/1
 no ip address
 shutdown
 speed auto
 duplex auto
!
interface GigabitEthernet1/0
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet2/0
 no ip address
 shutdown
 negotiation auto
!
router ospf 10
 network 1.1.1.1 0.0.0.0 area 0
 network 12.12.12.1 0.0.0.0 area 0
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
!
!
end

R1#    
    

Dan berikut ini show run dari R2.

R2#show run
Building configuration...

Current configuration : 1252 bytes
!
! Last configuration change at 23:46:20 UTC Mon Nov 30 2020
!
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
!
!
no ip domain lookup
no ipv6 cef
!
!
mpls label protocol ldp
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet0/0
 ip address 12.12.12.2 255.255.255.0
 speed auto
 duplex auto
 mpls ip
!
interface FastEthernet0/1
 ip address 23.23.23.2 255.255.255.0
 speed auto
 duplex auto
 mpls ip
!
interface GigabitEthernet1/0
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet2/0
 no ip address
 shutdown
 negotiation auto
!
router ospf 10
 network 2.2.2.2 0.0.0.0 area 0
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
!
!
end

R2#    
    

Dan berikut ini show run dari R3.

R3#show run
Building configuration...

Current configuration : 1196 bytes
!
! Last configuration change at 23:26:41 UTC Mon Nov 30 2020
!
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
!
!
no ip domain lookup
no ipv6 cef
!
!
mpls label protocol ldp
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface FastEthernet0/0
 no ip address
 shutdown
 speed auto
 duplex auto
!
interface FastEthernet0/1
 ip address 23.23.23.3 255.255.255.0
 speed auto
 duplex auto
 mpls ip
!
interface GigabitEthernet1/0
 no ip address
 shutdown
 negotiation auto
!
interface GigabitEthernet2/0
 no ip address
 shutdown
 negotiation auto
!
router ospf 10
 network 3.3.3.3 0.0.0.0 area 0
 network 23.23.23.3 0.0.0.0 area 0
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
!
!
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
 stopbits 1
line vty 0 4
 login
!
!
end

R3#    
    

2. MPLS VPN Konsep

Sebelum masuk ke materi MPLS VPN ada baik nya kita tela'ah lebih dalam apa si yang dimaksud dengan VPN di dalam MPLS, dan kenapa di sebut VPN.

Disebut VPN disini karena MPLSs dianggap transparent jadi ujung dengan ujung router bisa saling komunikasi langsung, kita langsung praktek dengan menggunakan topologi yang sudah ada, tetapi disini kita akan menggunakan iBGP dengan ASN 10 yang dipasang di R1 & R3.

Konfigurasi iBGP di R1

R1(config)#router bgp 10
R1(config-router)#neighbor 23.23.23.3 remote-as 10
R1(config-router)#end    
    

Konfigurasi iBGP di R3

R3(config)#router bgp 10
R3(config-router)#neighbor 12.12.12.1 remote-as 10
R3(config-router)#end    
    

Chek di R1 atau di R3 dengan perintah show ip bgp summary

R1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 10
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
23.23.23.3      4           10	5		6		1	0	0	00:01:51		0
R1#    
    

Jika kolom State/PfxRcd terdapat angka berarti sudah betul, selanjutnya lakukan advertise di R1 dengan membuat ip loopback baru.

R1(config)#interface lo10
R1(config-if)#ip address 10.10.10.10 255.255.255.255
R1(config-if)#
R1(config-if)#router bgp 10
R1(config-router)#network 10.10.10.10 mask 255.255.255.255
R1(config-router)#end    
    

Kita sudah advertise ip interface loopback10 di R1 lalu selanjutnya cek di R3 apakah dia sudah nerima hasil advertise-nya dengan perintah show ip bgp.

R3#show ip bgp
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 10.10.10.10/32   12.12.12.1               0    100      0 i
R3#    
    

Ternyata sudah dapat dan hasilnya best sesuai yang diinginkan, selanjutnya kita chek apakah IP tersebut sudah masuk ke dalam routing table di R3 ?

R3#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/32 is subnetted, 1 subnets
B        10.10.10.10 [200/0] via 12.12.12.1, 00:00:49
R3#
    

Terlihat IP-nya sudah ada di dalam di routing table, selanjutnya kita ping dari R3 ke IP loopback10 R1, apakah bisa ?

R3#ping 10.10.10.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R3#    
    

Ternyata hasilnya uncreachable, kita chek dengan traceroute, mentok dimanakah gerangan errornya ?

R3#traceroute 10.10.10.10
Type escape sequence to abort.
Tracing the route to 10.10.10.10
VRF info: (vrf in name/id, vrf out name/id)
  1 23.23.23.2 32 msec 28 msec 24 msec
  2 23.23.23.2 !H  !H  !H  
R3#
    

Ternyata mentoknya di IP 23.23.23.2 dan IP tersebut di miliki oleh R2, sekarang kita chek di R2 apakah ada routing ke 10.10.10.10 ?

R2#show ip route 10.10.10.10
% Network not in table
R2#    
    

Nah ternyata Network not in table, jika dari R3 ingin ping ke R1 solusinya adalah router yang diantara R3 & R1 harus memiliki routing juga dan cara untuk mendapatkan routing di R2, ada 2 cara diantaranya.

1. R1 melakukan redistribute OSPF agar R2 memiliki routing yang didapat lewat OSPF yang sudah di redistribusi, atau
2. R2 pasang static route untuk prefix 10.10.10.10 ke arah R1

Terjadi sangat ribet kan cara seperti itu, atau kita bisa juga menggunakan tunneling antar R1 & R3 lalu buat ulang BGP neighbor lewat jalur tunneling, sekarang kita bikin tunneling dari R1 ke R3.

Konfigurasi interface tunnel di R1

R1(config)#interface tunnel0
R1(config-if)#ip address 13.13.13.1 255.255.255.0
R1(config-if)#tunnel source lo0
R1(config-if)#tunnel destination 3.3.3.3
R1(config-if)#end   
    

Konfigurasi interface tunnel di R3

R3(config)#interface tunnel0
R3(config-if)#ip address 13.13.13.3 255.255.255.0
R3(config-if)#tunnel source lo0
R3(config-if)#tunnel destination 1.1.1.1
R3(config-if)#end    
    

Untuk melakukan verifikasi interface tunnel ini kita bisa chek dengan melihat apakah interfacenya status up/up, bisa di cek dengan menggunakan perintah show interface tunnel 0.

R3#show interfaces tunnel 0
Tunnel0 is up, line protocol is up
  Hardware is Tunnel
  Internet address is 13.13.13.3/24
  MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel source 3.3.3.3 (Loopback0), destination 1.1.1.1
   Tunnel Subblocks:
      src-track:
         Tunnel0 source tracking subblock associated with Loopback0
          Set of tunnels with source Loopback0, 1 member (includes iterators), on interface 
  Tunnel protocol/transport GRE/IP
    Key disabled, sequencing disabled
    Checksumming of packets disabled
  Tunnel TTL 255, Fast tunneling enabled
  Tunnel transport MTU 1476 bytes
  Tunnel transmit bandwidth 8000 (kbps)
  Tunnel receive bandwidth 8000 (kbps)
  Last input never, output never, output hang never
  Last clearing of "show interface" counters 00:00:49
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/0 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     0 packets input, 0 bytes, 0 no buffer
     Received 0 broadcasts (0 IP multicasts)
     0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 packets output, 0 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 unknown protocol drops
     0 output buffer failures, 0 output buffers swapped out
R3#    
    

Yakinkan bahwa baris Tunnel0 is up, line protocol is up, selanjutnya bisa dilakukan pengecekan routing table apakah sudah via tunnel atau belum.

R1#show ip route 13.13.13.3
Routing entry for 13.13.13.0/24
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Routing Descriptor Blocks:
  * directly connected, via Tunnel0
      Route metric is 0, traffic share count is 1
R1#    
    

Ternyata sudah via Tunnel0, selanjutnya bisa melakukan ping ke R3

R1#ping 13.13.13.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.13.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/60/68 ms
R1#    
    

Sip, berhasil sudah ping tunneling selanjutnya aktifkan BGP dan matikan neighbor BGP existing di R1 & R3.

Matikan BGP neighbor existing dan aktifkan peer baru ke R3, pasang di R1.

R1(config)#router bgp 10
R1(config-router)#neighbor 23.23.23.3 shutdown
R1(config-router)#neighbor 13.13.13.3 remote-as 10
R1(config-router)#end
    

Matikan BGP neighbor existing dan aktifkan peer baru ke R1, pasang di R3.

R3(config)#router bgp 10
R3(config-router)#neighbor 12.12.12.1 shutdown
R3(config-router)#neighbor 13.13.13.1 remote-as 10
R3(config-router)#end    
    

Cek apakah BGP peer sudah established ? cek dengan perintah show ip bgp summary

Cek peering status di R1

R1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 10
BGP table version is 2, main routing table version 2
1 network entries using 144 bytes of memory
1 path entries using 80 bytes of memory
1/1 BGP path/bestpath attribute entries using 136 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 360 total bytes of memory
BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
13.13.13.3      4           10       4       5        2    0    0 00:00:22        0
23.23.23.3      4           10       0       0        1    0    0 00:01:27 Idle (Admin)
R1#    
    

Terlihat bahwa peer ke R3 sudah established, kita cek peering status di R3.

R3#show ip bgp summary
BGP router identifier 3.3.3.3, local AS number 10
BGP table version is 4, main routing table version 4
1 network entries using 144 bytes of memory
1 path entries using 80 bytes of memory
1/1 BGP path/bestpath attribute entries using 136 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 360 total bytes of memory
BGP activity 2/1 prefixes, 2/1 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
12.12.12.1      4           10       0       0        1    0    0 00:02:08 Idle (Admin)
13.13.13.1      4           10       6       5        4    0    0 00:01:03        1
R3#    
    

Ternyata di R3 juga sudah established dan di R3 juga sudah menerima 1 prefix dari R1, kita cek apakah prefix ip-nya

R3#show ip bgp
BGP table version is 4, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 10.10.10.10/32   13.13.13.1               0    100      0 i
R3#    
    

Ternyata prefix IP 10.10.10.10 sudah nampil seperti hal sebelumnya, tetapi apakah IP tersebut sudah bisa di ping dari R3 ?

Sebelum ping kita cek routing table terlebih dahulu, akan lewat manakah nantinya jalur ping ke 10.10.10.10

R3#show ip route 10.10.10.10
Routing entry for 10.10.10.10/32
  Known via "bgp 10", distance 200, metric 0, type internal
  Last update from 13.13.13.1 00:02:18 ago
  Routing Descriptor Blocks:
  * 13.13.13.1, from 13.13.13.1, 00:02:18 ago
      Route metric is 0, traffic share count is 1
      AS Hops 0
      MPLS label: none
R3#
R3#show ip route 13.13.13.1
Routing entry for 13.13.13.0/24
  Known via "connected", distance 0, metric 0 (connected, via interface)
  Routing Descriptor Blocks:
  * directly connected, via Tunnel0
      Route metric is 0, traffic share count is 1
R3#
    
    

Ternyata prefix 10.10.10.10 di dapat lewat BGP nya si 13.13.13.1 dan IP 13.13.13.1 via Tunnel0 berarti nantinya prefix 10.10.10.10 jalur ping-nya akan lewat Tunnel0, sekarang kita cek

Ping IP 10.10.10.10 dari R3.

R3#ping 10.10.10.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 60/67/84 ms
R3#    
    

Sudah bisa ping sekarang ke ping 10.10.10.10 yang sebelumnya tidak bisa, karena yang sebelumnya tidak bisa karena di lempar ke R2 dan R2 gatau jalur untuk menuju ke 10.10.10.10, sekarang sudah bisa karena lewat Tunnel.

Sekarang masuk ke MPLS yang dibilang kenapa dibilang MPLS-VPN, kita hapus terlebih dahulu interface tunnel dan peer BGP lewat tunnel.

Hapus int tunnel 0 dan peer BGP ke R3, lalu aktifkan BGP peer yang tadi di shutdown, lakukan di R1

R1(config)#no int tun 0
R1(config)#
R1(config)#router bgp 10
R1(config-router)#no neighbor 13.13.13.3 remote-as 10
R1(config-router)#no neighbor 13.13.13.3 remote-as 1
R1(config-router)#no neighbor 23.23.23.3 shutdown
R1(config-router)#end    
    

Hapus int tunnel 0 dan peer BGP ke R1, lakukan di R3.

R3(config)#no int tun 0
R3(config)#
R3(config)#router bgp 10
R3(config-router)#no neighbor 13.13.13.1 remote-as 10
R3(config-router)#no neighbor 13.13.13.1 remote-as 10
R3(config-router)#no neighbor 12.12.12.1 shutdown   
    

Selanjutnya setelah kita aktifkan kembali yang tadi kita shutdown akan terdapat pop-up.

R3(config-router)#
*Dec  1 00:16:32.227: %BGP-5-ADJCHANGE: neighbor 12.12.12.1 Up
R3(config-router)#    
    

Yang menandakan bahwa peer ke 12.12.12.1 sudah UP BGP Peer-nya di R3.

Sekarang kita cek routing table di R3 apakah ada di list untuk IP 10.10.10.10

R3#show ip route 10.10.10.10
Routing entry for 10.10.10.10/32
  Known via "bgp 10", distance 200, metric 0, type internal
  Last update from 12.12.12.1 00:02:24 ago
  Routing Descriptor Blocks:
  * 12.12.12.1, from 12.12.12.1, 00:02:24 ago
      Route metric is 0, traffic share count is 1
      AS Hops 0
      MPLS label: none
R3#    
    

Ternyata sudah ada, kita coba cek ping apakah sudah bisa.

R3#ping 10.10.10.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
R3#    
    

Masih belum bisa ping juga , kita coba ping menggunakan source.

R3#ping 10.10.10.10 source lo0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
UUUUU
Success rate is 0 percent (0/5)
R3#    
    

Ternyata gagal juga, kita cek label di R2 ada apakah gerangan disana.

R2#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  1.1.1.1/32       3507            Fa0/0      12.12.12.1
17         Pop Label  3.3.3.3/32       4349            Fa0/1      23.23.23.3
R2#    
    

Ternyata labelnya hanya bisa membaca untuk IP 3.3.3.3 & 1.1.1.1 saja, kalau begitu kita ganti BGP peer di R1 & R3 menggunakan loopback saja, jangan menggunakan IP interface fisikal.

Di R1, buang peer yang lama dan pasang peer yang baru yang menggunakan loopback.

R1(config)#router bgp 10
R1(config-router)#no neighbor 23.23.23.3
R1(config-router)#neighbor 3.3.3.3 remote-as 10
R1(config-router)#neighbor 3.3.3.3 update-source lo0
R1(config-router)#end
    

Di R3, buang peer yang lama dan pasang peer yang baru yang menggunakan loopback.

R3(config)#router bgp 10
R3(config-router)#no neighbor 12.12.12.1
R3(config-router)#neighbor 1.1.1.1 remote-as 10
R3(config-router)#neighbor 1.1.1.1 update-source lo0
R3(config-router)#end
    
    

Di R3, cek status BGP Peer.

R3#show ip bgp summary
BGP router identifier 3.3.3.3, local AS number 10
BGP table version is 8, main routing table version 8
1 network entries using 144 bytes of memory
1 path entries using 80 bytes of memory
1/1 BGP path/bestpath attribute entries using 136 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 360 total bytes of memory
BGP activity 3/2 prefixes, 4/3 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4           10       5       4        8    0    0 00:00:34        1
R3#    
    

Ternyata sudah established, selanjutnya cek BGP Table.

R3#show ip bgp
BGP table version is 8, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 10.10.10.10/32   1.1.1.1                  0    100      0 i
R3#    
    

Ternyata sudah ada prefix yang kita tuju, lalu cek routing table.

R3#show ip route 10.10.10.10
Routing entry for 10.10.10.10/32
  Known via "bgp 10", distance 200, metric 0, type internal
  Last update from 1.1.1.1 00:01:18 ago
  Routing Descriptor Blocks:
  * 1.1.1.1, from 1.1.1.1, 00:01:18 ago
      Route metric is 0, traffic share count is 1
      AS Hops 0
      MPLS label: none
R3#
R3#show ip route 1.1.1.1
Routing entry for 1.1.1.1/32
  Known via "ospf 10", distance 110, metric 3, type intra area
  Last update from 23.23.23.2 on FastEthernet0/1, 01:26:55 ago
  Routing Descriptor Blocks:
  * 23.23.23.2, from 1.1.1.1, 01:26:55 ago, via FastEthernet0/1
      Route metric is 3, traffic share count is 1
R3#    
    

Prefix IP 10.10.10.10 di dapat dari 1.1.1.1 dan IP tersebut di miliki oleh R1 dan IP tersebut terdaftar di labelnya R2, sekarang kita coba test ping.

R3#ping 10.10.10.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.10.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 64/79/136 ms
R3#    
    

Alhamdulilah, sekarang sudah bisa dan berhasil.

Dan itulah kesimpulannya kenapa disebut MPLS-VPN, pengertian VPN disini sendiri jalur yang di lewatin seakan akan lewat tunnel dan tunnel itu sendiri menggunakan label dan label tersebut dibuat oleh si MPLS.

Subscribe to receive free email updates:

2 Responses to "Konfigurasi MPLS ( Multi Protocol Label Switching ) pada Cisco"