ΚΕΦΑΛΑΙΟ 4


ΜΙΑ ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ ΤΩΝ ΝΕΩΝ
ΔΙΚΤΥΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ.
ΤΟ Α.Τ.Μ. , ΤΟ ΙPv6 ΚΑΙ Η ΔΙΑΣΤΑΣΗ ΤΗΣ
ΑΣΦΑΛΕΙΑΣ.

 

 

Oρισμός Προβλήματος

Εισαγωγή

Κεφάλαια

Κεφάλαιo 1
Κεφάλαιo 2
Κεφάλαιo 3
Κεφάλαιo 4

Κεφάλαιo 5


Πηγές

Παραρτήματα

Βασικές Έννοιες

Παρατηρήσεις

Συγγραφέας

Καθοδήγηση

Nησίδα ΙΡν6


4.1 Εισαγωγή

Το IPv6 είναι ένα θέμα έρευνας σε συνεχή εξέλιξη. Για να υπάρχει ολοκληρωμένη αντίληψη χρειάζεται η συνεχής παρακολούθηση και μελέτη των εξελίξεων. Απαραίτητο μέρος της μελέτης είναι η εργαστηριακή εφαρμογή και ο πειραματισμός με το πρωτόκολλο. Η απαίτηση για εργαστηριακή παρακολούθηση των εξελίξεων και απόκτησης μεγαλύτερης εμπειρίας μας ώθησε στην δημιουργία της νησίδας IPv6. Η υλοποίηση της, προσφέρει ένα υπόβαθρο για πειραματισμό σε μεγαλύτερο βάθος στο μέλλον.

Η νησίδα που δημιουργήθηκε αποτελείται από τρεις υπολογιστές, εκ’των οποίον ο ένας αναλαμβάνει τον ρόλο του δρομολογητή IPv6. Η τοπολογία της νησίδας φαίνεται στο Σχήμα 4.1

Στο κεφάλαιο αυτό παρουσιάζεται ο εξοπλισμός και τα απαιτούμενα μέρη για την υλοποίηση μιας νησίδας IPv6. Στη συνέχεια δίνονται λεπτομερείς οδηγίες για την πραγματοποίηση της και παρουσιάζονται τα βασικότερα προβλήματα που συναντήθηκαν.

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

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

4.2 Eξοπλισμός (Hardware)

Ο εξοπλισμός που χρησιμοποιήθηκε για την δημιουργία της νησίδας αποτελείται από τρεις υπολογιστές. Η βασική σύνθεση των υπολογιστών φαίνεται στον πίνακα 1 που ακολουθεί.

Όνομα μηχανής Χαρακτηριστικά Περιγραφή λειτουργίας
no1 Intel 386 , 8 Mbytes RAM

80 MB Hard Disk,
2 Εthernet NICs

Δρομολογητής IPv6
Zeus Intel 386 , 8 Mbytes RAM

80 MB Hard Disk,

1 Εthernet NIC

Πελάτης IPv6
ipv6 Intel 386 , 8 Mbytes RAM

80 MB Hard Disk,

1 Εthernet NIC

Πελάτης IPv6 ,

Εξυπηρέτης DNS

eudokia Intel 486 , 16 MB RAM

1 GB Hard Disk,

1 Εthernet NIC

Πλατφόρμα Ανάπτυξης

Πίνακας 4.1 Εξοπλισμός νησίδας IPv6

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

Παρόλα αυτά η λειτουργία τους δεν δημιούργησε κανένα πρόβλημα αν και έθεσε μερικούς περιορισμούς. Οι περιορισμοί αυτοί έχουν να κάνουν κυρίως με την υπολογιστική ισχύ των επεξεργαστών που κάνουν πρακτικά αδύνατη την χρησιμοποίηση των δυνατοτήτων του IPv6 στον τομέα της ασφάλειας. Επίσης δεν είναι δυνατή και η χρήση των δυνατοτήτων για ποιότητα εξυπηρέτησης που παρέχει το IPv6.

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

4.3 Το λειτουργικό σύστημα (Linux)

Το λειτουργικό σύστημα Linux αποτέλεσε τον δομικό λίθο για την νησίδα του IPv6, όπως και για άλλες δραστηριότητες. Ο πυρήνας (Kernel) του Linux κυκλοφορεί σε δύο εκδόσεις, την επίσημη έκδοση (Production Version) και την έκδοση για ανάπτυξη (Development Version).

Η επίσημη έκδοση του πυρήνα του λειτουργικού (Kernel) σήμερα βρίσκεται στην έκδοση 2.0 διατίθεται για χρήση προς το πλατύ κοινό και έχει σκοπό να παρέχει μια σταθερή πλατφόρμα λειτουργίας για κάθε χρήστη.

Η έκδοση για ανάπτυξη του πυρήνα βρίσκεται στην έκδοση 2.1. Στην έκδοση ανάπτυξης του πυρήνα προσθέτονται νέες λειτουργίες και δυνατότητες στο Linux και στην συνέχεια δοκιμάζονται από ποιο προχωρημένους χρήστες και προγραμματιστές για την ανεύρεση και διόρθωση τυχόν σφαλμάτων στον κώδικα. Όταν ολοκληρωθεί ο κύκλος ανάπτυξης η νέα επίσημη έκδοση του λειτουργικού δύνεται για χρήση στο ευρύ κοινό και ξεκινάει ένας νέος κύκλος ανάπτυξης.

Το IPv6 είναι ένα πρωτόκολλο στη φάση της ανάπτυξης και σαν αποτέλεσμα βρίσκεται μόνο στην πειραματική σειρά του πυρήνα. Η χρησιμοποίηση των πυρήνων αυτών είναι ιδιαίτερα δύσκολη στην χρήση, λόγο των συνεχών και απροειδοποίητων αλλαγών που συμβαίνουν. Η ομάδα ανάπτυξης του πυρήνα ονομάζει την χρήση του χαρακτηριστικά “Η ζωή στην κόψη του ξυραφιού”.

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

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

