Difference between revisions of "Mikrotik: BGP Sederhana"

From OnnoWiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 129: Line 129:
 
v.7
 
v.7
  
# manual blackhole routes
+
 
/ip route
 
add dst-address=10.100.100.0/24 blackhole
 
add dst-address=10.100.200.0/24 blackhole
 
 
 
  # BGP advertise networks
 
  # BGP advertise networks
 
  /ip firewall address-list
 
  /ip firewall address-list
Line 139: Line 135:
 
  add list=bgp-networks address=10.100.200.0/24
 
  add list=bgp-networks address=10.100.200.0/24
 
   
 
   
 +
# apply BGP filters using the correct connection names
 
  /routing bgp connection
 
  /routing bgp connection
  set isp2 output.network=bgp-networks input.filter=isp2-in output.filter-chain=isp2-out
+
  set toISP2 output.network=bgp-networks input.filter=isp2-in output.filter-chain=isp2-out
  set isp3 output.network=bgp-networks input.filter=isp3-in output.filter-chain=isp3-out
+
  set toISP3 output.network=bgp-networks input.filter=isp3-in output.filter-chain=isp3-out
  
  
Line 169: Line 166:
 
  add list=bgp-networks address=10.10.20.0/24
 
  add list=bgp-networks address=10.10.20.0/24
 
   
 
   
  # apply BGP filters
+
  # apply BGP filters to correct connection names
 
  /routing bgp connection
 
  /routing bgp connection
  set isp1 \
+
  set toISP1 \
 
     output.network=bgp-networks \
 
     output.network=bgp-networks \
 
     input.filter=isp1-in \
 
     input.filter=isp1-in \
 
     output.filter-chain=isp1-out
 
     output.filter-chain=isp1-out
 
   
 
   
/routing bgp connection
+
  set toISP3 \
  set isp3 \
 
 
     output.network=bgp-networks \
 
     output.network=bgp-networks \
 
     input.filter=isp3-in \
 
     input.filter=isp3-in \

Latest revision as of 17:30, 20 May 2026

Bgp-multihoming.png

Sambungan

ISP1:
eth0  --> ISP3 eth0
eth1  --> ISP2 eth1
ISP2
eth0  --> ISP3 eth1
eth1  --> ISP1 eth1
ISP3
eth0  --> ISP1 eth0
eth1  --> ISP2 eth0



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 

Setup connection

ISP1

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

ISP2

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

ISP3

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

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=toISP3 remote-address=192.168.1.2 remote-as=30
add name=toISP2 remote-address=192.168.3.2 remote-as=20

v.7

/routing bgp template set default as=10
/routing bgp connection add name=toISP3 remote.address=192.168.1.2 remote.as=30 local.role=ebgp templates=default
/routing bgp connection add name=toISP2 remote.address=192.168.3.2 remote.as=20 local.role=ebgp templates=default


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

v.7

/routing bgp template set default as=20
/routing bgp connection add name=toISP1  remote.address=192.168.3.1 remote.as=10 local.role=ebgp templates=default
/routing bgp connection add name=toISP3 remote.address=192.168.2.2 remote.as=30 local.role=ebgp templates=default

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

v.7

/routing bgp template set default as=30
/routing bgp connection add name=toISP1 remote.address=192.168.1.1 remote.as=10 local.role=ebgp templates=default
/routing bgp connection add name=toISP2 remote.address=192.168.2.1 remote.as=20 local.role=ebgp templates=default

Network Advertisements and Routing Filters

Start advertise our network & filter out all other unnecessary advertisement.

ISP1:

# advertise out network
/routing bgp network
add network=10.100.100.0/24 synchronize=no
add network=10.100.200.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp2 in-filter=isp2-in out-filter=isp2-out
set isp3 in-filter=isp3-in out-filter=isp3-out

v.7


# BGP advertise networks
/ip firewall address-list
add list=bgp-networks address=10.100.100.0/24
add list=bgp-networks address=10.100.200.0/24

# apply BGP filters using the correct connection names
/routing bgp connection
set toISP2 output.network=bgp-networks  input.filter=isp2-in output.filter-chain=isp2-out
set toISP3 output.network=bgp-networks input.filter=isp3-in output.filter-chain=isp3-out


ISP2:

# advertise out network
/routing bgp network
add network=10.10.10.0/24 synchronize=no
add network=10.10.20.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp3 in-filter=isp3-in out-filter=isp3-out

v.7

# create blackhole routes so BGP can advertise the prefixes
/ip route
add dst-address=10.10.10.0/24 blackhole
add dst-address=10.10.20.0/24 blackhole

# advertise networks using address-list
/ip firewall address-list
add list=bgp-networks address=10.10.10.0/24
add list=bgp-networks address=10.10.20.0/24

# apply BGP filters to correct connection names
/routing bgp connection
set toISP1 \
    output.network=bgp-networks \
    input.filter=isp1-in \
    output.filter-chain=isp1-out

set toISP3 \
    output.network=bgp-networks \
    input.filter=isp3-in \
    output.filter-chain=isp3-out


ISP3:

# advertise out network
/routing bgp network
add network=10.1.1.0/24 synchronize=no
add network=10.1.2.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp2 in-filter=isp2-in out-filter=isp2-out

v.7


# create blackhole routes so BGP can advertise the prefixes
/ip route
add dst-address=10.1.1.0/24 type=blackhole
add dst-address=10.1.2.0/24 type=blackhole

# advertise networks using address-list
/ip firewall address-list
add list=bgp-networks address=10.1.1.0/24
add list=bgp-networks address=10.1.2.0/24

# apply BGP filters to ISP1
/routing bgp connection
set toISP1 \
    output.network=bgp-networks \
    input.filter=isp1-in \
    output.filter-chain=isp1-out

# apply BGP filters to ISP2
/routing bgp connection
set toISP2 \
    output.network=bgp-networks \
    input.filter=isp2-in \
    output.filter-chain=isp2-out


Catatan:

  • in-filter untuk incoming (received) prefixes
  • out-filter untuk 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

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


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 

Setup connection

ISP1

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

ISP2

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

ISP3

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

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=toISP3 remote-address=192.168.1.2 remote-as=30
add name=toISP2 remote-address=192.168.3.2 remote-as=20

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

Start advertise our network & filter out all other unnecessary advertisement.

ISP1:

# advertise out network
/routing bgp network
add network=10.100.100.0/24 synchronize=no
add network=10.100.200.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp2 in-filter=isp2-in out-filter=isp2-out
set isp3 in-filter=isp3-in out-filter=isp3-out

ISP2:

# advertise out network
/routing bgp network
add network=10.10.10.0/24 synchronize=no
add network=10.10.20.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp3 in-filter=isp3-in out-filter=isp3-out

ISP3:

# advertise out network
/routing bgp network
add network=10.1.1.0/24 synchronize=no
add network=10.1.2.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp2 in-filter=isp2-in out-filter=isp2-out

Catatan:

  • in-filter untuk incoming (received) prefixes
  • out-filter untuk 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

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


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 

Setup connection

ISP1

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

ISP2

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

ISP3

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

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=toISP3 remote-address=192.168.1.2 remote-as=30
add name=toISP2 remote-address=192.168.3.2 remote-as=20

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

Start advertise our network & filter out all other unnecessary advertisement.

ISP1:

# advertise out network
/routing bgp network
add network=10.100.100.0/24 synchronize=no
add network=10.100.200.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp2 in-filter=isp2-in out-filter=isp2-out
set isp3 in-filter=isp3-in out-filter=isp3-out

ISP2:

# advertise out network
/routing bgp network
add network=10.10.10.0/24 synchronize=no
add network=10.10.20.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp3 in-filter=isp3-in out-filter=isp3-out

ISP3:

# advertise out network
/routing bgp network
add network=10.1.1.0/24 synchronize=no
add network=10.1.2.0/24 synchronize=no
# routing filter
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp2 in-filter=isp2-in out-filter=isp2-out

Catatan:

  • in-filter untuk incoming (received) prefixes
  • out-filter untuk 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

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