User Tools

Site Tools


start

This is an old revision of the document!


BGP hacks & tools

SupperQuagga is an attempt to ease the process of BGP troubleshooting with live multi-node passive peering, offering accurate network mapping, and a comprehensive variety of bgp forensics tools around the AWMN routing.

SupperQuagga is further powering BGPmap, BGPnms & AWMN Dancing BGP.

AWMN, an open & free wireless network

AWMN, established back in 2002 is a small Internet that is run & managed by its users only. No commercial companies or government/academic foundations are involved. It's a purely amateur initiative, ideal for, besides the zero-cost connectivity, experimenting & learning playground. It also serves as a magnet in maintaining a verity of different people together.

The audience & the community of this initiative, is exclusively Hellenic thereof further language use will be switched to Greek.

Το AWMN ξεκίνησε το 2002 και είναι ένα μικρό Internet αποτελούμενο από τους χρήστες του και μόνο. Δεν υπάρχουν εμπορικοί, κρατικοί ή ακαδιμαικοί οργανισμοί, μεσάζοντες ή εταιρίες. Είναι ένα καθαρά ερασιτεχνικό εγχείρημα, ιδανικό, πέρα από το μηδενικό κόστος διασυνδεσιμότητας, για πειραματισμό και εκμάθηση. Επιπλέον συγκεντρώνει & συσπειρώνει ένα μεγάλο εύρος διαφορετικών ανθρώπων.

Ιστορικό

Supper Quagga Day 1

Οι παρακάτω οδηγίες δεν ισχύουν πλέον. αποτελούν αρχειακό υλικό.

To: awmn@googlegroups.com
Date: 2016-01-14 08:41

supper quagga: προσπάθεια εντοπισμού φαντασμάτων και λανθασμένων ρυθμίσεων στο BGP του AWMN, άλλη μια νέα υπηρεσία powered by http://www.stats.awmn & http://www.routers.awmn/

http://www.routers.awmn/index.php?section=lg&bgp_router=383&bgp_command=1&filter_neig_ip=&filter_as_operator=&filter_asn=&filter_prefix=

για μπρίκι:

  1. βάζεις για γείτονα στο BGP τον 10.2.19.3
  2. AS 3298
  3. επιλέγεις multihop
  4. φίλτρο στην έξοδο/out το ίδιο που βάζουμε με τους γείτονες για το awmn
  5. φίλτρο στην είσοδο/in none

για quagga:

ip prefix-list awmn-null seq 20 deny any
neighbor 10.2.19.3 remote-as 3298
neighbor 10.2.19.3 ebgp-multihop
neighbor 10.2.19.3 prefix-list awmn-null in

στείλε μου IP & AS από τους router που θα συμμετάσχουν στην supper quagga να τους προσθέσω

καμιά ευαίσθητη εσωτερική πληροφορία δεν “διαρρέει” αφού ότι ανακοινώνεις στο BGP στο AWMN απλά το περνάς και στην supper quagga και απαγορεύεις να σου περάσει τίποτα πίσω !!

προώθησέ το παντού, είναι για καλό σκοπό !! όσοι περισσότεροι τόσο καλύτερα !!

MikroTik broken software

Αν και οι περισσότεροι εναπομείναντες του AWMN θεωρούν πως η MikroTik βοήθησε το δίκτυο στην εξάπλωσή του, στην ουσία το τίναξε στον αέρα. Εξουδετέρωσε το αρχικό πνεύμα συνεργασίας με οδηγούς γύρω από ανοιχτές πλατφόρμες, αρχιτεκτονικές και λογισμικό και ώθησε τον κόσμο σε black boxes τα οποία πολλές φορές είχαν προβλήματα που όπως θα δούμε πήραν πάνω από 4-5 χρόνια να λυθούν, ενώ άλλα παραμένουν και καταδυναστεύουν το δίκτυο μέχρι και σήμερα.

Το μεγαλύτερο πρόβλημα, το οποίο παραμένει μέχρι σήμερα, έχει να κάνει με τον τρόπο που η MikroTik διαχειρίζεται το IP routing ειδικά στο BGP που χρησιμοποιούμε στο AWMN. Αυτό το πρόβλημα δημιούργησε τουλάχιστον τρία με τέσσερα blackout στην δρομολόγηση με το BGP να σκάει από άκρη σε άκρη σε όλο το δίκτυο. Σήμερα παραμένει να διατηρεί διαδρομές οι οποίες δεν είναι ενεργές και τις οποίες αποκαλούμε φαντάσματα.

το Ιστορικό ξεκινά από το 2007. Στο forum της MikroTik υπάρχει μια ενότητα που ξεκινά το 2011 και η οποία μετά από τρία χρόνια, το 2014 δεν έχει λυθεί. Το πρόβλημα μεταφέρεται σε άλλη ενότητα η οποία ξεκινά το 2013 και συνεχίζεται μέχρι το 2019 χωρίς ακόμη να έχουν λυθεί τα αναφερόμενα προβλήματα.

Ένα από τα βασικά εργαλεία, μεταξύ άλλων, που παρέχει η SupperQuagga είναι ο εντοπισμός της πηγής δημιουργίας τέτοιων φαντασμάτων με το bgp ghost-detector.

MikroTik software issues [forum archives]

Stuck Routes on Route Cache

gustkiller Tue Dec 20, 2011 11:57 pm

Hi,
  
Every now and them we got that problem. Today another AS network engineer called me 
becouse his IP prefix  couldnt reach our prefixes.

After troubleshooting he told me that they lost they connection in a national wide IXP and 
when doing a traceroute from our bgp router, the next hop showed was our IXP ip address. After 
checking the routes, we're receiving their routes via another service provider but RouterOS were 
trying to get to them via a cached route that doesnt even exists anymore.

To fix the problem we have to disable the IXP interface on our router and them reenable it. 
After that RouterOS finnaly forgot the route and them everything started to work.

Anyone more having that problem? Is there any command to clear routing cache?

Thanks!

Pengu1n Mon Oct 13, 2014 11:25 am

Is there any news about fixing this bug?
Still have problems with CCR1016-12G and RB751G-2HnD on 6.20
We are using OSPF and IPSEC.

ip route cache BUG

ujin Tue Oct 22, 2013 2:13 pm

The problem is following: The oldest entries are not flushed from cache.

During one day we got:
/ip route cache print
cache-size: 52442
max-cache-size: 65536

This bug is observed only on OS version 6.x.

OS version 5.x did not have such issue.

Please provide workaround HOW TO FLUSH CACHE.

cgood Fri Mar 15, 2019 12:05 pm

>> Currently it is known that OVPN interface reconnects are responsible for route cache leaks.

Hello, how to fix this issue?
Mikrotik CHR -> ip route cache full 512k .. OVPN/L2TP server

SupperQuagga Introduction

η Supper Quagga ή αλλιώς: BGP αξονικός τομογράφος του AWMN, γεννήθηκε ως ανάγκη να έχουμε μια καλύτερη εικόνα του τι πραγματικά συμβαίνει στην δρομολόγηση BGP του δικτύου μας.

Αποτελεί ένα επιπλέον εργαλείο που στόχο έχει να βοηθήσει στον εντοπισμό λανθασμένων ρυθμίσεων η άλλων προβλημάτων στο BGP που όλοι τρέχουμε και περνάει από τους κόμβους μας.

  • Η στήριξή της Supper Quagga με την συμμετοχή κόμβων σε αυτήν, είναι ιδιαίτερα σημαντική για την εγκυρότητα και αποτελεσματικότητα της εικόνας του δικτύου. Καλούμε τον κάθε ένα που ενδιαφέρεται για την καλή λειτουργία του δικτύου να συμμετέχει σε αυτήν με την απλή διαδικασία που ακολουθεί παρακάτω.
  • ΕΓΚΑΤΑΣΤΑΣΗ:

τα στοιχεία της Supper Quagga είναι:

για MikroTik, δημιουργούμε ένα νέο peer στο BGP με την ονομασία supperquagga με τα ακόλουθα στοιχεία:

IP: 10.2.146.10
AS:  22128
multihop

είναι σημαντικό να επιλεχθεί το πεδίο multihop. !!–> προσοχή το συγκεκριμένο πεδίο πρέπει να είναι ενεργό ΜΟΝΟ για τον peer supperquagga

Προαιρετικά εισάγουμε τα παρακάτω φίλτρα: !!–> δεν αποτελεί απαραίτητη προϋπόθεση

filter-in: none
filter-out: awmn (μόνο αν το έχουμε ενεργό για κάθε wifi λινκ)

