RFC3330 – Special-Use IPv4 Addresses

Χτες η οικογενειακή βόλτα μας έβγαλε και από το Athens Heart. Ήταν αρκετά ευχάριστη η διαπίστωση πως παρέχει wireless access. Δοκιμάζοντάς το, και αφού συμφώνησα με τους όρους χρήσης, παρατήρησα το ακόλουθο redirect:

http://1.1.1.1/agree.cgi

Ένα απλό whois lookup στο ARIN μας δείχνει πως το 1.0.0.0/8 (και άρα και το 1.1.1.1) είναι reserved (και εάν δεν έχει αδυνατίσει η μνήμη μου τα παλιά τα χρόνια ήταν εκχωρημένο στο BBN):

NetRange:   1.0.0.0 - 1.255.255.255 
CIDR:       1.0.0.0/8 
NetName:    RESERVED-9
NetHandle:  NET-1-0-0-0-1
Parent:     
NetType:    IANA Reserved
Comment:    
RegDate:    
Updated:    2002-09-12

Το RFC1918 υπάρχει για κάποιο λόγο. Και ο λόγος αυτός είναι όταν χρειαζόμαστε “πρόχειρες” ή μόνιμες αλλά μη ανακοινώσιμες διευθύνσεις να μη βάζουμε ότι μας φανεί πιο εύκολο, ακόμα κι αν αυτό φαίνεται έτσι στα παραδείγματα στα manuals της cisco. Δεν επιλέγουμε το private address space για να κάνουμε τη δουλειά μας στην τύχη. Μπορεί να δουλεύει τώρα, αλλά αργότερα κάποια στιγμή δεν θα δουλεύει και η επίλυση του προβλήματος θα είναι δυσκολότερη.

Μπορεί να φαίνεται πως γκρινιάζω από τυπολατρεία, αλλά μου έχει τύχει. Κάποτε συνάντησα ένα δίκτυο στο οποίο αυτός που το είχε στήσει είχε ακούσει πως όποια διεύθυνση αρχίζει από 192 είναι διαθέσιμη. Όποιος έχει διαβάσει το RFC1918 ξέρει πως δεν είναι όλες διαθέσιμες για private addressing, αλλά μόνο το 192.168.0.0/16. Και ναι το συγκεκριμένο δίκτυο είχε πρόβλημα πρόσβασης σε άλλο δίκτυο που άρχιζε από 192 και φυσικά δεν μπορούσε να το δει και on top of that ήταν εξαιρετικά δύσκολο να αλλάξουν διεύθυνση σε ορισμένα τμήματα του δικτύου τους.

Για αυτό προσπαθούμε να τα κάνουμε σωστά τα πράγματα από την αρχή!

Και επειδή το RFC1918 δεν περιλαμβάνει όλες δεσμευμένες / ειδικές διευθύνσεις IPv4 αντιγράφω τον πίνακα από το section 3 του RFC3330:

3. Summary Table

   Address Block             Present Use                       Reference
   ---------------------------------------------------------------------
   0.0.0.0/8            "This" Network                 [RFC1700, page 4]
   10.0.0.0/8           Private-Use Networks                   [RFC1918]
   14.0.0.0/8           Public-Data Networks         [RFC1700, page 181]
   24.0.0.0/8           Cable Television Networks                    --
   39.0.0.0/8           Reserved but subject
                           to allocation                       [RFC1797]
   127.0.0.0/8          Loopback                       [RFC1700, page 5]
   128.0.0.0/16         Reserved but subject
                           to allocation                             --
   169.254.0.0/16       Link Local                                   --
   172.16.0.0/12        Private-Use Networks                   [RFC1918]
   191.255.0.0/16       Reserved but subject
                           to allocation                             --
   192.0.0.0/24         Reserved but subject
                           to allocation                             --
   192.0.2.0/24         Test-Net
   192.88.99.0/24       6to4 Relay Anycast                     [RFC3068]
   192.168.0.0/16       Private-Use Networks                   [RFC1918]
   198.18.0.0/15        Network Interconnect
                           Device Benchmark Testing            [RFC2544]
   223.255.255.0/24     Reserved but subject
                           to allocation                             --
   224.0.0.0/4          Multicast                              [RFC3171]
   240.0.0.0/4          Reserved for Future Use        [RFC1700, page 4]

For future reference.

on problem solving

– Λογικά συμβαίνει αυτό και δεν παίζει

Πάνω στη δουλειά είμαι φωνακλάς. Τις περισσότερες φορές ίσως αδικαιολόγητα. Υπάρχει όμως ένα πράγμα για το οποίο φωνάζω συνέχεια:

– Μην κάνεις λογικές υποθέσεις!

Έχω παρατηρήσει πως στην διαδικασία επίλυσης προβλημάτων, όταν η πρόταση ξεκινάει με την λέξη “λογικά”, τότε από υπόθεση αυτόματα γίνεται απόδειξη με όλα τα διαθέσιμα στοιχεία να αγνοούνται και όλα τα ενδιάμεσα βήματα να παραλείπονται. Όταν όμως το guesstimation πέσει έξω (και είναι θέμα τεράστιας εμπειρίας να μην πέφτει κανείς έξω) αυτό σημαίνει πως πολύς χρόνος έχει περάσει χωρίς αποτέλεσμα.

Επειδή ονομάζουμε κάτι λογικό, δεν σημαίνει πως είναι κιόλας!

Αντιγράφω από το “Forensic Engineering Investigation“:

There should be a large foundation of evidence and facts at the bottom. These facts then form the basis for analysis according to proven scientific principles. The facts and analysis, taken together, support a small number of conclusions that form the apex of the pyramid.

Conclusions should be directly based on the facts and analysis, and not on other conclusions or hypotheses. If the facts are arranged logically and systematically, the conclusions should be almost self-evident. Conclusions based on other conclusions or hypotheses, that in turn are only based upon a few selected facts and very generalized principles, are a house of cards. When one point is proven wrong, the logical construct collapses.

Αποφύγετε να χρησιμοποιείτε τη λέξη “λογικά” όταν προσπαθείτε να βρείτε τι συμβαίνει:

– Λογικά συμβαίνει το Α επειδή έχω το Β

Προγραμματίζεται το μυαλό σε λανθασμένη πορεία. Αντί το Β να είναι πιθανό αίτιο, μετατρέπεται σε βεβαιότητα. Και αντί να ψάξει κανείς να βρει όλα τα πιθανά αίτια, προσπαθεί να αποδείξει πως το συγκεκριμένο Β προκαλεί το Α, ακόμα κι αν δεν το προκαλεί.

Update 2009/08/05: Έτυχε να διαβάσω το “Strong Inference” [pdf] το οποίο περιέχει αναφορές και από το “The Method of Multiple Working Hypotheses” του T. C. Chamberlin. Αντιγράφω σχετικά:

Chamberlin says our trouble is that when we make a single hypothesis, we become attached to it.

“The moment one has offered an original explanation for a phenomenon which seems satisfactory, that moment affection for his intellectual child springs into existence and as the explanation grows into a definite theory his parental affections cluster about his offspring and it grows more and more dear to him […] There springs up, also, an unconscious pressing of the theory to make it fit the facts to make them fit the theory.”

To avoid this grave danger, the method of multiple hypotheses is urged. It differs from the simple working hypothesis in that it distributes the effort and divides the affections.

Each hypothesis suggests its own criteria, its own means of proof, its own method of developing the truth, and if a group of hypotheses encompass the subject on all sides, the total outcome of means and of methods is full and rich.

Chamberlin thinks the method “leads to certain distinct habits of mind” and is of prime value in education. When faithfully followed for a sufficient time, it develops a mode of thought of its own kind which may be designated the habit of complex thought.

(previous)

#define SYSTEM_ADMINISTRATOR

SysAdminDay.comΈχω περιγράψει μια διαδρομή που μπορεί να ακολουθήσει κανείς για να γίνει system administrator. Πολλές φορές όμως είναι πιο εύκολο να εξηγεί κανείς πως μπορεί να γίνει αυτό παρά να εξηγεί τι είναι. Στο Jargon File για παράδειγμα, ο system administrator ορίζεται ως:

admin: /ad·min΄/n.

Short for ‘administrator’; very commonly used in speech or on-line to refer to the systems person in charge on a computer. Common constructions on this include sysadmin and site admin (emphasizing the administrator’s role as a site contact for email and news) or newsadmin (focusing specifically on news). Compare postmaster, sysop, system mangler.

Αυτός ο ορισμός δεν είναι όμως αρκετός για να απαντήσει στον πατέρα μου την ερώτηση:

– Τελικά παιδί μου εσύ τι δουλειά κάνεις;

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

– Δηλαδή εσύ γράφεις προγράμματα;
– Ναι, αλλά δεν είναι αυτή η δουλειά μου.
– Φτιάχνεις υπολογιστές;
(εννοεί με το κατσαβίδι και όλα)
– Ναι, αλλά δεν είναι αυτή η δουλειά μου.
– Ναι, αλλά τους διορθώνεις.
– Ναι, αλλά δεν είναι η δουλειά μου το service!
– Τελικά παιδί μου εσύ τι δουλειά κάνεις;

Ούτε μπορεί να απαντήσει στη γυναίκα μου την ερώτηση:

– Μα καλά εσύ γιατί δεν μπορείς να έχεις ένα κανονικό ωράριο;

Ούτε φυσικά μπορεί να απαντήσει στην παρατήρηση της ξαδέρφης μου:

– Μα γιατί έχεις το laptop μαζί σου Γιώργο στις διακοπές; Στο Δημόσιο δε δουλεύεις;0

Θα μπορούσα φυσικά να απαντάω “Είμαι πιανίστας σε μπουρδέλο“. Δε βοηθάει όμως.

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

– Πες πως είναι πυροσβέστης και στη βάρδιά του δεν έχει πιάσει καμιά φωτιά. Και μετά τη βάρδια πυροσβέστης είναι, οπότε εάν υπάρχει φωτιά και δεν υπάρχει άλλη βάρδια, αυτός πρέπει να τη σβήσει.

Για να εισπράξει την απάντηση:

– Φίλος του δεν είσαι;

Αφού οι παραπάνω προσπάθειες δεν έφεραν αποτέλεσμα, δοκίμασα να δω το πρόβλημα από μια άλλη γωνία:

Τι είναι σύστημα;

Στο “What is a Systems Approach?” περιέχονται μια σειρά από ορισμοί που απαντάνε στο ερώτημα “Τι είναι Σύστημα;”. Για την περίπτωσή μας ο συνδιασμός των παρακάτω δύο δείχνει αρκετός:

A system is a set of variables sufficiently isolated to stay discussable while we discuss it. — W. Ross Ashby.

και:

A system is a representation of an entity as a complex whole open to feedback from its environment.

Και πράγματι τα συστήματα που διαχειριζόματε (εμείς οι system administrators) έχουν πολλές μεταβλητές (εξαρτήσεις εάν θέλετε) και είναι πολύπλοκες οντότητες που αλληλεπιδρούν με το περιβάλλον στο οποίο εντάσσονται (για οποιοδήποτε ορισμό του περιβάλλοντος, π.χ. εταιρικό περιβάλλον και ανάγκες, το Internet, οι ίδιοι οι χρήστες του συστήματος, κ.ο.κ.).

Ακόμα καλύτερα το ίδιο άρθρο μιλάει για “organized complexity” που είναι το ίδιο με αυτό που γράφει ο Tom Limoncelli στο “Time Management for System Administrators“: “I am a system administrator! I manage chaos for a living!”

Στο ίδιο άρθρο όμως υπάρχει ένα διαμάντι:

The responsibility of the systems engineer was the choice of the “technical path” between theory and application in order to create new services; improve the quality of existing services; or lower their cost.

Με το παραπάνω φαίνεται να συμφωνεί και ο θεωρητικός του επαγγέλματος, ο Mark Burgess ο οποίος στο “Analytical Network and System Administration” γράφει:

System administration is about the design, running and maintenance of human-computer systems. Human-computer systems are ‘communities’ of people and machines that collaborate actively to execute a common task1.
:
System administration is primarily about the technological side of a system: the architecture, construction and optimization of the collaborating parts, but it also occasionally touches on softer factors such as user assistance (help desks), ethical considerations in deploying a system, and the larger implications of its design for others who come into contact with it. System administration deals first and foremost with the system as a whole

Όσο βατοί και βολικοί κι αν φαίνονται οι παραπάνω ορισμοί και περιγραφές, πάσχουν: Είναι απλοί και γίνονται κατανοητοί από ανθρώπους που ήδη ξέρουν τι είναι ένα σύστημα ή τι δουλειά κάνει ένας system administrator, αντιλλαμβάνονται τις απαιτήσεις και την πολυπλοκότητα. Έτσι το ερώτημα παραμένει:

– Εσύ παιδί μου, τι δουλειά κάνεις;

Τελικά ίσως το μόνο που να χρειάζεται είναι κάποιος που πιάνει το χέρι του να κάνει μια παραλλαγή αυτού του διαγράμματος:

small talk with a web designer

Γιατί όπως φαίνεται δεν είμαι ο μόνος που δεν μπορεί να απαντήσει απλά και περιεκτικά το ερώτημα.

#include <std/disclaimer.h>


[0]- Οφείλω να ομολογήσω πως η ξαδέρφη διαθέτει εν αγνοία της διορατικότητα μια και ο system administrator στο Δημόσιο κατατάσσεται διακριτά σε μία από δύο κατηγορίες, αυτή και αυτή.

[1] – Όσοι ασχολείστε με τη θεωρία των MIS καλό είναι να διαβάσετε το βιβλίο του Burgess. Αυτό περιέχει όλη την απαιτούμενη θεωρία για αυτό που θέλετε: να φτιάχνετε δηλαδή συστήματα που να δουλεύουν και να δουλεύουν σωστά και αποδοτικά. Όλα τα άλλα βιβλία (π.χ. Turban) είναι για να περνάτε τα μαθήματα. Είμαι ισοπεδωτικός, αλλά έχω τα χιλιόμετρα για να είμαι.

“Δεν ξέρω”

Δεν είναι κακό να λέει κανείς “Δεν ξέρω πως γίνεται αυτό” ή “Είναι η πρώτη φορά που κάνω μια τέτοια μετάβαση, δεν το έχω ξανακάνει”. Δεν είναι ντροπή. Κακό είναι να μην το ξέρει ο απέναντι. Γιατί έτσι δεν θα είχαμε 4 ώρες downtime αντί για (λιγότερο από) μία, επειδή ο απέναντι υποθέτει πως ξέρεις πολύ καλά τι κάνεις και ψάχνει να βρει το πρόβλημα στη δικιά του υποδομή.

nmap book

This landed today at nmap-hackers: Fyodor finished “Nmap network scanning” and it is shipping. From the book’s abstract:

Nmap Network Scanning is the official guide to the Nmap Security Scanner, a free and open source utility used by millions of people for network discovery, administration, and security auditing. From explaining port scanning basics for novices to detailing low-level packet crafting methods used by advanced hackers, this book by Nmap’s original author suits all levels of security and networking professionals. The reference guide documents every Nmap feature and option, while the remainder demonstrates how to apply them to quickly solve real-world tasks. Examples and diagrams show actual communication on the wire. Topics include subverting firewalls and intrusion detection systems, optimizing Nmap performance, and automating common networking tasks with the Nmap Scripting Engine.

Time management books

Όταν ο (σχολιαστής αυτού του blog) XLA μου δώρισε το “Time Management for System Administrators” λίγο ήξερε πόσο θα επιδεινωνόταν το πρόβλημα διαχείρισης χρόνου που είχα. Άρχισα να το διαβάζω με πολύ ενδιαφέρον και έβλεπα μπροστά μου έναν άνθρωπο που διηγούταν προβλήματα παρόμοια με τα δικά μου και ημίμετρα που και εγώ είχα προσπαθήσει να εφαρμόσω. Πάνω που είχα τελειώσει το 3ο κεφάλαιο, σταμάτησα να το διαβάζω. Τι είχε συμβεί;

Είχα σταματήσει να γυρίζω μόνος μου στο σπίτι. Προσπαθώ να διαβάζω πολύ στα ΜΜΜ, καθώς περνάω μιάμιση με δύο ώρες σε αυτά. Καθώς γύριζα με παρέα, “έχασα” δύο ώρες ελαφρού διαβάσματος.

Το βιβλίο θάφτηκε στη στοίβα και σχεδόν το ξέχασα.

Η διαχείριση του χρόνου μου επίσης πήγε περίπατο. Δεν εγκατέλειψα την προσπάθεια, αλλά σίγουρα κατάφερνα λιγότερα από όσα μπορούσα και ήθελα.

Καιρό μετά πέτυχα στο Hacker News μια αναφορά για το “How to do Research at the MIT AI Lab“. Ανάμεσα στα πολλά χρήσιμα και ενδιαφέροντα γράφει:

Read Alan Lakein’s book How to Get Control of Your Time and Your Life, which is recommended even by people who hate self-help books. It has invaluable techniques for getting yourself into productive action.

Το βιβλίο το είχε η βιβλιοθήκη του ΤΕΕ και σκέφτηκα πως αφού δεν τα κατάφερα με το προηγούμενο, ας προσπαθήσω με αυτό. Το βιβλίο διαβάζεται γρήγορα, εύκολα και ευχάριστα (μου πήρε περίπου μία εβδομάδα και σε ώρες που παράλληλα έκανα baby sitting). Εντυπωσιακό για βιβλίο που γράφτηκε το 1973 και όμως περιέχει συμβουλές για το πως να αποφύγει κανείς τόσο το information overload, όσο και το email bankruptcy (snail mail στο βιβλίο, αλλά δεν αλλάζει κάτι).

Από τις πιο καλές συμβουλές του βιβλίου: Πάρε ένα χρονόμετρο κουζίνας (συνήθως μετράνε αντίστροφα μέχρι 60′) και χρησιμοποίησέ το για το χρόνο που αφιερώνεις σε μια εργασία μέσα στο οκτάωρο (ή ως υπενθύμιση για εκείνη την εργασία που πρέπει να ελένξεις πως πάει μετά από 20′).

Δύο μήνες μετά ξαναγύρισα στο κεφάλαιο 3 του Limoncelli. Οι ομοιότητες με το βιβλίο του Lakein είναι πολλές, άλλωστε το γράφει και ο ίδιος πως το έχει διαβάσει. Ο Κύκλος (The Cycle), το σύστημα του Limoncelli για την οργάνωση του χρόνου δεν διαφέρει πολύ από αυτά που προτείνει ο Lakein. Και οι δύο προτείνουν μια ιεράρχιση των δραστηριοτήτων με τις διαβαθμίσεις A, B και C (Α το πιο σημαντικό, C το λιγότερο σημαντικό) και προτείνουν να ασχολείται κανείς πάντα με τα A-items, ακόμα κι αν δεν έχει “παράθυρο χρόνου” που να τα χωράει. Τότε μπορεί να τα σπάει σε μικρότερα τμήματα που μπορούν να χωράνε στα διαθέσιμα time slots.

Με την εξαίρεση του τέλους του κεφαλαίου 13 (Automation), το βιβλίο δεν είναι μόνο για system administrators. Αρκεί άλλωστε να σκεφτεί κανείς το motto του Terrence Parr Why program by hand in five days what you can spend five years of your life automating? για να καταλάβει πως είναι για κάθε πληροφορικό που θέλει να βρει ένα τρόπο να οργανώσει το χρόνο του (επαγγελματικό και προσωπικό) καλύτερα. Και επειδή είναι και νεώτερο από το βιβλίο του Lakein, έχει μια πιο σύγχρονη ματιά (π.χ. έχει ειδικό κεφάλαιο για τη διαχείριση της ηλεκτρονικής αλληλογραφίας).

Από τα καλύτερα σημεία του βιβλίου είναι η σαφής προοτροπή να προστατεύει κανείς εκείνο το 1/3 της ημέρας που δεν είναι work-time ή ύπνος:

The wrong thing is to stay late. Your social life is valuable. You don’t do your employer any favors by ignoring social time and becoming irritable. You work better when you eat right, get plenty of sleep regularly, exercise and participate in nonwork activities.

Οι Έλληνες εργοδότες βέβαια αγνοούν τον Νόμο του Parkinson (“work expands so as to fill the time available for its completion”) και θεωρούν την (απλήρωτη) υπερωρία δεδομένη και υποχρεωτική.

Επανερχόμενος στα βιβλία, μπορώ να παρατηρήσω πως έχουν και τα δύο ένα μόνο μειονέκτημα: Δεν περιέχουν καμία ιδέα / συμβουλή για το πως μπορεί να οργανώσει το χρόνο του κάποιος που έχει μωρά παιδιά (μωρά, όχι μικρά, ο Lakein αφιερώνει μια σελίδα για το πως μπορείς “κλέψεις” 30 λεπτά από ένα τετράχρονο).

Bottom line: Το βιβλίο του Lakein είναι πολύ καλό. Εάν όμως η σχέση σας με τους υπολογιστές είναι επαγγελματική, τότε το βιβλίο του Limoncelli είναι σαφώς πιο χρήσιμο, πιο σύγχρονο, έχει δικό του wiki site και mailing list (TM4SA-fans).

24×7

24×7 support
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
1st shift x x x x x
2nd shift
3rd shift

Now, what is wrong with this picture?


Table created with: TableMaker.