Εμείς χρησιμοποιήσαμε την τελευταία έκδοση της εταιρίας RedHat με κωδικό προϊόντος RedHat 4.2 (Biltmore) . Ένα από τα βασικά υπέρ του προϊόντος είναι τα εργαλεία που παρέχει για την εγκατάσταση και αναβάθμιση προγραμμάτων και τμημάτων του λειτουργικού, τα οποία μας διευκόλυναν ιδιαίτερα το έργο μας.

Πρέπει να τονίσουμε ότι τα περισσότερα κομμάτια του λειτουργικού για την έκδοση 2.1 καθώς και οι εφαρμογές για το IPv6 έχουν την μορφή πηγαίου κώδικα της γλώσσας C και απαιτούν compilation. Για το λόγο αυτό φροντίσαμε να πραγματοποιήσουμε το compilation μια μόνο φορά και στην συνέχεια να τα εγκαταστήσουμε σε κάθε μηχανή.

4.4 Γενικές οδηγίες για την διαδικασία του Compilation

Η διαδικασία compilation των προγραμμάτων είναι ένα βήμα που μπορεί να αποδειχτεί από περίπατος έως εφιάλτης. Η γνώση προγραμματισμού είναι σίγουρο ότι είναι χρήσιμη και ιδιαίτερα η γνώση της γλώσσας C. Παρόλα αυτά στις περισσότερες περιπτώσεις και ειδικότερα αφού αποκτηθεί μια μικρή έστω πείρα είναι δυνατή η επίλυση μικρόν τουλάχιστον προβλημάτων.

Πριν ξεκινήσει κάποια προσπάθεια για να γίνει compile οτιδήποτε πρέπει να έχουν διαβαστεί αρχεία που έχουν ονόματα του τύπου : README, README.Linux, INSTALL, Changes. Συνήθως περιέχουν πολλές και ανεκτίμητες πληροφορίες.

Η κύρια πηγή των προβλημάτων που μπορεί να προκύψουν είναι συνήθως μια βιβλιοθήκη που λείπει ή κάποιο include αρχείο. Τα αρχεία include περιέχουν δηλώσεις τύπων μεταβλητών και σταθερών που χρησιμοποιούν τα προγράμματα για να επικοινωνήσουν με τις διαδικασίες των βιβλιοθηκών ή το λειτουργικό.

Στα πακέτα προγραμμάτων για το IPv6, οι παραπάνω λόγοι ήταν οι πιο συχνές αιτίες των προβλημάτων κατά την διαδικασία του compilation.Οι βιβλιοθήκες βρίσκονται στους καταλόγους /lib , /usr/lib , ενώ τα αρχεία include στον κατάλογο /usr/include και τους υποκαταλόγους. Στον κατάλογο /usr/include θα πρέπει να υπάρχουν κάποιες συνδέσεις (links) με τo δέντρο του πηγαίου κώδικα του πυρήνα και συγκεκριμένα στους καταλόγους των αρχείων include του πυρήνα.

Οι συνδέσεις αυτές είναι :

/usr/include/asm a /usr/src/linux/include/asm

/usr/include/linux a /usr/src/linux/include/linux

Σε περίπτωση που δεν υπάρχουν ήδη δημιουργείστε τα με τις εξής εντολές:

  • ln -s /usr/include/asm /usr/src/linux/include/asm
  • ln -s /usr/include/linux /usr/src/linux/include/linux

Οι πληροφορίες για την διαδικασία του compilation βρίσκονται συνήθως στο αρχείο Makefile στον κύριο κατάλογο του πακέτου που πρόκειται να γίνει compile. Τις περισσότερες φορές κάποιες αλλαγές σε αυτό το αρχείο θα λύσουν τα προβλήματα σας. Παρατηρώντας τις αλλαγές που χρειάστηκαν στα πακέτα για το IPv6 θα γίνει σε γενικές γραμμές κατανοητό το πώς και που γίνονται αυτές οι αλλαγές.

Ειδικότερα για τα πακέτα του IPv6 τα προβλήματα στα αρχεία include ήταν η αλλαγή του ονόματος ενός τύπου η οποία δεν είχε ανανεωθεί και στον πηγαίο κώδικα. Σε αυτές τις περιπτώσεις η αναζήτηση μέσα στα αρχεία include για τον τύπο που λείπει η παραπλήσιο μπορεί να αποδώσει. Για την αναζήτηση μπορεί να χρησιμοποιηθεί η παρακάτω εντολή, στον κατάλογο των αρχείων include:

grep <κείμενο προς ανεύρεση> *

Τέλος εάν όλα τα άλλα απέτυχαν, υπάρχει πάντα η μεγάλη κοινότητα χρηστών του Linux στο Internet, η οποία θα ανταποκριθεί άμεσα αρκεί οι ερωτήσεις να μην είναι ασαφής, ή οι απαντήσεις βρίσκονται μέσα στα README αρχεία των προγραμμάτων που πρόκειται να γίνουν compile.

Τις περισσότερες φορές οι αλλαγές που πρέπει να γίνουν μοιράζονται σε ένα ειδικό τύπου αρχείο, τα αρχεία μορφής diff. Τα αρχεία αυτά περιέχουν τις αλλαγές που παρουσιάζουν δύο διαφορετικές εκδόσεις ενός αρχείου ή και ολόκληρων δέντρων πηγαίου κώδικα. Χρησιμοποιώντας το πρόγραμμα patch είναι δυνατό να γίνουν αυτόματα όλες οι αλλαγές που απαιτούνται. Η εντολή αυτή έχει την ακόλουθη μορφή:

patch -p0 < <αρχείο diff>

Σε αυτή την περίπτωση υποθέσαμε ότι βρισκόμαστε έναν κατάλογο πάνω από την ρίζα του πηγαίου κώδικα του πακέτου.

4.5 Προετοιμάζοντας μια μηχανή για το IPv6

Αυτή η παράγραφο περιγράφει βήμα - βήμα τις αλλαγές που χρειάζεται μια μηχανή για να χρησιμοποιήσει το Linux 2.1. Αυτό το στάδιο είναι κοινό για όλες τις μηχανές που πρέπει να έχουν δυνατότητα IPv6 δηλαδή δρομολογητές IPv6, πελάτες, πλατφόρμα ανάπτυξης. Η χρησιμοποίηση του Linux 2.1 επιβάλει συνεχή ενημέρωση. Για αυτό το λόγο θα πρέπει να παρακολουθούνται στενά οι εξής λίστες ηλεκτρονικού ταχυδρομείου:

Λίστα

Θέμα λίστας

6bone@ISI.EDU

Επικοινωνία των μελών του 6Bone.

Netdev@roxanne.nuclecu.unam.mx

Συζήτηση για θέματα ανάπτυξης του δυκτιακού κώδικα του Linux.

linux-kernel@vger.rutgers.edu

Ανακοίνωση προβλημάτων / διορθώσεων για των πυρήνα του Linux

linux-kernel-announce@vger.rutgers.edu

Ανακοίνωση των νέων εκδόσεων του πυρήνα του Linux.

Πίνακας 4.2 Λίστες E-Mail σχετικές με το IPv6/Linux.

Τα κομμάτια του λειτουργικού καθώς και οι εφαρμογές είναι χωρισμένα σε πακέτα των οποίων η διαχείριση γίνεται με το εργαλείο rpm (RedHat Package Manager). Βασικές εντολές του rpm φαίνονται στον πίνακα 2 για περισσότερες πληροφορίες δώστε : man rpm.

Βασικές εντολές rpm

Εγκατάσταση πακέτου rpm -i <όνομα πακέτου>
Απεγκατάσταση πακέτου rpm -e <όνομα πακέτου>
Αναβάθμιση πακέτου rpm -U <όνομα πακέτου>
Πληροφορίες πακέτου rpm -q -i -p <όνομα πακέτου>

Πίνακας 4.3 Βασικές εντολές rpm

Η μορφή rpm είναι μια καινούργια μέθοδος διανομής των πακέτων η οποία περιέχει τα εκτελέσιμα και δεν χρειάζεται compilation, ενώ χρησιμοποιείτε όλο και πιο πολύ. Παρόλα αυτά πολλές φορές το διαθέσιμο πακέτο βρίσκεται στην από χρόνια χρησιμοποιούμενη μορφή συμπιεσμένου αρχείου tar, με την επέκταση tar.gz και τις περισσότερες φορές περιέχουν μόνο τον πηγαίο κώδικα που απαιτεί compilation

4.5.1 Εγκατάσταση Linux 2.0

Κατά την εγκατάσταση του Linux 2.0 αρκεί να επιλέγουν τα βασικά πακέτα εγκατάστασης χωρίς X-windows και περιττά πακέτα (Πίνακας 3). Στο πρόγραμμα εγκατάστασης πρέπει να επιλεγούν τα βασικά πακέτα και τα πακέτα σχετικά με το δίκτυο.

Πακέτα για μηχανή IPv6

setup. pamconfig. filesystem. MAKEDEV. NetKit-B.
SysVinit. adduser. ash. at. bash.
bc. bdflush. bin86. bind-utils. binutils.
Cpio. cracklib-dicts. crontabs. db. dev.
Diffutils. e2fsprogs. ed. eject. etcskel.
file. fileutils. findutils. gawk. gdbm.
Getty_ps. gpm. grep. groff. gzip.
Hdparm. info. initscripts. ipfwadm. joe.
Kbd. kbdconfig. kernel. kernel-modules. ld.so.
less. lha. libc. libg++. libtermcap.
lilo. linuxthreads. logrotate. losetup. mailcap.
Mailx. make. man. man-pages. mc.
mingetty. mkinitrd. mount. mpage. mt-st.
ncompress. ncurses. net-tools. newt. nfs-server-clients.
Pam. passwd. patch. pcmcia-cs. pidentd.
Procinfo. procmail. procps. psmisc. pwdb.
Quota. rdate. rdist. readline. redhat-release.
Rootfiles. rpm. sed. sendmail. setconsole.
sh-utils. shadow-utils. slang. smbfs. stat.
Statnet. sysklogd. tar. tcp_wrappers. tcpdump.
Tcsh. termcap. textutils. time. timeconfig.
Tmpwatch. traceroute. unarj. unzip. util-linux.
vim. vixie-cron. vlock. which. zip.
zlib. zoneinfo.      

Πίνακας .4 Πακέτα για μηχανή IPv6

 

Στην μηχανή που θα χρησιμοποιηθεί για ανάπτυξη πρέπει να υπάρχουν όλα τα σχετικά πακέτα (Πίνακας 4).

Πακέτα για μηχανή ανάπτυξης IPv6

setup. Pamconfig. filesystem. fileutils. ElectricFence.
MAKEDEV. NetKit-B. SysVinit. adduser. adjtimex.
anonftp. Aout-libs. ash. at. autoconf.
automake. Bash. bc. bdflush. bin86.
bind-utils. Binutils. bison. blt. blt-devel.
byacc. Cdecl. cdp. cmu-snmp-devel. cpio.
cproto. Cracklib. cracklib-dicts. crontabs. csh.
ctags. Cvs. db. db-devel. dev.
dialog. Diffstat. diffutils. e2fsprogs. e2fsprogs-devel.
ed. Eject. etcskel. f2c-libs. faces.
faces-devel. Faces-xface. file. fileutils. findutils.
flex. Gawk. gcc. gcc-c++. gcc-objc.
gdb. Gdbm. gdbm-devel. gencat. gettext.
getty_ps. Git. gpm. gpm-devel. grep.
groff. gzip. hdparm. helptool. indent.
info. initscripts. inn-devel. ipfwadm. joe.
kbd. kbdconfig. kernel. kernel-modules. ld.so.
less. lha. libc. libc-debug. libc-devel.
libc-profile. libc-static. libelf. libg++. libg++-devel.
libgr. libgr-devel. libpng. libpng-devel. libtermcap.
libtermcap-devel. lilo. linuxthreads. linuxthreads-
devel
locale.
logrotate. losetup. lpr. m4. mailcap.
mailx. make. man. man-
pages.
mawk.
mc. mingetty. mkinitrd. modules. mount.
mouseconfig. mt-st. ncompress. ncurses. ncurses-
devel.
net-tools. newt. newt-devel. open. pam.
passwd. patch. pcmcia-cs. perl. pmake.
procinfo. procmail. procps. psacct. psmisc.
pwdb. python. python-
devel.
python-
docs.
pythonlib.
quota. rcs. readline. readline-
devel.
redhat-
release.
rgrep. rhmask. rootfiles. rpm. rpm-devel.
screen. sed. sendmail. setconsole. sh-utils.
shadow-utils. sharutils. slang. slang-devel. smbfs.
stat. statnet. strace. svgalib. svgalib-
devel.
swatch. symlinks. sysklogd. tar. tcl.
tclx. tcp_
wrappers.
tcpdump. tcsh. termcap.
textutils. time. timeconfig. tix. tk.
tmpwatch. traceroute. tree. tunelp. typhoon.
unarj. unzip. util-linux. vim. vim-X11.
vixie-cron. which. wu-ftpd. xpm-devel. xview-devel.
xview-devel-
examples.
zip. zlib. zlib-devel. zoneinfo.

Πίνακας 4.5 Πακέτα για μηχανή ανάπτυξης IPv6

Μετά το τέλος της εγκατάστασης είναι πολύ πιθανό να χρειαστεί να αφαιρεθούν μερικά περιττά πακέτα.

4.5.2 Αναβαθμίζοντας σε Linux 2.1

Η διαδικασίες που περιγράφονται στην συνέχεια απαιτούν πλήρης πρόσβαση στο σύστημα και για αυτό πρέπει να έχει γίνει σύνδεση σαν υπερ-χρήστης root.

Το πρώτο και βασικότερο κομμάτι της αναβάθμισης είναι ο πυρήνας, τον οποίο και μπορείτε να προμηθευτείτε από το Internet στο ακόλουθο ftp site : ftp://ftp.kernel.org/pub/linux/kernel/davem

Ο πυρήνας που χρησιμοποιούμε είναι η έκδοση 2.1.59 με αρκετές διορθώσεις από τον άνθρωπο που αναπτύσσει το δικτυακό μέρος του Linux (David S. Miller), το όνομα του αρχείoυ είναι : linux-2.1.59-VGER-CVS971020.tar.gz . Το αρχείο αυτό πρέπει να αποσυμπιεστεί στον κατάλογο /usr/src/. Εάν στον κατάλογο αυτό υπάρχει μια σύνδεση με τον πηγαίο κώδικα του τρέχοντος πυρήνα σας π.χ. : linux a linux-2.0.30

Τότε πρέπει να αφαιρεθεί με την εντολή:

rm linux

αποσυμπιέζουμε το αρχείο στον κατάλογο /usr/src με την εντολή :
gzip -dc linux-2.1.59-VGER-CVS971020.tar.gz | tar -xvf -

Τώρα ο πηγαίος κώδικας του πυρήνα είναι κάτω από τον κατάλογο /usr/src/linux.

Πρέπει κάθε φορά να ελέγχετε το αρχείο Changes που βρίσκεται στον κατάλογο Documentation. Σε αυτό το αρχείο υπάρχουν χρήσιμες πληροφορίες για ποια πακέτα πρέπει να αναβαθμιστούν.

Στην συγκεκριμένη περίπτωση τα πακέτα που πρέπει οπωσδήποτε να αναβαθμιστούν φαίνονται στον πίνακα 5 :

 

Πακέτο

Έκδοση

Ανεύρεση τρέχουσας έκδοσης

Kernel modules

modutils-2.1.55

insmod -V

Dynamic Linker (ld.so)

1.9.5

ldd -v

Linux C Library

5.4.38

ls -l /lib/libc.so.*

Linux C++ Library

2.7.2.8

ls -l /usr/lib/libg++.so.*

Mount

2.6h

mount --version

Procinfo

0.11

procinfo -v

Procps

1.2

ps –version

Binutils

2.8.1.0.1

ld -v

Net-tools

1.41

hostname -V

     

Πίνακας 4.6 Πακέτα για αναβάθμιση σε Linux 2.1.59

Τα περισσότερα πακέτα από αυτά είναι διαθέσιμα σε μορφή rpm στο ακόλουθο URL: ftp://ftp.redhat.com/pub/contrib

Εάν χρειαστεί να αναβαθμιστούν από τις εκδόσεις tar.gz δεν πρέπει να παρουσιασθεί κάποιο πρόβλημα και αρκούν δύο εντολές μέσα στον κατάλογο κάθε πακέτου :

make

make install

Σε μερικές περιπτώσεις τα πακέτα RPM χρειάζονται μερικές παραπάνω επιλογές για να εγκατασταθούν, αυτό δεν πρέπει να σας ξενίζει αλλά καλό θα ήταν να γνωρίσετε καλύτερα το εργαλείο rpm διαβάζοντας την αντίστοιχη σελίδα στο on-line εγχειρίδιο του linux (man rpm).

  • Kernel modules

Το πρώτο πακέτο που χρειάζεται να αναβαθμιστεί είναι τα Kernel modules.
Εάν χρησιμοποιηθεί η έκδοση RPM :

δώστε την εντολή :

rpm --nodeps --force -U modutils-2.1.55-1.i386.rpm

Εάν χρειαστεί να μεταφραστούν από τον πηγαίο κώδικα (μορφή tar.gz) θα πρέπει αυτή την μετάφραση να γίνει ενώ ήδη χρησιμοποιείτε ο πυρήνας 2.1.59.

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

  • Dynamic Linker (ld.so-1.9.5)

Ο Dynamic Linker ήταν το μόνο από τα πακέτα του λειτουργικού που χρειάστηκαν και δεν υπήρχε σε RPM.

Προσοχή: Μην χρησιμοποιήσετε εκδόσεις από την 2.0 και πάνω. Οι εκδόσεις αυτές προορίζονται για χρήση με την glibc (libc6) και όχι με την libc5 που χρησιμοποιούμε.

To αρχείο ld.so-1.9.5.tar.gz περιέχει και την Compiled βιβλιοθήκη και το μόνο που χρειάσθηκε να γίνει μετά την αποσυμπίεση του, είναι να δοθεί μέσα από τον κατάλογο που δημιουργήθηκε η εντολή για εγκατάσταση :

sh instldso.sh --force --devfiles

  • libc-5.4.38

Η libc αποτελείται από δύο πακέτα:

1. Το αρχείο libc-5.4.38-2.i386.rpm περιέχει την βιβλιοθήκη και για την εγκατάστασή του αρκεί η εντολή :

rpm -U --nodeps libc-5.4.38-2.i386.rpm

2. Το αρχείο libc-devel-5_4_38-1_i386.rpm περιέχει τα αρχεία include που είναι απαραίτητα για την διαδικασία του compilation. Η εντολή για την εγκατάσταση του είναι:

rpm -U libc-devel-5_4_38-1_i386.rpm

  • mount-2.7f

Η διαδικασία για την αναβάθμιση και αυτού του πακέτου δεν διαφέρει και αρκεί η παρακάτω εντολή:

rpm -U mount-2.7f-1.i386.rpm

  • procinfo-0.11

rpm -U procinfo-0.11-1.i386.rpm

  • Procps-1.2

rpm -U procps-1.2-1.i386.rpm

  • binutils-2.8.1.0.1

rpm --nodeps -U binutils-2.8.1.0.1-1.i386.rpm

  • Net-tools-1.4.3.2

Το πακέτο αυτό χρειάζεται οπωσδήποτε compilation αφού αποτελείτε από προγράμματα βασικά για τις δικτυακές λειτουργίες και το IPv6 δεν είναι ενεργοποιημένο στις rpm εκδόσεις. Η διαδικασία μετάφρασης θα παρουσιασθεί σε επόμενη παράγραφο.

4.5.3 Ετοιμάζοντας τον πυρήνα για το IPv6

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

make menuconfig

Στην εικόνα 1 παρουσιάζεται οι ομάδες επιλογών του πυρήνα που μας εμφανίζει το πρόγραμμα ρύθμισης του.

Εικόνα 4.1 Κατηγορίες Επιλογών ρυθμίσεων για το Linux 2.1.59

Οι επιλογές που πρέπει να γίνουν βασίζονται στον τύπο του μηχανήματος που χρησιμοποιούμε και το υλικό (hardware) που το αποτελεί. Οι απαραίτητες επιλογές για την λειτουργία του IPv6 είναι:

Κατηγορία Επιλογές
Code maturity level options Prompt for development and/or incomplete code/drivers (Ναι)
Loadable module support Όλες τις επιλογές για πλήρες πυρήνα.
Νetworking options Packet socket (Ναι)

Kernel/User netlink socket (Ναι)

Routing messages (Ναι)

Netlink device emulation (Ναι)

IP: tunneling (module) (Ναι)

The IPv6 protocol (EXPERIMENTAL) (Ναι)

IPv6: enable EUI-64 token format (Ναι)

IPv6: disable provided based addresses (Ναι)

Πίνακας 4.7 Απαιτούμενες ρυθμίσεις για πυρήνα με δυνατότητα IPv6

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

make dep ; make clean

make zImage

Μετά το τέλος του compilation ακολουθεί η εγκατάσταση του καινούργιου πυρήνα.

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

  • Εγκατάσταση του πυρήνα

Στη συγκεκριμένη παράγραφο θα περιοριστούμε στα συστήματα που χρησιμοποιούν το linux loader (lilo) για την εκκίνηση του συστήματος.

Στο αρχείο /etc/lilo.conf προσθέστε τις παρακάτω γραμμές:

image=/boot/vmlin-2.1.59+davem-full-2

*/ αντικαταστήστε με το όνομα που δώσατε στον πυρήνα /*

label=ipv6
root=/dev/hda2 */ εδώ αντικαταστήστε το δικό σας root parttion/*
read-only

Αφού γίνουν οι προσθήκες στο αρχείο /etc/lilo.conf, οι αλλαγές ενεργοποιούνται με την εντολή:

lilo

Εάν δεν παρουσιασθεί πρόβλημα, στην επόμενη επανεκκίνηση του συστήματος πρέπει στην προτροπή του lilo να δοθεί ipv6<enter>, για να χρησιμοποιηθεί ο καινούργιος πυρήνας.

4.6 Τα πακέτα προγραμμάτων που απαιτεί το IPv6

Τώρα που υπάρχει ένας πυρήνα που μπορεί να υποστηρίξει IPv6 πρέπει να προστεθούν τα προγράμματα που θα επιτρέψουν την χρησιμοποίηση του. Τα πακέτα καθώς και τα προγράμματα που περιέχουν φαίνονται στον Πίνακας 4.8

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

Πακέτα

Περιεχόμενο

Περιγραφή

Bind-8.1.1

 

Δαίμονας DNS με υποστήριξη για IPv6 καταχωρήσεις.

Inet6-Apps-0.26

inetd

Υπερ-δαίμονας Internet

 

ping

 
 

finger

πελάτης finger

 

fingerd

εξυπηρέτης finger

 

ftp

πελάτης ftp

 

ftpd

εξυπηρέτης ftp

 

gai

Εργαλείο αποσφαλμάτωσης

 

gendata

Εργαλείο αποσφαλμάτωσης

 

socktest

Εργαλείο αποσφαλμάτωσης

 

tftp

trivial ftp

 

libinet6.a

βιβλιοθήκη inet6 (χρειάζεται και από τα άλλα πακέτα)

Net-tools-1.432

ifconfig

Ρύθμιση των παραμέτρων των interface δικτύου.

 

Route

Ρύθμιση των διαδρομών δρομολόγησης

 

hostname

Ρύθμιση του ονόματος της μηχανής

 

netstat

Εμφάνιση της κατάστασης του δικτυακών συνδέσεων.

 

arp

Διαχείριση του arp cache

 

rarp

Διαχείριση του rarp cache

radvd-0.4.1

radvd

Δαίμονας για autoconfiguration που θα τρέχει σε έναν δρομολογητή linux

 

radvdump

Παρακολούθηση όλων των μηνυμάτων autoconfiguration που εμφανίζονται στο δίκτυο.

libcap-0.4a2

libcap.a

Βιβλιοθήκη σύλληψης πακέτων από το δίκτυο.( χρησιμοποιείται από το tcpdump)

telnet.95.10.23.NE+ipv6

telnet

telnetd

Ο πελάτης και εξυπηρέτης για την υπηρεσία Telnet

tcpdump-3.4a4

tcpdump

πρόγραμμα παρακολούθησης των πακέτων που μεταδίδονται μέσα από ένα δίκτυο.

Traceroute-1.4a5

 

ανίχνευση της διαδρομής που ακολουθούν τα πακέτα από ένα σημείο του δίκτυο σε ένα άλλο

Πίνακας 4.8 Πακέτα προγραμμάτων για το IPv6

Όλα τα πακέτα μπορούν να βρεθούν στα ακόλουθα ftp sites στο Internet.

ftp://ftp.inner.net/pub/ipv6

ftp://ftp.cs-ipv6.lancs.ac.uk/pub/code/Linux/Net _Tools

ftp://ftp.cityline.net/pub/systems/linux/networks/ipv6/radvd

Τα πακέτα του IPv6 επιλέχθηκε να εγκατασταθούν σε ένα δένδρο με ρίζα τον κατάλογο /usr/inet6. Θα πρέπει λοιπόν πριν τη διαδικασία του compilation να δημιουργηθούν, με την εντολή mkdir, το δένδρο που φαίνεται στο Σχήμα 4.2 .

Σχήμα 4.2 Δένδρο εγκατάστασης εφαρμογών IPv6

Ο κατάλογος /usr/inet6/include/netinet6 είναι μια σύνδεση με τον κατάλογο /usr/inet6/include/netinet :

ln -s /usr/inet6/include/netinet6 /usr/inet6/include/netinet

Μετά από αυτό το βήμα όλα είναι έτοιμα για το compilation.

4.7 Η διαδικασία Compile και εγκατάστασης των πακέτων του IPv6

Σε αυτή την παράγραφο περιγράφονται εν συντομία τα προβλήματα που παρουσίασε κάθε ένα από τα πακέτα. Το σύνολο των διορθώσεων για κάθε πακέτο μπορεί να βρεθεί στο αντίστοιχο αρχείο τύπου patch στο οποίο και μπορείτε να ανατρέξετε (Παράρτημα Α) για τις ακριβείς αλλαγές. Σε πολλά σημεία οι αλλαγές έγιναν με σκοπό όχι την διόρθωση κάποιον λαθών, αλλά την των καταλόγων εγκατάστασης. Τέλος, είναι πολύ σημαντικό να διατηρηθεί η σειρά με την οποία έγιναν compile τα πακέτα αφού πολλές φορές η ύπαρξη ενός πακέτου αποτελεί προϋπόθεση για το compilation του επομένου.

4.7.1 Bind-8.1.1

Ο δαίμονας του DNS Bind-8.1.1 είναι η έκδοση που χρησιμοποιήσαμε γιατί παρέχει την υποστήριξη για AAAA records.

To πακέτο αυτό δεν είναι ειδική έκδοση για IPv6 και για αυτό τον λόγο το εγκαταστήσαμε στις προτεινόμενες από το πακέτο θέσεις και όχι κάτω από το /usr/inet6. Λόγο της ύπαρξης πακέτων τύπου RPM τα προτιμήσαμε:

rpm -i bind-8.1.1.i386.rpm

Το πακέτο αυτό είναι απαραίτητο να εγκατασταθεί μόνο σε μηχανή που θα είναι DNS εξυπηρέτης.

4.7.2 Inet6-Apps-0.26

Στο πακέτο αυτό χρειάζεται το patch1 από το αρχείο inet-apps-0.26a.tar.gz το οποίο δίνει στον δαίμονα του ftp να αναγνωρίζει shadow passwords.

Παρόλα αυτά υπήρχαν κάποια προβλήματα :

  • Αρχείο ping.c

make[1]: Entering directory /usr/src/inet6-apps-0.26/ping'

cc -g -I../include -I../include/generic -I../include/linux -I/usr/include

-DINET6=1 -c ping.c -o ping.o

ping.c: In function r_iph':

ping.c:1463: structure has no member named 'ip_csum'

make[1]: *** [ping.o] Error 1

make[1]: Leaving directory /usr/src/inet6-apps-0.26/ping'

Ο τύπος μεταβλητής ip_csum έχει μετονομαστεί σε ip_sum στην καινούργια έκδοση της libc και αρκεί να αλλαχθεί η δήλωση στην γραμμή 1461.

Χρησιμοποιώντας μετά το patch1 το αρχείο patch inet6-apps-0.26b.patch που δημιουργήσαμε λύνονται όλα τα προβλήματα.

patch -p0 < patch1

patch -p0 < inet6-apps-0.26b.patch

make

make install

4.7.3 Net-tools-1.432

Εάν και ήταν κάτι που δεν το περιμέναμε και τα Net-tools παρουσίασαν δύο μικρά προβλήματα.

  • Αρχείο inet6_gr.c

make[1]: Entering directory /usr/src/net-tools/lib'

gcc -O2 -Wall -g -I/usr/inet6/include -I. -I/usr/src/net-tools

-I/usr/src/net-tools/include -c inet6_gr.c -o inet6_gr.o

inet6_gr.c:20: netinet/ip6.h: No such file or directory

make[1]: *** [inet6_gr.o] Error 1

make[1]: Leaving directory /usr/src/net-tools/lib'

To πρόβλημα οφείλεται στην αλλαγή ονόματος του αρχείου include από ip6.h σε in6.h

  • Αρχείο ifconfig.c

gcc -O2 -Wall -g -I/usr/inet6/include -I. -I./include/ -Ilib -c ifconfig.c

-o

ifconfig.o

ifconfig.c:45: redefinition of truct in6_ifreq'

make: *** [ifconfig.o] Error 1

Σε αυτή την περίπτωση ο τύπος της μεταβλητής έχει ήδη δηλωθεί στον πυρήνα όπως και θα έπρεπε και απλά πρέπει να αφαιρέσουμε την δήλωση εντός του αρχείου ifconfig.c

Και για αυτό το πακέτο υπάρχει αρχείο patch.

patch -p0 < net-tools-1.432b.patch

make

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

make install

4.7.4 radvd-0.4.1

Το πακέτο radvd χρειάζεται μόνο μια πολύ μικρή αλλαγή για την σωστή εγκατάσταση των πακέτων.

        • patch -p0 < radvd-0.4.1b.patch
        • CPPFLAGS="-I/usr/inet6/include" LDFLAGS="-s -L/usr/inet6/lib" ./configure -- prefix=/usr/inet6
        • make
        • make install

4.7.5 libpcap-0.4a2

Το πακέτο libcap δεν παρουσίασε πρόβλημα :

./configure --prefix=/usr/inet6

make

make install

4.7.6 tcpdump-3.4a4

Το πακέτο tcpdump δεν παρουσίασε πρόβλημα :

CPPFLAGS="-I/usr/inet6/include" LDFLAGS="-s -L/usr/inet6/lib" ./configure --prefix=/usr/inet6

make

make install

 

4.7.7 traceroute-1.4a5

Το πακέτο traceroute δεν παρουσίασε πρόβλημα :

CPPFLAGS="-I/usr/inet6/include" LDFLAGS="-s -L/usr/inet6/lib" ./configure --prefix=/usr/inet6

make

make install

 

4.7.8 telnet-95.10.23.NE+ipv6-3

Το πακέτο telnet δεν παρουσίασε πρόβλημα :

make

make install

4.7.9 Ολοκληρώνοντας την εγκατάσταση

Μετά την ολοκλήρωση του compilation, στο δένδρο των καταλόγων κάτω από τον κατάλογο /usr/inet6 υπάρχουν όλα τα απαραίτητα πακέτα. Για να ολοκληρωθεί η εγκατάσταση πρέπει να αντιγραφθεί το αρχείο /usr/inet6/etc/protocols στον κατάλογο /etc και να προστεθεί στο τέλος του αρχείου /etc/hosts τα περιεχόμενα του αρχείου /usr/inet6/etc/hosts.

4.8 Ρύθμιση μιας μηχανής για το IPv6

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

Το μόνο αρχείο ρύθμισης που είναι κοινό σε όλες τις μηχανές είναι το αρχείο /usr/inet6/etc/inetd.conf και παρέχει στον υπερ-δαίμονα τις ρυθμίσεις για τις υπηρεσίες που θα παρέχει η μηχανή, καθώς και την θέση των αντίστοιχων προγραμμάτων.

4.8.1 Ρυθμίσεις για δρομολογητή IPv6

Στους δρομολογητής πρέπει όλες οι ρυθμίσεις να γίνουν χειροκίνητα. Για αυτό τον λόγο χρησιμοποιήσαμε ένα σύνολο από βοηθητικά προγράμματα κελύφους (shell scripts) για να αυτοματοποιήσουμε τις διαδικασίες. Τα βοηθητικά προγράμματα αυτά ακολουθούν τον τύπο των προγραμμάτων εκκίνησης του UN*X SYS V και το βασικό μέρος τους έχει γραφεί από τον Peter Bieringer, ενώ έχουν γίνει και κάποιες αναγκαίες αλλαγές και προσθήκες. Τα προγράμματα λόγο μεγέθους υπάρχουν στο Παράρτημα Α, ενώ σε αυτό το σημείο θα κάνουμε μια σύντομη αναφορά στον τρόπο χρήσης τους.

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

Οι βασικές επιλογές που είναι διαθέσιμες περιέχονται στο αρχείο /usr/inet6/etc/sysconfig/network-ip6. Οι μεταβλητές που τις επηρεάζουν καθώς και μια σύντομη εξήγηση περιέχονται στον Πίνακας 4.9

Μεταβλητή

Δυνατές τιμές

Λειτουργία

IP6NETWORKING

yes/no

Ενεργοποίηση του IPv6

IP6GATEWAYCONFIG

yes/no

H μηχανή είναι δρομολογητής

IP6TUNNELCONFIG

yes/no

Υπάρχουν Tunnels

IP6RADVD

yes/no

O δρομολογητής θα παρέχει πληροφορίες Autoconfiguration.

Πίνακας 4.9 Μεταβλητές Ρυθμίσεων στον αρχείο /usr/inet6/etc/sysconfig/network-ip6

Η επιμέρους παράμετροι των λειτουργιών που αναφέρονται στον Πίνακας 4.9 ρυθμίζονται στο αρχείο /usr/inet6/etc/sysconfig/network-ip6.conf με εξαίρεση των δαίμονα radvd που βρίσκεται στο /usr/inet6/etc/radvd.conf.

To αρχείο /usr/inet6/etc/sysconfig/network-ip6.conf περιέχει αρκετά παραδείγματα ώστε να είναι κατανοητή η χρήση του.

Η ενεργοποίηση των υπηρεσιών γίνεται με τα πρόγραμμα (shell scripts) που βρίσκονται στον κατάλογο /usr/inet6/etc/rc.d/init.d/ και αναφέρονται στον Πίνακας 4.10

Πρόγραμμα

(shell script)

Παράμετροι

Λειτουργία

network-ip6

start/stop

Ενεργοποίηση των interfaces

tunnels-ip6.init

start/stop

Ενεργοποίηση των tunnels

inet6

start/stop

Ενεργοποίηση του υπερ- δαίμονα

radvd.init

start/stop

Ενεργοποίηση του δαίμονα stateless autoconfigurarion

Πίνακας 4.10 Προγράμματα ενεργοποίησης IPv6 υπηρεσιών

4.8.1.1 Ενεργοποιώντας το stateless autoconfiguration

Το αρχείο /usr/inet6/etc/radvd.conf περιέχει όλες τις πληροφορίες που ανακοινώνει ο δαίμονας radvd. Οι πιο χρήσιμες μεταβλητές αναφέρονται στον και. Ένα χαρακτηριστικό παράδειγμα αποτελεί το αρχείο /usr/inet6/etc/radvd.conf της νησίδας του εργαστηρίου μας (Παράρτημα Α)

Η γενική μορφή του αρχείου είναι:

interface όνομα {

κατάλογος επιλογών σχετικές με το interface

κατάλογος προθεμάτων (prefix) ανακοινώνονται και σχετικές επιλογές.

};

 

Παράμετρος

Λειτουργία

Παράμετροι Interface

AdvSendAdvert Ενεργοποίηση αutoconfiguration των μηχανών που επικοινωνούν μέσω αυτού του Interface.
AdvManagedFlag Οι μηχανές του δικτύου θα μάθουν τις διευθύνσεις τους μέσω της statefull μεθόδου.
AdvOtherConfigFlag Οι μηχανές του δικτύου θα πρέπει να αναζητήσουν επιπλέων πληροφορίες για την λειτουργία τους μέσω της statefull μεθόδου.
AdvDefaultLifetime Ο χρόνος για τον οποίο αυτός ο δρομολογητής θα πρέπει να θεωρείται η διέξοδος προς τα άλλα δίκτυα.

Παράμετροι προθέματος

AdvPreferredLifetime Χρόνος για τον οποίο αυτό το πρόθεμα είναι το προτιμώμενο.
AdvValidLifetime Χρόνος για τον οποίο αυτό το πρόθεμα ισχύει

Πίνακας 4.11 Βασικές παράμετροι του Stateless Autoconfiguration

4.8.2 Ρυθμίσεις για άλλες μηχανές

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

4.9 Τελικές Ρυθμίσεις

Ολοκληρώνοντας την προετοιμασία μιας μηχανής φροντίσαμε να κάνουμε πιο εύκολη την χρήση της, με δύο τρόπους :

1. Προσθέτοντας στη διαδρομή αναζήτησης προγραμμάτων, τους καταλόγους του IPv6

2. Την δυνατότητα να βλέπουμε το online help των νέων πακέτων.

Για να πετύχουμε αυτές τις ευκολίες κάναμε τις ακόλουθες αλλαγές :

1. Αλλαγές στο αρχείο /etc/profile

       

Πριν

Μετά

PATH="$PATH:/usr/X11R6/bin" PATH="/usr/inet6/bin:$PATH:/usr/X11R6/bin"

Με αυτή την αλλαγή το λειτουργικό θα αναζητεί της εντολές που δίνεται πρώτα ανάμεσα σε αυτές του IPv6. Η αλλαγή αυτή θα ισχύσει την επόμενη φορά που θα συνδεθείτε (login) με τον υπολογιστή και εφόσον χρησιμοποιείτε για κέλυφος το bash και όχι το tcsh.

2. Οι αλλαγές στο αρχείο /etc/man.config που θα επιτρέψουν την προβολή και των νέων online help.

Πριν

Μετά

MANPATH /usr/lib/perl5/man MANPATH /usr/lib/perl5/man

MANPATH /usr/inet6/man

MANPATH_MAP /usr/bin/mh /usr/man MANPATH_MAP /usr/bin/mh /usr/man

MANPATH_MAP /usr/inet6/bin /usr/inet6/man

Κεντρική Σελίδα