το φίλτρο που έχει προταθεί σαν RFC, το οποίο μπορεί να χρησιμοποιηθεί από όλες τις Ελληνικές ασύρματες κοινότητες που χρησιμοποιούν BGP πάνω στο δίκτυο 10.0.0.0/8 και που καλό είναι να εφαρμόζεται από όλους τους κόμβους κορμού σε κάθε εισερχόμενη και εξερχόμενη peer BGP σύνδεση: δεν αποτελεί απαραίτητη προϋπόθεση

MikroTik terminal setup for SupperQuagga

/routing bgp peer add remote-as=22128 remote-address=10.2.146.10 multihop=yes passive=yes instance=bgp1

/routing bgp peer print

MikroTik BGP log filter

Σε περίπτωση που δεν θέλουμε να γεμίζουν τα logs με bgp μυνήματα από τη SupperQuagga, οι παρακάτω εντολές φιλτράρουν τα συγκεκριμένα μυνήματα από τα log

/system logging set [find where topics="error"] topics="error,!bgp"
/system logging set [find where topics="info"] topics="info,!bgp"

Quagga setup for SupperQuagga

neighbor 10.2.146.10 remote-as 22128
neighbor 10.2.146.10 ebgp-multihop
neighbor 10.2.146.10 prefix-list awmn-null in
neighbor 10.2.146.10 prefix-list awmn-bgp out
!
ip prefix-list awmn-bgp seq 10 permit 10.0.0.0/8 ge 9 le 24
ip prefix-list awmn-bgp seq 15 permit 10.0.0.0/15 le 32
ip prefix-list awmn-bgp seq 20 deny any
ip prefix-list awmn-null seq 20 deny any

Bird setup for SupperQuagga

protocol bgp {                                                 
      export filter awmn;               
      import none;                                             
                                                                                         
      local as 3298;                     
      neighbor 10.2.146.10 as 22128;     
      multihop;                         
}

η διαδικασία ολοκληρώνεται με ένα email στο alex_παπάκι_ozo.com με το IP και το AS του κάθε ρούτερ που πρόκειται να συμμετάσχει στην SupperQuagga.

Περί Ασφάλειας στην SupperQuagga αποστέλλεται ακριβώς και μόνο η ίδια πληροφορία με αυτή που στέλνεται προς τους γειτονικούς κόμβους για το AWMN. Αντίστοιχα η SupperQuagga έχει φίλτρα στα εισερχόμενα για αποκλειστικά και μόνο δίκτυα AWMN. Επιπλέον δεν στέλνει απολύτως καμία πληροφορία προς τις συνδέσεις της, κάτι που διασφαλίζεται και με ένα προαιρετικό φίλτρο none στο IN του BGP μαζί της.

Είναι τελείως ακίνδυνη χωρίς να καταναλώνει επιπλέον πόρους στο σύστημα που συμμετέχει σε αυτήν.

στατιστικά από την SPQ για το πανελλαδικό BGP nmsBGP.

Η Supper Quagga τρέχει την έκδοση quagga-1.2.4 η οποία αναβαθμίζεται σε κάθε νέα έκδοση όταν αυτή είναι διαθέσιμη.

Τα εργαλεία της SupperQuagga δίνουν την δυνατότητα για μια πιο εύκολη και σε βάθος ανάλυση σχετικά με το BGP που κυκλοφορεί στις διασυνδεδεμένες μεταξύ τους ασύρματες κοινότητες. Είναι ένα πολυ-εργαλείο που μπορεί μαθησιακά να βοηθήσει στην καλύτερη κατανόηση του πως ακριβώς δουλεύει το BGP, τα προβλήματα και τις δυνατότητες που έχει, πάνω σε ένα πραγματικό και ζωντανό δίκτυο.

αν καταφέρουμε να χαρτογραφήσουμε πιο ορθά το BGP θα έχουμε και μια πιο έγκυρη εικόνα με τους πραγματικούς κόμβους ραχοκοκαλιάς του AWMN

  • Μια πολύ ενδιαφέρουσα και χρήσιμη υπηρεσία, που βασίζεται στα δεδομένα της Supper Quagga, ζωντανής απεικόνισης και χαρτογράφησης όλων των Πανελλαδικών Ασύρματων κοινοτήτων που έχουν διασυνδεθεί μεταξύ τους είναι το BGPmap που με πολύ όρεξη και ώρες εργασίας έφτιαξε συντηρεί ναι αναπτύσσει ο κόμβος #9895 geolos τον οποίο ευχαριστώ θερμά για την υποστήριξη και προσφορά του στην κοινότητά μας

Μερικές οδηγίες χρήσης του εργαλείου

μέσα από το γραφικό περιβάλλον της Supper Quagga μπορούμε να έχουμε μια γρήγορη και εύκολη εικόνα με το ποιοι κόμβοι ανεβοκατεβαίνουν πολλές φορές μέσα στην ημέρα δημιουργώντας πιθανά προβλήματα στην δρομολόγηση.

αυτό που παρατηρεί κάποιος εξετάζοντας το φαινόμενο των flaps στο BGP είναι ότι συνήθως πρόκειται για τερματικούς κόμβους που δεν επηρεάζουν τη γενικότερη δρομολόγηση του δικτύου (απλά ρυπαίνουν το BGP με την προβληματική συμπεριφορά τους).

ένα ερώτημα προβληματισμός που εγείρεται είναι γιατί αυτοί οι τερματικοί κόμβοι να στέλνουν BGP στην δρομολόγηση και να μην λειτουργούν απλά με ένα static route. Αυτό εξάλλου είναι ορθά και εκτός προδιαγραφών AWMN (δηλαδή τερματικοί κόμβοι & BGP).

eBGP & iBGP

το BGP έχει δυο κατηγορίες: eBGP & iBGP

το eBGP σημαίνει external BGP και είναι αυτό που συνδέουμε τον κόμβο μας με άλλους απομακρυσμένους κόμβους (τα BB λινκ που λέμε). σε αυτού του είδους τις συνδέσεις και ΜΟΝΟ περνάμε το προτεινόμενο awmn BGP φιλτρο.

το iBGP σημαίνει internal BGP και είναι αυτό που συνδέουμε δικούς μας εσωτερικούς router στον ίδιο κόμβο μεταξύ τους

δηλαδή για παράδειγμα, έχουμε ένα alix, ένα rb433AH & ένα groove και τρέχουμε σε κάθε ένα από αυτά BGP τα οποία συνδέουμε μεταξύ τους (αυτή η μεταξύ τους τοπική σύνδεση την αποκαλούμε iBGP –> εσωτερική, internal)

σε αυτές τις εσωτερικές iBGP συνδέσεις ΔΕΝ θα πρέπει να βάζουμε κανένα φίλτρο, ούτε το awmn BGP φίλτρο

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 ενός κόμβου.

το awmn BGP φίλτρο το χρησιμοποιούμε ΜΟΝΟ σε eBGP συνδέσεις, αυτές με άλλους απομακρυσμένους κόμβους, ώστε να μην ανακοινώνουμε στο γενικό BGP υποδίκτυα μικρότερα του C-class, και γενικά να θωρακίζουμε/φιλτράρουμε την πληροφορία του BGP από λανθασμένες ρυθμίσεις ή κακόβουλες ενέργειες.

iBGP troubleshoot

ένας απλός & σίγουρος τρόπος για να εντοπίσουμε αν υπάρχει πρόβλημα σωστής iBGP επικοινωνίας σε έναν κόμβο που τρέχει πάνω από έναν BGP speaker είναι, να κάνουμε ping σε ένα IP ενός /30 ή /29 υποδικτύου που έχουμε κόψει από το δικό μας C-class για χρήση wan/BB, από τους άλλους τοπικούς BGP speakers του τοπικού μας δικτύου (αυτούς που ΔΕΝ έχουν σε WAN σύνδεση αυτό το wan/BB υποδίκτυο αλλά οφείλουν να το γνωρίζουν. αν το ping λειτουργεί, τότε δεν υπάρχει το iBGP πρόβλημα. σε διαφορετική περίπτωση, το πρόβλημα υπάρχει & θα πρέπει να διερευνηθεί & λυθεί.

AWMN BGP φίλτρο

Ακολουθεί το προτεινόμενο φίλτρο καλής χρήσης & προστασίας του BGP για το AWMN το οποίο επιβάλεται να έχουμε σε κάθε BGP με ασυρματική ζεύξη/λινκ.

Ανοίγουμε ένα Terminal δίνουμε τις παρακάτω εντολές:

/routing filter
add action=discard chain=awmn bgp-as-path-length=!0-28
add action=accept chain=awmn prefix=10.0.0.0/8 prefix-length=24
add action=accept chain=awmn prefix=10.0.0.0/15 prefix-length=32
add action=discard chain=awmn

Στην τοποθεσία Routing–>BGP–>Peers, σε κάθε ασυρματική σύνδεση, όχι με τους τοπικούς μας άλλους router, επιλέγουμε για φίλτρο IN και OUT την επιλογή awmn.

Το παραπάνω φίλτρο αποκλείει τις μαύρες τρύπες που ακυρώνουν τον δυναμικό, ζωντανό & διάφανο χαρακτήρα του BGP, καταπολεμά σε ένα ικανοποιητικό βαθμό το μεγαλύτερο μέρος των φαντασμάτων, ενώ προστατεύει & θωρακίζει από κακόβουλες ενέργειες ή ακούσιες λανθασμένες ρυθμίσεις. Δεν αποτελεί απαραίτητη προϋπόθεση αλλά η χρήση του συνιστάται.

AWMN NAT/Masquerade setup

* * * Προσοχή * * * στην χρήση του NAT/Masquerade

στο IP–>Firewall–>NAT

αν το IP/δύκτιο που θέλουμε να κάνουμε NAT δεν είναι 10ρι τότε ο κανόνας είναι:

src=!10.0.0.0/8   (dst=0.0.0.0/0  ή κενό)

αν έχουμε 10ρι που θέλουμε να κάνουμε NAT τότε ο κανόνας είναι:

src=10.0.0.0/8    dst=!10.0.0.0/8  

ο πρώτος κανόνας εξασφαλίζει το NAT σε δίκτυο/IP που ΔΕΝ ανήκει σε 10ρι να γίνεται NAT προς οποιοδίποτε δίκτυο.

ο δεύτερος κανόνας εξασφαλίζει το NAT σε δίκτυο/IP που ανήκει σε 10ρι & θέλουμε να ΜΗΝ γίνεται NAT όταν απευθύνεται σε 10ρι δίκτυο, αλλά να γίνεται NAT όταν θέλει να πάει σε ΟΧΙ 10ρι δίκτυο.

στο src είναι καλό & σωστότερο να ορίζονται τα συγκεκριμένα δίκτυα που μας αφορούν.

Αν δεν υπάρχει η δυνατότητα να καθοριστούν συγκεκριμένα τα δίκτυα src=, τότε οι παραπάνω δυο γενικοί κανόνες, εξασφαλίζουν την απρόσκοπτη & σωστή διεύλευση της 10.0.0.0/8 κίνησης.

cloud.mikrotik.com DNS Storm

Σε πολλές περιπτώσεις, MikroTik δρομολογητές με default ρυθμίσεις, δημιουργούν πολύ ενοχλήτικές & άχρηστες καταγίδες σε χρήση DNS

12:32:38.113564 IP 10.37.52.254.5678 > 10.2.19.1.53: 41094+ A? cloud.mikrotik.com. (36)
12:32:38.113618 IP 10.2.19.1.53 > 10.37.52.254.5678: 41094 1/0/0 A 159.148.147.229 (52)
12:32:39.113797 IP 10.37.52.254.5678 > 10.2.19.1.53: 41094+ A? cloud.mikrotik.com. (36)
12:32:39.113857 IP 10.2.19.1.53 > 10.37.52.254.5678: 41094 1/0/0 A 159.148.147.229 (52)
12:32:40.112605 IP 10.37.52.254.5678 > 10.2.19.1.53: 41094+ A? cloud.mikrotik.com. (36)
12:32:40.112668 IP 10.2.19.1.53 > 10.37.52.254.5678: 41094 1/0/0 A 159.148.147.229 (52)

Κάποιες προτεινόμενες λύσεις στο συγκεκριμένο πρόβλημα είναι οι ακόλουθες:

  1. Απενεργοποίηση Detect Internet
     /interface detect-internet set detect-interface-list=none 
  2. Απενεργοποίηση DDNS service
    /ip cloud set ddns-enabled=no
  3. Απενεργοποίηση Update time
    /ip cloud set update-time=no
  4. Απενεργοποίηση time-zone-autodetect
    /system clock set time-zone-autodetect=no

Mikrotik DNS Setup

/ip dns
set allow-remote-requests=yes

/ip dns static
add address=10.38.128.5 name=ixp4xx.soleo.awmn.
add address=10.38.128.249 name=gw-makofo.soleo.awmn
add address=10.38.128.250 name=gw-soleo.makofo.awmn
start.1600889176.txt.gz · Last modified: 2020/09/23 19:26 by alex