Difference between revisions of "VyOS: BGP Sederhana"

From OnnoWiki
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 24: Line 24:
 
  IP 10.1.1.0/24
 
  IP 10.1.1.0/24
 
  IP 10.1.2.0/24  
 
  IP 10.1.2.0/24  
 +
 +
 +
==Sambungan==
 +
 +
R1
 +
e1 --> R3 e1
 +
e2 --> R2 e2
 +
e3 --> LAN 10.100.100.0/24
 +
e4 --> LAN 10.100.200.0/24
 +
 +
R2
 +
e1 --> R3 e2
 +
e2 --> R1 e2
 +
e3 --> LAN 10.10.10.0/24
 +
e4 --> LAN 10.10.20.0/24
 +
 +
R3
 +
e1 --> R1 e1
 +
e2 --> R2 e1
 +
e3 --> LAN 10.1.1.0/24
 +
e4 --> LAN 10.1.2.0/24
 +
 +
Setiap kali menjalankan VM VyOS di GNS3, lakukan
 +
 +
sudo chown root:useranda /dev/kvm
 +
 +
sebelum me-RUN setiap VM VyOS satu per satu.
  
 
==Setup connection==
 
==Setup connection==
Line 30: Line 57:
  
 
  configure
 
  configure
−
  set interfaces ethernet eth1 address '192.168.1.1/24'
+
set interface loopback lo address 1.1.1.1/32
−
  set interfaces ethernet eth2 address '192.168.3.1/24'
+
  set interfaces ethernet eth1 address 192.168.1.1/24
−
  set interfaces ethernet eth3 address '10.100.100.1/24'
+
  set interfaces ethernet eth2 address 192.168.3.1/24
−
  set interfaces ethernet eth4 address '10.100.200.1/24'
+
  set interfaces ethernet eth3 address 10.100.100.1/24
 +
  set interfaces ethernet eth4 address 10.100.200.1/24
  
 
  show
 
  show
Line 43: Line 71:
  
 
  configure
 
  configure
−
  set interfaces ethernet eth1 address '192.168.2.1/24'
+
set interface loopback lo address 1.1.1.1/32
−
  set interfaces ethernet eth2 address '192.168.3.2/24'
+
  set interfaces ethernet eth1 address 192.168.2.1/24
−
  set interfaces ethernet eth3 address '10.10.10.1/24'
+
  set interfaces ethernet eth2 address 192.168.3.2/24
−
  set interfaces ethernet eth4 address '10.10.20.1/24'
+
  set interfaces ethernet eth3 address 10.10.10.1/24
 +
  set interfaces ethernet eth4 address 10.10.20.1/24
  
 
  show
 
  show
Line 57: Line 86:
  
 
  configure
 
  configure
−
  set interfaces ethernet eth1 address '192.168.1.2/24'
+
set interface loopback lo address 1.1.1.1/32
−
  set interfaces ethernet eth2 address '192.168.2.2/24'
+
  set interfaces ethernet eth1 address 192.168.1.2/24
−
  set interfaces ethernet eth3 address '10.1.1.1/24'
+
  set interfaces ethernet eth2 address 192.168.2.2/24
−
  set interfaces ethernet eth4 address '10.1.2.1/24'
+
  set interfaces ethernet eth3 address 10.1.1.1/24
 +
  set interfaces ethernet eth4 address 10.1.2.1/24
  
 
  show
 
  show
Line 72: Line 102:
 
ISP1
 
ISP1
  
−
  #set our AS number
+
  set protocols bgp 10 parameters router-id 192.168.1.1
−
  /routing bgp instance set default as=10
+
  set protocols bgp 10 network 10.100.100.0/24
−
  #add BGP peers
+
set protocols bgp 10 network 10.100.200.0/24
−
  /routing bgp peer
+
  # set protocols bgp 10 neighbor 192.168.1.2 ebgp-multihop 2
−
  add name=toISP3 remote-address=192.168.1.2 remote-as=30
+
  set protocols bgp 10 neighbor 192.168.1.2 update-source 192.168.1.1
−
  add name=toISP2 remote-address=192.168.3.2 remote-as=20
