Η εμπειρία μου με το DD-WRΤ firmware

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Αποφάσισα να ανοίξω αυτό το νήμα ώστε να υπάρχει μια αναφορά σε ένα πασίγνωστο εναλλακτικό firmware για πάρα πολλές συσκευές της αγοράς, το dd-wrt:

https://www.dd-wrt.com/site/

Πρόκειται για ένα Linux based firmware το οποίο εγκαθίσταται σε μια ευρεία γκάμα routers/access points κλπ της αγοράς (linksys, netgear, tp-link, d-link κ.α.). Δεν υποστηρίζονται modem/routers καθώς τα περισσότερα modems βασίζονται σε proprietary drivers, οπότε αν θέλουμε να χρησιμοποιήσουμε ένα dd-wrt router ως κύριο router, θα πρέπει να το κάνουμε bridge με κάποιο modem/router ή αν δεν έχουμε αυτή τη δυνατότητα, θα πρέπει να διαβάσουμε για το πως θα απενεργοποιήσουμε μια σειρά από services στο adsl router και θα κάνουμε ότι απαιτηθει για να αποφύγουμε το διπλό ΝΑΤ.

Η πρώτη μου εμπειρία με το dd-wrt ήταν γύρω στο 2012 μέ το κλασικό linksys WRT54GL το οποίο και έστησα στο πατρικό μου ως repeater για να αποκτήσει πρόσβαση στο internet ένας media player στην τηλεόραση η οποία βρισκόταν μακριά από το router.

O καιρός πέρασε, το linksys μπήκε σε αχρηστία και σκονιζόταν στο πατάρι, μέχρι που ένας φίλος μου ζήτησε βοήθεια με το δίκτυο στο σπίτι του. Είχε ήδη τραβήξει UTP καλώδιο από τον έναν όροφο στον άλλον, είχε δώσει ένα σκασμό λεφτά να αγοράσει διάφορα access points για να στήσει ένα ασύρματο δίκτυο στον έξτρα όροφο και για κάποιο λόγο επί 2 χρόνια ταλαιπωρούνταν από κάκιστο internet με συνεχείς αποσυνδέσεις κλπ. Πηγαίνοντας σπίτι του για να δω τι φταίει, πήρα καλού κακού και το linksys μαζί. Αφού έχασα κάθε ελπίδα να καταλάβω τι στο καλό συμβαίνει με την περίπτωσή του, ξήλωσα τα πάντα, έβαλα το ddwrt linksys με αποτέλεσμα ο άνθρωπος να δει το φως του μετά από επίπονες προσπάθειες ετών.

Κάπου εκεί μου ήρθε η όρεξη να το ψάξω παραπάνω και έτσι αφού έκανα έρευνα αγοράς, κατέληξα στην αγορά ενός Netgear R7000:

http://www.netgear.com/home/products/networking/wifi-routers/R7000.aspx


Έβαλα το adsl router μου (tp-link Archer D5) σε bridge mode, φλάσαρα το ddwrt στο R7000 και ξεκίνησε το παιχνίδι....





Ακολουθούν κάποια πολύ ενδιαφέροντα πράγματα που έχω κάνει μέχρι στιγμής:


1. DNS Caching



Με τη χρήση του dnsmasq για dhcp/dns server και ορίζοντας τον ως τον πρώτο dns server για όλες τις συσκευές στο δίκτυο, απέκτησα dns caching. Έτσι όταν κάποια συσκευή στο δίκτυο κάνει ένα dns request, αν αυτό το request υπάρχει στην cache, σερβίρεται ακαριαία κάτι που δίνει μια έξτρα σπιρτάδα στην περιήγηση στο διαδίκτυο.

2. Adblocking




Εδώ το παιχνίδι άρχισε να γίνεται πολύ ενδιαφέρον. Επί της ουσίας με τη χρήση του privoxy, το router γίνεται ένας τοπικός proxy, ο οποίος κόβει ΑΠΕΙΡΗ σαβούρα από το διαδίκτυο. Εκτός από διαφημίσεις κόβονται και πολλές "κακοτοπιές" και πραγματικά αλλάζει η εμπειρία του σερφαρίσματος.

Η διαδικασία αυτή είναι διαφορετική από το κλασικό ad blocking με plugins στους browsers, με βασικό πλεονέκτημα υπέρ του privoxy την καλύτερη ταχύτητα στο φόρτωμα των σελίδων, καθώς η διαφήμιση δεν φτάνει καν στον τελικό αποδέκτη, σε αντίθεση με το adblock plus πχ όπου φτάνει και μπλοκάρεται μετά.


3. VPN client/server




Δεν ασχολήθηκα με το να στήσω openvpn server τοπικά, αλλά μια που έχω έναν δικό μου openvpn server online, ασχολήθηκα με το να κάνω το netgear, openvpn client. Αφού πέρασα τα απαραίτητα στοιχεία, ενεργοποίησα τον client, ο οποιος συνδέθηκε αμέσως και έτσι με τη μία, όλες οι συσκευές πίσω από το router απέκτησαν σύνδεση vpn.


4. USB Support/Samba server








To netgear έχει μια usb2 και μια usb3. Στην usb2 κάρφωσα από περιέργεια έναν canon mp490 usb εκτυπωτή, ο οποίος αναγνωρίστηκε ως δικτυακός εκτυπωτής ακαριαία, από τις windows συσκευές του σπιτιού. Δεν κατάφερα να κάνω το scanner του να παίξει, αλλά μόνο τον εκτυπωτή. Δεν ασχολήθηκα παραπάνω καθώς το έκανα για να δω αν και πως γίνεται και δεν κράτησα το setup.


Πάμε όμως τώρα στα ωράια....

Η χρήση φτηνού usb NAS, με έχει απασχολήσει πολύ και έχω κάνει διάφορες δοκιμές στο παρελθόν. Ως βασικό USB Nas είχα μέχρι και χτες ένα odroid C1 με έναν Western Digital Mybook. Λόγω του ότι ο myboοk είναι πολύ θορυβώδης είχα καταλήξει να "εξορίσω" το combo σε απομακρυσμένο σημείο του σπιτιού και να το συνδέσω στο δίκτυο με powerline της devolo.

Το αποτέλεσμα ήταν οκ για τη βασική χρήση που θέλω εγώ (σερβίρισμα μουσικής στο transport), αλλά κατά τ' αλλα με την πάροδο του χρόνου η ποιότητα δικτύου με το devolo γινόταν όλο και χειρότερη και ειχα καταλήξει με ένα δίκτυο που στην καλύτερη περίπτωση ήταν 50-60MBps.

Έτσι αποφάσισα να αγοράσω έναν WD RED 3TB, να τον βάλω σε μια passive αλουμινένια θήκη (για να γλιτώσω ανεμιστήρια κλπ) με usb 3 support και να καρφώσω πάνω στην usb 3 του netgear. Παρότι η usb3 του netgear δεν είναι ότι καλύτερο, κατάφερα να πιάσω τα παρακάτω:

Code:
dd if=/dev/zero of=/mnt/ddwrt/music/testfile bs=1M count=1024 oflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 27.7596 s, 38.7 MB/s

dd if=/mnt/ddwrt/music/testfile of=/dev/null bs=1M count=1024 iflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 30.0215 s, 35.8 MB/s

Εν ολίγοις με ένα write 38.7Mb/s και ένα read 35.8MB/s, αυτό που κατάφερα το λές και σοβαρή αναβάθμιση!!!

Εννοείται ότι πλέον έχω φτιάξει ένα σωρό shares και έχω πετάξει στο δίσκο πολλά περισσότερα data απ' ότι στο προηγούμενο usb nas. Με όσες δοκιμές έχω προλάβει να κάνει έχω εξαιρετική εμπειρία η οποία είναι η μέρα με τη νύχτα με πρίν.


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


Γι αρχή θα σταματήσω εδώ και δε θα περιγράψω περισσότερα. Θα επανέλθω με επόμενα posts με πληροφορίες για:

- το advanced Qos που προσφέρει
- τις δυνατότητες για ftp/web/minidlna και ένα σκασμό ακόμα servers που προσφέρει
- κλπ κλπ

Υπάρχει πραγματικά ένα χάος επιλογών τις οποίες δεν ξέρω πόσα λεφτά πρέπει να δώσει κάποιος για να τις βρει σε consumer προιόν.

Να σημειωθεί ότι δεν έκανα καμιά αναφορά στο wifi, όπου πραγματικά χάνεσαι στις ρυθμίσεις και επιλογές αν το επιθυμείς. Πολύ γρήγορα να πώ ότι σήκωσα αμέσως 3 δίκτυα. Ένα στα 2.4 για βασική χρήση, ένα isolated guest επίσης στα 2.4 καθώς και ένα στα 5Ghz για συγκεκριμένες συσκευές. Πολλές συσκευές (όπως πχ. Netgear με stock fimrware ή το tp-link που είχα εγώ) όταν έχουν σηκωμένα και τα 2 interfaces τα κάνουν μαντάρα με αποσυνδέσεις κλπ. Εδώ μεχρι στιγμής δεν έχει ανοίξει ρουθούνι.


Σχόλια - Παρατηρήσεις

- Αν επιχειρήσετε να βάλετε dd-wrt σε κάποιο υποστηριζόμενο router, θα πρέπει να διαβάσετε αναλυτικά πριν προβείτε στις διαδικασίες γιατί υπάρχει πάντοτε η περίπτωση να το μπρικάρετε και να είναι για πέταμα
- Το dd-wrt είναι ένα κοινοτικό opensource software. Αυτό σημαίνει ότι δεν υπάρχει επίσημη υποστήριξη και επίσης δεν υπάρχει και σιγουριά ότι θα παίξει σταθερά και απροβλημάτιστα σε κάθε συσκευή.
- Στο router database του dd-wrt site θα βρείτε αρχαίες εκδόσεις του firmware. Στην πράξη υπάρχουν ολόφρεσκιες απλά πλέον βγάζουν μόνο beta.
- Oι λειτουργίες που θα βρείτε στο εκάστοτε firmware για μια συσκευή δεν είναι ίδιες. Άλλοτε είναι περισσότερες και άλλοτε λιγότερες, ανάλογα με το διαθέσιμο χώρο που έχει το κάθε router. Tο build του R7000 μου έχει πιθανώς ενσωματωμένες τις περισσότερες από τις προσφερόμενες λειτουργίες.
- Με μια πρόχειρη ματιά στο παρακάτω link, μπορείτε να δείτε αν έχετε κάποια συσκευή που να υποστηρίζει το τελευταίο διαθέσιμο firmware:

http://download1.dd-wrt.com/dd-wrtv2/downloads/betas/2017/07-08-2017-r32597/

Αν δε βρείτε εδώ τη συσκευή σας, δε σημαίνει ότι δεν υποστηρίζεται. Ενδέχεται να υπάρχει κάποιο παλιότερο firmware γι αυτήν.


Αυτά προς το παρόν. Θα επανέλθω με νεότερα καθώς το ψάξιμο θα συνεχιστεί για πολύ ακόμα.
 
Last edited:

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Θα ήθελα να προσθέσω και μια έξτρα πληφορία γία όσους θέλουν να ψαχτούν λίγο παραπάνω.

Εκτός από τις επίσημες beta, υπάρχουν και τα λεγόμενα kong builds. Ο Kong, είναι μέλος της ομάδας ανάπτυξης και συντηρεί δικά του builds για συγκεκριμένες συσκευές:

http://www.desipro.de/ddwrt/K3-AC-Arm/Supported Models
http://www.desipro.de/ddwrt/Readme.txt

Ας πούμε εν ολιγοις ότι τα builds του είναι κάπως πιο καλά τεσταρισμένα για τις συσκευές που προσφέρονται.

Εγώ αυτή τη στιγμή χρησιμοποιώ kong έκδοση, η οποία έχει και ένα έξτρα καλούδι. Αν συνδεθεί κάποιος με ssh/telnet και δώσει την παρακάτω εντολή:

Code:
ddup --flash-latest

μπορεί να αναβαθμίσει το firmware αυτόματα, χωρίς να κατεβάσει τίποτα και να χρησιμοποιήσει το web interface.

Code:
==========================================================
 
     ___  ___     _      _____  ______       ____  ___ 
    / _ \/ _ \___| | /| / / _ \/_  __/ _  __|_  / / _ \
   / // / // /___/ |/ |/ / , _/ / /   | |/ //_ <_/ // /
  /____/____/    |__/|__/_/|_| /_/    |___/____(_)___/ 
                                                     
                       DD-WRT v3.0
                   http://www.dd-wrt.com
 
==========================================================




BusyBox v1.26.2 (2017-06-11 12:37:55 CEST) built-in shell (ash)


root@ddwrt:~# ddup --flash-latest
New release 32700 for Netgear R7000 available.
Do you want to update (y/n) [default=n]:

Το παραπάνω το δοκίμασα πριν λίγο και έκανα firmware update στο άψε-σβήσε.
 

avpap

Μέλος Σωματείου
30 September 2011
9,583
Αθηνα
Πολύ ενδιαφέρον! Το είχα δοκιμάσει σε ένα wdr3600 με την ελπίδα να βελτιωθεί το WiFi που είχε συνεχείς αποσυνδέσεις.

Εντυπωσιακοτατες οι ταχύτητες που είδες στο USB. Συνήθως στα μαμισια λειτουργικά, είναι τραγικές.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Οι ταχύτητες αυτές υποτίθεται ότι είναι ίδιες με αυτές που βλέπουν οι χρήστες του R7000 και με το stock firmware.

Όπως αντιλαμβάνεσαι απέχουν πολύ από max bandwidth που μπορεί να δώσει το usb 3 και οι χρήστες του R7000 κράζουν σε όλο το internet, αλλά από την άλλη 200-300 ποιοτικά Mbps δεν τα λες και λίγα για το είδος της υλοποίησης! Και λέω ποιοτικά γιατί πραγματικά το έχω ξεσκίσει το NAS από χτες, κάνοντας ταυρόχρονες εγγραφές πολλών 100δων GB με rsync ενώ στριμάρω πχ DXD κλπ και δεν καταλαβαίνει τίποτα.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Εδώ και λίγες ημερες παίζω με το QoS του DD-WRT το οποίο είναι ότι πιο advanced έχω δει σε "σπιτικό" router:



Χρειάστηκα να διαβάσω κάμποσο και τελικά κατέληξα με ένα απλό στήσιμο, δίνοντας προτεραιότητες τόσο σε επίπεδο services όσο και σε επίπεδο mac address (για το SIP phone και το RPI/Libreelec). Απ' ότι φαίνεται όλα δουλεύουν ρολόι.

Ένα άλλο feature που εμένα δε μου χρησιμεύει, αλλά μπορεί να φανεί πολύ χρήσιμο κυρίως σε γονείς, είναι το section του Access Restrictions:




Εδώ μπορεί να γίνει πολλή δουλειά, με scheduling, με αποκλεισμό συγκεκριμένων εφαρμογών κλπ.

Τέλος, ιδιαίτερο ενδιαφέρον έχουν και οι ρυθμίσεις του dnsmasq, που πιο πάνω έχω αναφέρει ότι όταν τον χρησιμοποιούμε ως default dhcp server προσφέρει επιπλέον και dns caching:



Εδώ απ' ότι βλέπετε έχω ενεργοποιήσει DNS encryption χρησιμοποιώντας την υπηρεσία του Opendns (των οποίων τους DNS servers χρησιμοποιώ επίσης). Επιπρόσθετα έχω ενεργοποιήσει το local dns, έτσι ώστε με τις παραμέτρους που μπορούν να οριστούν στο "Additional DNSMasq Options" να μπορώ να χρησιμοποιώ τοπικά urls αντί για ip. Έτσι πχ, αν θέλω να μπω στο web interface του transport μου, μπορώ να του δώσω μια διεύθυνση τύπου:

Code:
archphile.mydomain.lan

Tέλος στις πρόσθετες custom ρυθμίσεις μπορούμε να ορίσουμε και το μέγεθος της cahce. Όπως βλέπετε εδώ έχω ανεβάσει το όριο στις 10000 εγγραφές.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Έχω αμελήσει να παραθέσω και τις βασικές επιλογές για το wifi:






Στην πρώτη καρτέλα είναι οι ρυθμισεις για το κάθε interface. Έχω στήσει όπως βλέπετε ένα δίκτυο στα 2.4, ένα guset isolated δίκτυο επίσης στα 2.4 καθώς και ένα δίκτυο στα 5Ghz.

Στη δεύτερη καρτέλα έχω ορίσει τα security options για το κάθε ένα από τα παραπάνω.

Στα υπόψιν ότι το κάθε sandbox που βλέπετε, αν πατηθεί προσφέρει ένα χαμό από επιλογές.
 

avpap

Μέλος Σωματείου
30 September 2011
9,583
Αθηνα
Προσπαθω να στησω qos για spotify και εχω απηυδησει με το asus n17 μου. Βλεπω οτι το dd-wrt εχει ετοιμη επιλογη για spotify. Εχεις καμμια ιδεα (ή το εξηγει καπου;) ποιες πορτες/πακετα περιλαμβανει αυτη η ρυθμιση; Ειχα διαβασει οτι χρησιμοποιειται η πορτα 4070, της εδωσα highest priority αλλα καμμια βελτιωση. Μετα διαβασα οτι χρησιμοποιει και αλλες τυχαιες πορτες, οποτε δεν βγαζω ακρη. Το προβλημα παρουσιαζεται (λογικο) οταν κατεβαινουν τορρεντ ταυτοχρονα. Δοκιμασα να βαλω χαμηλο priority στο ip (χωρις να καθοριζω πορτες) του σερβερ του τρεχει torrent client, και ταυτοχρονα υψηλο priority στο ip του ενισχυτη που παιζει spotify...τζιφος.
 

avpap

Μέλος Σωματείου
30 September 2011
9,583
Αθηνα
Υποψιν, οτι για web surfing, youtube κτλπ, το qos οπως το εχω βαλει (80,443) δουλευει μια χαρα. πεφτει η ταχυτητα του torrent client, στρημαρω βιντεακι youtube και μετα ξανανεβαινει το τορρεντ.
 

tuxx

Supreme Member
3 January 2014
3,319
/dev/null
Ζητώ συγνώμη, δεν είχα δει τα μηνύματα. Η επιλογή για spotify, απ' ότι έχω διαβάσει σημαίνει ότι το dd-wrt θα προσπαθήσει να αναγνωρίσει το traffic που προκύπτει από τη συγκεκριμένη εφαρμογή. Με ποιο τρόπο γίνεται αυτό δεν το γνωρίζω.

Για την ιστορία το QoS του dd-wrt δουλεύει υποδειγματικά μέχρι στιγμής.

Εγώ δημιουργώ μεγάλο upload traffic σε συγκεκριμένα ports (ssh/scp file uploads) συχνά, την ίδια ώρα που πρέπει να σερφάρω, να κάνω video conferences με skype for business κλπ. Τα settings που έχω βάλει μου επιτρέπουν λοιπόν να κάνω τα πάντα, ενώ ταυτόχρονα ανεβάζω 100δες MB.