Προς το περιεχόμενο

[Remote Network Monitoring] "TR-069" bot


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα ,
Εδώ κι αρκετό καιρό βρήκα τη ανάγκη να έχω ενημερώσεις/ ειδοποιήσεις για τη κατάσταση της VDSL μου όσο είμαι εκτός του πατρικού μου . Αυτό γιατί και έχω home server με διάφορες υπηρεσίες (από e-book libraries σε password managers μέχρι και Network Attached Storage), έχοντας πρόσβαση σε αυτές με μια VPN σύνδεση . Αλλά και καθώς μετά από «παράπονα» των χρηστών του τοπικού δικτιού «δεν έχουμε internet/ έπεσε το Wi-Fi » ενώ πολύ απλά μπορεί να … ήταν το DNS (it’s always DNS 😆 ) …

Επιλέχθηκε η πλατφόρμα Discord για τη εύκολη πρόσβαση που μας δίνει στο API της για bots (με έτοιμες βιβλιοθήκες για Python όπως η NextCord που χρησιμοποιήσαμε ) καθώς και γιατί τo χρησιμοποιούμε για τη καθημερινή μας επικοινωνία.
Ξεκινήσαμε το development υποστηρίζοντας μόνο τα rooted technicolor TG789 & DGA413x (θεωρώ πως και αλλά CPE της technicolor θα δουλέψουν αν υπάρχουν τα κατάλληλα credentials για login από SSH , καθώς δεδομένα περνούμε με τη εντολή xdslctl ).Προχωρήσαμε στην υποστήριξη του ZTE ZXHN H267A , με έναν (κάπως) ανορθόδοξο τρόπο , με scraping του web Interface του και reverse engineering τις διαδικασίες του login, μη έχοντας άλλη επιλογή και για να το κάνουμε resource friendly. Έχουμε αναφορές πως λειτουργεί ως έχει και για το άλλο μοντέλο ZTE, το H288A. Στα σχέδια μας είναι να υποστηρίζουμε και αλλά routers , ξεκινώντας από το ZTE h1600 και το openWRT , με όσα routers έχουν το κατάλληλο dsl chipset
Για την αποθήκευση των δεδομένων αρχικά χρησιμοποιήσαμε Round Robin Database (RRD), και έπειτα από αυτήν δημιουργήσαμε τα γραφήματα που στέλνει το bot στο discord ως εικόνα. Αργότερα χρησιμοποιήσαμε την influxDB και ένα script που την κάνει update (λεπτομέρειες παρακάτω), για να έχουμε καλύτερο data visualisation χρησιμοποιώντας το grafana. Και οι δύο βάσεις δεδομένων ενημερώνονται κάθε 10 λεπτά.

Ένα 2ο Script , «μιλάει» με το discord ως bot, κατόπιν του αντίστοιχου αιτήματος το bot μας στέλνει ένα report από τα στατιστικά της γραμμής

DiscordStatus.png.26d1d84235aca81cb7a8f2f4e9cd8db8.png

ακούει για εντολές «reboot» (προς το παρόν supported μόνο σε technicolor , χρήσιμο σε περίπτωση που το CPE έχει κολλήσει, έχει μεγαλώσει κατά πολύ ο αριθμός των FEC/CRC σφαλμάτων κτλ. ). Ενημερώνει με pings (μηνύματα το discord Που έρχονται με υψηλή προτεραιότητα), καθώς και αν η xDSL σύνδεση «έπεσε»

Line.jpg.70f685332c50c97bd798ac9d9bf5d4a8.jpg

( προφανώς για αυτό είναι απαραίτητο να υπάρχει μια 2η σύνδεση με το Internet, εγώ είχα στη διάθεση μου μια απλή adsl , αλλά και μια σύνδεση τύπου NB-IOT με sim card Και ένα 4g modem θα ήταν κάτι παραπάνω από ικανή να το υποστηρίξει , καθώς τα δεδομένα που αποστέλλονται είναι πολύ λίγά και μια Public ip δε είναι απαραίτητη ).

Το Setup μου απαρτίζεται και από ένα Pfsense appliance ως router/Firewall . Αυτό βγάζει τη PPP Κλήση , διαχειρίζεται το DDNS και είναι ο VPN server .

Με τις IPv4 να τελειώνουν , οι ISP υλοποιούν διαφορά tricks όπως το CGNAT αυτό εμένα μου κάνει τη ζωή δύσκολη καθώς δε μπορώ να ανοίξω πόρτες προς τα έξω.
Ένα ακόμη Bot , ποιο απλό αυτή τη φορά , αναλαμβάνει το monitoring του PFSense, μας ενημερώνει με pings για το αν βρει CGnat και σε περίπτωση που το DDNS αποτύχει , μας ενημερώνει για τη WAN IP που έχει κάθε στιγμή το WAN interface , καθώς και σε αλλαγές αυτής .

Grafana.jpg.a3e46073ffd70086f2af8d7bf95fb4b6.jpg 

Εδώ βλέπετε ένα screenshot από το dashboard του Grafana . μας δείχνει plots Με τις Sync & Attainable Speeds , τα FEC και CRC errors καθώς και το SNR και το Power . Στο Attenuation up , είχαμε ένα θέμα καθώς το ίδιο το Modem , με τη εντολή xdslctl μας επέστρεφε 0. Δεν είναι δικό μας σφάλμα, πράγματι επιστρέφει τόσο.


Όλα τα scrips τρεχουν ειτε ως Services πανω σε Debian ειτε σε docker container .

Οδηγίες για τη υλοποίηση όλων αυτών εχουμε ή τις ετοιμάζουμε και θα Εχουμε στις επόμενες ημέρες στο GitHub repo .

Special thanks στον TheTonk, τον developer του Project που ανέλαβε και τη ανάπτυξη του python κώδικα
(εγώ ανέλαβα το Networking / DevOps κομμάτι του project)

GitHub repo : https://github.com/finos2/TR069-Bot

DiscordStatus.png

  • Like 1
Δημοσ.
10 ώρες πριν, greek_pilot είπε

Ένα ακόμη Bot , ποιο απλό αυτή τη φορά , αναλαμβάνει το monitoring του PFSense, μας ενημερώνει με pings για το αν βρει CGnat και σε περίπτωση που το DDNS αποτύχει , μας ενημερώνει για τη WAN IP που έχει κάθε στιγμή το WAN interface , καθώς και σε αλλαγές αυτής .

Δεν κατάλαβα πως κάνεις σύνδεση απ' έξω γνωρίζοντας μεν την κανονική WAN, ξεπερνώντας το ΝΑΤ του παρόχου;

11 ώρες πριν, greek_pilot είπε

Στα σχέδια μας είναι να υποστηρίζουμε και αλλά routers , ξεκινώντας από το ZTE h1600 και το openWRT , με όσα routers έχουν το κατάλληλο dsl chipset

Ποια είναι τα συμβατά DSL Chipset;

Συγχαρητήρια για τις πληροφορίες και την υλοποίηση του προγράμματος.

Δημοσ.
18 minutes ago, jkoukos said:

Δεν κατάλαβα πως κάνεις σύνδεση απ' έξω γνωρίζοντας μεν την κανονική WAN, ξεπερνώντας το ΝΑΤ του παρόχου;

Τα scipts αυτα δε χρειάζονται Public IP για να συνδεθούν με το discord. Η λειτουργία του VPN Μου όμως χρειαζεται . Αρα οπότε το `pfsenseBot` δει τη IP στο wan interface του pfsense διαφορετικη με τη public ip (που τη βλέπουμε κάνοντας ένα get σε sites που επιστέφουν τη Public ip) τότε μας  ενημερώνει ...για το πρόβλημα 
 

Quote

Ποια είναι τα συμβατά DSL Chipset;

Για το OpenWRT , τα μονα σημβατα DSL chipset ειναι τα Lantiq vrx200 . Αρα οταν στο μελλον υλοποησουμε και support για openWRT, οσα CPE θα εχουν αυτο το chipset και 
το cfw αυτο flashed , θα ειναι supported ( θεωρητικά )   

 

Quote

Συγχαρητήρια για τις πληροφορίες και την υλοποίηση του προγράμματος.

Σας ευχαριστώ . Οποια αλλη παρατήρηση είναι ευπρόσδεκτη  

Δημοσ.
41 λεπτά πριν, greek_pilot είπε

Τα scipts αυτα δε χρειάζονται Public IP για να συνδεθούν με το discord. Η λειτουργία του VPN Μου όμως χρειαζεται . Αρα οπότε το `pfsenseBot` δει τη IP στο wan interface του pfsense διαφορετικη με τη public ip (που τη βλέπουμε κάνοντας ένα get σε sites που επιστέφουν τη Public ip) τότε μας  ενημερώνει ...για το πρόβλημα 

Ναι, ΟΚ με την ενημέρωση αφού ξεκινά από μέσα, αλλά μετά τι κάνεις για να έχεις πρόσβαση; Εκτός αν δεν την χρειάζεσαι. Ρωτώ διότι ο VPN server τρέχει πίσω από το CGNAT, άρα δεν μπορεί κάποιος client να συνδεθεί πάνω του.

Σε αντίστοιχη περίπτωση τρέχω Wireguard όπου παίζει ως "client" σε απομακρυσμένο "server", οπότε ακόμη και με CGNAT δεν υπάρχει θέμα με την πρόσβαση από το διαδίκτυο. Βάζω τα εισαγωγικά διότι σε Wireguard δεν υπάρχει Server/Client με την κλασσική έννοια, αλλά έχουμε peers που ανάλογα τις ρυθμίσεις μπορεί να είναι client ή server ή και τα 2 ταυτόχρονα.

53 λεπτά πριν, greek_pilot είπε

Για το OpenWRT , τα μονα σημβατα DSL chipset ειναι τα Lantiq vrx200 .

Ωραία, αναμένουμε. Έχω 2-3 OpenWrt με VRX200 chipset για να το δοκιμάσω κάποια στιγμή.

Δημοσ.
17 minutes ago, jkoukos said:

Ναι, ΟΚ με την ενημέρωση αφού ξεκινά από μέσα, αλλά μετά τι κάνεις για να έχεις πρόσβαση;

Τηλέφωνο στον παροχο . Στον οτε απλα το λες στο 1ο βαθμειο support πως θες να σε βγαλουν απο το dubble nat , τους λες και το παραμυθάκι πως εχεις καμερες και συναγερμούς μεσα  για να μη καθεσαι να εξηγείς τι ειναι το βι πι εν ... οχι μονο σε βγαζουν μειώνεται και η πιθανοτητα να ξανα μπεις καθως το σημειωνουν στη καρτελα (οπως μου ειχαν πει καποια στιγμη ) . Η VF στη Ελλαδα απ οτι ξερω δεν εφαρμοζει CGnat
ενω η wind (που αυτος ειναι και ο λογος που εφυγα απο αυτους σε VDSL δινει μονο απο CGnat .Μάλιστα ειχαν δώσει κάποια στιγμή γραπτός "είναι παγία πολιτικη μας τους οικιακούς πελατες να τους εχουμε σε CGNAT χωρις να υπαρχει δυνατοτητα Public IP , που εαν τη χρειαζοντε πρεπει να αναβαθμίσουν σε επαγγελματικο  πακετο  internet και να αγορασουν μια Public ip , οι IPv4 τελειωσαν κι ειναι ο μονος τροπος να σας δεινουμε Internet" 

Δημοσ.

Ναι γνωρίζω την διαδικασία για να βγεις από το CGNAT και την έχω χρησιμοποιήσει (Cosmote και Vodafone).

Όλοι πλέον δίνουν CGNAT. Πρώτη η Wind το 2015, ακολούθησε η Cosmote το 2016 και η Vodafone τo 2018/19. Για την Νova δεν θυμάμαι πότε το ξεκίνησε, διότι δεν ήμουν ποτέ πελάτης της, σίγουρα πάντως δίνει και αυτή.

Σε όλους βγαίνει, άλλοτε εύκολα και άλλοτε με επιμονή μέχρι να μιλήσεις με κάποιον σχετικό. Το καλό με την Cosmote είναι ότι άπαξ και ζητήσεις  να σε βγάλουν την πρώτη φορά, συνήθως δεν ξαναμπαίνεις. Με βεβαιότητα σε λέω ότι η Wind δίνει κανονική δημόσια ΙΡ σε οικιακές συνδέσεις, απλά είναι συχνότερο το φαινόμενο του ΝΑΤ έναντι των άλλων παρόχων.

Στο εξωτερικό είναι πάγια τακτική το CGNAT και εξαίρεση όσοι δεν το έχουν. Μόνο με επί πληρωμή σταθερής ΙΡ υπάρχει λύση ή IPv6.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...