+
  set protocols bgp 10 neighbor 192.168.1.2 remote-as 30
 +
  # set protocols bgp 10 neighbor 192.168.3.2 ebgp-multihop 2
 +
set protocols bgp 10 neighbor 192.168.3.2 update-source 192.168.3.1
 +
set protocols bgp 10 neighbor 192.168.3.2 remote-as 20
  
 +
show
 +
commit
 +
exit
  
−
set protocols bgp 10 neighbor 192.168.1.2 ebgp-multihop '2'
+
ISP2
−
set protocols bgp 10 neighbor 192.168.1.2 remote-as '20'
 
−
set protocols bgp 10 neighbor 192.168.1.2 update-source ‘192.168.0.1
 
−
set protocols bgp 10 network '1.0.0.0/16'
 
−
set protocols bgp 10 parameters router-id ‘192.168.0.1
 
  
 +
set protocols bgp 20 parameters router-id 192.168.2.1
 +
set protocols bgp 20 network 10.10.10.0/24
 +
set protocols bgp 20 network 10.10.20.0/24
 +
# set protocols bgp 20 neighbor 192.168.3.1 ebgp-multihop 2
 +
set protocols bgp 20 neighbor 192.168.3.1 update-source 192.168.2.1
 +
set protocols bgp 20 neighbor 192.168.3.1 remote-as 10
 +
# set protocols bgp 20 neighbor 192.168.2.2 ebgp-multihop 2
 +
set protocols bgp 20 neighbor 192.168.2.2 update-source 192.168.2.1
 +
set protocols bgp 20 neighbor 192.168.2.2 remote-as 30
  
−
 
+
  show
−
 
+
  commit
−
 
+
  exit
−
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
 
ISP3
  
−
  #set our AS number
+
  set protocols bgp 30 parameters router-id 192.168.1.2
−
  /routing bgp instance set default as=30
+
  set protocols bgp 30 network 10.1.1.0/24
−
  #add BGP peers
+
set protocols bgp 30 network 10.1.2.0/24
−
  /routing bgp peer
+
  # set protocols bgp 30 neighbor 192.168.1.1 ebgp-multihop 2
−
  add name=toISP1 remote-address=192.168.1.1 remote-as=10
+
  set protocols bgp 30 neighbor 192.168.1.1 update-source 192.168.1.2
−
  add name=toISP2 remote-address=192.168.2.1 remote-as=20
+
  set protocols bgp 30 neighbor 192.168.1.1 remote-as 10
 +
  # set protocols bgp 30 neighbor 192.168.2.1 ebgp-multihop 2
 +
set protocols bgp 30 neighbor 192.168.2.1 update-source 192.168.1.2
 +
set protocols bgp 30 neighbor 192.168.2.1 remote-as 20
  
−
==Network Advertisements and Routing Filters==
+
  show
−
 
+
  commit
−
Start advertise our network & filter out all other unnecessary advertisement.
+
  exit
−
 
 
−
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.
+
==Test==
−
* gunakan policy routing untuk memaksa outgoing packet menggunakan link yang sama dengan dengan incoming
 
−
* Menggunakan 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 interfaces
 +
show ip bgp scan
 +
show ip bgp summary
 +
show ip bgp rsclient summary
 +
show ip bgp neighbors 192.168.1.2
 +
show ip route
  
 
==Referensi==
 
==Referensi==
Line 242: Line 170:
 
* [[Cisco]]
 
* [[Cisco]]
 
* [[Juniper]]
 
* [[Juniper]]
−
* [[BIRD: Routing]]
+
* [[BIRD1]]
 +
* [[BIRD2]]
 
* [[IPv6]]
 
* [[IPv6]]
  
Line 249: Line 178:
 
* [[IPv6: Advanced Routing]]
 
* [[IPv6: Advanced Routing]]
 
* [[IPv6: Quagga]]
 
* [[IPv6: Quagga]]
 +
* [[IPv6: VyOS]]
 
* [[IPv6: Mikrotik]]
 
* [[IPv6: Mikrotik]]
 
* [[IPv6: Cisco]]
 
* [[IPv6: Cisco]]
 
* [[IPv6: Juniper]]
 
* [[IPv6: Juniper]]
−
* [[IPv6: BIRD: Routing]]
+
* [[IPv6: BIRD1]]
 +
* [[IPv6: BIRD2]]
 
* [[IPv6]]
 
* [[IPv6]]

Latest revision as of 11:15, 20 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

R1
e1 --> R3 e1
e2 --> R2 e2 
e3 --> LAN 10.100.100.0/24
e4 --> LAN 10.100.200.0/24
R2
e1 --> R3 e2
e2 --> R1 e2
e3 --> LAN 10.10.10.0/24
e4 --> LAN 10.10.20.0/24
R3
e1 --> R1 e1
e2 --> R2 e1
e3 --> LAN 10.1.1.0/24
e4 --> LAN 10.1.2.0/24

Setiap kali menjalankan VM VyOS di GNS3, lakukan

sudo chown root:useranda /dev/kvm

sebelum me-RUN setiap VM VyOS satu per satu.

Setup connection

ISP1

configure
set interface loopback lo address 1.1.1.1/32
set interfaces ethernet eth1 address 192.168.1.1/24
set interfaces ethernet eth2 address 192.168.3.1/24
set interfaces ethernet eth3 address 10.100.100.1/24
set interfaces ethernet eth4 address 10.100.200.1/24
show
commit
exit


ISP2

configure
set interface loopback lo address 1.1.1.1/32
set interfaces ethernet eth1 address 192.168.2.1/24
set interfaces ethernet eth2 address 192.168.3.2/24
set interfaces ethernet eth3 address 10.10.10.1/24
set interfaces ethernet eth4 address 10.10.20.1/24
show
commit
exit


ISP3

configure
set interface loopback lo address 1.1.1.1/32
set interfaces ethernet eth1 address 192.168.1.2/24
set interfaces ethernet eth2 address 192.168.2.2/24
set interfaces ethernet eth3 address 10.1.1.1/24
set interfaces ethernet eth4 address 10.1.2.1/24
show
commit
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 protocols bgp 10 parameters router-id 192.168.1.1
set protocols bgp 10 network 10.100.100.0/24
set protocols bgp 10 network 10.100.200.0/24
# set protocols bgp 10 neighbor 192.168.1.2 ebgp-multihop 2
set protocols bgp 10 neighbor 192.168.1.2 update-source 192.168.1.1
set protocols bgp 10 neighbor 192.168.1.2 remote-as 30
# set protocols bgp 10 neighbor 192.168.3.2 ebgp-multihop 2
set protocols bgp 10 neighbor 192.168.3.2 update-source 192.168.3.1
set protocols bgp 10 neighbor 192.168.3.2 remote-as 20
show
commit
exit

ISP2

set protocols bgp 20 parameters router-id 192.168.2.1
set protocols bgp 20 network 10.10.10.0/24
set protocols bgp 20 network 10.10.20.0/24
# set protocols bgp 20 neighbor 192.168.3.1 ebgp-multihop 2
set protocols bgp 20 neighbor 192.168.3.1 update-source 192.168.2.1
set protocols bgp 20 neighbor 192.168.3.1 remote-as 10
# set protocols bgp 20 neighbor 192.168.2.2 ebgp-multihop 2
set protocols bgp 20 neighbor 192.168.2.2 update-source 192.168.2.1
set protocols bgp 20 neighbor 192.168.2.2 remote-as 30
show
commit
exit

ISP3

set protocols bgp 30 parameters router-id 192.168.1.2
set protocols bgp 30 network 10.1.1.0/24
set protocols bgp 30 network 10.1.2.0/24
# set protocols bgp 30 neighbor 192.168.1.1 ebgp-multihop 2
set protocols bgp 30 neighbor 192.168.1.1 update-source 192.168.1.2
set protocols bgp 30 neighbor 192.168.1.1 remote-as 10
# set protocols bgp 30 neighbor 192.168.2.1 ebgp-multihop 2
set protocols bgp 30 neighbor 192.168.2.1 update-source 192.168.1.2
set protocols bgp 30 neighbor 192.168.2.1 remote-as 20
show
commit
exit

Test

show interfaces
show ip bgp scan 
show ip bgp summary
show ip bgp rsclient summary 
show ip bgp neighbors 192.168.1.2 
show ip route

Referensi


Pranala Menarik