Το προφίλ μας στο Google Plus
11

Network booting με το OpenWrt

Tο φόρτωμα της αγαπημένης μας διανομής από δισκάκι είναι μάλλον ξεπερασμένη πρακτική. Σας αρέσει να κουβαλάτε από μηχάνημα σε μηχάνημα τα δισκάκια σας; Σας αρέσει άραγε ν’ ακούτε τα γουργουρητά του CD/DVD drive, όσο περιμένετε να φορτωθεί το σύστημα; Σ’ εμάς όχι και πολύ. Γι’ αυτό κι αποφασίσαμε να απλοποιήσουμε τη διαδικασία — και ταυτόχρονα να την κάνουμε πιο cool: Από εδώ και στο εξής, τα μηχανήματα του σπιτιού μας θα φορτώνουν Linux …δικτυακά!

deltaHacker 015 (τεύχος Δεκεμβρίου 2012) | Network booting με το OpenWrt

Λίγο πολύ, όλοι γνωρίζουμε ότι ένας υπολογιστής έχει την δυνατότητα να φορτώσει το λειτουργικό του μέσω δικτύου. Η λειτουργία αυτή ονομάζεται network booting, αλλά μπορεί να τη συναντήσουμε και σαν LAN boot ή PXE boot. Αυτή η διαδικασία προβλέπει το κατέβασμα μερικών αρχείων, τα οποία περιέχουν μεταξύ άλλων και τις διαθέσιμες επιλογές, δηλαδή τα λειτουργικά συστήματα που διατίθενται για φόρτωση. Στη συνέχεια, ο συνδεδεμένος υπολογιστής φορτώνει κάποιο λειτουργικό μέσω του δικτύου, κατεβάζοντας όλα τα αρχεία από κάποιον άλλο υπολογιστή! Συνήθως, τα δίκτυα που υλοποιούν ένα τέτοιο σύστημα απαρτίζονται από τερματικά με αρκετά περιορισμένες δυνατότητες. Οι υπολογιστές αυτών των δικτύων κατεβάζουν το επιλεγμένο λειτουργικό σύστημα και παράλληλα τα αρχεία του εκάστοτε χρήστη, ώστε να μπορεί οποιοσδήποτε να δουλέψει από οπουδήποτε. Στη συνέχεια θα εξετάσουμε το όλο θέμα, όχι για να στήσουμε ένα εταιρικό δίκτυο αλλά για να καλύψουμε τις ανάγκες μας με έναν όμορφο κι εντυπωσιακό τρόπο. Ας πούμε ότι βαρεθήκαμε να βάζουμε ένα δισκάκι CD σε κάθε υπολογιστή του σπιτιού, όταν θέλουμε να ξεκινήσουμε μια διανομή Linux ;)

Πριν προχωρήσουμε, ας δούμε πώς ξεκινάει ένα σύστημα μέσω δικτύου. Η λογική είναι ακριβώς ίδια με εκείνη του booting από οποιοδήποτε άλλο μέσο. Ο υπολογιστής ξεκινάει κι αναλαμβάνει δράση το PXE ROM της κάρτας δικτύου. Πρόκειται για ένα μικρό πρόγραμμα αποθηκευμένο σε μια ROM, στο hardware του υπολογιστή. Το εν λόγω πρόγραμμα λειτουργεί σαν DHCP client και βοηθάει τον υπολογιστή να συνδεθεί στο δίκτυο και να ξεκινήσει το network booting. Αφού το PXE ROM πάρει την απαραίτητη διεύθυνση IP, λαμβάνει κι ένα αρχείο απαραίτητο για το boot του συστήματος. Το αρχείο αυτό δεν είναι άλλο από τον network bootloader! Στη συνέχεια λοιπόν αναλαμβάνει δράση ο bootloader και μεταφέρει από το δίκτυο τον πυρήνα κι όλα τα αρχεία που συγκροτούν ένα λειτουργικό σύστημα. Όπως αντιλαμβάνεστε, με την ίδια λογική ξεκινούν και οι live διανομές Linux, από τα δισκάκια CD/DVD. Το μόνο που αλλάζει είναι η πηγή προέλευσης των αρχείων. Στην περίπτωση του network boot τα αρχεία προέρχονται από κάποιον υπολογιστή ή συσκευή του δικτύου, ενώ στην περίπτωση των live CD/DVD τα αρχεία προέρχονται από το εκάστοτε δισκάκι. Με άλλα λόγια, η λογική του network booting είναι απλή και γνώριμη.

Διαβάστε όλο το άρθρο στο deltaHacker 015 (τεύχος Δεκεμβρίου 2012). Όλες τις πληροφορίες για τις συνδρομές στο deltaHacker, το μοναδικό μηνιαίο περιοδικό με θεματολογία ethical hacking, δίκτυα, ασφάλεια, προγραμματισμό και ηλεκτρονικά που δεν κυκλοφορεί στα περίπτερα και απευθύνεται σε όλους, θα τις βρείτε εδώ ακριβώς. Για παραγγελίες μεμονωμένων τευχών ή συνδρομών συμπληρώστε τη σχετική φόρμα.

Μη χάσετε τις εκπληκτικές, εορταστικές υπερπροσφορές στις 12μηνες και 24μηνες συνδρομές, που φτάνουν έως το 15%! Η φόρμα παραγγελίας έχει τροποποιηθεί καταλλήλως ώστε να ενσωματώνει τις εκπτώσεις και τώρα είναι η κατάλληλη στιγμή για να πάρετε συνδρομή ή να προσθέσετε χρόνο σε αυτή που έχετε!

Σημείωση: Οι συνδρομές μπορούν να ξεκινούν από όποιο τεύχος επιθυμείτε, αρκεί να υπάρχει σε stock.

11 Responses to “Network booting με το OpenWrt”

  1. tr3quart1sta | 02/01/2013 at 01:55

    Μου βγαζει καθε φορα το σφαλμα: PXE-E53: No boot filename received

    Εχω διπλοτσεκαρει ολες τις ρυθμισεις. Σε online αναζητησεις μου βγαζει οτι το προβλημα βρισκεται στις ρυθμισεις του DHCP Server, αλλα δεν καταφερα να παω παρακατω.

    Στη σελιδα 69 πανω πανω γραφει οτι θα χρειαστει “να σηκωσουμε τον δικο μας DHCP server στο δικτυο, ή να τροποποιησουμε τον ηδη υπαρχοντα.” και στην επομενη αρχιζει η περιγραφη της ρυθμισης του TFTP, παραλειποντας το κομματι του DHCP(??). Help!

    • giannoug | 02/01/2013 at 13:19

      Λοιπόν! Ας τα πάρουμε ένα-ένα. Έχεις δύο επιλογές, είτε να σηκώσεις τον δικό σου DHCP και TFTP server ή να χρησιμοποιήσεις το OpenWRT που τα παρέχει όλα. Στο άρθρο επιλέξαμε τον δεύτερο τρόπο ;) Υποθέτω πως αυτό κάνεις και εσύ.

      Το πρόβλημα αυτό εμφανίζεται γιατί δεν έχεις ρυθμίσει σωστά το OpenWRT. Δες το πεδίο “Network boot image” στην καρτέλα “TFTP Settings” στο “DHCP and DNS” του “Network”!

      Δεν αναφερόμαστε ξεχωριστά σε TFTP και DHCP γιατί το OpenWRT χρησιμοποιεί το dnsmasq που τα υλοποιεί μαζί στο ίδιο πρόγραμμα.

  2. tr3quart1sta | 02/01/2013 at 16:59

    Ναι σε αυτο το πεδιο εχω συμπληρωσει pxelinux.0, οπως το περιγραφετε. Δλδ τι αλλο πρεπει να κανω? Και τα αρχεια pxelinux.0 και vesamenu.c32 βρισκονται στον φακελο /srv/netboot/ και το αρχειο default στον φακελο /srv/netboot/pxelinux.cfg/ με τις καταλληλες ρυθμισεις.

  3. tr3quart1sta | 02/01/2013 at 18:08

    αμέ

  4. tr3quart1sta | 03/01/2013 at 19:53

    τι αλλο χρειαζεται να ελεγξω? εχω ακολουθησει τις οδηγιες ακριβως οπως ειναι στο περιοδικο.

    • giannoug | 04/01/2013 at 00:20

      Αν μπορείς να στείλεις ένα screenshot θα είναι τέλεια. Βεβαιώσου *ξανά* όμως!

  5. educos | 09/01/2013 at 09:01

    Φαντάζομαι τη δουλειά αυτή μπορεί να την κάνει ένα RaspberryPi έτσι (DHCP – TFTP Server) ?

    • subZraw | 09/01/2013 at 13:07

      Φαντάζομαι πως ναι! Αρκεί δηλαδή που τρέχει Linux. Από εκεί και πέρα, όλα τα άλλα εργαλεία/υπηρεσίες βρίσκονται.

  6. psychaos | 27/01/2013 at 16:50

    Καλησπέρα σας – έχω ακολουθήσει όλα τα βήματα αλλά όταν πάω να προσαρτήσω την εικόνα iso της διανομής που θέλω να χρησιμοποιήσω λαμβάνω το μήνυμα mount: mounting /dev/loop0 on /srv/netboot/xxxxx failed: no such device. Η εντολή που δίνω είναι η mount -t iso9660 -o loop /root/xxxx/xxxx.iso /srv/netboot/xxxx/

    Ευχαριστώ

    • giannoug | 27/01/2013 at 17:12

      Υποθέτω πως σου έχει ξεφύγει σίγουρα μια εντολή! Το “no such device” αναφέρεται στην *συσκευή* loop την οποία εγκαθιστούμε με το opkg install kmod_loop. Η εντολή αυτή βρίσκεται στο κάτω-κάτω μέρος της σελίδας 74!

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων