Τι είναι το αρχείο δικτύων στα windows. Τι πρέπει να υπάρχει στο αρχείο δικτύων

Καλή ώρα, αγαπητοί αναγνώστες. Αναρτώ το δεύτερο μέρος. Η τρέχουσα ενότητα εστιάζει σε υλοποίηση δικτύου σε linux(πώς να ρυθμίσετε ένα δίκτυο στο Linux, πώς να διαγνώσετε ένα δίκτυο στο Linux και να διατηρήσετε το υποσύστημα δικτύου στο Linux).

Διαμόρφωση TCP/IP σε Linux για δικτύωση Ethernet

Για να εργαστείτε με πρωτόκολλα δικτύου TCP / IP στο Linux, αρκεί να έχετε μόνο loopback διεπαφή, αλλά εάν χρειάζεται να συνδυάσετε κεντρικούς υπολογιστές μεταξύ τους, φυσικά, χρειάζεστε μια διεπαφή δικτύου, κανάλια μετάδοσης δεδομένων (για παράδειγμα, συνεστραμμένο ζεύγος), πιθανώς κάποιο είδος εξοπλισμού δικτύου. Επίσης, είναι απαραίτητο να έχετε εγκαταστήσει (, κ.λπ.), που συνήθως παρέχονται σε . Πρέπει επίσης να διαθέτει δίκτυο (για παράδειγμα /etc/host) και υποστήριξη δικτύου.

Ρυθμίσεις δικτύου

Ας αρχίσουμε να κατανοούμε τους μηχανισμούς δικτύωσης Linux ρυθμίζοντας χειροκίνητα το δίκτυο, δηλαδή από την περίπτωση που διεύθυνση IPδιεπαφή δικτύου στατικός. Επομένως, κατά τη ρύθμιση ενός δικτύου, πρέπει να λάβετε υπόψη και να διαμορφώσετε τις ακόλουθες παραμέτρους:

διεύθυνση IP- όπως ήδη αναφέρθηκε στο πρώτο μέρος του άρθρου - αυτή είναι μια μοναδική διεύθυνση του μηχανήματος, με τη μορφή τεσσάρων δεκαδικών αριθμών που χωρίζονται με τελείες. Συνήθως, όταν εργάζεστε σε τοπικό δίκτυο, επιλεγμένο από ιδιωτικές περιοχές, για παράδειγμα: 192.168.0.1

Μάσκα υποδικτύου- επίσης, 4 δεκαδικοί αριθμοί που καθορίζουν ποιο μέρος της διεύθυνσης αναφέρεται στη διεύθυνση δικτύου/υποδικτύου και ποιο στη διεύθυνση κεντρικού υπολογιστή. Η μάσκα υποδικτύου είναι ένας αριθμός που προστίθεται (σε ​​δυαδική μορφή) με μια διεύθυνση IP για να μάθετε σε ποιο υποδίκτυο ανήκει η διεύθυνση. Για παράδειγμα, η διεύθυνση 192.168.0.2 με τη μάσκα 255.255.255.0 ανήκει στο υποδίκτυο 192.168.0.

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

Διεύθυνση εκπομπής- τη διεύθυνση που χρησιμοποιείται για την αποστολή πακέτων εκπομπής που θα ληφθούν από όλους τους κεντρικούς υπολογιστές στο υποδίκτυο. Συνήθως, ισούται με τη διεύθυνση υποδικτύου με τιμή κεντρικού υπολογιστή 255, δηλαδή, για το υποδίκτυο 192.168.0, η μετάδοση θα είναι 192.168.0.255, ομοίως, για το υποδίκτυο 192.168, η μετάδοση θα είναι 192.168.255.255. Δεν υπάρχει διεύθυνση εκπομπής για διεπαφές επαναφοράς βρόχου.

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

Διεύθυνση IP διακομιστή ονομάτων (διακομιστής DNS)- διεύθυνση του διακομιστή που μετατρέπει ονόματα κεντρικών υπολογιστών σε διευθύνσεις IP. Συνήθως παρέχεται από τον ISP.

Αρχεία ρυθμίσεων δικτύου Linux (αρχεία διαμόρφωσης)

Για να κατανοήσετε τη δικτύωση στο Linux, σίγουρα θα σας συμβούλευα να διαβάσετε το άρθρο "". Σε γενικές γραμμές, όλη η εργασία του Linux βασίζεται στο, το οποίο γεννιέται όταν το λειτουργικό σύστημα εκκινεί και παράγει τους απογόνους του, οι οποίοι με τη σειρά τους κάνουν όλη την απαραίτητη εργασία, είτε πρόκειται για το running bash είτε για έναν δαίμονα. Ναι, και βασίζεται ολόκληρη η εκκίνηση του Linux, η οποία περιγράφει ολόκληρη τη σειρά εκκίνησης μικρών βοηθητικών προγραμμάτων με διάφορες παραμέτρους που ξεκινούν / σταματούν διαδοχικά όταν ξεκινά / σταματά το σύστημα. Το υποσύστημα δικτύου Linux ξεκινά με τον ίδιο τρόπο.

Κάθε διανομή Linux έχει έναν ελαφρώς διαφορετικό μηχανισμό αρχικοποίησης δικτύου, αλλά η συνολική εικόνα, νομίζω, μετά την ανάγνωση θα είναι ξεκάθαρη. Αν κοιτάξετε τα σενάρια έναρξης του υποσυστήματος δικτύου ορισμένων Διανομή Linux, τότε ο τρόπος ρύθμισης των παραμέτρων δικτύου χρησιμοποιώντας αρχεία διαμόρφωσης θα γίνει λίγο-πολύ σαφής, για παράδειγμα, στο Debian (θα λάβουμε αυτή τη διανομή ως βάση), το σενάριο είναι υπεύθυνο για την προετοιμασία του δικτύου /etc/init.d/networkingβλέποντας ποια:

Διακομιστής δικτύου:~#cat /etc/init.d/networking #!/bin/sh -e ### BEGIN INIT INFO # Παρέχει: δικτύωση # Απαιτείται-Έναρξη: mountkernfs $local_fs # Required-Stop: $local_fs # Πρέπει -Start: ifupdown # Should-Stop: ifupdown # Default-Start: S # Default-Stop: 0 6 # Short-Description: Αύξηση διεπαφών δικτύου. ### END INIT INFO PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" [ -x /sbin/ifup ] || έξοδος 0. /lib/lsb/init-functions process_options() ( [ -e /etc/network/options ] || return 0 log_warning_msg "/etc/network/options εξακολουθεί να υπάρχει και θα ΑΓΝΟΕΙΤΑΙ! Διαβάστε το README.Debian του netbase." ) check_network_file_systems() ( [ -e /proc/mounts ] || επιστρέφει 0 εάν [ -e /etc/iscsi/iscsi.initramfs ]; στη συνέχεια log_warning_msg "δεν γίνεται αποδιαμόρφωση διεπαφών δικτύου: η ρίζα iSCSI έχει προσαρτηθεί." έξοδος 0 fi exec 9<&0 < /proc/mounts while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network devices still mounted." exit 0 ;; esac case $FSTYPE in nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs) log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." exit 0 ;; esac done exec 0<&9 9<&- } check_network_swap() { [ -e /proc/swaps ] || return 0 exec 9<&0 < /proc/swaps while read DEV MTPT FSTYPE REST; do case $DEV in /dev/nbd*|/dev/nd*|/dev/etherd/e*) log_warning_msg "not deconfiguring network interfaces: network swap still mounted." exit 0 ;; esac done exec 0<&9 9<&- } case "$1" in start) process_options log_action_begin_msg "Configuring network interfaces" if ifup -a; then log_action_end_msg $? else log_action_end_msg $? fi ;; stop) check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" if ifdown -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; force-reload|restart) process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" ifdown -a --exclude=lo || true if ifup -a --exclude=lo; then log_action_end_msg $? else log_action_end_msg $? fi ;; *) echo "Usage: /etc/init.d/networking {start|stop}" exit 1 ;; esac exit 0

μπορείτε να βρείτε πολλές λειτουργίες που ελέγχουν για προσαρτημένα συστήματα αρχείων δικτύου ( check_network_file_systems(), check_network_swap()), καθώς και τον έλεγχο της ύπαρξης ορισμένων ακόμα ακατανόητων παραμέτρων /etc/network/options (λειτουργία process_options()), και στο κάτω μέρος, από το σχέδιο περίπτωση "$1" inκαι σύμφωνα με την εισαγόμενη παράμετρο (start/stop/force-reload|restart ή οποιαδήποτε άλλη) εκτελεί ορισμένες ενέργειες. Από αυτά πολύ ορισμένες ενέργειες", το παράδειγμα του ορίσματος start δείχνει ότι η συνάρτηση ξεκινά πρώτα διαδικασίες_επιλογές, τότε η φράση αποστέλλεται στο αρχείο καταγραφής Διαμόρφωση διεπαφών δικτύουκαι εκτελέστε την εντολή ifup -α. Αν κοιτάξετε το man ifup , μπορείτε να δείτε ότι αυτή η εντολή διαβάζει τη διαμόρφωση από το αρχείο /etc/network/interfacesκαι σύμφωνα με το κλειδί -έναεκκινεί όλες τις διεπαφές που έχουν την παράμετρο αυτο.

Οι εντολές ifup και ifdown μπορούν να χρησιμοποιηθούν για τη ρύθμιση παραμέτρων (ή, αντίστοιχα, την αποδιαμόρφωση) διεπαφών δικτύου με βάση τους ορισμούς διεπαφής στο αρχείο /etc/network/interfaces.

-a, --όλα
Εάν δοθεί στο ifup, επηρεάστε όλες τις διεπαφές με την ένδειξη auto. Οι διεπαφές εμφανίζονται με τη σειρά με την οποία ορίζονται στο /etc/network/interfaces. Εάν δοθεί στο ifdown, επηρεάστε όλες τις καθορισμένες διεπαφές. Οι διεπαφές μειώνονται με τη σειρά με την οποία αναφέρονται αυτήν τη στιγμή στο αρχείο κατάστασης. Μόνο οι διεπαφές που ορίζονται στο /etc/network/interfaces θα καταργηθούν.

ip-server:~# cat /etc/network/interfaces # Αυτό το αρχείο περιγράφει τις διασυνδέσεις δικτύου που είναι διαθέσιμες στο σύστημά σας # και πώς να τις ενεργοποιήσετε. Για περισσότερες πληροφορίες, ανατρέξτε στις διεπαφές (5). # Η διεπαφή δικτύου loopback auto lo iface lo inet loopback # Η κύρια διεπαφή δικτύου allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug eth2 iface eth2 inet static address 192.168.1.1 netmask 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 255.211.216.211 πύλη. 5

Σε αυτή τη γραμμή διαμόρφωσης επιτρέπω-hotplugΚαι αυτοείναι συνώνυμα και οι διεπαφές θα εμφανιστούν κατόπιν εντολής ifup -α. Αυτή, στην πραγματικότητα, είναι ολόκληρη η αλυσίδα λειτουργίας του υποσυστήματος δικτύου. Ομοίως, σε άλλες διανομές: στο RedHat και στο SUSE, το δίκτυο ξεκινά από ένα σενάριο /etc/init.d/network. Έχοντας το εξετάσει, μπορείτε ομοίως να βρείτε πού βρίσκεται η διαμόρφωση δικτύου.

/etc/hosts

Αυτό το αρχείο περιέχει μια λίστα διευθύνσεις IPΚαι ονόματα κεντρικών υπολογιστών που αντιστοιχούν σε αυτά (διευθύνσεις).Η μορφή αρχείου δεν διαφέρει από το κύριο αρχείο:

Ip-server:~# cat /etc/hosts # ip host.in.domain host 127.0.0.1 localhost 127.0.1.1 ip-server.domain.local ip-server 192.168.1.1 ip-server.domain.local ip-server

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

/etc/hostname

Αυτό το αρχείο περιέχει Όνομα κεντρικού υπολογιστή NetBIOS:

Ip-server:~# cat /etc/hostname ip-server

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

Ip-server:~# cat /etc/networks προεπιλογή 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 home-network 192.168.1.0

Όταν χρησιμοποιείτε αυτό το αρχείο, η διαχείριση των δικτύων μπορεί να γίνει με όνομα. Για παράδειγμα, προσθέστε μια διαδρομή όχι διαδρομή προσθήκη 192.168.1.12 , ΕΝΑ διαδρομή προσθήκη.

/etc/nsswitch.conf

Το αρχείο ορίζει σειρά αναζήτησης ονόματος κεντρικού υπολογιστή/networks, οι ακόλουθες γραμμές είναι υπεύθυνες για αυτήν τη ρύθμιση:

Για κεντρικούς υπολογιστές: κεντρικούς υπολογιστές: αρχεία dns Για δίκτυα: δίκτυα: αρχεία

Παράμετρος αρχεία καθορίζει τη χρήση των καθορισμένων αρχείων (/etc/hostΚαι /etc/networksαντίστοιχα), παράμετρος dns καθορίζει τη χρήση της υπηρεσίας dns.

/etc/host.conf

Το αρχείο καθορίζει επιλογές ανάλυσης ονόματος για το πρόγραμμα επίλυσης

Ip-server:~# cat /etc/host.conf multi on

Αυτό το αρχείο λέει στη βιβλιοθήκη resolv να επιστρέψει όλες τις έγκυρες διευθύνσεις κεντρικού υπολογιστή που βρίσκονται στο αρχείο /etc/hosts, όχι μόνο την πρώτη.

/etc/resolv.conf

Αυτό το αρχείο ορίζει τις παραμέτρους του μηχανισμού μετάφρασης ονόματος δικτύου σε διεύθυνση IP. Σε απλή γλώσσα καθορίζει τις ρυθμίσεις DNS. Παράδειγμα:

Ip-server:~# cat /etc/resolv.conf nameserver 10.0.0.4 nameserver 10.0.0.1 search domain.local

Οι πρώτες 2 γραμμές υποδεικνύουν διακομιστές DNS. Η τρίτη γραμμή καθορίζει τους τομείς αναζήτησης. Εάν, κατά την επίλυση ενός ονόματος, το όνομα δεν είναι όνομα FQDN, τότε αυτός ο τομέας αντικαθίσταται ως "τέλος". Για παράδειγμα, κατά την εκτέλεση της εντολής ping host, η διεύθυνση ping μετατρέπεται σε host.domain.local. Άλλες παράμετροι μπορούν να διαβαστούν στο man resolv.conf. Πολύ συχνά, το Linux χρησιμοποιεί τη δυναμική δημιουργία αυτού του αρχείου, χρησιμοποιώντας το λεγόμενο. προγράμματα /sbin/resolvconf.Αυτό το πρόγραμμα είναι ένας ενδιάμεσος μεταξύ υπηρεσιών που παρέχουν δυναμικά διακομιστές ονομάτων (για παράδειγμα, πελάτης DHCP) και υπηρεσίες που χρησιμοποιούν δεδομένα διακομιστή ονομάτων. Για να χρησιμοποιήσετε ένα αρχείο που δημιουργείται δυναμικά /etc/resolv.conf, πρέπει να κάνετε αυτό το αρχείο ως συμβολικό σύνδεσμο προς /etc/resolvconf/run/resolv.conf. Σε ορισμένες διανομές, η διαδρομή μπορεί να είναι διαφορετική, αυτό σίγουρα θα γραφτεί άνθρωπος resolvconf.

Διαμόρφωση δικτύου

Έχοντας εξοικειωθεί με τα κύρια αρχεία διαμόρφωσης, μπορείτε να δείτε το . Η εντολή έχει ήδη αναφερθεί παραπάνω. ifup, ifdown, αλλά αυτά τα εργαλεία δεν είναι αρκετά καθολικά, για παράδειγμα, σε διανομές RH, αυτές οι εντολές δεν είναι διαθέσιμες από προεπιλογή. Επιπλέον, οι νέες διανομές διαθέτουν ένα νέο εργαλείο διαχείρισης δικτύου υψηλού επιπέδου - , το οποίο ανήκει στο πακέτο iproute. Σε αυτόν (το πακέτο iproute) θα αφιερώσω . Και στην τρέχουσα ανάρτηση δεν θα το σκεφτώ. Οι εντολές που περιγράφονται παρακάτω ανήκουν στο .

Έτσι, για να είστε σίγουροι ότι η εντολή θα λειτουργήσει σε οποιαδήποτε διανομή Linux, πρέπει να χρησιμοποιήσετε δύο βασικές παλιομοδίτικα εντολές. Αυτό είναι , και arp. Πρώτη ομάδα (υπεύθυνη για ρύθμιση διεπαφών δικτύου(ip, μάσκα, πύλη), δεύτερο () - ρύθμιση δρομολόγησης, τρίτο (arp) - διαχείριση πίνακα arp. Θα ήθελα να σημειώσω ότι η εκτέλεση αυτών των εντολών χωρίς απενεργοποίηση της τυπικής δέσμης ενεργειών εκκίνησης SystemV του υποσυστήματος δικτύου θα κάνει αλλαγές μόνο μέχρι την πρώτη επανεκκίνηση / επανεκκίνηση της υπηρεσίας δικτύου, επειδή. αν το σκεφτείς με το μυαλό σου, μπορείς να καταλάβεις ότι το σενάριο /etc/init.d/networkingΣτην επόμενη εκκίνηση, θα ξαναδιαβάσει τις παραπάνω ρυθμίσεις και θα εφαρμόσει τις παλιές ρυθμίσεις. Αντίστοιχα, η διέξοδος για τη μόνιμη ρύθμιση των ρυθμίσεων είναι είτε η εντολή ifconfig με τις κατάλληλες παραμέτρους - εισαγάγετε ή διορθώστε χειροκίνητα τις αντίστοιχες διαμορφώσεις διεπαφής δικτύου.

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

Δρομολόγησηγια τις διαθέσιμες διεπαφές σε σύγχρονους πυρήνες αυξάνεται πάντα αυτόματα από τον πυρήνα. Ή μάλλον, οι κατευθύνσεις προς το δίκτυο σύμφωνα με τις ρυθμίσεις IP και το υποδίκτυο στο οποίο φαίνεται η ανυψωμένη διεπαφή σχηματίζονται αυτόματα από τον πυρήνα. Η πύλη πεδίου (πύλη) για τέτοιες καταχωρήσεις δείχνει τη διεύθυνση της διεπαφής εξόδου ή *. Σε παλαιότερες εκδόσεις του πυρήνα (ο αριθμός του πυρήνα από τον οποίο άρχισαν να ανεβαίνουν αυτόματα οι διαδρομές - δεν θα σας πω), ήταν απαραίτητο να προσθέσετε τη διαδρομή με μη αυτόματο τρόπο.

Αν υπάρχει ανάγκη οργάνωσης διαδρομές, τότε πρέπει να χρησιμοποιήσετε . Μπορείτε να προσθέσετε και να αφαιρέσετε διαδρομές με αυτήν την εντολή, αλλά και πάλι, αυτό θα σας βοηθήσει μόνο μέχρι να επανεκκινήσετε το /etc/init.d/networking (ή άλλο σενάριο δικτύωσης στη διανομή σας). Για να προστεθούν αυτόματα οι διαδρομές, είναι απαραίτητο, όπως και με την εντολή ifconfig, να προσθέσετε εντολές για την προσθήκη διαδρομών στο rc.local ή να διορθώσετε με το χέρι τις αντίστοιχες ρυθμίσεις διεπαφής δικτύου (για παράδειγμα, στο Deb - /etc/network/options).

Με ποιους κανόνες διαμορφώνονται διαδρομές προς τα δίκτυα, Είμαι μέσα

Διαγνωστικά Δικτύων Linux

Υπάρχει ένας μεγάλος αριθμός εργαλείων διάγνωσης δικτύου στο Linux, συχνά πολύ παρόμοια με αυτά της Microsoft. Θα εξετάσω 3 κύρια βοηθητικά προγράμματα διάγνωσης δικτύου, χωρίς τα οποία θα είναι προβληματικό να εντοπιστούν προβλήματα.

Νομίζω ότι αυτό το βοηθητικό πρόγραμμα είναι γνωστό σε όλους σχεδόν. Η δουλειά αυτού του βοηθητικού προγράμματος είναι να αποστολήτα λεγόμενα Πακέτα ICMPαπομακρυσμένος διακομιστής, ο οποίος θα καθοριστεί στις παραμέτρους εντολών, ο διακομιστής επιστρέφει τις απεσταλμένες εντολές και pingμετρώντας το χρόνοαπαιτείται για να φτάσει το αποσταλμένο πακέτο στον διακομιστή και να επιστρέψει. Για παράδειγμα:

# ping ya.ru PING ya.ru (87.250.251.3) 56(84) byte δεδομένων. 64 byte από www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=57 time=42,7 ms από www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=57 time=42,5 ms από www.yandex.ru .yandex.ru (87.250.251.3): icmp_seq=4 ttl=57 time=42,5 ms 64 byte από www .yandex.ru (87.250.251.3): icmp_seq=5 ttl=57 time=41,9 ms ^ --C Στατιστικά ping .ru --- Μεταδόθηκαν 5 πακέτα, ελήφθησαν 5, απώλεια πακέτων 0%, χρόνος 4012ms rtt min/ avg/max/mdev = 41.922/42.588/43.255/0.500ms

Όπως φαίνεται από το παραπάνω παράδειγμα, pingμας δίνει πολλές χρήσιμες πληροφορίες. Πρωτα απο ολα, το ανακαλύψαμε μπορούμε να δημιουργήσουμε μια σύνδεση με τον κεντρικό υπολογιστή ya.ru(μερικές φορές λένε ότι "ο οικοδεσπότης ya.ru είναι διαθέσιμος σε εμάς"). κατα δευτερον, το βλέπουμε Το DNS λειτουργεί σωστά, επειδή το όνομα "pinged" μετατράπηκε σωστά σε διεύθυνση IP (PING ya.ru (87.250.251.3)). Περαιτέρω, στο χωράφι icmp_seq= ορίστε την αρίθμηση των απεσταλμένων πακέτων. Σε κάθε σταλμένο πακέτο εκχωρείται διαδοχικά ένας αριθμός και εάν υπάρχουν "κενά" σε αυτήν την αρίθμηση, τότε αυτό θα μας πει ότι η σύνδεση με το "pinged" είναι ασταθής και μπορεί επίσης να σημαίνει ότι ο διακομιστής στον οποίο αποστέλλονται τα πακέτα είναι υπερφορτωμένο. Κατά αξία χρόνος=βλέπουμε, πόσο καιρό ταξίδεψε το πακέτοσε 87.250.251.3 και πίσω. Μπορείτε να σταματήσετε το βοηθητικό πρόγραμμα ping πατώντας Ctrl+C.

Επίσης, βοηθητικό πρόγραμμα pingείναι ενδιαφέρον στο ότι μπορεί να σας επιτρέψει να δείτε ακριβώς πού προέκυψαν τα προβλήματα. Ας πούμε βοηθητικό πρόγραμμα pingεμφανίζει ένα μήνυμα το δίκτυο δεν είναι προσβάσιμοή άλλο παρόμοιο μήνυμα. Αυτό πιθανότατα υποδεικνύει μια εσφαλμένη διαμόρφωση του συστήματός σας. Σε αυτήν την περίπτωση, μπορείτε να στείλετε πακέτα στη διεύθυνση IP του ISP για να μάθετε πού παρουσιάζεται το πρόβλημα (μεταξύ του τοπικού υπολογιστή ή "πέραν"). Εάν είστε συνδεδεμένοι στο Διαδίκτυο μέσω δρομολογητή, τότε μπορείτε να στείλετε πακέτα στην IP του. Αντίστοιχα, εάν το πρόβλημα εμφανίζεται ήδη σε αυτό το στάδιο, αυτό υποδεικνύει λανθασμένη διαμόρφωση του τοπικού συστήματος ή βλάβη του καλωδίου, εάν ο δρομολογητής ανταποκρίνεται και ο διακομιστής του παρόχου όχι, τότε το πρόβλημα βρίσκεται στο κανάλι επικοινωνίας του παρόχου κ.λπ. Τέλος, αν αποτύχει η μετατροπή του ονόματος σε IP, τότε μπορείτε να ελέγξετε τη σύνδεση μέσω IP, εάν οι απαντήσεις είναι σωστές, τότε μπορείτε να μαντέψετε ότι το πρόβλημα είναι στο DNS.

Θα πρέπει να σημειωθεί ότι αυτό το βοηθητικό πρόγραμμα δεν είναι πάντα ένα αξιόπιστο διαγνωστικό εργαλείο. Ο απομακρυσμένος διακομιστής μπορεί να αποκλείσει απαντήσεις σε αιτήματα ICMP.

traceroute

Με απλά λόγια, η ομάδα ονομάζεται ίχνος διαδρομής. Όπως καταλαβαίνετε από το όνομα, αυτό το βοηθητικό πρόγραμμα θα δείξει ποια διαδρομή πήγαν τα πακέτα στον κεντρικό υπολογιστή. χρησιμότητα tracerouteκάπως παρόμοια με ping, αλλά εμφανίζει πιο ενδιαφέρουσες πληροφορίες. Παράδειγμα:

# traceroute ya.ru traceroute σε ya.ru (213.180.204.3), 30 άλματα μέγιστο, πακέτα 60 byte .kubtelecom.ru (213.132.64.65) 2.761 ms 5.787 ms 5.787 ms 5.7217 ms 5.721le 5.721g 5.777 ms. 4) 5.713 ms 5.701 ms 5.636 ms 4 (194.186.6.177) 81.430 ms 81.581 ms 81.687 ms 5 cat26.Moscow.gldn.net (194.186.10.118.894 ms. 6 213.33.201.230 (213.33.201.230) 43.322 ms 41.783 ms 41 106 MS 7 Carmine-Red-Vlan602.yandex.net (87.250 242.206) 41.199 MS 42.578 MS 42.610 MS 8 www.yandex.ru (213.180.204.3) 43.185 MS 42.126 MS 42.679 MS

Όπως μπορείτε να δείτε, μπορείτε να εντοπίσετε τη διαδρομή από τον δρομολογητή του παρόχου 243-083-free.kubtelecom.ru (213.132.83.243) (Νότια Ρωσία) στον τελικό κεντρικό υπολογιστή στο www.yandex.ru (213.180.204.3) στη Μόσχα.

σκάβω

Αυτό το βοηθητικό πρόγραμμα στέλνει ερωτήματα σε διακομιστές DNS και επιστρέφει πληροφορίες σχετικά με τον καθορισμένο τομέα. Παράδειγμα:

# dig @ns.kuban.ru roboti.ru ;<<>> DiG 9.3.6-P1<<>> @ns.kuban.ru roboti.ru ; (Βρέθηκε 1 διακομιστής) ;; καθολικές επιλογές: εκτύπωση cmd ;; πήρα απάντηση: ;; ->>ΚΕΦΑΛΙ<<- opcode: QUERY, status: NOERROR, id: 64412 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;roboti.ru. IN A ;; ANSWER SECTION: roboti.ru. 448 IN A 72.52.4.90 ;; AUTHORITY SECTION: roboti.ru. 345448 IN NS ns1.sedoparking.com. roboti.ru. 345448 IN NS ns2.sedoparking.com. ;; Query time: 102 msec ;; SERVER: 62.183.1.244#53(62.183.1.244) ;; WHEN: Thu Feb 17 19:44:59 2011 ;; MSG SIZE rcvd: 94

εντολή σκάψιμοέστειλε αίτημα Διακομιστής DNS - ns.kuban.ru (@ns.kuban.ru- αυτή η παράμετρος είναι προαιρετική, σε αυτήν την περίπτωση η πηγή πληροφοριών σχετικά με το DNS θα ληφθεί από τον διακομιστή από τις ρυθμίσεις του συστήματός σας) σχετικά με το όνομα τομέα roboti.ru. Ως αποτέλεσμα, έλαβα μια απάντηση, στην οποία μπορούμε να δούμε στην ενότητα ΕΝΟΤΗΤΑ ΑΠΑΝΤΗΣΕΩΝπληροφορίες σχετικά με τις διευθύνσεις IP του τομέα, στην ενότητα ΤΜΗΜΑ ΑΡΧΗΣπληροφορίες για το λεγόμενο. αξιόπιστους διακομιστές DNS. Η τρίτη γραμμή από το κάτω μέρος μας λέει ποιος διακομιστής έδωσε την απάντηση.

Άλλα βοηθητικά προγράμματα διάγνωσης

ping, dig και άλλα βοηθητικά προγράμματα διάγνωσης με παραμέτρους μπορείτε να βρείτε στη δημοσίευση.

Σύνδεση νέας κάρτας δικτύου

Η σύνδεση και η εκκίνηση μιας νέας κάρτας δικτύου γίνεται σε μερικά βήματα:

1. Φυσική σύνδεση της κάρτας

3. Προβάλετε την έξοδο για το σύστημα για να εντοπίσει μια νέα κάρτα δικτύου:

Ας δούμε την έξοδο ΠΡΙΝ συνδέσετε μια νέα κάρτα:

Διακομιστής:~# dmesg | grep eth [ 4.720550] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Σύνδεση Δικτύου [ 5.130191] e1000: eth1: e1000_probe: Intel(R) PRO/1000 Σύνδεση δικτύου [ 15.100. ζ: Ο σύνδεσμος NIC είναι Μέχρι 1000 Mbps Full Duplex, Έλεγχος ροής: RX [ 15.681056] e1000: eth0: e1000_watchdog: Η σύνδεση NIC είναι μέχρι 1000 Mbps Full Duplex, Έλεγχος ροής: RX

Η έξοδος δείχνει ότι το σύστημα έχει 2 κάρτες δικτύου eth1 και eth2. Συνδέουμε το τρίτο και κοιτάμε την έξοδο:

Διακομιστής:~# dmesg | grep eth [ 4.720513] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Σύνδεση δικτύου [ 5.132029] e1000: eth1: e1000_probe: Intel(R) PRO/1000: Intel(R) PRO/1000 Σύνδεση δικτύου: Intel(R) PRO/1000: Intel(R) PRO/1000: Σύνδεση δικτύου [ 5.805] (Ρ ) PRO/1000 Σύνδεση δικτύου [ 39.274875] udev: μετονομάστηκε διεπαφή δικτύου eth2 σε eth3 [ 39.287661] udev: μετονομάστηκε διεπαφή δικτύου eth1_rename_ren σε eth2 [ 45.670744] e1000: eth2: eth2: eth2pps είναι Full00: Έλεγχος: RX [ 46.237232] e1000: eth0: e1000_watchdog: Η σύνδεση NIC είναι μέχρι 1000 Mbps Full Duplex, Έλεγχος ροής: RX [ 96.977468] e1000: eth3: e1000_watchdog: Η σύνδεση NIC0 είναι Full Duplex

ΣΕ dmesgβλέπουμε ότι εμφανίστηκε μια νέα κάρτα δικτύου - eth3, η οποία είναι στην πραγματικότητα eth2, αλλά έχει μετονομαστεί από τον διαχειριστή συσκευών udev σε eth3, και το eth2 είναι στην πραγματικότητα μια μετονομασμένη eth1 (θα μιλήσουμε για το udev σε ξεχωριστή ανάρτηση). Η εμφάνιση του νέου μας δικτύου στο dmesgμας λέει ότι η κάρτα δικτύου υποστηρίζεταιπυρήνα και σωστή αποφασισμένος. Το μόνο που απομένει είναι να ρυθμίσετε μια νέα διεπαφή /etc/network/interfaces(Debian) επειδή ο δεδομένος χάρτης δεν αρχικοποιήθηκε από το σενάριο έναρξης /etc/init.d/network. ifconfigβλέπει αυτήν την κάρτα:

Διακομιστής:~# ifconfig eth3 eth3 Σύνδεσμος encap:Ethernet HWaddr 08:00:27:5f:34:ad inet6 adr: fe80::a00:27ff:fe5f:34ad/64 Πεδίο εφαρμογής:Σύνδεση UP BROADCAST RUNNING MULTICAST MTUtric: 1 πακέτα RX: 311847 σφάλματα: 0 πέσει: 0 υπερβάσεις: 0 καρέ: 0 πακέτα TX: 126 σφάλματα: 0 πτώση: 0 υπερβάσεις: 0 φορέας: 0 συγκρούσεις: 0 txqueuelen: 1000 byte RX: 104670651 (99,8 bytes) 16184 (15,8 KiB)

αλλά εκτός αυτού - δεν διαμορφώνει. Ο τρόπος διαμόρφωσης μιας κάρτας δικτύου συζητήθηκε παραπάνω.

Περίληψη

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

Αφού υποδικτύσετε το δίκτυό σας, θα πρέπει να προετοιμαστείτε για μια απλή αναζήτηση διεύθυνσης με όνομα χρησιμοποιώντας το αρχείο /etc/hosts. Εάν δεν πρόκειται να χρησιμοποιήσετε DNS ή NIS για αυτό, πρέπει να τοποθετήσετε όλους τους κεντρικούς υπολογιστές αρχείο κεντρικού υπολογιστή.

Ακόμα κι αν θέλετε να χρησιμοποιήσετε DNS ή NIS, μπορείτε επίσης να έχετε κάποιο υποσύνολο ονομάτων στο /etc/host. Για παράδειγμα, εάν θέλετε να έχετε κάποιο είδος αναζήτησης ονόματος ακόμα και όταν δεν εκτελούνται οι διεπαφές δικτύου, όπως κατά την εκκίνηση. Αυτό δεν είναι μόνο θέμα ευκολίας, αλλά σας επιτρέπει επίσης να χρησιμοποιείτε συμβολικά ονόματα κεντρικών υπολογιστών σε σενάρια rc. Έτσι, όταν αλλάζετε διευθύνσεις IP, θα πρέπει μόνο να αντιγράψετε το ενημερωμένο αρχείο hosts σε όλα τα μηχανήματα αντί να επεξεργαστείτε πολλά αρχεία rc. Συνήθως, θα τοποθετήσετε όλα τα τοπικά ονόματα και τις διευθύνσεις σε κεντρικούς υπολογιστές προσθέτοντάς τα σε οποιαδήποτε πύλη και διακομιστή NIS, εάν χρησιμοποιούνται.

Επίσης, κατά τον έλεγχο, θα πρέπει να βεβαιωθείτε ότι ο διακομιστής ονομάτων χρησιμοποιεί πληροφορίες μόνο από το αρχείο hosts. Το λογισμικό DNS ή NIS μπορεί να έχει δείγματα αρχείων που μπορεί να δώσουν περίεργα αποτελέσματα όταν χρησιμοποιούνται. Για να αναγκάσετε όλες τις εφαρμογές να χρησιμοποιούν αποκλειστικά το /etc/hosts κατά την αναζήτηση της διεύθυνσης IP ενός κεντρικού υπολογιστή, πρέπει να επεξεργαστείτε το αρχείο /etc/host.conf. Σχολιάστε όλες τις γραμμές που ξεκινούν με τη σειρά των λέξεων-κλειδιών και επικολλήστε τη γραμμή:

παραγγελίες οικοδεσπότες

Η διαμόρφωση της βιβλιοθήκης διακομιστή ονομάτων θα περιγραφεί λεπτομερώς στο Κεφάλαιο 6.

Το αρχείο hosts περιέχει μία καταχώρηση ανά γραμμή, που αποτελείται από μια διεύθυνση IP, ένα όνομα κεντρικού υπολογιστή και μια προαιρετική λίστα ψευδωνύμων. Τα πεδία χωρίζονται με κενά ή καρτέλες, το πεδίο διεύθυνσης πρέπει να ξεκινά από την πρώτη στήλη. Οτιδήποτε μετά το σύμβολο # αντιμετωπίζεται ως σχόλιο και αγνοείται.

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

Ένα παράδειγμα αρχείου κεντρικών υπολογιστών για το Virtual Brewery δίνεται παρακάτω. Δύο ειδικά ονόματα, vlager-if1 και vlager-if2, καθορίζουν τις διευθύνσεις και για τις δύο διεπαφές που χρησιμοποιούνται στο vlager.

Ποια είναι η πρακτική χρήση του αρχείου /etc/networks; Από όσο καταλαβαίνω, είναι δυνατό να καθοριστούν ονόματα δικτύου σε αυτό το αρχείο. Για παράδειγμα:

[email προστατευμένο]:~# cat /etc/networks προεπιλογή 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 google-dns 8.8.4.4 [email προστατευμένο]:~#

Ωστόσο, αν προσπαθήσω να χρησιμοποιήσω αυτό το όνομα δικτύου, για παράδειγμα στο βοηθητικό πρόγραμμα ip, δεν λειτουργεί:

[email προστατευμένο]:~# διαδρομή ip προσθήκη google-dns μέσω 104.236.63.1 dev eth0 Σφάλμα: αναμένεται ένα πρόθεμα inet αντί για "google-dns". [email προστατευμένο]:~# διαδρομή IP προσθήκη 8.8.4.4 μέσω 104.236.64.1 dev eth0 [email προστατευμένο]:~#

Ποια είναι η πρακτική χρήση του αρχείου /etc/networks;

2 Λύσεις συλλέγουν φόρμα web για "πρακτική χρήση του αρχείου /etc/networks"

Όπως γράφτηκε στη σελίδα man, το αρχείο /etc/networks θα πρέπει να περιγράφει συμβολικά ονόματα για δίκτυα. Με ένα δίκτυο, αυτό σημαίνει μια διεύθυνση δικτύου με ένα τελευταίο 0,0 στο τέλος. Υποστηρίζονται μόνο απλά δίκτυα Κατηγορίας Α, Β ή Γ.

Στο παράδειγμά σας, η καταχώριση google-dns είναι λανθασμένη. Δεν είναι δίκτυο A, B ή C. Είναι μια σχέση IP-διεύθυνσης-όνομα κεντρικού υπολογιστή, επομένως ανήκει στο /etc/hosts . Στην πραγματικότητα, ούτε η προεπιλεγμένη καταχώριση ταιριάζει.

Ας υποθέσουμε ότι έχετε μια διεύθυνση IP 192.168.1.5 από το εταιρικό σας δίκτυο. Μια καταχώρηση στο /etc/network θα μπορούσε να είναι:

Corpname 192.168.1.0

Όταν χρησιμοποιείτε βοηθητικά προγράμματα όπως το route ή το netstat , αυτά τα δίκτυα μεταφράζονται (εκτός αν καταργήσετε την άδεια με τη σημαία -n). Ο πίνακας δρομολόγησης μπορεί να μοιάζει με αυτό:

Πίνακας δρομολόγησης IP πυρήνα Πύλη προορισμού Genmask Flags Metric Ref Use Iface default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 corpname * 255.255.255.0 U 0 0 0 eth0

Η εντολή ip δεν χρησιμοποιεί ποτέ το όνομα κεντρικού υπολογιστή για εισαγωγή, επομένως το παράδειγμά σας δεν έχει σημασία. Επίσης, βάζετε το όνομα κεντρικού υπολογιστή στο /etc/networks, όχι το όνομα δικτύου!

Οι καταχωρήσεις στο /etc/networks χρησιμοποιούνται από εργαλεία που προσπαθούν να μετατρέψουν αριθμούς σε ονόματα, όπως η εντολή (απαρχαιωμένη) διαδρομή. Χωρίς κατάλληλη καταχώρηση, δείχνει:

# διαδρομή Πίνακας δρομολόγησης IP πυρήνα Πύλη προορισμού Genmask Σημαίες Metric Ref Χρήση Iface προεπιλογή 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.254.0 U 0 0 0 eth0

Αν τώρα προσθέσουμε τη γραμμή mylocalnet 192.168.0.0 στο /etc/networks:

# διαδρομή Πίνακας δρομολόγησης IP πυρήνα Πύλη προορισμού Genmask Σημαίες Metric Ref Χρήση Iface default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 mylocalnet * 255.255.254.0 U 0 0 0 eth0

Στην πράξη, αυτό δεν χρησιμοποιείται ποτέ.

Πηγαίνω!

Το πρωτόκολλο Network File Server (NFS) είναι ένα ανοιχτό πρότυπο για την παροχή σε έναν χρήστη απομακρυσμένης πρόσβασης σε συστήματα αρχείων. Με βάση αυτό, τα κεντρικά συστήματα αρχείων διευκολύνουν την εκτέλεση καθημερινών εργασιών, όπως δημιουργία αντιγράφων ασφαλείας ή ελέγχους ιών, και τα διαμερίσματα συνδυασμένων δίσκων είναι πιο εύκολο να διατηρηθούν από πολλά μικρά και κατανεμημένα.

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

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

ΑΠΟ ΕΚΕΙ ΞΕΚΙΝΗΣΑΝ ΟΛΑ...

Το πρωτόκολλο NFS αναπτύχθηκε από την Sun Microsystems και εμφανίστηκε στο Διαδίκτυο το 1989 ως RFC 1094 με τον ακόλουθο τίτλο: Network File System Protocol Specification (NFS). Είναι ενδιαφέρον να σημειωθεί ότι η στρατηγική της Novell εκείνη την εποχή ήταν να βελτιώσει περαιτέρω τις υπηρεσίες αρχείων. Μέχρι πρόσφατα, ενώ το κίνημα ανοιχτού κώδικα βρισκόταν ακόμη σε πλήρη εξέλιξη, η Sun δεν ήθελε να αποκαλύψει τα μυστικά των λύσεων δικτύωσης της, αλλά ακόμη και τότε η εταιρεία κατάλαβε τη σημασία της διαλειτουργικότητας με άλλα συστήματα.

Το RFC 1094 περιείχε δύο αρχικές προδιαγραφές. Την εποχή της δημοσίευσής της, η Sun ανέπτυζε την επόμενη, τρίτη έκδοση της προδιαγραφής, η οποία εκτίθεται στο RFC 1813 "NFS Protocol Specification, Version 3" (NFS Version 3 Protocol Specification). Η έκδοση 4 αυτού του πρωτοκόλλου ορίζεται στο RFC 3010 NFS Protocol Specification Version 4 (NFS Version 4 Protocol).

Το NFS χρησιμοποιείται ευρέως σε όλους τους τύπους κεντρικών υπολογιστών UNIX, δίκτυα Microsoft και Novell και λύσεις IBM όπως AS400 και OS/390. Άγνωστο εκτός της σφαίρας δικτύου, το NFS είναι αναμφισβήτητα το πιο ευρέως χρησιμοποιούμενο σύστημα αρχείων δικτύου ανεξάρτητο από πλατφόρμα.

Η ΓΕΝΝΗΤΡΙΑ ΗΤΑΝ το UNIX

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

NFS

Το σύστημα NFS έχει σχεδιαστεί για χρήση σε αρχιτεκτονική πελάτη-διακομιστή. Ο πελάτης έχει πρόσβαση στο σύστημα αρχείων που εξάγεται από τον διακομιστή NFS μέσω ενός σημείου προσάρτησης στον υπολογιστή-πελάτη. Αυτή η πρόσβαση είναι συνήθως διαφανής στην εφαρμογή πελάτη.

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

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

/root/usr2/ -> remote:/root/usr/

Εάν μια εφαρμογή πελάτη χρειάζεται τους πόρους αυτού του καταλόγου, απλώς στέλνει ένα αίτημα στο λειτουργικό σύστημα για αυτήν και για το όνομα του αρχείου, το οποίο παρέχει πρόσβαση μέσω του προγράμματος-πελάτη NFS. Για παράδειγμα, λάβετε υπόψη την απλή εντολή UNIX cd, η οποία "δεν γνωρίζει τίποτα" για τα πρωτόκολλα δικτύου. Ομάδα

Cd /root/usr2/

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

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

ΑΣ ΓΝΩΡΙΣΟΥΜΕ ΚΑΛΥΤΕΡΑ

Από την πλευρά του πελάτη, η διαδικασία τοποθέτησης ενός απομακρυσμένου συστήματος αρχείων τοπικά χρησιμοποιώντας το NFS αποτελείται από πολλά βήματα. Όπως αναφέρθηκε ήδη, ο πελάτης NFS θα υποβάλει μια κλήση απομακρυσμένης διαδικασίας για να την εκτελέσει στον διακομιστή. Σημειώστε ότι στο UNIX ο πελάτης είναι ένα μεμονωμένο πρόγραμμα (η εντολή mount), ενώ ο διακομιστής υλοποιείται στην πραγματικότητα ως πολλά προγράμματα με το ακόλουθο ελάχιστο σύνολο: υπηρεσία χαρτογράφησης θυρών (port mapper), mount daemon (mount daemon) και διακομιστής NFS .

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

(Αυτό το υλικό επικεντρώνεται στην τρίτη έκδοση του NFS, καθώς είναι η πιο κοινή αυτή τη στιγμή. Η τέταρτη έκδοση δεν υποστηρίζεται ακόμη από τις περισσότερες υλοποιήσεις.)

Η υπηρεσία μετάφρασης της θύρας διακομιστή ανταποκρίνεται σε αιτήματα σύμφωνα με το υποστηριζόμενο πρωτόκολλο και τη θύρα στην οποία εκτελείται το mount daemon. Το πρόγραμμα προσάρτησης του πελάτη δημιουργεί πρώτα μια σύνδεση με τον δαίμονα προσάρτησης του διακομιστή και στη συνέχεια στέλνει την εντολή προσάρτησης σε αυτόν μέσω RPC. Εάν αυτή η διαδικασία είναι επιτυχής, τότε η εφαρμογή πελάτη συνδέεται με τον διακομιστή NFS (θύρα 2049) και, χρησιμοποιώντας μία από τις 20 απομακρυσμένες διαδικασίες που ορίζονται στο RFC 1813 και παρατίθενται στον Πίνακα 1, αποκτά πρόσβαση στο απομακρυσμένο σύστημα αρχείων.

Το νόημα των περισσότερων εντολών είναι διαισθητικό και δεν προκαλεί δυσκολίες στους διαχειριστές του συστήματος. Η ακόλουθη λίστα, που δημιουργήθηκε χρησιμοποιώντας το tcdump, απεικονίζει την εντολή ανάγνωσης που χρησιμοποιείται από την εντολή UNIX cat για την ανάγνωση ενός αρχείου με το όνομα test-file:

10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 αναζήτηση fh 32.0/ 224145 "test-file" 10:30:16.012010 eth0 > 192.168.1.254. 3476097947 > 192.168.1.252.2049: 144 αναζήτηση fh 32.0/ 224145 "test-file" 10:30:16.012729 eth0 192.168.1.254.39407992p2. 2 4307 (DF) 10:30: 16.012729 eth0 192.168.1.254.3476097947: απάντηση εντάξει 128 αναζήτηση fh 32.0/224307 (DF) 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 ανάγνωση fh 32.0/ 224307 4096 bytes @ 0 10:30:16.013124 eth0 > 192.168.1.254. 3492875163 > 192.168.1.252.2049: 140 ανάγνωση fh 32.0/ 224307 4096 byte @ 0 10:30:16.013650 eth0 192.168.1.32173. 10: 30:16.013650 eth0 192.168.1.254.3492875163 : απάντηση εντάξει 108 διαβάστηκε (DF)

Το NFS παραδοσιακά εφαρμόζεται μέσω UDP. Ωστόσο, ορισμένες εκδόσεις του NFS υποστηρίζουν το TCP (η υποστήριξη TCP ορίζεται στις προδιαγραφές του πρωτοκόλλου). Το κύριο πλεονέκτημα του TCP είναι ένας πιο αποτελεσματικός μηχανισμός αναμετάδοσης σε αναξιόπιστα δίκτυα. (Στην περίπτωση του UDP, εάν παρουσιαστεί σφάλμα, τότε το πλήρες μήνυμα RPC, που αποτελείται από πολλά πακέτα UDP, επαναμεταδίδεται. Με το TCP, μόνο το κατεστραμμένο τμήμα επαναμεταδίδεται.)

ΠΡΟΣΒΑΣΗ ΣΤΟ NFS

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

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

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

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

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

NFS STYLE ΠΙΓΚΟΥΙΝΟΥ

Το υλικό που σχετίζεται με το Linux που παρουσιάζεται εδώ βασίζεται σε ένα σύστημα Red Hat 6.2 με την έκδοση πυρήνα 2.4.9, η οποία διατίθεται με την έκδοση 0.1.6 του πακέτου nfs-utils. Υπάρχουν επίσης νεότερες εκδόσεις: τη στιγμή που γράφεται αυτό το άρθρο, η πιο πρόσφατη ενημέρωση του πακέτου nfs-utils είναι 0.3.1. Μπορείτε να το κατεβάσετε στη διεύθυνση: .

Το πακέτο nfs-utils περιέχει τα ακόλουθα εκτελέσιμα αρχεία: exportfs, lockd, mountd, nfsd, nfsstat, nhfsstone, rquotad, showmount και statd.

Δυστυχώς, η υποστήριξη NFS προκαλεί μερικές φορές σύγχυση για τους διαχειριστές Linux, καθώς η διαθεσιμότητα μιας συγκεκριμένης δυνατότητας εξαρτάται άμεσα από τους αριθμούς έκδοσης τόσο του πυρήνα όσο και του πακέτου nfs-utils. Ευτυχώς, τα πράγματα βελτιώνονται τώρα σε αυτόν τον τομέα: τα πιο πρόσφατα κιτ διανομής περιλαμβάνουν τις πιο πρόσφατες εκδόσεις και των δύο. Για προηγούμενες εκδόσεις, ανατρέξτε στην Ενότητα 2.4 του NFS-HOWTO για μια πλήρη λίστα λειτουργικότητασυστήματα διαθέσιμα για κάθε συνδυασμό πυρήνα και πακέτου nfs-utils. Οι προγραμματιστές διατηρούν την προς τα πίσω συμβατότητα του πακέτου με προηγούμενες εκδόσεις, δίνοντας μεγάλη προσοχή στην ασφάλεια και στην επιδιόρθωση σφαλμάτων λογισμικού.

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

Για διανομές που υποστηρίζουν linuxconf, είναι εύκολο να διαμορφώσετε τις υπηρεσίες NFS τόσο για πελάτες όσο και για διακομιστές. Ωστόσο, ο γρήγορος τρόπος ρύθμισης του NFS χρησιμοποιώντας το linuxconf δεν παρέχει πληροφορίες σχετικά με τα αρχεία που δημιουργήθηκαν ή επεξεργάστηκαν, κάτι που είναι πολύ σημαντικό να γνωρίζει ο διαχειριστής σε περίπτωση αποτυχίας του συστήματος. Η αρχιτεκτονική του NFS στο Linux συνδέεται χαλαρά με την έκδοση BSD, επομένως τα απαραίτητα αρχεία υποστήριξης και προγράμματα είναι εύκολο να βρεθούν για διαχειριστές που εκτελούν BSD, Sun OS 2.5 ή παλαιότερες εκδόσεις του NFS.

Το αρχείο /etc/exports, όπως και σε προηγούμενες εκδόσεις του BSD, καθορίζει τα συστήματα αρχείων στα οποία επιτρέπεται να έχουν πρόσβαση οι πελάτες NFS. Επιπλέον, περιέχει έναν αριθμό Επιπρόσθετα χαρακτηριστικάπου σχετίζονται με θέματα διαχείρισης και ασφάλειας, παρέχοντας στον διαχειριστή ένα εργαλείο για τη λεπτομερή ρύθμιση. Αυτό αρχείο κειμένου, που αποτελείται από καταχωρήσεις, κενές γραμμές ή σχολιασμένες γραμμές (τα σχόλια ξεκινούν με #).

Ας υποθέσουμε ότι θέλουμε να δώσουμε στους πελάτες πρόσβαση μόνο για ανάγνωση στον κατάλογο /home στον κεντρικό υπολογιστή Lefty. Αυτό θα αντιστοιχεί στην ακόλουθη καταχώρηση στο /etc/exports:

/home (ro)

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

# exportfs -r exportfs: Δεν έχει καθοριστεί όνομα κεντρικού υπολογιστή στο /home (ro), πληκτρολογήστε *(ro) για να αποφύγετε την προειδοποίηση #

Όταν εκτελείται, η εντολή exportfs προειδοποιεί ότι το /etc/exports δεν περιορίζει την πρόσβαση σε έναν συγκεκριμένο κόμβο και δημιουργεί μια αντίστοιχη καταχώρηση στο /var/lib/nfs/etab από το /etc/exports που σας λέει ποιοι πόροι μπορούν να προβληθούν με το cat:

# cat /var/lib/nfs/etab /home (ro,async,wdelay,hide,secure,root_squash, no_all_squash,subtree_check, safe_locks, mapping=identity,anonuid= -2,anongid=-2)

Άλλες επιλογές που αναφέρονται στο etab περιλαμβάνουν τις προεπιλογές που χρησιμοποιούνται από το NFS. Λεπτομέρειες θα περιγραφούν παρακάτω. Για να παραχωρήσετε πρόσβαση στον κατάλογο /home, πρέπει να ξεκινήσετε τις κατάλληλες υπηρεσίες NFS:

# portmap # rpc.mountd # rpc.nfsd # rpc.statd # rpc.rquotad

Ανά πάσα στιγμή μετά την έναρξη του δαίμονα προσάρτησης (rpc.mountd), μπορείτε να ρωτήσετε για τα μεμονωμένα αρχεία που είναι διαθέσιμα για έξοδο προβάλλοντας τα περιεχόμενα του αρχείου /proc/fs/nfs/exports:

# cat /proc/fs/nfs/exports # Έκδοση 1.0 # Path Client(Flags) # IPs /home 192.168.1.252 (ro,root_squash,async, wdelay) # 192.168.1.252 #

Το ίδιο μπορεί να προβληθεί χρησιμοποιώντας την εντολή showmount με την επιλογή -e:

# showmount -e Εξαγωγή λίστας για αριστερούς: /home (όλοι) #

Προχωρώντας λίγο μπροστά, η εντολή showmount μπορεί επίσης να χρησιμοποιηθεί για τον προσδιορισμό όλων των προσαρτημένων συστημάτων αρχείων, ή με άλλα λόγια, για να μάθετε ποιοι κεντρικοί υπολογιστές είναι πελάτες NFS για το σύστημα που εκτελεί την εντολή showmount. Η εντολή showmount -a θα εμφανίσει όλα τα σημεία προσάρτησης πελάτη:

# showmount -a Όλα τα σημεία στήριξης στα αριστερά: 192.168.1.252:/home #

Όπως σημειώθηκε παραπάνω, οι περισσότερες υλοποιήσεις NFS υποστηρίζουν διάφορες εκδόσεις αυτού του πρωτοκόλλου. Η υλοποίηση Linux σάς επιτρέπει να περιορίσετε τη λίστα των εκδόσεων NFS που θα εκτελούνται καθορίζοντας την επιλογή -N για το mount daemon. Για παράδειγμα, για να ξεκινήσετε την έκδοση 3 του NFS και μόνο την έκδοση 3, πληκτρολογήστε την ακόλουθη εντολή:

# rpc.mountd -N 1 -N 2

Οι επίμονοι χρήστες μπορεί να θεωρούν άβολο το γεγονός ότι στο Linux ο δαίμονας NFS (rpc.nfsd) περιμένει για πακέτα έκδοσης 1 και έκδοσης 2, αν και αυτό επιτυγχάνει το επιθυμητό αποτέλεσμα της μη υποστήριξης του αντίστοιχου πρωτοκόλλου. Ας ελπίσουμε ότι οι προγραμματιστές των επόμενων εκδόσεων θα κάνουν τις απαραίτητες διορθώσεις και θα μπορέσουν να επιτύχουν μεγαλύτερη συνέπεια μεταξύ των στοιχείων του πακέτου σε σχέση με διαφορετικές εκδόσεις του πρωτοκόλλου.

"ΚΟΛΥΜΠΙΖΩ ΜΕ ΠΙΓΚΟΥΙΝΟΥΣ"

Η πρόσβαση στο παραπάνω διαμορφωμένο Lefty, εξαγώγιμο σύστημα αρχείων NFS που βασίζεται σε Linux εξαρτάται από το λειτουργικό σύστημα πελάτη. Στυλ ρυθμίσεων για τα περισσότερα λειτουργικά συστήματα Οικογένειες UNIXταιριάζει με το στυλ είτε των αρχικών συστημάτων Sun OS και BSD είτε του νεότερου Solaris. Δεδομένου ότι αυτό το άρθρο εστιάζει τόσο στο Linux όσο και στο Solaris, ας δούμε τη διαμόρφωση του προγράμματος-πελάτη Solaris 2.6 από την άποψη της δημιουργίας σύνδεσης με την έκδοση Linux του NFS που περιγράψαμε παραπάνω.

Με χαρακτηριστικά που κληρονομήθηκαν από το Solaris 2.6, είναι εύκολο να το ρυθμίσετε ώστε να λειτουργεί ως πελάτης NFS. Αυτό απαιτεί μόνο μία εντολή:

# mount -F nfs 192.168.1.254:/home /tmp/tmp2

Υποθέτοντας ότι η προηγούμενη εντολή mount πέτυχε, τότε η εντολή mount χωρίς επιλογές θα δώσει τα εξής:

# mount / on /dev/dsk/c0t0d0s0 read/write/setuid/ largefiles τη Δευτέρα 3 Σεπτεμβρίου 10:17:56 2001 ... ... /tmp/tmp2 στις 192.168.1.254:/home read/ write/remote on Δευτ. 3 Σεπτεμβρίου 23:19:25 2001

Ας αναλύσουμε την έξοδο tcpdump στον κεντρικό υπολογιστή Lefty αφού ο χρήστης έχει εισαγάγει την εντολή ls /tmp/tmp2 στον κεντρικό υπολογιστή Sunny:

# tcpdump hosty lefty και host sunny -s512 06:07:43.490583 sunny.2191983953 > lefty.mcwrite.n.nfs: 128 getattr fh Άγνωστο/1 (DF) 06:07:43.490678m. 2191983953: απάντηση εντάξει 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF) 06:07:43.491397 ηλιόλουστη.2191983954 > lefty.mcfwrite:01D1 (αριστερός.mcfwrite:01.n. 6:07:4 3,491463 αριστερά . mcwrite.n.nfs > sunny.2191983954: απάντηση ok 120 πρόσβαση c0001 (DF) 06:07:43.492296 00 (DF) 06:07:43.492417 αριστερό.mcwrite >.n. 0 readdirplus ( DF)

Βλέπουμε ότι ο κόμβος Sunny ζητά έναν περιγραφέα αρχείου (fh) για το ls, στον οποίο ο κόμβος Lefty στέλνει OK ως απόκριση και επιστρέφει τη δομή καταλόγου. Στη συνέχεια, το Sunny ελέγχει την άδεια για τα περιεχόμενα του καταλόγου (132 πρόσβαση fh) και λαμβάνει μια απάντηση άδειας από το Lefty. Στη συνέχεια, ο κόμβος Sunny διαβάζει τα πλήρη περιεχόμενα του καταλόγου χρησιμοποιώντας τη διαδικασία readdirplus. Οι κλήσεις απομακρυσμένης διαδικασίας περιγράφονται στο RFC 1813 και παρατίθενται στην αρχή αυτού του άρθρου.

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

Ο ευκολότερος τρόπος αντιμετώπισης προβλημάτων σε έναν διακομιστή είναι από τον κεντρικό υπολογιστή όπου εκτελείται ο διακομιστής. Ωστόσο, όταν κάποιος άλλος διαχειρίζεται τον διακομιστή αντί για εσάς, αυτό δεν είναι πάντα δυνατό. Γρήγορος τρόποςβεβαιωθείτε ότι οι κατάλληλες υπηρεσίες διακομιστή έχουν ρυθμιστεί σωστά - χρησιμοποιήστε την εντολή rpcinfo με την επιλογή -p. Από τον κεντρικό υπολογιστή Solaris Sunny, μπορείτε να προσδιορίσετε ποιες διεργασίες RPC είναι καταχωρημένες στον κεντρικό υπολογιστή Linux:

# rpcinfo -p 192.168.1.254 πρόγραμμα σε σχέση με την υπηρεσία proto port 100000 2 tcp 111 rpcbind 100000 2 udp 111 rpcbind 100024 1 udp 692 status 100024 60p 1 tc untd /100005 3 tcp 1024 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100021 1 udp 1026 nlockmgr 100021 3 udp 1026 nlockmgr 100021 4 udp 1026 nlockmgr #

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

# rpcinfo -p 192.168.1.254 πρόγραμμα vers proto port service 100000 2 tcp 111 rpcbind ... ... 100021 4 udp 1026 nlockmgr #

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

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

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

# tcpdump κεντρικός υπολογιστής lefty και host sunny -s512 tcpdump: ακρόαση στο eth0 06:29:51.773646 sunny.2191984020 > lefty.mcwrite.n.nfs: 140 αναζήτηση fh Άγνωστο/1"test.c" (DF338191) 0 lefty.mcwrite.n.nfs > sunny.2191984020: απάντηση εντάξει 116 ΣΦΑΛΜΑ αναζήτησης: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος (DF) 06:29:51.774593 sunny.2191984021 > lefty.mcwrite.n2.nfs11h: DF) 06:29:51.774670 lefty.mcwrite.n.nfs > sunny.2191984021: reply ok 112 getattr DIR 40755 ids 0/0 sz 0x000001000 (DF: 0000001000 (DF): 021979 αριστερός.mcwrite .n.nfs : 140 αναζήτηση fh Άγνωστο/1"test.c" (DF) 06:29:51.775357 lefty.mcwrite.n.nfs > sunny.2191984022: απάντηση εντάξει 116 ΣΦΑΛΜΑ αναζήτησης: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος (DF) 06:29: 51.776029 sunny.2191984023 > lefty.mcwrite.n.nfs: 184 δημιουργία fh Άγνωστο/1 "test.c" (DF) 06:29:51.776169 lefty.mcwrite.n.nfs > sunny.222RR3OR19 Δεν επιτρέπεται η άδεια (DF)

Η παραπάνω λίστα, που λήφθηκε μετά την εκτέλεση της δήλωσης touch test.c, εμφανίζει την ακόλουθη σειρά ενεργειών: πρώτα, η εντολή touch προσπαθεί να αποκτήσει πρόσβαση σε ένα αρχείο με το όνομα test.c, μετά αναζητά έναν κατάλογο με το ίδιο όνομα και μετά αποτυχία επιχειρεί, προσπαθεί να δημιουργήσει το αρχείο test.c, το οποίο επίσης αποτυγχάνει.

Εάν το σύστημα αρχείων είναι προσαρτημένο, τα περισσότερα από τα κοινά σφάλματα σχετίζονται με κανονικά δικαιώματα UNIX. Η χρήση του uid ή του NIS+ από την Sun αποφεύγει τον καθολικό ορισμό δικαιωμάτων σε όλα τα συστήματα αρχείων. Ορισμένοι διαχειριστές ασκούν «ανοιχτούς» καταλόγους, όπου οι άδειες ανάγνωσης τους δίνονται σε «όλο τον κόσμο». Ωστόσο, αυτό πρέπει να αποφεύγεται για λόγους ασφαλείας. Πέρα από τις ανησυχίες για την ασφάλεια, αυτή εξακολουθεί να είναι μια κακή πρακτική, επειδή οι χρήστες σπάνια δημιουργούν δεδομένα με σκοπό να τα κάνουν αναγνώσιμα από όλους.

Οι προσβάσεις από προνομιούχο χρήστη (root) σε συστήματα αρχείων που είναι προσαρτημένα στο NFS αντιμετωπίζονται διαφορετικά. Για να αποφευχθεί η παραχώρηση απεριόριστης πρόσβασης σε έναν προνομιούχο χρήστη, τα αιτήματα από τον προνομιούχο χρήστη αντιμετωπίζονται σαν να ήταν από τον χρήστη "κανένας". Αυτός ο ισχυρός μηχανισμός περιορίζει την προνομιακή πρόσβαση των χρηστών σε παγκόσμια αναγνώσιμα και εγγράψιμα αρχεία.

SERVER NFS, ΕΚΔΟΣΗ SOLARIS

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

#/usr/lib/nfs/mountd

Για να ξεκινήσετε το mount daemon και τον διακομιστή NFS, πληκτρολογήστε:

#/usr/lib/nfs/nfsd

Ξεκινώντας με την έκδοση 2.6, το Solaris δεν χρησιμοποιεί πλέον αρχείο εξαγωγής για να καθορίσει ποια συστήματα αρχείων θα εξαγάγει. Τα αρχεία εξάγονται τώρα χρησιμοποιώντας την εντολή κοινής χρήσης. Ας υποθέσουμε ότι θέλουμε να επιτρέψουμε σε απομακρυσμένους κεντρικούς υπολογιστές να προσαρτήσουν το /export/home. Για να το κάνετε αυτό, πληκτρολογήστε την ακόλουθη εντολή:

Κοινή χρήση -F nfs /export/home

Μέτρα ασφαλείας

ΑΣΦΑΛΕΙΑ ΣΕ LINUX

Ορισμένες υπηρεσίες συστήματος NFS που βασίζονται σε Linux διαθέτουν έναν πρόσθετο μηχανισμό για τον περιορισμό της πρόσβασης μέσω λιστών ή πινάκων ελέγχου. Σε εσωτερικό επίπεδο, αυτός ο μηχανισμός υλοποιείται χρησιμοποιώντας τη βιβλιοθήκη tcp_wrapper, η οποία χρησιμοποιεί δύο αρχεία για να σχηματίσει λίστες ελέγχου πρόσβασης: /etc/hosts.allow και /etc/hosts/deny. Μια εξαντλητική επισκόπηση των κανόνων για την εργασία με το tcp_wrapper ξεφεύγει από το πεδίο εφαρμογής αυτού του άρθρου, αλλά η βασική αρχή είναι η εξής: η αντιστοίχιση γίνεται πρώτα με το etc/hosts.allow και μετά με το /etc/hosts. αρνούμαι. Εάν ο κανόνας δεν βρεθεί, τότε η υπηρεσία συστήματος που ζητήσατε δεν παρουσιάζεται. Για να ξεπεράσετε την τελευταία απαίτηση και να παρέχετε ένα πολύ υψηλό επίπεδο ασφάλειας, μπορείτε να προσθέσετε την ακόλουθη καταχώρηση στο τέλος του /etc/hosts.deny:

ΟΛΟΙ: Όλα

Μετά από αυτό, το /etc/hosts.allow μπορεί να χρησιμοποιηθεί για να ορίσετε αυτόν ή αυτόν τον τρόπο λειτουργίας. Για παράδειγμα, το αρχείο /etc/hosts. επιτρέπει , που χρησιμοποίησα όταν έγραψα αυτό το άρθρο, περιείχε τις ακόλουθες γραμμές:

lockd:192.168.1.0/255.255.255.0 mountd:192.168.1.0/255.255.255.0 portmap:192.168.1.0/255.255.255.0 rquotad:1915.255.0 rquotad:1912.06. 2 .168.1.0/255.255.255.0

Αυτό επιτρέπει κάποιου είδους πρόσβαση σε κόμβους πριν από την παραχώρηση πρόσβασης σε επίπεδο εφαρμογής. ΣΕ Πρόσβαση στο Linuxσε επίπεδο εφαρμογής, τα στοιχεία ελέγχου αρχείου /etc/exports. Αποτελείται από καταχωρήσεις στην ακόλουθη μορφή:

Εξαγωγή καταλόγου (space) host|δίκτυο(επιλογές)

Ένας "εξαγόμενος κατάλογος" είναι ένας κατάλογος για τον οποίο επιτρέπεται στον δαίμονα nfsd να επεξεργαστεί ένα αίτημα. "Host|Network" είναι ο κεντρικός υπολογιστής ή το δίκτυο που έχει πρόσβαση στο εξαγόμενο σύστημα αρχείων και οι "επιλογές" καθορίζουν τους περιορισμούς που επιβάλλει ο δαίμονας nfsd στη χρήση αυτής της κοινόχρηστης πρόσβασης μόνο για ανάγνωση πόρων ή της αντιστοίχισης αναγνωριστικού χρήστη .

Το ακόλουθο παράδειγμα εκχωρεί σε ολόκληρο τον τομέα mcwrite.net πρόσβαση μόνο για ανάγνωση στο /home/mcwrite.net:

/home/mcwrite.net *.mcwrite.net(ro)

Μπορείτε να βρείτε περισσότερα παραδείγματα στη σελίδα man των εξαγωγών.

NFS SECURITY ΣΤΟ SOLARIS

Στο Solaris, η δυνατότητα παροχής πρόσβασης NFS είναι παρόμοια με το Linux, αλλά σε αυτήν την περίπτωση, ορίζονται περιορισμοί χρησιμοποιώντας ορισμένες επιλογές στην εντολή κοινής χρήσης με το διακόπτη -o. Το ακόλουθο παράδειγμα δείχνει πώς να ενεργοποιήσετε την προσάρτηση μόνο για ανάγνωση του /export/mcwrite.net σε οποιονδήποτε κεντρικό υπολογιστή στον τομέα mcwrite.net:

#share -F nfs -o ro=.mcwrite.net/ export/ mcwrite.net

Η σελίδα χρήστη share_nfs περιγράφει λεπτομερώς τον τρόπο παραχώρησης πρόσβασης χρησιμοποιώντας λίστες ελέγχου στο Solaris.

Πόροι του Διαδικτύου

Το NFS και το RPC δεν ήταν χωρίς «τρύπες». Γενικά, το NFS δεν πρέπει να χρησιμοποιείται στο Διαδίκτυο. Δεν μπορείτε να "τρυπήσετε" τα τείχη προστασίας επιτρέποντας την πρόσβαση οποιουδήποτε είδους μέσω NFS. Όλες οι ενημερώσεις κώδικα RPC και NFS θα πρέπει να παρακολουθούνται στενά και πολλές πηγές πληροφοριών ασφαλείας μπορούν να βοηθήσουν. Οι δύο πιο δημοφιλείς πηγές είναι το Bugtraq και το CERT:

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


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

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

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

Εξαιτίας αυτού του κινδύνου, συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε ένα αξιόπιστο εργαλείο καθαρισμού μητρώου, όπως το WinThruster (αναπτύχθηκε από πιστοποιημένο συνεργάτη Microsoft Gold) για τη σάρωση και την επιδιόρθωση τυχόν δικτύων. Η χρήση εργαλείου καθαρισμού του μητρώου αυτοματοποιεί τη διαδικασία εύρεσης μη έγκυρων καταχωρίσεων μητρώου, χαμένων αναφορών αρχείων (όπως αυτή που προκαλεί το σφάλμα δικτύων σας) και κατεστραμμένων συνδέσμων μέσα στο μητρώο. Πριν από κάθε σάρωση, δημιουργείται αυτόματα ένα Αντίγραφο ασφαλείας, που σας επιτρέπει να αναιρέσετε τυχόν αλλαγές με ένα μόνο κλικ και σας προστατεύει από πιθανή ζημιά στον υπολογιστή σας. Το καλύτερο μέρος είναι ότι η διόρθωση σφαλμάτων μητρώου μπορεί να βελτιώσει δραστικά την ταχύτητα και την απόδοση του συστήματος.


Προειδοποίηση:Αν δεν είσαι έμπειρος χρήστηςΗ/Υ, ΔΕΝ συνιστούμε τη μη αυτόματη επεξεργασία του μητρώου των Windows. Η εσφαλμένη χρήση του Επεξεργαστή Μητρώου μπορεί να οδηγήσει σε σοβαρά προβλήματα και να απαιτήσει την επανεγκατάσταση των Windows. Δεν εγγυόμαστε ότι τα προβλήματα που προκύπτουν από κακή χρήση του Επεξεργαστή Μητρώου μπορούν να επιλυθούν. Χρησιμοποιείτε τον Επεξεργαστή Μητρώου με δική σας ευθύνη.

Πριν από τη μη αυτόματη επαναφορά μητρώο των Windows, πρέπει να δημιουργήσετε αντίγραφα ασφαλείας εξάγοντας το τμήμα δικτύων του μητρώου (για παράδειγμα, Microsoft Windows):

  1. Κάντε κλικ στο κουμπί Αρχίζουν.
  2. Εισαγω " εντολή" V γραμμή αναζήτησης... ΜΗΝ ΠΑΤΗΣΕΤΕ ΑΚΟΜΑ ΕΙΣΑΓΩ!
  3. Κρατώντας κλειδιά CTRL-Shiftστο πληκτρολόγιο, πατήστε ΕΙΣΑΓΩ.
  4. Θα εμφανιστεί ένα παράθυρο διαλόγου πρόσβασης.
  5. Κάντε κλικ Ναί.
  6. Το μαύρο κουτί ανοίγει με έναν δρομέα που αναβοσβήνει.
  7. Εισαγω " regedit" και πατήστε ΕΙΣΑΓΩ.
  8. Στον Επεξεργαστή Μητρώου, επιλέξτε το κλειδί που σχετίζεται με τα δίκτυα (π.χ. Microsoft Windows) που θέλετε να δημιουργήσετε αντίγραφο ασφαλείας.
  9. Στο μενού Αρχείοεπιλέγω Εξαγωγή.
  10. Εισηγμένη Αποθήκευση σεεπιλέξτε το φάκελο στον οποίο θέλετε να αποθηκεύσετε το αντίγραφο ασφαλείας του κλειδιού Microsoft Windows.
  11. Στο χωράφι Ονομα αρχείουπληκτρολογήστε ένα όνομα για το αρχείο αντιγράφου ασφαλείας, όπως "Microsoft Windows Backup".
  12. Βεβαιωθείτε ότι το πεδίο Εύρος εξαγωγήςεπιλεγμένη τιμή Επιλεγμένο υποκατάστημα.
  13. Κάντε κλικ Αποθηκεύσετε.
  14. Το αρχείο θα αποθηκευτεί με επέκταση .reg.
  15. Έχετε πλέον αντίγραφο ασφαλείας των δικτύων σας.

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

mob_info