Difference between revisions of "Mikrotik: BGP Sederhana"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
Line 1: | Line 1: | ||
+ | [[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== | ||
+ | |||
+ | 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]] | ||
Revision as of 11:33, 24 January 2019
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
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
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
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