Μετάβαση στο περιεχόμενο

Προβλήματα δικτύωσης

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

Προβλήματα hardware

Ξεκινάμε με "καλό" reset όλων των εμπλεκόμενων συσκευών:

  1. Κλείνουμε τον προβληματικό Η/Υ και αφαιρούμε την μπρίζα ρεύματος ή κλείνουμε το κουμπί του τροφοδοτικού του. Στη συνέχεια πατάμε το κουμπί power on για να τραβήξει λίγο ρεύμα και να αποφορτιστούν οι πυκνωτές! Όσο περίεργο κι αν ακούγεται, αυτό "ξεκολλάει" σε αρκετές περιπτώσεις κολλημένες μητρικές ή κάρτες δικτύου. Στη συνέχεια ξαναβάζουμε τον Η/Υ στο ρεύμα και τον ανοίγουμε.
  2. Βγάζουμε όλο το rack από το ρεύμα. Έτσι μπορεί να ξεκολλήσουν κολλημένα switch ή ακόμα και να αδειάσουν τα DHCP leases του router που μπορεί να έχουν γεμίσει.
  3. Αλλάζουμε θέση δικτύου στον προβληματικό Η/Υ, ώστε να μην αλλάξει μόνο το καλωδιάκι του αλλά να περάσει και από διαφορετική καλωδίωση τοίχου. Στην καλύτερη περίπτωση, τον συνδέουμε με ένα καλώδιο απευθείας πάνω στο switch.

Προβλήματα software

Ανοίγουμε ένα τερματικό και γράφουμε sudo -i για να πάρουμε δικαιώματα διαχειριστή. Τις παρακάτω εντολές τις τρέχουμε σε αυτό το τερματικό.

  1. Με ip a βλέπουμε το όνομα της κάρτας δικτύου και αν έχει πάρει ip, για παράδειγμα enp2s0 και 10.161.254.11 παρακάτω:

    ~# ip a
    2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 74:d4:35:e9:b4:24 brd ff:ff:ff:ff:ff:ff
        inet 10.161.254.11/24 brd 10.161.254.255 scope global noprefixroute enp2s0
    
  2. Αν δεν έχει πάρει IP, μπορούμε να κάνουμε ένα ψεύτικο DHCP request για να ελέγξουμε αν βλέπει τον router μας και αν αυτός δίνει IP με την εντολή /usr/lib/klibc/bin/ipconfig -n enp2s0. Εννοείται όπου enp2s0 βάλτε το όνομα της κάρτας δικτύου σας:

    ~# /usr/lib/klibc/bin/ipconfig -n enp2s0
    IP-Config: enp2s0 hardware address 74:d4:35:e9:b4:24 mtu 1500 DHCP RARP
    IP-Config: enp2s0 guessed broadcast address 10.161.254.255
    IP-Config: enp2s0 complete (dhcp from 10.161.254.1):
        address: 10.161.254.64    broadcast: 10.161.254.255   netmask: 255.255.255.0
        gateway: 10.161.254.1     dns0     : 194.63.237.4     dns1   : 194.63.239.164
        rootserver: 10.161.254.1 rootpath:
        filename  :
    
  3. Για να κάνουμε κανονικό DHCP request και όχι ψεύτικο συνήθως χρησιμοποιούμε το εικονίδιο δικτύου (network manager). Εάν χρειάζεται δοκιμή από τερματικό, δίνουμε την εντολή dhclient, και μετά ip a για να δούμε τι πήρε.

  4. Αν ο router δεν μας δίνει IP, του κάνουμε ένα reset για να αδειάσουν τα DHCP leases και ελέγχουμε και την καλωδίωση.
  5. Εφόσον έχουμε πάρει IP, μπορούμε να κάνουμε διάφορους ελέγχους με το εργαλείο ping που ελέγχει αν κάποιος υπολογιστής μας απαντάει, με το host που ελέγχει αν ένας DNS server μας απαντάει, και με το wget που ελέγχει αν ένας http server μας απαντάει. Εάν σας ζητηθεί αναφορά, δοκιμάστε όλα τα παρακάτω και αντιγράψτε/επικολλήστε όλο το output. Εντωμεταξύ όπου 10.161.254.1 βάλτε το δικό σας gateway (ο router), αν δεν το ξέρετε μπορείτε να το δείτε από το βήμα 2 παραπάνω:

    # Απαντάει ο router; Αν ναι, η καλωδίωσή μας είναι μάλλον καλή.
    ping -c 4 10.161.254.1
    # Απαντάει το helpdesk.sch.gr; Αν ναι, έχουμε Internet.
    ping -c 4 194.63.239.37
    # Απαντάει ο DNS server nic.sch.gr; Αν όχι, έχει πέσει ο σχολικός DNS.
    ping 194.63.238.4
    # Απαντάει το www.google.gr; Αν ναι, "βγαίνουμε" και εκτός ΠΣΔ.
    ping -c 4 216.239.38.120
    
    # Μας απαντάει ο default DNS server μας; Αν ναι, δεν έχουμε κανένα πρόβλημα!
    host www.google.gr
    # Μας απαντάει ο DNS server του ΠΣΔ; Αν ναι, έχουμε IP εντός ΠΣΔ.
    host www.google.gr 194.63.238.4
    # Μας απαντάει ο DNS server της google; Αν ναι, έχουμε IP εκτός ΠΣΔ.
    host www.google.gr 8.8.8.8
    
    # Κατεβαίνουν σελίδες; Το παρακάτω μας δείχνει και την εξωτερική IP του σχολείου:
    wget -q alkisg.mysch.gr/ip -O -
    
    # Με τι ταχύτητα κατεβάζουμε; Το παρακάτω το αφήνουμε για λίγα δευτερόλεπτα και μετά πατάμε Ctrl+C για να σταματήσει:
    wget http://ts.sch.gr/repo/livecd/ubuntu-12.04.3-desktop-i386-dim.iso -O /dev/null
    # Βγάζει για παράδειγμα:
    #/dev/null                  12%[===>                                  ] 461,74M  11,2MB/s    eta 5m 2s