Difference between revisions of "Mikrotik: BGP dengan Quagga"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "center|900px|thumb 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.20...")
 
 
(2 intermediate revisions by the same user not shown)
Line 51: Line 51:
  
 
ISP2
 
ISP2
  /ip address add address=192.168.2.1/24 interface=ether1
+
 
/ip address add address=192.168.3.2/24 interface=ether2
+
vtysh
/ip address add address=10.10.10.1/24 interface=ether3
+
enable
/ip address add address=10.10.20.1/24 interface=ether4
+
  configure terminal
 +
  interface eth0
 +
    ip address 192.168.2.1/24
 +
    link-detect
 +
    exit
 +
  interface eth1
 +
    ip address 192.168.3.2/24
 +
    link-detect
 +
    exit
 +
  interface eth2
 +
    ip address 10.10.10.1/24
 +
    link-detect
 +
    exit
 +
  interface eth3
 +
    ip address 10.10.20.1/24
 +
    link-detect
 +
    exit
  
 
ISP3
 
ISP3
  /ip address add address=192.168.1.2/24 interface=ether1
+
 
/ip address add address=192.168.2.2/24 interface=ether2
+
vtysh
/ip address add address=10.1.1.1/24 interface=ether3
+
enable
/ip address add address=10.1.2.1/24 interface=ether4
+
  configure terminal
 +
  interface eth0
 +
    ip address 192.168.1.2/24
 +
    link-detect
 +
    exit
 +
  interface eth1
 +
    ip address 192.168.2.2/24
 +
    link-detect
 +
    exit
 +
  interface eth2
 +
    ip address 10.1.1.1/24
 +
    link-detect
 +
    exit
 +
  interface eth3
 +
    ip address 10.1.2.1/24
 +
    link-detect
 +
    exit
  
 
==BGP Peering==
 
==BGP Peering==
Line 78: Line 110:
 
  # add name=toISP2 remote-address=192.168.3.2 remote-as=20 default-originate=if-installed
 
  # 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
 
  # add name=toISP3 remote-address=192.168.1.2 remote-as=30 default-originate=if-installed
 
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
 
 
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
 
 
==Network Advertisements and Routing Filters==
 
 
Now we can start to advertise our networks and filter out all other unnecessary advertisements.
 
 
ISP1:
 
  
 
  /routing bgp network
 
  /routing bgp network
Line 108: Line 115:
 
  add network=10.100.200.0/24 synchronize=no
 
  add network=10.100.200.0/24 synchronize=no
  
 +
ISP2:
  
ISP2:
 
  
  /routing bgp network
+
  router bgp 20
add network=10.10.10.0/24 synchronize=no
+
  bgp router-id 192.168.2.1
add network=10.10.20.0/24 synchronize=no
+
  neighbor 192.168.3.1 remote-as 10
 +
  neighbor 192.168.2.2 remote-as 30
 +
  network 10.10.10.0/24
 +
  network 10.10.20.0/24
  
 
ISP3:
 
ISP3:
  
First step is to advertise our networks
+
  router bgp 30
 
+
  bgp router-id 192.168.2.2
  /routing bgp network
+
  neighbor 192.168.1.1 remote-as 10
add network=10.1.1.0/24 synchronize=no
+
  neighbor 192.168.2.1 remote-as 20
add network=10.1.2.0/24 synchronize=no
+
  network 10.1.1.0/24
 
+
  network 10.1.2.0/24
 
 
Cek routing
 
 
 
/ip route print
 
 
 
 
 
Next step is to specify which routing filter chains will be used
 
 
 
/routing bgp peer
 
set isp1 in-filter=isp1-in out-filter=isp1-out
 
set isp2 in-filter=isp2-in out-filter=isp2-out
 
 
 
in-filter is for incoming (received) prefixes, out-filter is for advertised prefixes.
 
 
 
==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
 
 
 
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
 
 
 
[[File:Bgp-multihoming-download-sharing.png|center|400px|thumb]]
 
 
 
===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.
 
 
  
  

Latest revision as of 14:53, 18 November 2018

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

vtysh
enable
configure terminal
  interface eth0
    ip address 192.168.2.1/24
    link-detect
    exit
  interface eth1
    ip address 192.168.3.2/24
    link-detect
    exit
  interface eth2
    ip address 10.10.10.1/24
    link-detect
    exit
  interface eth3
    ip address 10.10.20.1/24
    link-detect
    exit

ISP3

vtysh
enable
configure terminal
  interface eth0
    ip address 192.168.1.2/24
    link-detect
    exit
  interface eth1
    ip address 192.168.2.2/24
    link-detect
    exit
  interface eth2
    ip address 10.1.1.1/24
    link-detect
    exit
  interface eth3
    ip address 10.1.2.1/24
    link-detect
    exit

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
/routing bgp network
add network=10.100.100.0/24 synchronize=no
add network=10.100.200.0/24 synchronize=no

ISP2:


router bgp 20
 bgp router-id 192.168.2.1
 neighbor 192.168.3.1 remote-as 10
 neighbor 192.168.2.2 remote-as 30
 network 10.10.10.0/24
 network 10.10.20.0/24

ISP3:

router bgp 30
 bgp router-id 192.168.2.2
 neighbor 192.168.1.1 remote-as 10
 neighbor 192.168.2.1 remote-as 20
 network 10.1.1.0/24
 network 10.1.2.0/24



Referensi


Pranala Menarik