Δημοσιεύτηκε: 27 Φεβ 2011, 00:57
από Star_Light
Ο παρών οδηγός σκοπεύει να δείξει μερικά απλά βήματα που μπορεί να ακολουθήσει οποιοσδήποτε χρήστης (αρχάριος ή μη) για να διαπιστώσει κατα πόσο καλά δουλεύει το δίκτυο του στην ολότητα του (ώς προς τις λειτουργικές οντότητες που παίζουν μέχρι και το 2ο επίπεδο).

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

Κώδικας: Επιλογή όλων
ping <IP_address>


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

:idea: Η ονομασία ping βασίζεται στην τεχνολογία sonar που χρησιμοποιείται στα υποβρύχια όταν θέλουν να εντοπίσουν άλλα αντικείμενα :idea:

το παρακάτω ειναι ένα παράδειγμα που παίρνω απο το τερματικό μου καθώς τρέχω την εντολή ping

Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ ping oxygen.lan
PING oxygen.lan (192.168.1.254) 56(84) bytes of data.
64 bytes from oxygen.lan (192.168.1.254): icmp_req=1 ttl=64 time=2.57 ms
64 bytes from oxygen.lan (192.168.1.254): icmp_req=2 ttl=64 time=7.44 ms
64 bytes from oxygen.lan (192.168.1.254): icmp_req=3 ttl=64 time=6.09 ms
64 bytes from oxygen.lan (192.168.1.254): icmp_req=4 ttl=64 time=5.04 ms
^C
--- oxygen.lan ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms



Θα μπορούσα να τρέξω την εντολή και με την IP της αλλα το έκανα για να φανεί πως όντως αν δώσεις ένα hostname ή και όνομα τομέα ενός σαιτ πώς σου δείχνει την IP του. Η εντολή ping θα συνεχίσει να στέλνει icmp requests οσότου χρησιμοποιήσω το control + C απο το πληκτρολόγιο . Το icmp_req είναι το πακέτο ICMP που στέλνουμε μέσω της ping και περιμένουμε ενα echo reply (πολλοί το λένε και pong) . Το χρονικό διάστημα που μεσολαβεί για αυτήν την διαδικασία επιβεβαιώνει την ποιότητα της σύνδεσης και λέγεται lag! Mία τυπική τιμή του lag είναι απο 0.02 έως 0.08 δευτερόλεπτα στο σημείο αυτό μπορούμε να πάρουμε το time που μας δείχνει το διαγνωστικό πρόγραμμα ping και να το διαιρέσουμε με το 1000 ωστε να το βγάλουμε σε δευτερόλεπτα και να δούμε αν είμαστε μέσα στα επιθυμητά όρια. Το ttl (time to live) είναι μια παράμετρος η οποία προστίθεται στο αρχικό datagram και μειώνεται καθώς το πακέτο σε επίπεδο δικτύου περνάει απο τον έναν δρομολογητή στον άλλον (κάθε δρομολογητής μειώνει αυτο το πεδίο κατα 1. Οταν αυτό φθάσει στο 0 το πακέτο διαγράφεται).

Στο σημείο αυτό θα πρέπει να τονίσουμε πως το ping αποτελεί μια ελάχιστη εφαρμογή. Απαιτεί να λειτουργούν μονο τα 2 κατώτερα επίπεδα της στοίβας του TCP/IP , ενδεχομένως να υπάρχουν προβλήματα στο επίπεδο μεταφοράς και να μην μπορούμε να τα βρούμε με τις οδηγίες που θα δώσει παρακάτω αυτος ο οδηγός. Με άλλα λόγια το ping μπορεί να λειτουργεί κανονικά και να υπάρχουν προβλήματα στο επίπεδο μεταφοράς του δικτυου μας (TCP / UDP).

Αν λοιπον το ping λειτουργεί κανονικά είμαστε σε θέση να γνωρίζουμε οτι δεν έχουμε προβλήματα με το επίπεδο πρόσβασης δικτύου (Το τοπικό μας δίκτυο ουσιαστικά ) καθως και ούτε με το καλώδιο του EThernet ή τα ρουτεράκια μας :mrgreen: :mrgreen:

Ένα τυπικό σενάριο αντιμετώπισης προβλημάτων που θα προκύψουν για το δίκτυο μας ειναι το παρακατω

1. Υπάρχει μια διεύθυνση στο δικτυο μας η οποία ονομάζεται loopback στις διάφορες εντολές που θα τρέχετε για να δείτε τα δικτυακά σας interface θα εμφανίζεται σαν 127.0.0.1 . Μπορούμε σαν 1ο βήμα να κάνουμε ping στο loopback για να πιστοποιηθεί οτι το TCP/IP δουλεύει σωστά στον τοπικό υπολογιστή
Άν απο αυτή την εντολή πάρουμε απάντηση (τρέχει κανονικά στο τερματικό) τοτε είμαστε οκ με το 1ο βήμα και πάμε στο 2ο.

2. Στο τερματικό δίνουμε την εντολή

Κώδικας: Επιλογή όλων
ifconfig


Η έξοδος απο το δικό μου τερματικό είναι :

Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 1c:6f:65:4b:b1:10 
          inet addr:192.168.1.90  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::1e6f:65ff:fe4b:b110/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13078 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11629 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14157405 (14.1 MB)  TX bytes:1850428 (1.8 MB)
          Interrupt:42 Base address:0x6000


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

Κώδικας: Επιλογή όλων
ping -c 4 192.168.1.90


ΠΡΟΣΟΧΗ!!!! Στο έξτρα flag ( -c 4 ) που έβαλα ανάμεσα.... αυτό δείχνει οτι θα σταλούν μονο 4 πακέτα ICMP (Internet Control Message Protocol) και η διαδικασία θα σταματήσει χωρίς να πατήσω Control + C . Εφόσον λειτουργεί και αυτό μπορουμε
να προχωρήσουμε στο βήμα 3. :D :D :D

3. Ήρθε η ώρα του ρούτερ! Εδώ θα κάνουμε ping στην προκαθορισμένη έξοδο για να πιστοποιηθεί οτι ο υπολογιστής μας μπορεί να επικοινωνησει με το τοπικό υποδιίκτυο και οτι το ρουτεράκι ειναι active - online.

Στο τερματικό δίνουμε

Κώδικας: Επιλογή όλων
ping oxygen.lan


(Το δικό μου ρούτερ ειναι oxygen άρα μπορεί ο καθένας να κάνει την τροποποίηση για το δικό του)

:idea: Την διεύθυνση του Gateway μπορούμε να την παρουμε και μεσω της εντολής

Κώδικας: Επιλογή όλων
route -n


η έξοδος θα είναι κατι σαν και αυτο

Κώδικας: Επιλογή όλων
Destination     Gateway                     Flags      Metric    Ref    Use Iface
192.168.1.0                0.0.0.0         
169.254.0.0                0.0.0.0         
0.0.0.0         ->[b]192.168.1.250[/b]       



* Παραλείψαμε τις τιμές των αλλων πεδίων επειδή δεν μας ενδιαφέρουν τοσο εδώ και για λόγους καλύτερης μορφοποίησης.*

Λειτουργεί και αυτό λοιπον.... παμε στο βήμα 4

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

Τέλος στο βήμα
5. Μπορούμε να κάνουμε ping στον τοπικό υπολογιστή με το hostname του αλλα και σε απομακρυσμένους για να πιστοποιηθεί οτι λειτουργεί η επίλυση ονομάτων DNS

στο τερματικό δίνουμε τις παρακάτω εντολες

Κώδικας: Επιλογή όλων
hostname


Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ hostname
kostas-SSL


& κατόπιν

Κώδικας: Επιλογή όλων
ping kostas-SSL


αν και αυτο λειτουργεί καλα είμαστε εντάξει για τα 2 πρώτα επίπεδα του OSI ή της στοίβας TCP/IP στο συστημά μας.

