Senin, 24 Desember 2018

Create BGP Process



Oke, pada pembahasan kali ini saya akan menjelaskan sedikit cara configurasi BGP routing process. Beberapa configurasi sudah di configurasi by default. Tetapi di sini saya akan saya jelaskan untuk menambah pemahaman kalian mengenai BGP network operates.

Example
Router(config)#router bgp 65530
Router(config-router)#bgp router-id 1.1.1.1
Router(config-router)#timers bgp 30 120
Router(config-router)#bgp fast-external-fallover
Router(config-router)#bgp log-neighbor-changes
Sepeti pada materi sebelumnya mengenai BGP Autonomous System, disini kalian bisa pilih mau menggunakan 2-Byte AS Number atau 4-Byte AS Number, dan mau menggunakan method ASdot ataupun ASplain. Pada kali ini saya akan menggunakan 2-Byte AS Number dengan method ASplain.
router bgp autonomous-system-number

Hal yang pertama kali saat kalian configurasi setelah membuat BGP routing adalah set bgp router-id nya. BGP tidak akan running jika tidak memiliki router-id. By default BGP akan memilih interface loopback sebagai router-id nya, jika tidak memiliki interface loopback, BGP akan menggunakan physical interface dengan value IPv4 tertinggi.
bgp router-id ip-address
Pada materi sebelum nya mengenai BGP Introduction, saya sudah jelaskan bagaimana cara BGP melakukan peering session establishment. Dimana BGP akan selalu mengirim keepalive secara periodic sampai batas holdtime nya. By default keepalive pada BGP adalah 60sec dengan holdtime 180sec.
timers bgp keepalive holdtime
 By default, BGP session akan di reset apabila link yang digunakan tidak reachable lagi sampai akhir nya down. dengan mengaktifkan bgp fast-external-fallover akan meng-enable automaticaly reset pada BGP reset
bgp fast-external-fallover
 bgp log-neighbor-changes untuk meng-enable logging dari BGP neighbor status changes seperti up or down, dan BGP reset session. Command ini sangat usefull saat kalian melakukan troubleshooting network dan memastikan network dalam keadaan stable. Seperti BGP reset ataupun neighbor yang down yang mengakibatkan high packet loss ataupun high error rates , hal ini sangat critical dan risky jika tidak menggunakan logging yang seharus nya bisa digunakan untuk investigated.
bgp log-neighbor-changes
Share:

BGP Autonomous System


Apa sih Autonomous System itu ? Autonomous System adalah sebuah network controller yang menjadikan beberapa network menjadi 1 administrative domain yang sama. Dengan adanya Autonomous System ini sangat memudahkan dalam segi routing domain administration dan policy configuration. policy configuration sangat penting untuk memungkinkan BGP untuk lebih efisien lagi dalam melakukan proces routing ke destination network nya.

Routing protocol lain seperti OSPF, EIGRP, RIP, ataupun IS-IS akan melakukan pertukaran routing information dengan BGP melalui redistribute. Berbeda dengan BGP, BGP akan melakukan pertukaran routing information melalui BGP peering sesion. Untuk peering yang masih dalam 1 Autonomous System yang sama di sebut iBGP (internal-BGP), dan untuk berbada Autonomous System di sebut eBGP (external-BGP).

BGP Autonomous System Number Formats

Pada january 2009, autonomous system number yang biasa di sebut AS Number di alokasikan kepada setiap companies menggunakan 2-Byte AS Number dari range 1 sampai 65535 (RFC 4271). Untuk menambah penggunaan nya AS number, Internet Assigned Number Authority atau yang biasa kenal dengan IANA meng alokasikan kembali 4-Byte AS number dari range 65536 sampai 4294967295.

Cisco mempunyai 2 cara menggunakan AS number :

ASPlain

ASplain merupakan decimal value pada AS Number, baik itu dalam 2-Byte AS number maupun 4-Byte AS number. By default cisco akan menggunakan ASplain format dalam show command ataupun reguler expression. Untuk configuration , show command, dan reguler expression format :
  • 2-Byte 1 - 65535
  • 4-Byte 65536 - 4294967295
Example
ASPlain(config)#router bgp 65001
Untuk verifikasi nya kita coba check peering session nya.
R1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 65001
BGP table version is 4, main routing table version 4
3 network entries using 432 bytes of memory
4 path entries using 320 bytes of memory
2/2 BGP path/bestpath attribute entries using 272 bytes of memory
1 BGP AS-PATH entries using 24 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 1048 total bytes of memory
BGP activity 3/0 prefixes, 4/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
12.12.12.2      4        65002       6       6        4    0    0 00:01:01        2
Dari hasil verifikasi diatas bisa dilihat "local AS number 65001" yang berarti BGP ini menggunakan ASPlain method dalam penggunaan AS numbernya.

Lalu mari kita coba verifikasi route apa saja yang di dapat menggunakan reguler expression.
R1#show ip bgp regexp ^65002$
BGP table version is 4, local router ID is 1.1.1.1
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
 *>  2.2.2.2/32       12.12.12.2               0             0 65002 i
 *   12.12.12.0/24    12.12.12.2               0             0 65002 i
ASdot

Dalam ASdot ini 2-Byte AS number tetap dalam decimal value sama seperti ASplain. Yang berbeda ada pada 4-Byte AS number. dimana dia akan menggunakan dot notation, contoh nya 1.169031 AS number ini merupakan dot notation dari 234567 dalam decimal number nya. ketika menggunakan reguler expression pada ASdot format, kita harus menambahkan special character di reguler expression. Kita harus menambahkan backslash (\) untuk memastikan reguler expression tersebut tidak salah.  Untuk configuration , show command, dan reguler expression format :
  • 2-Byte 1 - 65535
  • 4-Byte 1.0 - 65535.65535
Example
ASdot1(config)#router bgp 1.1 
Kita coba verifikasi peering session nya.
ASdot1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 65537
BGP table version is 4, main routing table version 4
3 network entries using 432 bytes of memory
4 path entries using 320 bytes of memory
2/2 BGP path/bestpath attribute entries using 272 bytes of memory
1 BGP AS-PATH entries using 24 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 1048 total bytes of memory
BGP activity 3/0 prefixes, 4/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
12.12.12.2      4        65538       9       9        4    0    0 00:04:30        2
" local AS number 65537 " loh, kok AS format nya menggunakan ASPlain ?
sesuai penjelasan sebelum nya By default cisco menggunakan ASPlain format. Lalu bagaimana cara nya jika kita ingin menggunakan format ASdot ?
Gampang kita cukup mengganti default output format dari ASPlain menjadi ASdot.

ASdot1(config)#router bgp 1.1
ASdot1(config-router)#bgp asnotation dot

Coba kita verifikasi BGP peering session nya.
ASdot1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 1.1
BGP table version is 4, main routing table version 4
3 network entries using 432 bytes of memory
4 path entries using 320 bytes of memory
2/2 BGP path/bestpath attribute entries using 272 bytes of memory
1 BGP AS-PATH entries using 24 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 1048 total bytes of memory
BGP activity 3/0 prefixes, 4/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
12.12.12.2      4          1.2      11      11        4    0    0 00:05:32        2
Dari hasil verifikasi di atas sudah terlihat AS number yang di gunakan sudah menggunakan format ASdot.

Untuk penggunaan reguler expression pada ASdot format ini memiliki perbedaan pada ASPlain format, seperti penjelasan sebelumnya kita harus menambahkan backslash (\) di antara notation as tersebut, hal ini untuk memastikan regexp yang kita gunakan itu benar.
ASdot1#show ip bgp regexp ^1\.2$
BGP table version is 4, local router ID is 1.1.1.1
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
 *>  2.2.2.2/32       12.12.12.2               0             0 1.2 i
 *   12.12.12.0/24    12.12.12.2               0             0 1.2 i
Reserved and Private Autonomous System Numbers

Sama seperti IPv4, AS number juga ada Public dan Private nya, untuk 2-Byte private AS number ada pada range 64512 - 65534, dan 65535 sebagai special AS number. 64496 - 64511 dalam continguos block oleh IANA, 1 - 64495 merupakan public AS number nya. Untuk 4-Byte AS number dari 65536 - 65551 merupakan AS Private, 65552 - 4294967295 adalah AS public nya. 
Share:

Minggu, 23 Desember 2018

Border Gateway Protocol (BGP)

BGP Version 4 Overview

BGP adalah interdomain routing protocol, di design untuk mencegah loop-free routing. BGP di design untuk lebih reliable transport protocol. Dia menggunakan TCP port 179 sebagai transport protocol karena TCP adalah connection-oriented protocol. TCP port 179 di gunakan sebagi destination port, sedang kan source nya menggunakan random port number.

BGP juga di design sebagai multiprotocol extension, hal ini memungkinkan BGP untuk meng-carry Multiple layer 3 protocol (IPv4, IPv6, VPNv4, CLNS), VPLS, dan MPLS. oleh karena itu BGP lebih reliable dalam hal transport protocol.

BGP termasuk sebagi Exterior Gateway Protocol (EGP) dan satu-satu nya EGP sampai saat ini. BGP menggunakan path-vector routing algorithm untuk bertukar network layer reachability information kepada BGP-Speaking. Network reachability information akan di tukar di antara BGP peers sebagin routing update. Network reachability information itu include Network, path attribute, dan list autonomous system number. BGP path-vector routing algorithm adalah kombinasi dari distance-vector dan AS-Path loop detection.

BGP dibagi dalam 2 model, internal BGP (iBGP) dan external BGP(eBGP). iBGP session akan di gunakan ketika dalam sebuah domain network masih menggunakan autonomous system (AS) number yang sama. untuk network yang sudah berbada domain(interdomain) atau berbeda autonomous system (AS) number akan menggunakan eBGP.

BGP di sebut sebagai routing yang mecegah loop karena ketika ada routing update yang ter advertise ke BGP, dia akan melakukan listening, apakah paket tersebut sudah pernah dia terima atau belum dalam 1 autonomous system nya.

By default BGP akan memilih single path sebagai best path nya. Best path di pilih berdasarkan analisis dari path attribute. Setiap path akan meng-carry well-known mandatory, well-known discretionary, dan optional transitive attribute. Ini akan digunakan sebagai best path analisis. BGP best path selection di set untuk mencari route mana yang lebih bagus.

BGP akan lebih banyak membutuhkan configuration di bandingkan dengan routing protocol lainnya. Oleh karena itu setiap configurasi harus benar-benar di pahami.

BGP Router ID

Router ID adalah unique number yang digunakan BGP untuk mengidentifikasi BGP-Speaking peers. BGP router-id memiliki value 32-Bit dan biasa digunakan dengan IPv4. By default, router-id akan dipilih berdasarkan interface loopback yang ada di router. Jika router tidak ada loopback interface, router-id akan dipilih berdasarkan IPv4 dengan value tertinggi yand ada di physical interface.

BGP Speaker and Peer Relationship

Tidak seperti routing protocol lain nya, BGP tidak akan mengirim Hello Packet secara otomatis untuk establishment nya, Oleh karena itu di butuhkanlah BGP peers. Sesaat telah melakukan BGP peers, ada sebuah proses yang di namakan BGP-Speaker. Pada saat BGP-Speaker ini akan meng-aktif TCP connection untuk peer device lainnya. saat proses inilah BGP mulai mengirim Hello packet, tetapi tidak secara otomatis, hanya yang sudah melakukan BGP peers saja yang akan mengirim packet sampai akhirnya BGP established. Saat TCP connection established, BGP akan bertukar route dan memenuhi routing table pada BGP peers lainya. Setelah proses ini selesai, hanya update penting saja yang akan di kirim setelah nya seperti perubahan topolgy atau ada nya routing policy yang di pasang atau di perbarui. Dalam beberapa periodic, BGP akan tetap mengirim keepalive message untuk menjaga BGP tetap established.

BGP peer session establishment

Ketika BGP sedang melakukan proses establishes saat peering session, BGP akan melalui beberapa state ini :


  • Idle
State ini terjadi ketika BGP pertama kali enabled atau setelah BGP di reset. Saat state ini BGP akan menunggu peering configuration. Setelah device menerima TCP connection request / receive dari BGP peers lainnya. Ketika BGP di reset, state akan kembali ke idle dan akan menunggu sampai timer Hello Packet memulai untuk melakukan TCP connection kepada BGP peers lainnya.
  • Connect
BGP sudah mendeteksi BGP peers lainnya, dan memulai establish TCP session dengan local BGP-Speaker.
  • Active
Saat state ini, BGP akan mencoba establish TCP session dengan BGP peers menggunakan Connect Timer. Jika ada kesalahan configurasi, BGP akan ke idle state.
  • OpenSent
Setelah TCP connection established, BGP akan mengirim Open message kepada remote peers. BGP routing proses akan menerima Open message lainnya pada state ini. Jika state ini gagal, maka akan kembali ke Active state.
  • OpenReceive
Pada state ini BGP sudah menerima Open message dari remote peers, dan sudah mengirim packet balasan. BGP akan menunggu sampai mendapat insial untuk mengirim keepalive message. Ketika keepalive message sudah terkirim/diterima BGP akan menuju Established. Ketika BG menerima notification message, BGP akan kembali ke idle state.
  • Established
BGP sudah saling mengirim keepalive message, dan sekarang BGP sudah berada pada Established state. BGP akan memulai mengirim update message jika ada dan akan terus mengirim keepalive message sesuai timernya. Holdtime akan restart sendirinya jika sudah menerima keepalive message. Jika keepalive message tidak terkirim sampai batas Holdtime, maka BGP akan kembali ke Active state. Dan jika BGP menerima notification message, BGP akan kembali ke idle state
Share:

Selasa, 18 Desember 2018

Cisco Discovery Protocol ( CDP )

Cisco Discovery Protocol (CDP)

Apa sih CDP itu ?
CDP adalah sebuah protocol yang di kembangkan oleh Cisco System (Cisco Proprietary). Protocol ini running di layer2 ( Data Link Layer ), Protocol ini merupakan Media-Independent & Network-Independent yang hanya bisa running di Cisco device.

Sesuai namanya 'Discovery' CDP memungkinkan mempelajari device yang terhubung langsung (directly connected). Protocol ini memfasilitasi untuk pengolahan cisco device seperti bagaimana cara device tersebut di konfigurasi, platform apa yang di gunakan, serta device version yang di gunakan. CDP juga memungkinkan digunakan untuk protocol yang berbeda layer seperti On-Demand Routing (ODR).

Prerequisites for using CDP

  • Device harus support Subnetwork Access Protocol (SNAP) header.
  • CDP hanya bisa running di Cisco Device. Untuk other device bisa gunakan Link Local Discovery Protocol (LLDP) yang merupakan protocol multi vendor.
  • CDP tidak support Frame Relay multipoint sub-interfaces

Bagaimana cara CDP bekerja
CDP akan mengirim Advertisements Message secara periodic ke well-known multicast MAC Address 01:00:0C:CC:CC:CC. Device akan discover dengan address tersebut. Dia akan listen to message untuk di pelajarin apakah device lain akan Up ataupun Down.
Information yang di Advertise oleh CDP akan menggunakan Type-Length-Value(TLV). Lalu apa sih TLV itu ?
TLV adalah block of information yang akan di advertise ke CDP. Information yang akan di advertise itu bervariasi seperti Network, Duplex, Capabilities, dll. Kita akan bahas information apa saja yang akan di advertise di bawah.

Bagaiman cara menggunakan CDP ?
By default CDP sudah running pada cisco device. Lalu untuk enable CDP pada cisco device, cukup masukkan command ini
SW1(config)#cdp run
Command tersebut untuk global config, yang berarti semua interface yang ada di device tersebut akan meng enable CDP. Lalu bagaimana jika kita ingin enable CDP hanya di salah satu interface saja? cara cukup mudah.
SW1(config)#interface gigabitEthernet 0/0
SW1(config-if)#cdp run
 Untuk verifikasi apakah CDP sudah enable atau belum, gunakan command.
SW1#show cdp
Global CDP information:
        Sending CDP packets every 60 seconds
        Sending a holdtime value of 180 seconds
        Sending CDPv2 advertisements is  enabled
Dari hasil verifikasi di atas CDP sudah running. By default CDP akan mengirim packet secara periodic 60 detik sekali, dengan holdtime 180 detik. Yang berarti CDP akan mengirim packet sebanyak 3 hingga CDP nya down jika tidak ada packet balasan. untuk konfigurasi timer pada CDP disaran kan selalu gunakan 1:3 antara Hello Packet dan Holdtime.By default CDP yang running versi 2. tidak terlalu banyak perbedaan yang signifikan antara CDP v1 & v2, hanya peningkatan performance dan optimization seperti mismatch detection dan error configuration.

Untuk melihat device apa saja yang directly connected. bisa gunakan command.
SW1#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
                  D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
SW2.cisco.com    Gig 1/1           147             R S I            Gig 1/0
SW2.cisco.com    Gig 0/1           175             R S I            Gig 0/0
SW2.cisco.com    Gig 1/2           166             R S I            Gig 1/1
SW3.cisco.com    Gig 0/2           136             R S I            Gig 0/0
SW4.cisco.com    Gig 0/3           140             R S I            Gig 0/0
SW5.cisco.com    Gig 1/0           173             R S I            Gig 0/2
SW-4.jawdat.com  Gig 0/0           153              S I   WS-C3550- Fas 0/8

Total cdp entries displayed : 7
Dari table diatas bisa di lihat. semua device yang directly connected ke Switch tersebut terdaftar di sini. ini lah information yang di carry oleh TLV untuk CDP.

Untuk melihat yang lebih detail lagi bisa check melalui.
SW1#show cdp entry *
-------------------------
Device ID: SW2.cisco.com
Entry address(es):
  IP address: 192.168.100.201
Platform: Cisco ,  Capabilities: Router Switch IGMP
Interface: GigabitEthernet1/1,  Port ID (outgoing port): GigabitEthernet1/0
Holdtime : 158 sec

Version :
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(4.0.55)E, TEST ENGINEERING ESTG_WEEKLY BUILD, synced to  END_OF_FLO_ISP
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2015 by Cisco Systems, Inc.
Compiled Tue 28-Jul-15 18:52 by sasyamal

advertisement version: 2
VTP Management Domain: 'cisco.com'
Native VLAN: 1
Duplex: half
Management address(es):
  IP address: 192.168.100.201
Information yang di dapat di sini jauh lebih lengkap. Information yang di carry oleh TLV juga include VTP domain, Native VLAN, dan Duplex. Oleh karena itu CDP ini sangat usefull di VTP, DTP, PAgP, dan UDLD.

CDP juga bisa melihat jenis encapsulation apa yang di gunakan. seperti interface Gig0/0 ini.
SW1#show cdp interface
GigabitEthernet0/0 is up, line protocol is up
  Encapsulation ARPA
  Sending CDP packets every 60 seconds
  Holdtime is 180 seconds
 

CDP Support IPv6
Memiliki funtion yang sama dengan CDP yang di gunakan IPv4, seperti contoh nya pada device ini saya pasang IPv6 pada salah satu interface nya.
R1#show cdp entry *
-------------------------
Device ID: R2.cisco.com
Entry address(es):
  IP address: 12.12.12.2
  IPv6 address: 12::2  (global unicast)
  IPv6 address: FE80::C802:7BFF:FE42:1C  (link-local)
Platform: Cisco 7206VXR,  Capabilities: Router
Interface: FastEthernet1/0,  Port ID (outgoing port): FastEthernet1/0
Holdtime : 174 sec

Version :
Cisco IOS Software, 7200 Software (C7200-ADVENTERPRISEK9-M), Version 15.2(4)S6, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Fri 08-Aug-14 04:05 by prod_rel_team

advertisement version: 2
Duplex: full
Management address(es):
  IP address: 12.12.12.2

Benefit
Jadi apa aja sih benefit yang kita dapat jika menggunakan CDP ?
  • Memfasilitasi untuk memanage cisco device dengan men Discovery device yang directly connected
  • Terbantu untuk melakukan troubleshooting karena ada nya Type Length Value (TLV)
  • Memungkinkan system learning yang berbeda layer protocol
Share: