Difference between revisions of "Mikrotik: BGP Sederhana"

From OnnoWiki
Jump to navigation Jump to search
(Created page with " center|400px|thumb Lets say that local Internet registry assigned to us two /24 networks: 10.1.1.0/24 and 10.1.2.0/24 and our AS is 30 (Private...")
 
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[File:Bgp-multihoming.png|center|400px|thumb]]
 +
 +
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
 +
 +
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
 +
 +
[[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.
 +
 +
 +
 +
==Referensi==
 +
 +
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 +
  
 
[[File:Bgp-multihoming.png|center|400px|thumb]]
 
[[File:Bgp-multihoming.png|center|400px|thumb]]
  
Lets say that local Internet registry assigned to us two /24 networks: 10.1.1.0/24 and 10.1.2.0/24 and our AS is 30 (Private AS cannot be used in such setups). First network entirely is used for workstations in our corporate network. Part of the other network is also used for workstation and another part is reserved for server. At this point our company has only one server with address 10.1.2.130
 
  
The goal is advertise our assigned networks to BGP peers and use only one provider as main link, ISP2 link is for backup only.  
+
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==
 
==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.
 
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
 
  #set our AS number
  /routing bgp instance
+
  /routing bgp instance set default as=10
  set default as=30
+
#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
 
  #add BGP peers
 
  /routing bgp peer
 
  /routing bgp peer
Line 19: Line 295:
 
  add name=toISP2 remote-address=192.168.2.1 remote-as=20
 
  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
 +
 +
[[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.
 +
 +
 +
 +
==Referensi==
 +
 +
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 +
 +
 +
[[File:Bgp-multihoming.png|center|400px|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.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==
 
==Network Advertisements and Routing Filters==
  
Now we can start to advertise our networks and filter out all other unnecessary advertisements.
+
Start advertise our network & filter out all other unnecessary advertisement.
  
First step is to advertise our networks
+
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
 
  /routing bgp network
 
  add network=10.1.1.0/24 synchronize=no
 
  add network=10.1.1.0/24 synchronize=no
 
  add network=10.1.2.0/24 synchronize=no
 
  add network=10.1.2.0/24 synchronize=no
  
Next step is to specify which routing filter chains will be used
+
# routing filter
 
 
 
  /routing bgp peer
 
  /routing bgp peer
 
  set isp1 in-filter=isp1-in out-filter=isp1-out
 
  set isp1 in-filter=isp1-in out-filter=isp1-out
 
  set isp2 in-filter=isp2-in out-filter=isp2-out
 
  set isp2 in-filter=isp2-in out-filter=isp2-out
  
in-filter is for incoming (received) prefixes, out-filter is for advertised prefixes.
+
Catatan:
  
 +
* in-filter untuk incoming (received) prefixes
 +
* out-filter untuk advertised prefixes.
  
 
==Main/Backup link setup==
 
==Main/Backup link setup==
  
After chains are specified we can accept our networks and drop everything else as we are not transit provider. As you know one of the BGP attributes that influence best path selection is AS Path length (shorter AS Path is more preferred). So as we want ISP2 to be backup only, we will use BGP AS prepend (increase length of AS path) to force incoming traffic through ISP1.
+
===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 filters to ISP1:
+
Outgoing filter ke ISP1:
  
 
  /routing filter
 
  /routing filter
Line 52: Line 561:
 
  add chain=isp1-out action=discard
 
  add chain=isp1-out action=discard
  
Outgoing filters to ISP2:
+
Outgoing filter ke ISP2:
  
 
  /routing filter
 
  /routing filter
Line 61: Line 570:
 
  add chain=isp2-out action=discard
 
  add chain=isp2-out action=discard
  
We also do not need any routes from both ISPs, because default route is used to force outgoing traffic through ISP1 and leave ISP2 as backup.
+
ISP1 menjadi main
 +
ISP2 menjadi backup
  
 
  /routing filter
 
  /routing filter
Line 74: Line 584:
 
==Load sharing setup==
 
==Load sharing setup==
  
Using previous setup we are kind of wasting one link. So it is possible to redesign our setup as illustrated below to utilize both links. Bgp-multihoming-download-sharing.png
+
 
 +
Teknik melakukan multihoming / download sharing
  
 
[[File:Bgp-multihoming-download-sharing.png|center|400px|thumb]]
 
[[File:Bgp-multihoming-download-sharing.png|center|400px|thumb]]
  
The same as in previous setup BGP AS prepend will be used to achieve our goal. This time we will advertise one of the netowrks to ISP1 without prepend and another network prepended three times. The opposite for ISP2.
+
===ISP3===
 +
 
 +
Disini salah satu network kita di prepend yang berbeda antara ISP1 dan ISP2
  
Outgoing filters to ISP1:
+
Outgoing filter ke ISP1:
  
 
  /routing filter
 
  /routing filter
Line 89: Line 602:
 
  add chain=isp1-out action=discard
 
  add chain=isp1-out action=discard
  
Outgoing filters to ISP2:
+
Outgoing filter ke ISP2:
  
 
  /routing filter
 
  /routing filter
Line 98: Line 611:
 
  add chain=isp2-out action=discard
 
  add chain=isp2-out action=discard
  
Configuration above is only for packets going to our network. There are several options how to deal with packets going from our network:
+
Konfigurasi di atas hanya untuk outgoing packet dari network kita. Ada beberapa pilihan,
 
 
* leave gateways as in main/backup configuration - this will result in only one link utilized and asymmetric routing
 
* use policy routing to force outgoing packets over the same link as incoming
 
* use BGP to receive full routing tables from both peers and using BGP attributes make part of the routes available through one link and other part through another link. For example, traffic local to your country is sent over ISP1 the rest is sent over ISP2.
 
  
All those methods are covered in other articles and will not be shown here.  
+
* 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.
 +
  
  
Line 110: Line 622:
  
 
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 
* https://wiki.mikrotik.com/wiki/Manual:Simple_BGP_Multihoming
 
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 +
* [[TCP/IP: Advanced Routing]]
 +
* [[Quagga]]
 +
* [[VyOS]]
 
* [[Mikrotik]]
 
* [[Mikrotik]]
 +
* [[Cisco]]
 +
* [[Juniper]]
 +
* [[BIRD1]]
 +
* [[BIRD2]]
 +
* [[IPv6]]
 +
 +
 +
* [[TCP/IP: Advanced Routing]]
 +
* [[IPv6: Advanced Routing]]
 +
* [[IPv6: Quagga]]
 +
* [[IPv6: VyOS]]
 +
* [[IPv6: Mikrotik]]
 +
* [[IPv6: Cisco]]
 +
* [[IPv6: Juniper]]
 +
* [[IPv6: BIRD1]]
 +
* [[IPv6: BIRD2]]
 +
* [[IPv6]]

Latest revision as of 09:33, 14 December 2021

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

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


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