Monday, December 18, 2017

Contoh Sederhana Konfigurasi BGP Conditional Advertisement

Pada catetan ke 100 ane kali ini akan membahas salah satu teknik BGP yang pernah ane dan tim ane pake dalam mendesain routing antar lokasi DC dan DRC, teknik ini bisa juga digunakan untuk menentukan primary/backup link pada BGP Multihoming.

Dalam beberapa kasus dan kondisi dibutuhkan teknik manipulasi routing seperti ini, meskipun sebenernya ada banyak teknik utk mencapai objective tersebut namun menurut ane ini teknik ini terbukti efisien ketika diterapkan di lapangan meskipun contoh yang ane tulis ini terlalu sederhana, tapi tujuan utamanya agar mudah dipahami, pada kenyataanya implementasi di lapangan sedikit lebih rumit sih.

Langsung saja contoh sederhana topologinya ialah seperti dibawah ini.
















Jadi dari gambar diatas objective dari conditional advertisement adalah melakukan tracking terhadap sebuah prefix. Ceritanya ialah R1 (AS100) melakukan peering multihoming ke R2 (AS200) dan R3 (AS300), dalam kondisi normal prefix yang muncul di R2 adalah 172.16.2.0/24 sedangkan prefix 172.16.1.0/24 tidak akan di advertise ke R2.

Tujuan utama dari teknik ini ialah apabila link dari R1 (AS100) dan R3 (AS300) putus, maka R1 akan melakukan advertise prefix 172.16.1.0/24 ke R2 (AS200).

Untuk melakukan hal diatas konfigurasi yang dilakukan di R2 dan R3 hanyalah konfigurasi BGP peering standard saja seperti dibawah ini

Konfigurasi R2
R2#show running-config
Building configuration...

Current configuration : 1269 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
archive
 log config
  hidekeys
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet1/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet2/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
router bgp 200
 no synchronization
 bgp log-neighbor-changes
 neighbor 192.168.12.1 remote-as 100
 neighbor 192.168.12.1 soft-reconfiguration inbound
 no auto-summary
!
ip forward-protocol nd
!
ip bgp-community new-format
!
no ip http server
no ip http secure-server
!
no cdp log mismatch duplex
!
!
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

Konfigurasi R3
R3#show running-config
Building configuration...

Current configuration : 1367 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
archive
 log config
  hidekeys
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
interface Loopback0
 ip address 172.16.2.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 192.168.13.3 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet1/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet2/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
router bgp 300
 no synchronization
 bgp log-neighbor-changes
 network 172.16.2.0 mask 255.255.255.0
 neighbor 192.168.13.1 remote-as 100
 neighbor 192.168.13.1 soft-reconfiguration inbound
 no auto-summary
!
ip forward-protocol nd
!
ip bgp-community new-format
!
no ip http server
no ip http secure-server
!
no cdp log mismatch duplex
!
!
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end


Nah konfigurasi pentingnya dilakukan di R1 yaitu seperti dibawah ini.

Konfigurasi R1
R1#show run
Building configuration...

Current configuration : 1954 bytes
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
no ip icmp rate-limit unreachable
ip cef
!
!
!
!
no ip domain lookup
!
multilink bundle-name authenticated
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
archive
 log config
  hidekeys
!
!
!
!
ip tcp synwait-time 5
!
!
!
!
interface Loopback0
 ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 192.168.13.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet1/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet2/0
 no ip address
 shutdown
 duplex auto
 speed auto
!
router bgp 100
 no synchronization
 bgp log-neighbor-changes
 network 172.16.1.0 mask 255.255.255.0
 neighbor 192.168.12.2 remote-as 200
 neighbor 192.168.12.2 soft-reconfiguration inbound
 neighbor 192.168.12.2 advertise-map AS200-out non-exist-map AS300-in
 neighbor 192.168.13.3 remote-as 300
 neighbor 192.168.13.3 soft-reconfiguration inbound
 neighbor 192.168.13.3 route-map Set-comm in
 no auto-summary
!
ip forward-protocol nd
!
ip bgp-community new-format
ip community-list 1 permit 100:300
!
no ip http server
no ip http secure-server
!
!
ip prefix-list AS300-track seq 5 permit 172.16.2.0/24
!
ip prefix-list Local-prefix seq 5 permit 172.16.1.0/24
no cdp log mismatch duplex
!
!
!
route-map AS300-in permit 10
 match ip address prefix-list AS300-track
 match community 1
!
route-map Set-comm permit 10
 set community 100:300
!
route-map AS200-out permit 10
 match ip address prefix-list Local-prefix
!
!
!
!
control-plane
!
!
!
!
!
!
!
!
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end


VERIFIKASI
Untuk memastikan apakah konfigurasi diatas berjalan atau tidak maka kita harus melakukan verifikasi, ikuti langkah-langkah dibawah ini.

1) Status R1 dalam kondisi normal


2) Status R2 dalam kondisi normal







Perhatikan langkah No.1 dari hasil output diatas dalam kondisi normal prefix 172.16.2.0/24 diterima dari R3 (AS300), status conditional-map juga dalam keadaan Withdraw. Sedangkan pada langkah No.2 kita bisa liat dalam kondisi normal maka R2 (AS200) tidak menerima prefix 172.16.1.0/24.

3) Testing dan Pembuktian
Untuk membuktikan apakah konfigurasi conditional advertisement kita jalan atau tidak coba matikan salah satu interface yang ke R3 (AS300) dari R1 (AS100) atau interface yg mengarah ke R1 (AS100) di R3 (AS300), pada contoh ini ane matikan interface yang mengarah ke R1 (AS100) di R3 (AS300).

Apa yang akan terjadi? Mari kita coba....






Setelah down mari kita cek di R1, tunggu beberapa saat maka seharusnya R1 akan menerima informasi bahwa BGP ke arah R3 (AS300) statusnya down.





4) Cek dan Verifikasi di R1 dan R2 Apakah Conditional Advertisement Running?





Berhasil.....!!! 

Pada kondisi ini session BGP antara R1 dan R3 dalam kondisi down dan prefix 172.16.2.0/24 di removed dari BGP RIB si R1. Nah apabila dilihat dari gambar output diatas status Condition-map saat ini ialah Advertise yang artinya prefix 172.16.1.0/24 saat ini ada di R2.


Semoga contoh sederhana ini bermanfaat yah.

No comments:

Post a Comment