32.2 Πύλες και Δρομολογητές

Συνεισφορά του Coranth Gryphon.

Για να μπορούν να επικοινωνήσουν δύο συστήματα μέσω δικτύου πρέπει να υπάρχει κάποιος μηχανισμός που περιγράφει πώς μπορούμε να μεταβούμε από το ένα μηχάνημα στο άλλο. Αυτό λέγεται δρομολόγηση (routing). Μια «διαδρομή» («route») είναι ένα ζευγάρι διευθύνσεων: ένας «προορισμός» και μια «πύλη» («gateway»). Το ζευγάρι αυτό δηλώνει ότι αν προσπαθείτε να φτάσετε στο συγκεκριμένο προορισμό, πρέπει να περάσετε μέσα από αυτή την πύλη. Υπάρχουν τρεις τύποι προορισμού: συγκεκριμένα συστήματα (hosts), υποδίκτυα (subnets) και ο «προκαθορισμένος» προορισμός («default»). Η «προκαθορισμένη διαδρομή» χρησιμοποιείται όταν δεν υπάρχει καμία άλλη διαδρομή που να ταιριάζει με τον τρέχοντα προορισμό. Θα πούμε περισσότερα για τις διαδρομές παρακάτω. Υπάρχουν επίσης τρεις τύποι από πύλες: συγκεκριμένα συστήματα, διασυνδέσεις δικτύου («interfaces»), που λέγονται και απλά «συνδέσεις» («links»), και φυσικές διευθύνσεις ή διευθύνσεις MAC (π.χ. διευθύνσεις Ethernet).

32.2.1 Ένα παράδειγμα

Για να γίνουν κάπως πιο κατανοητά τα βήματα της δρομολόγησης, θα χρησιμοποιήσουμε ως παράδειγμα την έξοδο της εντολής netstat:

% netstat -r
Routing tables

Destination      Gateway            Flags     Refs     Use     Netif Expire

default          outside-gw         UGSc       37      418      ppp0
localhost        localhost          UH          0      181       lo0
test0            0:e0:b5:36:cf:4f   UHLW        5    63288       ed0     77
10.20.30.255     link#1             UHLW        1     2421
example.com      link#1             UC          0        0
host1            0:e0:a8:37:8:1e    UHLW        3     4601       lo0
host2            0:e0:a8:37:8:1e    UHLW        0        5       lo0 =>
host2.example.com link#1             UC          0        0
224              link#1             UC          0        0

Οι δύο πρώτες γραμμές ορίζουν την προκαθορισμένη διαδρομή (θα πούμε περισσότερα γι αυτή στο επόμενο τμήμα) και τη διαδρομή localhost.

Η σύνδεση δικτύου (στήλη Netif) την οποία ορίζει αυτός ο πίνακας δρομολόγησης για τον προορισμό localhost είναι η σύνδεση lo0, η οποία είναι γνωστή και ως σύνδεση loopback. Αυτό σημαίνει ότι όλη η κίνηση για αυτό τον προορισμό θα καταλήγει στο ίδιο το μηχάνημα που την ξεκίνησς, αντί να φεύγει μέσω κάποιας σύνδεσης LAN.

Το επόμενο πράγμα που παρατηρούμε αμέσως είναι οι διευθύνσεις που αρχίζουν με 0:e0:. Αυτές είναι φυσικές διευθύνσεις Ethernet (γνωστές και ως διευθύνσεις MAC). Το FreeBSD βρίσκει αυτόματα ποιά συστήματα είναι στο ίδιο φυσικό δίκτυο (όπως το σύστημα test0 σε αυτό το παράδειγμα) και προσθέτει αυτόματα διαδρομές (routes) για αυτά τα συστήματα, απευθείας μέσω της αντίστοιχης σύνδεσης Ethernet (μέσω της σύνδεσης ed0 σε αυτή την περίπτωση). Αυτού του τύπου οι διαδρομές έχουν περιορισμένο χρόνο ζωής (στήλη Expire), ο οποίος χρησιμοποιείται όταν το FreeBSD δεν έχει επικοινωνία με το συγκεκριμένο προορισμό για κάποιο διάστημα. Όταν περάσει ο χρόνος ζωής, η διαδρομή προς αυτό τον προορισμό διαγράφεται αυτόματα. Αυτές οι διαδρομές ανακαλύπτονται με ένα μηχανισμό που λέγεται RIP (Routing Information Protocol), ο οποίος ανακαλύπτει τις διαδρομές για τα τοπικά συστήματα με βάση το συντομότερο μονοπάτι προς αυτά.

ΤΟ FreeBSD προσθέτει αυτόματα και διαδρομές για το τοπικό υποδίκτυο (subnet) (10.20.30.255 είναι η διεύθυνση broadcast για το υποδίκτυο 10.20.30 και example.com είναι το όνομα που αντιστοιχεί σε αυτό το υποδίκτυο). Ο συμβολισμός link#1 υποδηλώνει την πρώτη κάρτα δικτύου που έχει το σύστημα. Αν προσέξετε δεν υπάρχει άλλη σύνδεση δικτύου που να χρησιμοποιεί την ίδια διεύθυνση υποδικτύου ή την ίδια σύνδεση link#1.

Η υπηρεσία routed μπορεί να ρυθμίσει αυτόματα και δυναμικά τις διαδρομές των τοπικών συστημάτων ή των τοπικών υποδικτύων. Όταν δεν είναι ενεργοποιημένη αυτή η υπηρεσία χρησιμοποιούνται μόνο οι διαδρομές που έχουν ρυθμιστεί με στατικό τρόπο (π.χ. σε κάποιο αρχείο ρυθμίσεων).

Το όνομα συστήματος host1 είναι το δικό μας, τοπικό σύστημα, και στον πίνακα δρομολόγησης φαίνεται με τη δική του φυσική διεύθυνση Ethernet. Επειδή είναι δική μας αυτή η διεύθυνση το FreeBSD ξέρει ότι δε χρειάζεται να στείλει οποιαδήποτε κίνηση προς αυτό το σύστημα στο δίκτυο Ethernet και ανακατευθύνει την κίνηση προς την τοπική σύνδεση loopback (σύνδεση lo0).

Οι δύο γραμμές που αναφέρονται στο σύστημα host2 είναι ένα παράδειγμα που δείχνει τι συμβαίνει όταν χρησιμοποιήσουμε το εργαλείο ifconfig(8) για να ρυθμίσουμε ένα ψευδώνυμο (alias) (στο τμήμα για τα δίκτυα Ethernet θα πούμε περισσότερα για τα ψευδώνυμα). Το σύμβολο => μετά τη σύνδεση lo0 σημαίνει ότι χρησιμοποιούμε τη σύνδεση loopback (αφού αυτή είναι μια τοπική διεύθυνση) και ότι αυτή η διαδρομή είναι ψευδώνυμο. Αυτού του είδους οι διαδρομές εμφανίζονται μόνο στο ίδιο το σύστημα που χρησιμοποιεί το συγκεκριμένο ψευδώνυμο. Τα άλλα συστήματα του ίδιου υποδικτύου θα έχουν απλά μια διαδρομή που αναφέρεται στη σύνδεση link#1 για αυτή τη διαδρομή.

Η τελευταία διαδρομή (με προορισμό το υποδίκτυο 224) έχει σχέση με το multicasting, το οποίο θα περιγράψουμε σε ένα από τα παρακάτω τμήματα.

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

U Up: Η διαδρομή είναι ενεργή.
H Host: Η διαδρομή αναφέραι σε ένα μόνο σύστημα (host).
G Gateway: Οποιαδήποτε κίνηση με προορισμό τη διεύθυνση του συγκεκριμένου Destination μπορεί να σταλεί προς την πύλη της στήλης Gateway. Η πύλη θα βρει μόνη της ποιό είναι το επόμενο πιο κοντινό σύστημα προς αυτόν τον προορισμό.
S Static: Αυτή η διαδρομή έχει ρυθμιστεί χειροκίνητα· δεν έχει δημιουργηθεί αυτόματα από το σύστημα.
C Clone: Κάθε χρήση ή αναφορά αυτής της διαδρομής δημιουργεί μια νέα διαδρομή προς τον προορισμό που συνδεόμαστε. Αυτός ο τύπος διαδρομής χρησιμοποιείται συνήθως για τις διαδρομές των τοπικών υποδικτύων.
W WasCloned: Υποδηλώνει ότι η διαδρομή δημιουργήθηκε αυτόματα με βάση ένα τοπικό υποδίκτυο ή κάποια άλλη διαδρομή με τη σήμανση C (Clone).
L Link: Η διαδρομή αναφέρεται σε κάποια φυσική διεύθυνση Ethernet.

32.2.2 Προκαθορισμένες Διαδρομές

Όταν το τοπικό σύστημα χρειάζεται να συνδεθεί σε ένα απομακρυσμένο σύστημα ελέγχει τον πίνακα δρομολόγησης, ψάχνοντας για ένα γνωστό μονοπάτι προς το απομακρυσμένο σύστημα. Αν το απομακρυσμένο σύστημα ανήκει σε ένα γνωστό υποδίκτυο (π.χ. υπάρχει ήδη μια κλωνοποιημένη διαδρομή προς αυτό), τότε το σύστημα προσπαθεί να συνδεθεί μέσω της υπάρχουσας διαδρομής.

Αν όμως δεν υπάρχει κάποιο γνωστό μονοπάτι, τότε το σύστημα έχει μια τελευταία επιλογή: την «προκαθορισμένη» διαδρομή. Αυτή η διαδρομή είναι ένας ειδικός τύπος διαδρομής πύλης (συνήθως υπάρχει μόνο μία τέτοια διαδρομή στο σύστημα) και έχει πάντα το χαρακτηριστικό C στις σημάνσεις της. Στα συστήματα που έχουν πρόσβαση σε κάποιο τοπικό δίκτυο, αυτή η διαδρομή δείχνει προς την πύλη που έχει κάποιο είδος σύνδεσης με τον έξω κόσμο (μέσω PPP, DSL, cable modem, T1 ή κάποιο άλλο είδος δικτυακής σύνδεσης).

Στα συστήματα τα οποία λειτουργούν ως η πύλη των υπόλοιπων τοπικών συστημάτων, η προκαθορισμένη διαδρομή ρυθμίζεται συνήθως να δείχνει προς την πύλη με τον έξω κόσμο, π.χ. την πύλη μιας σύνδεσης με κάποιο Πάροχο Υπηρεσιών Διαδικτύου (ISP).

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

Τα συστήματα Local1 και Local2 είναι μέρος του τοπικού σας δικτύου. Το σύστημα Local1 έχει συνδεθεί σε κάποιο ISP, χρησιμοποιώντας μια σύνδεση dialup PPP. Ο εξυπηρετητής PPP έχει σύνδεση, μέσω ενός τοπικού δικτύου, με μια δεύτερη πύλη, χρησιμοποιώντας την εξωτερική σύνδεση του Πάροχου Διαδικτύου με το Internet.

Οι προκαθορισμένες διαδρομές αυτών των συστημάτων θα είναι:

Host Default Gateway Interface
Local2 Local1 Ethernet
Local1 T1-GW PPP

Μια απορία που είναι πιθανόν να σας δημιουργήθηκε είναι «Γιατί (ή πώς) μπορούμε να χρησιμοποιήσουμε το σύστημα T1-GW ως προκαθορισμένη διαδρομή του Local1, αντί να χρησιμοποιήσουμε τον εξυπηρετητή PPP του ISP με τον οποίο έχουμε συνδεθεί;».

Η εξήγηση είναι ότι η σύνδεση PPP χρησιμοποιεί από τη δική μας πλευρά μια διεύθυνση που ανήκει στο τοπικό δίκτυο του Πάροχου Διαδικτύου, οπότε οι διαδρομές για τα συστήματα που βρίσκονται στο υποδίκτυο του ISP δημιουργούνται αυτόματα στη δική μας πλευρά. Οπότε, το σύστημα Local1 ξέρει ήδη πως να συνδεθεί με το T1-GW, και δεν υπάρχει λόγος να κάνουμε ένα βήμα παραπάνω μέσω του εξυπηρετητή PPP.

Είναι συνηθισμένη πρακτική να χρησιμοποιείται η διεύθυνση X.X.X.1 για την πύλη ενός υποδικτύου. Οπότε (για το ίδιο παράδειγμα), αν το τοπικό σας υποδίκτυο έχει διευθύνσεις από το υποδίκτυο 10.20.30 και ο Πάροχος Διαδικτύου χρησιμοποιεί το υποδίκτυο 10.9.9, τότε οι διευθύνσεις των προκαθορισμένων διαδρομών του παραδείγματος θα είναι:

Host Default Route
Local2 (10.20.30.2) Local1 (10.20.30.1)
Local1 (10.20.30.1, 10.9.9.30) T1-GW (10.9.9.1)

Μπορείτε να ορίσετε πολύ εύκολα τη διεύθυνση πύλης της προκαθορισμένης διαδρομής, μέσω του αρχείου /etc/rc.conf. Στο δίκτυο του παραδείγματός μας χρησιμοποιήσαμε τις εξής ρυθμίσεις στο σύστημα Local2:

defaultrouter="10.20.30.1"

Μπορείτε να ορίσετε την πύλη της προκαθορισμένης διαδρομής και από τη γραμμή εντολών, με την εντολή route(8):

# route add default 10.20.30.1

Για περισσότερες πληροφορίες σχετικά με τη διαχείριση του πίνακα δρομολόγησης δείτε και τη σελίδα βοήθειας route(8).

32.2.3 Dual Homed Hosts

Υπάρχει τουλάχιστον άλλο ένα είδος εγκατάστασης στο οποίο πρέπει να αναφερθούμε: ένα σύστημα το οποίο έχει σύνδεση με δύο δίκτυα ταυτόχρονα. Ουσιαστικά, κάθε σύστημα το οποίο λειτουργεί ως πύλη (για παράδειγμα το σύστημα με τη σύνδεση PPP στο προηγούμενο τμήμα) είναι ένα σύστημα με δύο συνδέσεις. Συνήθως λέμε ότι ένα σύστημα έχει δύο συνδέσεις όμως όταν είναι ανάμεσα από δύο τοπικά δίκτυα (LAN).

Μια περίπτωση είναι το σύστημα να έχει δύο κάρτες δικτύου, με κάθε κάρτα να έχει δική της διεύθυνση σε ένα ξεχωριστό υποδίκτυο. Μια άλλη περίπτωση είναι το σύστημα να έχει μόνο μία κάρτα δικτύου, χρησιμοποιώντας τη δυνατότητα του ifconfig(8) για ψευδώνυμα (aliases). Το πρώτο είδος εγκατάστασης, με δύο κάρτες δικτύου, χρησιμοποιείται όταν υπάρχουν δύο ξεχωριστά φυσικά δίκτυα Ethernet. Το δεύτερο είδος εγκατάστασης χρησιμοποιείται όταν υπάρχει μόνο ένα φυσικό δίκτυο, πάνω από το οποίο υποστηρίζονται πολλαπλά λογικά υποδίκτυα.

Ο πίνακας δρομολόγησης ρυθμίζεται και στις δύο περιπτώσεις έτσι που το κάθε υποδίκτυο να ξέρει ότι το σύστημα με τις δύο συνδέσεις είναι η πύλη (εισερχόμενη διαδρομή) για το άλλο υποδίκτυο. Μια τέτοια εγκατάσταση, με ένα σύστημα να λειτουργεί ως δρομολογητής μεταξύ δύο υποδικτύων, χρησιμοποιείται πολύ συχνά όπου χρειάζεται να ρυθμιστούν κάποια φίλτρα πακέτων ή κάποιο τείχος ασφάλειας προς τη μία ή και τις δύο κατευθύνσεις.

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

32.2.4 Ρυθμίσεις Ενός Δρομολογητή

Ένας δρομολογητής δικτύου είναι απλά ένα σύστημα το οποίο προωθεί πακέτα από μία σύνδεση σε μια άλλη. Τα Πρότυπα του Διαδικτύου και η μέχρι τώρα τεχνική εμπειρία μας ορίζουν ότι αυτό το χαρακτηριστικό δεν πρέπει να είναι ενεργοποιημένο πάντα στο FreeBSD. Η δυνατότητα για δρομολόγηση πακέτων υπάρχει όμως και μπορεί να ενεργοποιηθεί θέτοντας την τιμή της μεταβλητής gateway_enable σε YES στο αρχείο rc.conf(5):

gateway_enable=YES          # Set to YES if this host will be a gateway

Αυτή η ρύθμιση επηρεάζει την τιμή της μεταβλητής sysctl(8) με όνομα net.inet.ip.forwarding (θέτοντας την τιμή της σε 1). Για να απενεργοποιήσετε προσωρινά τη δρομολόγηση πακέτων, μπορείτε να αλλάξετε την τιμή αυτής της μεταβλητής sysctl(8) σε 0.

Ο νέος δρομολογητής σας θα χρειαστεί διαδρομές (routes) για να ξέρει προς ποιά κατεύθυνση πρέπει να στείλει κάθε πακέτο. Αν το δίκτυό σας είναι σχετικά απλό, μπορείτε να χρησιμοποιήσετε στατικές διαδρομές. Το FreeBSD περιλαμβάνει και μια έκδοση της πρότυπης υπηρεσίας δρομολόγησης BSD, την υπηρεσία routed(8), η οποία υποστηρίζει τα πρωτόκολα RIP (εκδόσεις 1 και 2) και IRDP. Αν χρειάζεστε υποστήριξη για BGP v4, OSPF v2, ή άλλα πιο εξελιγμένα πρωτόκολα δρομολόγησης, τότε μπορείτε να εγκαταστήσετε το πακέτο net/zebra. Υπάρχουν και εμπορικά προϊόντα, όπως το GateD® για πιο περίπλοκες δικτυακές εγκαταστάσεις.

32.2.5 Ρύθμιση Στατικών Διαδρομών

Συνεισφορά του Al Hoang.

32.2.5.1 Χειροκίνητες Ρυθμίσεις

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

Σε αυτό το σενάριο, το σύστημα RouterA είναι το FreeBSD που λειτουργεί ως δρομολογητής και πύλη προς το Διαδίκτυο. Χρησιμοποιεί ως προκαθορισμένη διαδρομή (default route) τη διεύθυνση 10.0.0.1, που του επιτρέπει να συνδέεται με τον υπόλοιπο κόσμο. Υποθέτουμε εδώ ότι το σύστημα RouterB έχει ήδη ρυθμιστεί σωστά. (Οι ρυθμίσεις είναι πολύ απλές σε αυτή την περίπτωση. Αρκεί να οριστεί ως προκαθορισμένη διαδρομή του RouterB η διεύθυνση 192.168.1.1.)

Αν ελέγξουμε τον πίνακα δρομολόγησης του RouterA θα πρέπει να δούμε κάτι τέτοιο:

% netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif  Expire
default            10.0.0.1           UGS         0    49378    xl0
127.0.0.1          127.0.0.1          UH          0        6    lo0
10.0.0/24          link#1             UC          0        0    xl0
192.168.1/24       link#2             UC          0        0    xl1

Με αυτό τον πίνακα δρομολόγησης το σύστημα RouterA δε θα μπορεί να συνδεθεί στο Εσωτερικό Δίκτυο 2. Δεν έχει κάποια γνωστή διαδρομή (route) για το υποδίκτυο 192.168.2.0/24. Ένας τρόπος να διορθωθεί αυτό είναι να προσθέσουμε χειροκίνητα μια διαδρομή. Η παρακάτω εντολή προσθέτει μια διαδρομή για το Εσωτερικό Δίκτυο 2 στο σύστημα RouterA χρησιμοποιώντας την πύλη 192.168.1.2 ως ενδιάμεσο δρομολογητή:

# route add -net 192.168.2.0/24 192.168.1.2

Μετά από αυτό το σύστημα RouterA μπορεί να συνδεθεί με οποιοδήποτε άλλο σύστημα του υποδικτύου 192.168.2.0/24.

32.2.5.2 Μόνιμες Ρυθμίσεις

Το παραπάνω παράδειγμα αρκεί για να ρυθμιστεί χειροκίνητα μια διαδρομή σε ένα υπάρχον σύστημα. Αυτές οι ρυθμίσεις δεν είναι μόνιμες όμως και δε θα ισχύουν μετά από επανεκκίνηση του FreeBSD. Για να ισχύουν μόνιμα οι αλλαγές, πρέπει να τις προσθέσετε στο αρχείο /etc/rc.conf:

# Προσθήκη στατικής διαδρομής για το Εσωτερικό Δίκτυο 2
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"

Η μεταβλητή static_routes είναι μια λίστα από ονόματα στατικών διαδρομών. Στο παραπάνω παράδειγμα έχουμε μόνο μια λέξη στην τιμή της μεταβλητής static_routes: τη λέξη internalnet2. Αυτή η λέξη είναι απλά μια αναφορά σε μία δεύτερη μεταβλητή με όνομα route_internalnet2, στην οποία ρυθμίζουμε τις παραμέτρους που θα δίναμε στην εντολή route(8). Οι παραπάνω ρυθμίσεις αντιστοιχούν στην εντολή:

# route add -net 192.168.2.0/24 192.168.1.2

γι αυτό χρησιμοποιήσαμε την τιμή "-net 192.168.2.0/24 192.168.1.2".

Όπως είπαμε και πιο πριν, μπορούμε να ρυθμίσουμε παραπάνω από μια λέξη ως τιμή της μεταβλητής static_routes. Για να ορίσουμε, ας πούμε, δύο στατικές διαδρομές, για τα υποδίκτυα 192.168.0.0/24 και 192.168.1.0/24 θα γράφαμε:

static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"

32.2.6 Δυναμική Ενημέρωση Διαδρομών Δρομολόγησης

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

Ξέρουμε ήδη ότι ο πίνακας δρομολόγησης μπορεί να ρυθμιστεί έτσι ώστε όλη η κίνηση προς ένα σύνολο διευθύνσεων (για παράδειγμα ένα συγκεκριμένο υποδίκτυο) να περνάει μέσω ενός συστήματος στο συγκεκριμένο υποδίκτυο, το οποίο θα προωθήσει όλη την εισερχόμενη κίνηση στον τελικό προορισμό της.

Όταν καταχωρείται ένα σύνολο διευθύνσεων στο δίκτυό σας, ο πάροχος δικτυακών υπηρεσιών σας ρυθμίζει τον δικό του πίνακα δρομολόγησης, ανακατευθύνοντας όλη την κίνηση με προορισμό τις δικές σας διευθύνσεις προς τη σύνδεση δικτύου την οποία σας παρέχει (π.χ. προς τη δική σας σύνδεση PPP). Πώς ξέρουν όμως τα συστήματα από την άλλη άκρη του κόσμου να ξέρουν τη δική σας κίνηση στον πάροχο δικτυακών υπηρεσιών σας;

Υπάρχει ένα σύστημα (παρόμοιο με το κατανεμημένο σύστημα του DNS) το οποίο κρατάει πληροφορίες για όλα τα καταχωρημένα υποδίκτυα, και ορίζει το σημείο σύνδεσής τους με τη Ραχοκοκκαλιά (Backbone) του Διαδικτύου . Η «Ραχοκοκκαλιά» αποτελείται από τις κεντρικές γραμμές σύνδεσης από τη μία χώρα στην άλλη, κι από τη μια άκρη της Γης στην άλλη. Κάθε μηχάνημα της ραχοκοκκαλιάς έχει ένα δικό του αντίγραφο από τους βασικούς πίνακες δρομολόγησης, μέσω του οποίου κατευθύνει την κίνηση με προορισμό ένα συγκεκριμένο δίκτυο προς τον κατάλληλο πάροχο υπηρεσιών διαδικτύου. Από εκεί η κίνηση ανακατευθύνεται μέσα από μια αλυσίδα όλο και πιο συγκεκριμένων εγγραφών δρομολόγησης, μέχρι να φτάσει στο δικό σας υποδίκτυο.

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

32.2.7 Προβλήματα Δρομολόγησης

Μερικές φορές υπάρχει πρόβλημα με την ενημέρωση των διαδρομών δρομολόγησης, και κάποια συστήματα δε μπορούν να συνδεθούν με το δικό σας υποδίκτυο. Η πιο χρήσιμη εντολή για διάγνωση τέτοιων προβλημάτων είναι η traceroute(8). Η συγκεκριμένη εντολή είναι χρήσιμη ακόμα κι όταν εσείς δε μπορείτε να συνδεθείτε σε κάποιο απομακρυσμένο δίκτυο (π.χ. όταν αποτυγχάνει η εντολή ping(8)).

Η εντολή traceroute(8) χρειάζεται μόνο ένα όρισμα: το όνομα του απομακρυσμένου συστήματος στο οποίο προσπαθείτε να συνδεθείτε. Μόλις αρχίσει να τρέχει τυπώνει πληροφορίες για όλα τα ενδιάμεσα συστήματα, καθώς δοκιμάζει να βρει ποιό είναι το μονοπάτι μεταξύ του δικού σας συστήματος και του απομακρυσμένου. Τελικά είτε φτάνει στο απομακρυσμένο σύστημα προορισμού ή τερματίζει επειδή σε κάποιο σημείο του μονοπατιού υπάρχει πρόβλημα.

Για περισσότερες πληροφορίες σχετικά με την εντολή traceroute(8) δείτε την αντίστοιχη σελίδα βοήθειας.

32.2.8 Δρομολόγηση Multicast

Το FreeBSD έχει ενσωματωμένη υποστήριξη τόσο για τη χρήση εφαρμογών multicast όσο και για τη δρομολόγηση multicast κίνησης. Οι εφαρμογές multicast δεν απαιτούν ειδικές ρυθμίσεις για να λειτουργήσουν σωστά στο FreeBSD· μπορούν να τρέξουν σε μια απλή εγκατάσταση του FreeBSD. Η δρομολόγηση multicast κίνησης χρειάζεται να μεταγλωττιστεί ο πυρήνας του FreeBSD με την επιλογή MROUTING:

options MROUTING

Αφού προστεθεί αυτή η επιλογή στον πυρήνα, πρέπει να ενεργοποιηθεί και η υπηρεσία δρομολόγησης κίνησης multicast, πρέπει να ρυθμιστούν σωστά τα κανάλια (tunnels) της υπηρεσίας mrouted(8) και να ενεργοποιηθεί το πρωτόκολο DVMRP στο αρχείο /etc/mrouted.conf. Περισσότερες λεπτομέρειες για αυτές τις ρυθμίσεις μπορείτε να βρείτε στη σελίδα βοήθειας της υπηρεσίας mrouted(8).

Σημείωση: Από την έκδοση 7.0 και μετά του FreeBSD έχει αφαιρεθεί η υπηρεσία mrouted(8) από το βασικό σύστημα. ΑΥτή η υπηρεσία υλοποιεί το πρωτόκολο δρομολόγησης κίνησης multicast DVMRP, το οποίο έχει αντικατασταθεί από το pim(4) σε πολλές εγκαταστάσεις. Έχουν αφαιρεθεί επίσης τα εργαλεία map-mbone(8) και mrinfo(8) Αυτά τα προγράμματα είναι πλέον διαθέσιμα ως μέρος της Συλλογής των Ports, μέσω του πακέτου net/mrouted.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.