Thursday, 26 January 2017

Lab. 16 Superlab Mikrotik


Assalamualaikum, 

Pada kali ini, saya akan share mengenai materi routing yang meliputi Routing BGP dan juga OSPF. Oke langsung saja, topologi yang kali ini akan saya gunakan adalah sebagai berikut. 

Ada beberapa materi yang ada di dalam topologi tersebut, diantaranya sebagai berikut. 
  1. iBGP dan eBGP
  2. BGP Route Reflector 
  3. BGP Nexthop Selt 
  4. BGP Default Originate 
  5. BGP Redistribute 
  6. OSPF Distribute Default
  7. OSPF Redistribute
  8. Routing Prefix Filter 
  9. OSPF Stub Area
  10. BGP Path Selection 
Konfigurasi

Pertama tentunya lakukan konfigurasi ip address terlebih dahulu pada setiap interface yang ada di router.
[admin@R1] > /ip address
add address=2.2.4.1/30 disabled=no interface=ether1 network=2.2.4.0
add address=2.2.5.1/30 disabled=no interface=ether2 network=2.2.5.0
add address=1.1.1.2/30 disabled=no interface=ether3 network=1.1.1.0
[admin@R2] > /ip address
add address=1.1.1.1/30 disabled=no interface=ether1 network=1.1.1.0
add address=1.1.3.1/30 disabled=no interface=ether2 network=1.1.3.0
add address=1.1.2.2/30 disabled=no interface=ether3 network=1.1.2.0
[admin@R3] > /ip address
add address=2.2.6.1/30 disabled=no interface=ether1 network=2.2.6.0
add address=2.2.7.1/30 disabled=no interface=ether2 network=2.2.7.0
add address=1.1.3.2/30 disabled=no interface=ether3 network=1.1.3.0
[admin@R4] > /ip address
add address=2.2.8.1/30 disabled=no interface=ether1 network=2.2.8.0
add address=1.1.5.1/30 disabled=no interface=ether2 network=1.1.5.0
add address=2.2.4.2/30 disabled=no interface=ether3 network=2.2.4.0
[admin@R5] > /ip address
add address=3.3.8.1/30 disabled=no interface=ether1 network=3.3.8.0
add address=1.1.5.2/30 disabled=no interface=ether2 network=1.1.5.0
add address=2.2.5.2/30 disabled=no interface=ether3 network=2.2.5.0
[admin@R6] > /ip address
add address=3.3.9.1/30 disabled=no interface=ether1 network=3.3.9.0
add address=1.1.7.1/30 disabled=no interface=ether3 network=1.1.7.0
add address=2.2.6.2/30 disabled=no interface=ether2 network=2.2.6.0
[admin@R7] > /ip address
add address=2.2.9.1/30 disabled=no interface=ether1 network=2.2.9.0
add address=1.1.7.2/30 disabled=no interface=ether3 network=1.1.7.0
add address=2.2.7.2/30 disabled=no interface=ether2 network=2.2.7.0
[admin@R8] > /ip address
add address=1.1.8.2/30 disabled=no interface=ether4 network=1.1.8.0
add address=2.2.8.2/30 disabled=no interface=ether1 network=2.2.8.0
add address=3.3.8.2/30 disabled=no interface=ether2 network=3.3.8.0
add address=4.4.9.1/30 disabled=no interface=ether3 network=4.4.9.0
[admin@R9] > /ip address
add address=1.1.9.2/30 disabled=no interface=ether4 network=1.1.9.0
add address=4.4.9.2/30 disabled=no interface=ether3 network=4.4.9.0
add address=2.2.9.2/30 disabled=no interface=ether2 network=2.2.9.0
add address=3.3.9.2/30 disabled=no interface=ether1 network=3.3.9.0
[admin@R10] > /ip address
add address=1.1.2.1/30 disabled=no interface=ether1 network=1.1.2.0
Setelah itu, tambahkan routing BGP untuk setiap router yang berada di dalam AS. Konfigurasi instance BGP yang ada di router terlebih dahulu, setelah itu baru konfigurasi BGP peer dan BGP Network. Saya akan melakukan konfigurasi dari router yang berada paling atas terlebih dahulu, baru router yang lainnya.
[admin@R11] > /routing bgp instance
set default as=1 client-to-client-reflection=yes cluster-id=11.11.11.11 name=default redistribute-connected=yes router-id=11.11.11.11
[admin@R8] > /routing bgp instance
set default as=1 client-to-client-reflection=yes cluster-id=8.8.8.8 redistribute-connected=yes router-id=8.8.8.8
[admin@R9] > /routing bgp instance
set default as=1 client-to-client-reflection=yes cluster-id=9.9.9.9 redistribute-connected=yes router-id=9.9.9.9
[admin@R4] > /routing bgp instance
set default as=2 client-to-client-reflection=yes cluster-id=4.4.4.4 redistribute-connected=yes router-id=4.4.4.4
[admin@R5] > /routing bgp instance
set default as=2 client-to-client-reflection=yes cluster-id=5.5.5.5 redistribute-connected=yes router-id=5.5.5.5
[admin@R6] > /routing bgp instance
set default as=3 client-to-client-reflection=yes cluster-id=6.6.6.6 redistribute-connected=yes router-id=6.6.6.6
[admin@R7] > /routing bgp instance
set default as=3 client-to-client-reflection=yes cluster-id=7.7.7.7 redistribute-connected=yes router-id=7.7.7.7
[admin@R1] > /routing bgp instance
set default as=2 client-to-client-reflection=yes cluster-id=1.1.1.1 redistribute-connected=yes router-id=1.1.1.1
[admin@R3] > /routing bgp instance
set default as=3 client-to-client-reflection=yes cluster-id=3.3.3.3 redistribute-connected=yes router-id=3.3.3.3
Setelah konfigurasi BGP instance di setiap router, selanjutnya tambahkan peering untuk setiap router. Lalu advertise network yang ada di router tersebut.
[admin@R11] > /routing bgp peer
add  instance=default name=peer1 remote-address=1.1.9.2 remote-as=1 route-reflect=yes
add instance=default name=peer2 remote-address=1.1.8.2 remote-as=1  route-reflect=yes
[admin@R11] > /routing bgp network
add disabled=no network=1.1.9.0/30
add disabled=no network=1.1.8.0/30
[admin@R8] > /routing bgp peer
add instance=default name=peer1 nexthop-choice=force-self remote-address=1.1.8.1 remote-as=1
add instance=default name=peer2 nexthop-choice=default remote-address=2.2.8.1 remote-as=2
add instance=default name=peer3 nexthop-choice=default remote-address=3.3.8.1 remote-as=2
add instance=default name=peer4 nexthop-choice=force-self remote-address=4.4.9.2 remote-as=1
[admin@R8] > /routing bgp network
add disabled=no network=1.1.8.0/30
add disabled=no network=2.2.8.0/30
add disabled=no network=3.3.8.0/30
add disabled=no network=4.4.9.0/30
[admin@R9] > /routing bgp peer
add instance=default name=peer1 nexthop-choice=force-self remote-address=1.1.9.1 remote-as=1
add instance=default name=peer2 nexthop-choice=force-self remote-address=4.4.9.1 remote-as=1
add instance=default name=peer3 nexthop-choice=default remote-address=3.3.9.1 remote-as=3
add instance=default name=peer4 nexthop-choice=default remote-address=2.2.9.1 remote-as=3
[admin@R9] > /routing bgp network
add disabled=no network=1.1.9.0/30
add disabled=no network=4.4.9.0/30
add disabled=no network=2.2.9.0/30
add disabled=no network=3.3.9.0/30
[admin@R4] > /routing bgp peer
add instance=default name=peer1 nexthop-choice=force-self remote-address=2.2.8.2 remote-as=1
add instance=default name=peer3 nexthop-choice=force-self remote-address=2.2.4.1 remote-as=2
add instance=default name=peer2 nexthop-choice=default  remote-address=1.1.5.2 remote-as=2
[admin@R4] > /routing bgp network
add disabled=no network=2.2.8.0/30 synchronize=yes
add disabled=no network=1.1.5.0/30 synchronize=yes
add disabled=no network=2.2.4.0/30 synchronize=yes
[admin@R5] > /routing bgp peer
add instance=default name=peer1 remote-address=3.3.8.2 remote-as=1
add instance=default name=peer3 nexthop-choice=force-self remote-address=2.2.5.1 remote-as=2
add instance=default name=peer2 remote-address=1.1.5.1 remote-as=2
[admin@R5] > /routing bgp network
add disabled=no network=3.3.8.0/30
add disabled=no network=1.1.5.0/30
add disabled=no network=2.2.5.0/30
[admin@R6] > /routing bgp peer
add instance=default name=peer1 nexthop-choice=force-self remote-address=3.3.9.2 remote-as=1
add instance=default name=peer2 remote-address=1.1.7.2 remote-as=3
add instance=default name=peer3 nexthop-choice=force-self remote-address=2.2.6.1 remote-as=3
[admin@R6] > /routing bgp network
add disabled=no network=3.3.9.0/30
add disabled=no network=1.1.7.0/30
add disabled=no network=2.2.6.0/30
[admin@R7] > /routing bgp peer
add instance=default name=peer1 nexthop-choice=force-self remote-address=2.2.9.2 remote-as=1
add instance=default name=peer2 remote-address=1.1.7.1 remote-as=3
add instance=default name=peer3 remote-address=2.2.7.1 remote-as=3 
[admin@R7] > /routing bgp network
add disabled=no network=2.2.9.0/30
add disabled=no network=1.1.7.0/30
add disabled=no network=2.2.7.0/30
[admin@R1] > /routing bgp peer
add instance=default name=peer1 remote-address=2.2.5.2 remote-as=2 route-reflect=yes
add instance=default name=peer2 remote-address=2.2.4.2 remote-as=2 route-reflect=yes
[admin@R1] > /routing bgp network
add disabled=no network=2.2.5.0/30
add disabled=no network=2.2.4.0/30
[admin@R3] > /routing bgp peer
add instance=default name=peer1 remote-address=2.2.6.2 remote-as=3 route-reflect=yes
add instance=default name=peer2 remote-address=2.2.7.2 remote-as=3 route-reflect=yes
[admin@R3] > /routing bgp network
add disabled=no network=2.2.6.0/30
add disabled=no network=2.2.7.0/30
 Seperti yang terlihat pada konfigurasi di atas, kita akan menerapkan konsep BGP Multihoming pada mikrotik, dimana ketika ada salah satu link yang mati, maka router akan mencari link lainnya agar jaringan tersebut tetap bisa up dan jalur yang lainnya akan digunakan sebagai backup link. 


