Difference between revisions of "Mikrotik: BGP Dua Link main backup - dengan as-path PREPEND"

From OnnoWiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 27: Line 27:
 
==Sambungan Fisik==
 
==Sambungan Fisik==
  
ISP1
+
  ISP1 e0 -> ISP3 e0
+
  ISP1 e1 -> ISP2 e1
 
+
  ISP2 e0 -> ISP3 e1
  ISP1 eth0 -> ISP3 eth0
 
  ISP1 eth1 -> ISP2 eth1
 
  ISP2 eth0 -> ISP3 eth1
 
 
   
 
   
  ISP1 eth2 10.100.100.1/24
+
  ISP1 e2 10.100.100.1/24
  ISP1 eth3 10.100.200.1/24
+
  ISP1 e3 10.100.200.1/24
 
   
 
   
  ISP2 eth2 10.10.10.1/24
+
  ISP2 e2 10.10.10.1/24
  ISP2 eth3 10.10.20.1/24
+
  ISP2 e3 10.10.20.1/24
 
   
 
   
  ISP3 eth2 10.1.1.1/24
+
  ISP3 e2 10.1.1.1/24
  ISP3 eth3 10.1.2.1/24
+
  ISP3 e3 10.1.2.1/24
  
  
Line 48: Line 45:
  
 
ISP1
 
ISP1
 
+
  /ip address add address=192.168.1.1/24 interface=ether1
  /ip address add interface=ether1 address=192.168.1.1/24
+
  /ip address add address=192.168.3.1/24 interface=ether2
  /ip address add interface=ether2 address=192.168.3.1/24
+
  /ip address add address=10.100.100.1/24 interface=ether3
  /ip address add interface=ether3 address=10.100.100.1/24
+
  /ip address add address=10.100.200.1/24 interface=ether4
  /ip address add interface=ether3 address=10.100.200.1/24
 
  
 
ISP2
 
ISP2
 
+
  /ip address add address=192.168.2.1/24 interface=ether1
  /ip address add interface=ether1 address=192.168.2.1/24
+
  /ip address add address=192.168.3.2/24 interface=ether2
  /ip address add interface=ether2 address=192.168.3.2/24
+
  /ip address add address=10.10.10.1/24 interface=ether3
  /ip address add interface=ether3 address=10.10.10.1/24
+
  /ip address add address=10.10.20.1/24 interface=ether4
  /ip address add interface=ether4 address=10.10.20.1/24
 
  
 
ISP3
 
ISP3
 
+
  /ip address add address=192.168.1.2/24 interface=ether1
  /ip address add interface=ether1 address=192.168.1.2/24
+
  /ip address add address=192.168.2.2/24 interface=ether2
  /ip address add interface=ether2 address=192.168.2.2/24
+
  /ip address add address=10.1.1.1/24 interface=ether3
  /ip address add interface=ether3 address=10.1.1.1/24
+
  /ip address add address=10.1.2.1/24 interface=ether4
  /ip address add interface=ether4 address=10.1.2.1/24
 
 
 
  
 
==BGP Peering==
 
==BGP Peering==
Line 80: Line 73:
 
  #add BGP peers
 
  #add BGP peers
 
  /routing bgp peer
 
  /routing bgp peer
 +
add name=toISP2 remote-address=192.168.3.2 remote-as=20
 
  add name=toISP3 remote-address=192.168.1.2 remote-as=30
 
  add name=toISP3 remote-address=192.168.1.2 remote-as=30
  add name=toISP2 remote-address=192.168.3.2 remote-as=20
+
  # jika ingin redistribute default route ke client yang spesifik
 
+
# add name=toISP2 remote-address=192.168.3.2 remote-as=20 default-originate=if-installed
 +
# add name=toISP3 remote-address=192.168.1.2 remote-as=30 default-originate=if-installed
 +
#
 +
# advertize routing
 +
#
 +
/routing bgp network
 +
add network=10.100.100.0/24 synchronize=no
 +
add network=10.100.200.0/24 synchronize=no
  
 
ISP2:
 
ISP2:
Line 92: Line 93:
 
  add name=toISP1 remote-address=192.168.3.1 remote-as=10
 
  add name=toISP1 remote-address=192.168.3.1 remote-as=10
 
  add name=toISP3 remote-address=192.168.2.2 remote-as=30
 
  add name=toISP3 remote-address=192.168.2.2 remote-as=30
 
+
#
 
+
# advertize routing
==Main / Backup Link Setup di ISP3==
+
#
 
+
/routing bgp network
Lakukan
+
add network=10.10.10.0/24 synchronize=no
* accept network kita sendiri
+
add network=10.10.20.0/24 synchronize=no
* drop semua tabel IP lainnya, karena kita tidak mau menjadi transit provider
 
* BGP AS prepend - menaikan AS path ke salah satu ISP (disini ISP1)
 
 
 
  
 
ISP3:
 
ISP3:
  
  enable
+
  #set our AS number
  configure terminal
+
  /routing bgp instance set default as=30
  router bgp 30
+
#add BGP peers
  bgp router-id 192.168.1.2
+
/routing bgp peer
    ! address-family ipv4 unicast
+
add name=toISP1 remote-address=192.168.1.1 remote-as=10
    network 10.1.1.0 mask 255.255.255.0
+
add name=toISP2 remote-address=192.168.2.1 remote-as=20
    network 10.1.2.0 mask 255.255.255.0
+
#
    neighbor 192.168.1.1 remote-as 10
+
# advertize routing
    neighbor 198.168.1.1 route-map PREPEND out
+
#
    neighbor 192.168.2.1 remote-as 20
+
/routing bgp network
    neighbor 192.168.1.1 activate
+
add network=10.1.1.0/24 synchronize=no
    neighbor 192.168.2.1 activate
+
add network=10.1.2.0/24 synchronize=no
    route-map PREPEND permit 10
 
    set as-path prepend 30 30 30 30 30
 
  end
 
 
 
  
 +
==Main/Backup link setup==
  
 +
===ISP3===
  
 
Lakukan
 
Lakukan
Line 128: Line 124:
 
* BGP AS prepend - menaikan AS path
 
* BGP AS prepend - menaikan AS path
  
Outgoing filter ke ISP1:
+
# setup routing filter
 
+
#
 +
/routing bgp peer
 +
set toISP1 in-filter=isp1-in out-filter=isp1-out
 +
set toISP2 in-filter=isp2-in out-filter=isp2-out
 +
#
 +
# Outgoing filter ke ISP1:
 +
#
 
  /routing filter
 
  /routing filter
 
  #accept our networks
 
  #accept our networks
Line 136: Line 138:
 
  #discard the rest
 
  #discard the rest
 
  add chain=isp1-out action=discard
 
  add chain=isp1-out action=discard
 
+
#
Outgoing filter ke ISP2:
+
# Outgoing filter ke ISP2:
 
+
#
 
  /routing filter
 
  /routing filter
 
  #accept our networks and prepend AS path three times
 
  #accept our networks and prepend AS path three times
Line 145: Line 147:
 
  #discard the rest
 
  #discard the rest
 
  add chain=isp2-out action=discard
 
  add chain=isp2-out action=discard
 
+
#
ISP1 menjadi main
+
# ISP1 menjadi main
ISP2 menjadi backup
+
# ISP2 menjadi backup
 
+
#
 
  /routing filter
 
  /routing filter
 
  add chain=isp1-in action=discard
 
  add chain=isp1-in action=discard
 
  add chain=isp2-in action=discard
 
  add chain=isp2-in action=discard
 
+
#
 
  /ip route
 
  /ip route
 
  add gateway=192.168.1.1 check-gateway=ping
 
  add gateway=192.168.1.1 check-gateway=ping
Line 158: Line 160:
  
  
 +
==Load sharing setup==
 +
 +
 +
Teknik melakukan multihoming / download sharing
 +
 +
[[File:Bgp-multihoming-download-sharing.png|center|400px|thumb]]
 +
 +
===ISP3===
  
==Cek==
+
Disini salah satu network kita di prepend yang berbeda antara ISP1 dan ISP2
  
  ! perhatikan AS 30 di tambahkan 5x ke routing ke arah AS 10
+
  # Outgoing filter ke ISP1:
  !
+
#
  show ip bgp
+
/routing filter
 +
#accept our networks and prepend second network
 +
add chain=isp1-out prefix=10.1.1.0/24 action=accept
 +
add chain=isp1-out prefix=10.1.2.0/24 action=accept  set-bgp-prepend=3
 +
#discard the rest
 +
add chain=isp1-out action=discard
 +
#
 +
# Outgoing filter ke ISP2:
 +
#
 +
/routing filter
 +
#accept our networks and prepend first network
 +
add chain=isp2-out prefix=10.1.1.0/24 action=accept set-bgp-prepend=3
 +
  add chain=isp2-out prefix=10.1.2.0/24 action=accept
 +
#discard the rest
 +
  add chain=isp2-out action=discard
  
 +
Konfigurasi di atas hanya untuk outgoing packet dari network kita. Ada beberapa pilihan,
  
show ip route
+
* biarkan gateway menggunakan konfigurasi main/backup - ini akan menyebabkan hanya satu link yang digunakan dan routing akan asymetric.
show ip bgp 10.100.1000.0/24
+
* gunakan policy routing untuk memaksa outgoing packet menggunakan link yang sama dengan dengan incoming
show ip bgp neighbors 192.168.2.2 advertised-routes
+
* Menggnakan BGP untuk menerima full routing table dari ke dua peer dan menggunakan BGP attribute untuk melakukan routing melalui satu sambungan / link dan sebagian lagi melalui link lainnya. Contoh, traffic local / nasional bisa dikirim menggunakan ISP1 dan Internasional menggunakan ISP2.
show ip bgp neighbor 192.168.1.1 routes
 
show bgp ipv4 unicast neighbors
 
show bgp ipv4 unicast summary
 
  
 
==Referensi==
 
==Referensi==
  
* https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/xe-16/irg-xe-16-book/configuring-a-basic-bgp-network.html
 
 
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 +
  
 
==Pranala Menarik==
 
==Pranala Menarik==

Latest revision as of 11:21, 3 January 2019

Bgp-multihoming.png

Ada tiga (3) ISP

ISP1:

IP 192.168.1.1/24 menuju ISP3
IP 192.168.3.1/24 menuju ISP2
AS 10
IP 10.100.100.0/24
IP 10.100.200.0/24

ISP2

IP 192.168.2.1/24 - menuju ISP3
IP 192.168.3.2/24 - menuju ISP1
AS 20
IP 10.10.10.0/24
IP 10.10.20.0/24

ISP3 (kita)

IP 192.168.1.2/24 - menuju ISP1
IP 192.168.2.2/24 - menuju ISP2
AS 30
IP 10.1.1.0/24
IP 10.1.2.0/24 


Sambungan Fisik

ISP1 e0 -> ISP3 e0
ISP1 e1 -> ISP2 e1
ISP2 e0 -> ISP3 e1

ISP1 e2 10.100.100.1/24
ISP1 e3 10.100.200.1/24

ISP2 e2 10.10.10.1/24
ISP2 e3 10.10.20.1/24

ISP3 e2 10.1.1.1/24
ISP3 e3 10.1.2.1/24


Setup connection

ISP1

/ip address add address=192.168.1.1/24 interface=ether1
/ip address add address=192.168.3.1/24 interface=ether2 
/ip address add address=10.100.100.1/24 interface=ether3
/ip address add address=10.100.200.1/24 interface=ether4

ISP2

/ip address add address=192.168.2.1/24 interface=ether1 
/ip address add address=192.168.3.2/24 interface=ether2
/ip address add address=10.10.10.1/24 interface=ether3
/ip address add address=10.10.20.1/24 interface=ether4

ISP3

/ip address add address=192.168.1.2/24 interface=ether1 
/ip address add address=192.168.2.2/24 interface=ether2
/ip address add address=10.1.1.1/24 interface=ether3
/ip address add address=10.1.2.1/24 interface=ether4

BGP Peering

Consider that IP connectivity between ISPs edge routers and Our Core router is already set up and working properly. So we can start to establish BGP peering to both ISPs.


ISP1:

#set our AS number
/routing bgp instance set default as=10
#add BGP peers
/routing bgp peer
add name=toISP2 remote-address=192.168.3.2 remote-as=20
add name=toISP3 remote-address=192.168.1.2 remote-as=30
# jika ingin redistribute default route ke client yang spesifik
# add name=toISP2 remote-address=192.168.3.2 remote-as=20 default-originate=if-installed
# add name=toISP3 remote-address=192.168.1.2 remote-as=30 default-originate=if-installed
#
# advertize routing
#
/routing bgp network
add network=10.100.100.0/24 synchronize=no
add network=10.100.200.0/24 synchronize=no

ISP2:

#set our AS number
/routing bgp instance set default as=20
#add BGP peers
/routing bgp peer
add name=toISP1 remote-address=192.168.3.1 remote-as=10
add name=toISP3 remote-address=192.168.2.2 remote-as=30
#
# advertize routing
#
/routing bgp network
add network=10.10.10.0/24 synchronize=no
add network=10.10.20.0/24 synchronize=no

ISP3:

#set our AS number
/routing bgp instance set default as=30
#add BGP peers
/routing bgp peer
add name=toISP1 remote-address=192.168.1.1 remote-as=10
add name=toISP2 remote-address=192.168.2.1 remote-as=20
#
# advertize routing
#
/routing bgp network
add network=10.1.1.0/24 synchronize=no
add network=10.1.2.0/24 synchronize=no

Main/Backup link setup

ISP3

Lakukan

  • accept network kita sendiri
  • drop semua tabel IP lainnya, karena kita tidak mau menjadi transit provider
  • BGP AS prepend - menaikan AS path
# setup routing filter
#
/routing bgp peer
set toISP1 in-filter=isp1-in out-filter=isp1-out
set toISP2 in-filter=isp2-in out-filter=isp2-out
#
# Outgoing filter ke ISP1:
#
/routing filter
#accept our networks
add chain=isp1-out prefix=10.1.1.0/24 action=accept
add chain=isp1-out prefix=10.1.2.0/24 action=accept
#discard the rest
add chain=isp1-out action=discard
#
# Outgoing filter ke ISP2:
#
/routing filter
#accept our networks and prepend AS path three times
add chain=isp2-out prefix=10.1.1.0/24 action=accept set-bgp-prepend=3
add chain=isp2-out prefix=10.1.2.0/24 action=accept set-bgp-prepend=3
#discard the rest
add chain=isp2-out action=discard
# 
# ISP1 menjadi main
# ISP2 menjadi backup
#
/routing filter
add chain=isp1-in action=discard
add chain=isp2-in action=discard
#
/ip route
add gateway=192.168.1.1 check-gateway=ping
add gateway=192.168.2.1 distance=30 check-gateway=ping


Load sharing setup

Teknik melakukan multihoming / download sharing

Bgp-multihoming-download-sharing.png

ISP3

Disini salah satu network kita di prepend yang berbeda antara ISP1 dan ISP2

# Outgoing filter ke ISP1:
#
/routing filter
#accept our networks and prepend second network
add chain=isp1-out prefix=10.1.1.0/24 action=accept
add chain=isp1-out prefix=10.1.2.0/24 action=accept  set-bgp-prepend=3
#discard the rest
add chain=isp1-out action=discard
#
# Outgoing filter ke ISP2:
#
/routing filter
#accept our networks and prepend first network
add chain=isp2-out prefix=10.1.1.0/24 action=accept set-bgp-prepend=3
add chain=isp2-out prefix=10.1.2.0/24 action=accept
#discard the rest
add chain=isp2-out action=discard

Konfigurasi di atas hanya untuk outgoing packet dari network kita. Ada beberapa pilihan,

  • biarkan gateway menggunakan konfigurasi main/backup - ini akan menyebabkan hanya satu link yang digunakan dan routing akan asymetric.
  • gunakan policy routing untuk memaksa outgoing packet menggunakan link yang sama dengan dengan incoming
  • Menggnakan BGP untuk menerima full routing table dari ke dua peer dan menggunakan BGP attribute untuk melakukan routing melalui satu sambungan / link dan sebagian lagi melalui link lainnya. Contoh, traffic local / nasional bisa dikirim menggunakan ISP1 dan Internasional menggunakan ISP2.

Referensi


Pranala Menarik