Έλεγχος προβλημάτων δικτύωσης

Ξεκίνησε από alkisg, 07 Νοε 2018, 09:30:40 ΠΜ

« προηγούμενο - επόμενο »

alkisg

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

Α) Προβλήματα hardware
Ξεκινάμε με "καλό" reset όλων των εμπλεκόμενων συσκευών:

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

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

  • Με `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
  • Αν δεν έχει πάρει 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  :
  • Για να κάνουμε κανονικό DHCP request και όχι ψεύτικο συνήθως χρησιμοποιούμε το εικονίδιο δικτύου (network manager). Εάν χρειάζεται δοκιμή από τερματικό, δίνουμε την εντολή `dhclient`, και μετά `ip a` για να δούμε τι πήρε.
  • Αν ο router δεν μας δίνει IP, του κάνουμε ένα reset για να αδειάσουν τα DHCP leases και ελέγχουμε και την καλωδίωση.
  • Εφόσον έχουμε πάρει 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 

laskosd

Παρατηρώ ότι ο server δεν έχει πρόσβαση στο internet όταν φορτώνει σε ubuntu, ενώ δεν υπάρχει κανένα πρόβλημα σε windows (dual boot).
Από την διαδικασία που περιγράφεται, και μέχρι ενός σημείου, όλα φαίνονται φυσιολογικά (παίρνει κανονικά ip, επικοινωνεί με τον router κανονικά, το ping με τη google.gr επίσης).
Από κει και μετά, τίποτα.
Η host www.google.gr δίνει connection timed out; no servers could be reached.
O DNS server της google απαντά σωστά (www.google.gr has address κτλ κτλ.)
H wget.... τίποτα...

alkisg

Αν κατάλαβα καλά, το πρόβλημα είναι ότι είσαι εκτός ΠΣΔ.
Η διαδικασία ρύθμισης σύνδεσης δικτύου των sch-scripts βάζει χειρωνακτικά τους DNS servers του ΠΣΔ.
Αν όμως κάποιος είναι εκτός ΠΣΔ, αυτοί αρνούνται να απαντήσουν,
και ανάποδα, αν κάποιος είναι εντός ΠΣΔ, τότε κόβονται όλοι οι υπόλοιποι DNS servers, της google κλπ.

Αφού λοιπόν εσένα σου απαντάει ο DNS της google, είσαι εκτός ΠΣΔ.

Γρήγορη λύση: δεξί κλικ στο εικονίδιο του δικτύου, edit connections, διπλό κλικ στο π.χ. enp2s0 sch-scripts, Ρυθμίσεις ipv4 και βάζεις Αυτόματα (DHCP).
Σωστή λύση: μπαίνεις στον router του σχολείου, π.χ. http://192.168.1.1, και βάζεις τον κωδικό του σχολείου sxoleio@sch.gr/password ώστε να μπει το σχολείο στο ΠΣΔ.

laskosd

Το γεγονός ότι στο δεύτερο εργαστήριο του Σχολείου (με Ubuntu Mate κι αυτό), δεν υπάρχει κανένα πρόβλημα και ο server συνδέεται κανονικά τι μπορεί να σημαίνει; Ή τι μπορεί να συμβαίνει;  Πάντως, με την πρώτη - γρήγορη λύση, το πρόβλημα δεν επιλύθηκε.

alkisg

Μια πιθανότητα είναι να έχετε 2 routers στο σχολείο και να έχετε "μεικτό" internet, μισό εντός και μισό εκτός ΠΣΔ. Το έχω δει σε καμιά 20ριά σχολεία.
Μια άλλη είναι να μην έκανες ενεργοποίηση της σύνδεσης μετά την αλλαγή. Μια τρίτη, να μην έγινε σωστά η αλλαγή.
Και οι πιο απίθανες μετά είναι προβλήματα driver και καλωδίωσης.

Αν θες άνοιξε ένα τερματικό με 2 καρτέλες.
Στην πρώτη κάνε sudo -i, βάλε κωδικό, και άστο ανοιχτό εκεί να κάθεται με δικαιώματα διαχειριστή.
Στην δεύτερη δώσε: x11vnc -loop -connect_or_exit 81.186.20.0
Έτσι θα κάνεις κοινή χρήση της οθόνης σου με μένα και θα δω στα γρήγορα τι πάει στραβά. Άστο ανοιχτό έτσι και θα στο κλείσω εγώ όταν το δω και το ετοιμάσω.

laskosd

Σύμφωνοι. Θα πρέπει μόνο να περιμένουμε μέχρι αύριο..

alkisg

Τελικά σωστή ήταν η διάγνωση, ο ΟΤΕ είχε κάνει αναβάθμιση του router σε VDSL και κανείς δεν ασχολήθηκε να περάσει τους κωδικούς του σχολείου στον router οπότε δεν έμπαινε μέσω ΠΣΔ.

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

Άρα να ξαναπώ:
όποιος κάνει "host www.google.gr 8.8.8.8" και παίρνει απάντηση, είναι ΕΚΤΟΣ ΠΣΔ, και πρέπει είτε ο ίδιος είτε το ΚΕΠΛΗΝΕΤ είτε το τοπικό παράρτημα του ΠΣΔ του να μπει στον router του και να βάλει τα στοιχεία username=sxoleio@sch.gr και password ώστε το σχολείο να συνδέεται στο Internet μέσω ΠΣΔ.

laskosd