Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
start [2022/05/26 16:28] alex [MikroTik v7 C-class BGP aggregate] |
start [2023/12/09 14:08] (current) 10.2.19.13 [AWMN BGP filter] |
===== 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 |
| |
Παράδειγμα: κόμβος 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 |
σε αυτές τις εσωτερικές **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** από λανθασμένες ρυθμίσεις ή κακόβουλες ενέργειες. |
/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. |