Konsep BGP Multihoming sebenarnya tidak jauh berbeda dengan konsep fail over, dan saya juga kurang begitu tau mengenai konsep multihoming ini hehehe Yang pasti apabila ada 2 link untuk menuju ke sebuah tujuan dan kedua link tersebut sudah terbentung peering, maka routing BGP hanya akan memilih salah satu link sebagai jalur utama. Dengan begitu, konsep multihoming tidak bisa dikatakan sebagai load balancing yang dimiliki oleh BGP.

Lalu pada konfigurasi di atas juga terlihat ada tambahan route reflector dan juga nexthop self. Route reflector merupakan sebuah fitur yang digunakan oleh router yang berada dalam AS yang sama dimana setiap router yang ada di dalam AS tersebut tidak perlu melakukan peering terhadap setiap router yang ada di dalam AS yang sama.

Seperti yang kita ketahui sebelumnya bahwa beberapa router yang berada dalam AS yang sama apabila ingin saling berhubungan maka harus melakukan peering kepada setiap router tersebut atau jaringan tersebut harus full mesh. Dengan begini, tentunya akan semakin pusing dan lelah untuk melakukan konfigurasi kepada setiap router tersebut. Oleh karena itu, dibentuklah route reflector dimana salah satu router atau beberapa router di dalam suatu AS akan bertindak ibarat seorang pemimpin. Jadi router yang ada di AS tersebut hanya perlu melakuka peering dengan route reflector tersebut.

Lalu untuk nexthop self sendiri, merupakan fitur yang memaksa router lainnya untuk melewati dirinya sebelum menuju ke router lainnya. Dalam hal ini, ada kasus dimana sebuah router akan menggunakan gateway yang bahkan tidak directly connect dengan dirinya. Maka nexthop self harus di terapkan pada router yang berada di antara kedua router tersebut.

Setelah itu ada lagi distribute default. Distribute default sendiri merupakan protocol routing yang memungkinkan BGP Speaker memberikan default route kepada bgp peer. Hal ini memungkinkan bgp peer tidak perlu memiliki informasi untuk keluar jalur yang dia miliki, namun untuk keluar bisa menggunakan default route. 

Oke langsung saja menuju ke konfigurasi selanjutnya yaitu konfigurasi OSPF pada R1,R2,R3, dan R10. Lalu advertise network yang terhubung dengan setiap router tersebut.
[admin@R1] > /routing ospf instance
set redistribute-bgp=as-type-1 redistribute-connected=as-type-1 router-id=1.1.1.1
[admin@R1] > /routing ospf network
add area=backbone disabled=no network=1.1.1.0/30
[admin@R2] > /routing ospf instance
set redistribute-connected=as-type-1 router-id=2.2.2.2
[admin@R2] > /routing ospf area
add area-id=0.0.0.1 name=area1 type=stub
[admin@R2] > /routing ospf network
add area=backbone disabled=no network=1.1.1.0/30
add area=backbone disabled=no network=1.1.3.0/30
add area=area1 disabled=no network=1.1.2.0/30
[admin@R3] > /routing ospf instance
set redistribute-bgp=as-type-1 redistribute-connected=as-type-1 router-id=3.3.3.3
[admin@R3] > /routing ospf network
add area=backbone disabled=no network=1.1.3.0/30
[admin@R10] > /routing ospf instance
set redistribute-connected=as-type-1 router-id=10.10.10.10
[admin@R10] > /routing ospf area
add area-id=0.0.0.1 name=area1 type=stub
[admin@R10] > /routing ospf network
add area=area1 disabled=no network=1.1.2.0/30
Agar R10 dapat berkomunikasi dengan router BGP, tambahkan firewall nat pada R2.
[admin@R2] > /ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1
add action=masquerade chain=srcnat disabled=no out-interface=ether2
Lalu cek routing table pada R10. 
[admin@R10] > ip route pr
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 0 ADo  0.0.0.0/0                                         1.1.2.2                 110
 1 ADo  1.1.1.0/30                                       1.1.2.2                 110
 2 ADC  1.1.2.0/30             1.1.2.1                ether1                  0
 3 ADo  1.1.3.0/30                                        1.1.2.2                 110
Terlihat pada routing table R10, bahwa tidak ada advertise network yang dikirimkan oleh router BGP dan sampai kepadanya. Hal ini dikarenakan pada konsep stub area, external route hasil redistribute tidak akan di terima oleh stub area. 

Oke selanjutnya kita akan memanipulasi jaringan BGP dan OSPF diatas. Pertama kita akan melakukan traceroute terlebih dahulu pada R10 menuju ke address 8.1 dan 9.1 yang dimiliki oleh R11. 
[admin@R10] > tool traceroute 1.1.9.1
 # ADDRESS                                 RT1   RT2   RT3   STATUS
 1 1.1.2.2                                      17ms  1ms   1ms
 2 1.1.3.2                                       2ms   2ms   2ms
 3 2.2.6.2                                       2ms   2ms   2ms
 4 3.3.9.2                                       5ms   3ms   2ms 
 5 1.1.9.1                                       3ms   3ms   3ms

[admin@R10] > tool traceroute 1.1.8.1
 # ADDRESS                                 RT1   RT2   RT3   STATUS
 1 1.1.2.2                                       1ms   1ms   1ms
 2 1.1.1.2                                      21ms  1ms   1ms 
 3 2.2.4.2                                       2ms   2ms   2ms 
 4 2.2.8.2                                       4ms   2ms   4ms
 5 1.1.8.1                                       3ms   3ms   2ms 
Berdasarkan hasil traceroute diatas, diketahui bahwa untuk menuju address 8.1, harus melewati router router yang berada di daerah kiri dan untuk menuju address 9.1, harus melewati router router yang berada di daerah kanan. Selanjutnya kita akan melakukan manipulasi jalur atau dalam mindah jalur menuju jalur yang kita kehendaki. 

Ada beberapa pertimbangan pemilihan jalur pada bgp ( Modul BGP ), dan pada kali ini saya akan menggunakan pemilihan jalur menggunakan local preference. 

Untuk merubahnya, kita dapat menggunakan routing filtering dengan option out maupun in. Pada kali ini saya akan menggunakan option in. 
[admin@R1] > /routing filter
add action=discard chain=ospf-in disabled=no invert-match=no prefix=0.0.0.0/0 protocol=ospf
add action=accept chain=bgp-in disabled=no invert-match=no set-bgp-local-pref=110
Mengapa ada filter untuk prefix 0.0.0.0/0 pada routing filter? Itu merupakan routing filter yang saya buat sebelumnya, tapi saya lupa untuk membahasnya tadi hehehe. Action discard untuk prefix 0.0.0.0/0 digunakan agar router tidak mendapatkan default route dari ospf neighbors. Lalu apa jadinya jika default route tersebut ada di dalam R1? Nanti akan saya bahas. Refresh bgp peer lalu lakukan verifikasi. 
[admin@R1] > routing bgp peer refresh-all
[admin@R1] > ip route print detail where dst-address=1.1.5.0/30
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
 6 ADb  dst-address=1.1.5.0/30 gateway=2.2.5.2 gateway-status=2.2.5.2 reachable via  ether2 distance=200 scope=40 target-scope=30 bgp-local-pref=110 bgp-origin=igp received-from=peer1

 7  Db  dst-address=1.1.5.0/30 gateway=2.2.4.2 gateway-status=2.2.4.2 reachable via  ether1 distance=200 scope=40 target-scope=30 bgp-local-pref=100 bgp-origin=igp received-from=peer2
Dapat kita lihat pada hasil verifikasi diatas bahwa local preference untuk peer yang sudah kita tambahkan filter tersebut sudah terganti. Lalu lakukan verifikasi kembali dari R10 menuju R11.
 [admin@R10] > tool traceroute 1.1.9.1
 # ADDRESS                                 RT1   RT2   RT3   STATUS
 1 1.1.2.2                                       1ms   1ms   1ms                
 2 1.1.1.2                                       1ms   1ms   1ms
 3 2.2.5.2                                       1ms   2ms   3ms
 4 2.2.8.2                                       3ms   2ms   2ms
 5 4.4.9.2                                       3ms   2ms   2ms
 6 1.1.9.1                                       5ms   3ms   3ms
Maka jalur yang digunakan telah berubah. Lalu selanjutnya kita akan mencoba bagaimana jadinya dalam sebuah router ada 3 default route yang masing masing memiliki gateway berbeda dan juga salah satunya merupakan routing protocol yang berbeda. Konfigurasi instance terlebih dahulu pada R4, R5 untuk mengadvertise default route. Untuk default route OSPF, hanya perlu menghapus filter yang ada pada R1. 
[admin@R4] > /routing bgp peer
set peer3 default-originate=always
[admin@R5] > routing bgp peer
set peer3 default-originate=always
 Lalu hapus route filter pada R1.
[admin@R1] > routing filter remove numbers=0
Setelah itu lakukan verifikasi pada R1 mengenai default route.
[admin@R1] > ip route print detail where dst-address=0.0.0.0/0
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit
 0 ADo  dst-address=0.0.0.0/0 gateway=1.1.1.1 gateway-status=1.1.1.1 reachable via  ether3 distance=110 scope=20 target-scope=10 ospf-metric=11 ospf-type=external-type-1

 1  Db  dst-address=0.0.0.0/0 gateway=2.2.5.2 gateway-status=2.2.5.2 reachable via  ether2 distance=200 scope=40 target-scope=30 bgp-local-pref=110 bgp-origin=igp received-from=peer1

 2  Db  dst-address=0.0.0.0/0 gateway=2.2.4.2 gateway-status=2.2.4.2 reachable via  ether1 distance=200 scope=40 target-scope=30 bgp-local-pref=100 bgp-origin=igp received-from=peer2
Terlihat pada hasil verifikasi diatas bahwa default route yang digunakan adalah default route yang diberikan oleh R2 yaitu OSPF default route. Coba lakukan traceroute dari R1 menuju R8. 
[admin@R1] > tool traceroute 2.2.8.2
 # ADDRESS                                 RT1   RT2   RT3   STATUS
 1 2.2.4.2                                       2ms   1ms   4ms
 2 2.2.8.2                                       3ms   3ms   2ms
Terlihat pada hasil verifikasi diatas bahwa jalur yang di terapkan tetaplah jalur BGP. Walaupun default route sudah dibuat dan ternyata OSPF yang active, namun route BGP tetap akan digunakan. Mengapa default route OSPF yang active? Hal ini dikarenakan route OSPF memiliki distance yang rendah di banding dengan BGP, dan sesuai dengan skema routing yaitu route yang memiliki distance lebih rendah, maka akan lebih di prioritaskan.

Share this