Σε περίπτωση οπου δεν μπορούμε να έχουμε σύνδεση στο ιντερνετ ενώ η πύλη μας προς το δίκτυο κάνει την δουλειά της κανονικά μπορούμε να κάνουμε τις παρακάτω ενέργειες στο αρχείο /etc/network/interfaces

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

Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ cat /etc/network/interfaces
auto lo
iface lo inet loopback


σε αυτήν την περίπτωση βλέπουμε οτι το αρχείο μας ειναι κενό οπότε μπορούμε να το συμπληρώσουμε ως εξής

Κώδικας: Επιλογή όλων
auto lo
iface lo inet loopback

iface eth0 inet static

address ip_pc
netmask 255.255.255.0
gateway ip_router

auto eth0


την ip_pc μπορούμε να την πάρουμε απο την εντολή

Κώδικας: Επιλογή όλων
ping hostname


σε εμένα ήταν η ακόλουθη που έγραψα και πιο πάνω

Κώδικας: Επιλογή όλων
ping kostas-SSL


οποτε ο καθένας την προσαρμόζει αναλογα με το hostname του.

Την διευθυνση για το ρούτερ την παίρνουμε με την

Κώδικας: Επιλογή όλων
route -n


που ανέφερα και πιο πάνω.

ΣΗΜΑΝΤΙΚΕΣ ΕΠΙΣΗΜΑΝΣΕΙΣ για τους καχυποπτους :D :D :D :D

1. Αν σε κάποιον απο τους παραπάνω ελέγχους έχουμε χρησιμοποιήσει την εντόλη ping με σημαία -c 5 (θέλουμε να σταλούν 5 πακέτα icmp ) & λάβουμε τα 4 ή και λιγότερες αποκρίσεις πχ 3... δεν ειναι ασυνηθιστο διοτι το πρωτόκολλο IP δεν εγγυάται την παράδοση.
Ωστόσο αν χάνονται αποκρίσεις μπορει να σημαίνει πως το δίκτυο έχει πολλή κίνηση.

2. Οι σύντομοι χρόνοι απόκρισης υποδεικνύουν οτι ένα datagram χρειάζεται να περάσει απο παρα πολλούς δρομολογητές ή αργά δίκτυα.

3. Αν η ping επιστρέφει μια τιμή TTL ->0 κοντα στο 0 αυτο σημαινει πως διαγράφονται - χάνονται ή δεν φτανουν.

4. Επειδή καμια φορά απο τις φοβερές συσκευές που μας δίνουν για να έχουμε ίντερνετ δεν λείπουν και τα παρατράγουδα . Καλό θα ήταν αφου έχουμε κάνει όλα τα παραπάνω να μπούμε και στο ρούτερ να δούμε τι ακριβώς συμβαίνει. Μπορούμε σε πρώτη φάση να τσεκάρουμε τα χαρακτηριστικά της γραμμής οπως το SNR / attenuation κτλπ. Μπορεί η γραμμή μας να έχει υψηλό SNR πχ και να δημιουργείται πρόβλημα. Πάντα θα πρέπει να πηγαίνουμε στο πεδίο με το username και το pass μας και να κοιτάμε αν βρίσκονται εκεί!!!! Επειδή στο δικό μου ρουτεράκι κάποιες φορές έβγαιναν και έβλεπα κενά τα 2 πεδία εκει τελείως!!! Σε αυτή την περίπτωση πατάμε ενα RESET στο πίσω μέρος της συσκευής ωστε να ξεμπλοκάρει το firmware της (κατι σαν επανεκκίνηση του λειτουργικού της)!!! Και μολις επανέλθει βάζουμε τα στοιχεία μας κανονικά στα πεδία και πατάμε κλήση και αποθήκευση.

Τέλος για να απενεργοποίησουμε & να ενεργοποιήσουμε (restart) την σύνδεση μας απο το τερματικό
μπορουμε να δώσουμε τις παρακάτω 2 εντολές

Κώδικας: Επιλογή όλων
sudo ifconfig eth0 down

Κώδικας: Επιλογή όλων
sudo ifconfig eth0 up


Καλή ανάγνωση & εύχομαι να τον βρείτε χρήσιμο!!!!! :bow: :bow: :bow: :bow: :bow:

Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα