User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2022/05/26 13:00]
alex [MikroTik v7 C-class BGP aggregate]
start [2023/12/09 14:08] (current)
10.2.19.13 [AWMN BGP filter]
Line 156: Line 156:
 Υπάρχουν δυο ειδών **BGP** συνδέσεις. Η σύνδεση με απομακρυσμένο κόμβο λέγεται **eBGP**. Η σύνδεση με εσωτερικό router στο Local Area Network (LAN) λέγεται **iBGP**. Υπάρχουν δυο ειδών **BGP** συνδέσεις. Η σύνδεση με απομακρυσμένο κόμβο λέγεται **eBGP**. Η σύνδεση με εσωτερικό router στο Local Area Network (LAN) λέγεται **iBGP**.
  
-Αναλόγως, οι αντίστοιχες εντολές από τερματικό/ssh είναι:+Το προτεινόμενο **AWMN** in/out φίλτρο μπαίνει **ΜΟΝΟ** στις **eBGP** --> στις εξωτερικές δηλαδή συνδέσεις/λινκ του κόμβου.  
 + 
 +στις μεταξύ **iBGP** εσωτερικές συνδέσεις (LAN) του κόμβου, δεν περνάμε **ΚΑΝΕΝΑ** φίλτρο.  
 + 
 +οι σχετικές ρυθμίσεις από τερματικό/ssh είναι:
  
   /routing/bgp/connection/set output.redistribute=static,bgp hold-time=30s keepalive-time=10s numbers=0   /routing/bgp/connection/set output.redistribute=static,bgp hold-time=30s keepalive-time=10s numbers=0
Line 170: Line 174:
   /routing/bgp/connection/set output.redistribute=static,bgp hold-time=30s keepalive-time=10s  numbers=4   /routing/bgp/connection/set output.redistribute=static,bgp hold-time=30s keepalive-time=10s  numbers=4
      
-στις παραπάνω εντολές προσθέτουμε τον τύπο σύνδεσης:+στις παραπάνω εντολές προσθέτουμε αναλόγως τον τύπο σύνδεσης:
  
   role=ebgp   role=ebgp
Line 191: Line 195:
  *** * Προσοχή ** ! στο τελευταίο βήμα θα πρέπει πάντα να βάζουμε το δίκτυό μας με το **/24** στο τέλος, ανεξάρτητα με το πως το έχουμε σπάσει σε μικρότερα  *** * Προσοχή ** ! στο τελευταίο βήμα θα πρέπει πάντα να βάζουμε το δίκτυό μας με το **/24** στο τέλος, ανεξάρτητα με το πως το έχουμε σπάσει σε μικρότερα
  
-Τέλος, το **AWMN** in/out φίλτρο μπαίνει **ΜΟΝΟ** στο BGP με τις εξωτερικές συνδέσεις/λινκ (**eBGP**). στις εσωτερικές συνδέσεις (LAN) του κόμβου (**iBGP**) στις **BGP** συνδέσεις μεταξύ τους δεν περνάμε ΚΑΝΕΝΑ φίλτρο.  +Σε περιπτώσεις προβλημάτων ασυμμετρίας στο εσωτερικό ενός κόμβου, βοηθάει στο μεταξύ **iBGP** τοπικών router, να ενεργοποιηθεί η επιλογή:
- +
-Πολλές φορές, στο **iBGP** μεταξύ τοπικών router, βοηθάει να ενεργοποιηθεί η επιλογή:+
  
   nexthop-choice=force-self   nexthop-choice=force-self
Line 201: Line 203:
 ===== MikroTik terminal setup for SupperQuagga ===== ===== MikroTik terminal setup for SupperQuagga =====
  
-  /routing bgp peer add remote-as=22128 remote-address=10.2.146.10 multihop=yes passive=yes name=spq+  /routing bgp peer add remote-as=22128 remote-address=10.2.146.10 multihop=yes passive=yes name=spq hold-time=180s keepalive-time=60s
      
   /routing bgp peer print   /routing bgp peer print
Line 212: Line 214:
      
 Παράδειγμα: κόμβος 3298, δίκτυο 10.2.19.0/24. as=3298 local.address=10.2.19.65 Παράδειγμα: κόμβος 3298, δίκτυο 10.2.19.0/24. as=3298 local.address=10.2.19.65
 +
 +**! ! !** -->  σαν **router id** προτιμούμε (αν υπάρχει) την lan/ethernet IP του router
 ==== MikroTik BGP log filter ==== ==== MikroTik BGP log filter ====
 Σε περίπτωση που δεν θέλουμε να γεμίζουν τα **logs** με **bgp** μυνήματα από τη SupperQuagga, οι παρακάτω εντολές φιλτράρουν τα συγκεκριμένα μυνήματα από τα log Σε περίπτωση που δεν θέλουμε να γεμίζουν τα **logs** με **bgp** μυνήματα από τη SupperQuagga, οι παρακάτω εντολές φιλτράρουν τα συγκεκριμένα μυνήματα από τα log
Line 274: Line 278:
 σε αυτές τις εσωτερικές **iBGP** συνδέσεις ΔΕΝ θα πρέπει να βάζουμε **κανένα** φίλτρο, ούτε το **awmn BGP** φίλτρο σε αυτές τις εσωτερικές **iBGP** συνδέσεις ΔΕΝ θα πρέπει να βάζουμε **κανένα** φίλτρο, ούτε το **awmn BGP** φίλτρο
  
-επιπλέον, καλό είναι να ενεργοποιούμε στο **BGP** την επιλογή **Redistribute connected**+επιπλέον, καλό είναι να ενεργοποιούμε στο **BGP** την επιλογή **Redistribute connected** & **client-to-client-reflection**
  
 ==== iBGP problem explained ==== ==== iBGP problem explained ====
 το πρόβλημα με το **iBGP** έχει να κάνει με το σπάσιμο του τοπικού **C-class** σε μικρότερα υποδίκτυα τα οποία χρησιμοποιούμε για τις **WAN** συνδέσεις (**BB** link). σε αυτές τις περιπτώσεις, όταν έχουμε πάνω από εναν κεντρικό **BGP** speaker στον κόμβο (**LAN**), συνήθως οι άλλοι **BGP** routers αγνοούν την ύπαρξη του τοπικού **wan/BB** υποδικτύου. παλιά, αυτό αντιμετωπίζονταν με την παράλληλη χρήση ενός **IGP** routing όπως το **OSPF**, **RIP** ή & **static** routes. πλέον, οι σύγχρονες **BGP** εκδόσεις, έχουν την δυνατότητα να ανακοινώνουν αυτά τα εσωτερικά υποδίκτυα, αρκεί να μην φιλτράρεται η συγκεκριμένη πληροφορία. οπότε σε αυτές τις περιπτώσεις, δεν θα πρέπει να εισάγουμε **κανένα** φίλτρο μεταξύ των τοπικών **BGP** συνδέσεων στο **LAN** ενός κόμβου. το πρόβλημα με το **iBGP** έχει να κάνει με το σπάσιμο του τοπικού **C-class** σε μικρότερα υποδίκτυα τα οποία χρησιμοποιούμε για τις **WAN** συνδέσεις (**BB** link). σε αυτές τις περιπτώσεις, όταν έχουμε πάνω από εναν κεντρικό **BGP** speaker στον κόμβο (**LAN**), συνήθως οι άλλοι **BGP** routers αγνοούν την ύπαρξη του τοπικού **wan/BB** υποδικτύου. παλιά, αυτό αντιμετωπίζονταν με την παράλληλη χρήση ενός **IGP** routing όπως το **OSPF**, **RIP** ή & **static** routes. πλέον, οι σύγχρονες **BGP** εκδόσεις, έχουν την δυνατότητα να ανακοινώνουν αυτά τα εσωτερικά υποδίκτυα, αρκεί να μην φιλτράρεται η συγκεκριμένη πληροφορία. οπότε σε αυτές τις περιπτώσεις, δεν θα πρέπει να εισάγουμε **κανένα** φίλτρο μεταξύ των τοπικών **BGP** συνδέσεων στο **LAN** ενός κόμβου.
 +
 +επιπλέον, στους **router** πάνω στο **LAN** μεταξύ τους, ορίζουμε το **next-hop** σαν **force-self** & ΟΧΙ **default**
  
 το **awmn BGP** φίλτρο το χρησιμοποιούμε **ΜΟΝΟ** σε **eBGP** συνδέσεις, αυτές με άλλους απομακρυσμένους κόμβους, ώστε να μην ανακοινώνουμε στο γενικό **BGP** υποδίκτυα μικρότερα του **C-class**, και γενικά να θωρακίζουμε/φιλτράρουμε την πληροφορία του **BGP** από λανθασμένες ρυθμίσεις ή κακόβουλες ενέργειες. το **awmn BGP** φίλτρο το χρησιμοποιούμε **ΜΟΝΟ** σε **eBGP** συνδέσεις, αυτές με άλλους απομακρυσμένους κόμβους, ώστε να μην ανακοινώνουμε στο γενικό **BGP** υποδίκτυα μικρότερα του **C-class**, και γενικά να θωρακίζουμε/φιλτράρουμε την πληροφορία του **BGP** από λανθασμένες ρυθμίσεις ή κακόβουλες ενέργειες.
Line 297: Line 303:
    /routing filter rule add chain=awmn rule="if (dst in 10.0.0.0/8 && dst-len==24 && bgp-path-len<27) { accept; }"    /routing filter rule add chain=awmn rule="if (dst in 10.0.0.0/8 && dst-len==24 && bgp-path-len<27) { accept; }"
    /routing filter rule add chain=awmn rule="if (dst in 10.0.0.0/15 && dst-len==32 && bgp-path-len<27) { accept; }"    /routing filter rule add chain=awmn rule="if (dst in 10.0.0.0/15 && dst-len==32 && bgp-path-len<27) { accept; }"
 +   
 +* **Ενημέρωση 9 Δεκέμβρη 2023** *
 +
 +* * * {!} * * * Οι παραπάνω αρχικοί κανόνες δεν δείχνουν να δουλεύουν για την **v7** . Οι παρακάτω **ενημερωμένοι** κανόνες δοκιμάστηκαν και λειτουργούν. θα πρέπει να γίνει ένας διαχωρισμός σε δυο κανόνες, **awmn-in** & **awmn-out**. Επιπλέον αφαιρούμε το φίλτρο **anycast**, μια υπηρεσία που ήταν πειραματική στις μέρες του 2005-2009 ενώ ποτέ δεν δούλεψε ικανοποιητικά. Σήμερα, εν έτει 2023, η αποδοχή της στα φίλτρα αποτελεί κενό ασφάλειας, οπότε και αφαιρείται.
 +
 +  /routing filter rule add chain=awmn-in rule="if (dst in 10.0.0.0/8 && dst-len==24 && bgp-path-len<27) { accept; }"
 +  /routing filter rule add chain=awmn-out rule="if (dst in 10.0.0.0/8 && dst-len==24) { accept; }"
      
 Στην τοποθεσία Routing-->BGP-->Peers, σε κάθε **ασυρματική** σύνδεση, **όχι** με τους τοπικούς μας άλλους router, επιλέγουμε για φίλτρο IN και OUT την επιλογή awmn. Στην τοποθεσία Routing-->BGP-->Peers, σε κάθε **ασυρματική** σύνδεση, **όχι** με τους τοπικούς μας άλλους router, επιλέγουμε για φίλτρο IN και OUT την επιλογή awmn.
start.1653570027.txt.gz · Last modified: 2022/05/26 13:00 by alex