Πέμπτη, 9 Δεκεμβρίου 2010 6:44 μμ
I.T. ΑΝΗΣΥΧΙΕΣ
SMB2 protocol? Δυσκολάκι
Έχουμε το παρακάτω σενάριο:
Χρήστης με Office 2007 προσπαθεί να ανοίξει excel files από κάποιο unc path (smb network share, \\server1). Τα .xlsx ανοίγουν χωρίς πρόβλημα ενώ τα .xls χρειάζονται περίπου 1 λεπτό από ίδιο πάντα share.
Eύλογο το συμπέρασμα πως πάλι εμείς στην Microsoft κάτι έχουμε αλλάξει στο Office 2007 και δημιουργεί αυτά τα προβλήματα. Στην προηγούμενη πρόταση δεν είμαι αρνητικός, συμβαίνουν κι αυτά
απλά μένει να αποδειχθεί κιόλας.
Σε παρόμοιες περιπτώσεις τα πράγματα είναι σχετικά εύκολα γιατί αυτό που χρειαζόμαστε είναι 2 traces, ένα από την σωστή και δεύτερο από την προβληματική λειτουργία, ώστε να κάνουμε σύγκριση μεταξύ τους και να βρεθεί τι είναι αυτό που συμβαίνει ή δε συμβαίνει στην προβληματική περίπτωση.
Δυσκολάκι
Ο τίτλος έχει να κάνει καθαρά με τη λειτουργία του πρωτοκόλλου SMB το οποίο είναι σχετικά περίπλοκο ώστε να καταφέρει να κάνει ότι κάνει για εμάς. Μου στέλνουν λοιπόν τα 2 network traces, ένα για κάθε περίπτωση (προβληματική & ΟΚ) οπότε για να διερευνήσω το πρόβλημα έκανα τα εξής βήματα:
1. Απομονώνω το tcp connection που χρησιμοποιήθηκε για την μεταφορά του .xls & .xlsx αρχείου σε κάθε ένα από τα traces και αποθηκεύω σε νέο αρχείο. Αυτό γίνεται αναζητώντας στη στήλη Info το αρχείο που μεταφέρθηκε (test_MS.xls & test_MS.xlsx) και επιλέγοντας right click –> follow tcp stream. Μετά αποθηκεύω μόνο τα displayed packets.


2. Ανοίγουμε τα 2 νέα πλέον traces με το wireshark και χρησιμοποιούμε display filter “smb2” . Αυτό το κάνουμε γιατί θέλουμε να επικεντρωθούμε στα smb commands που χρησιμοποιηθήκαν. SMB2 είναι η νέα έκδοση του smb και χρησιμοποιείται μεταξύ νεοτέρων λειτουργικών.
3. Έπειτα επιλέγουμε
File –> Print (ναι print!) και επιλέγουμε όπως φαίνεται στην εικόνα, output to txt file και μόνο “Packet Summary Line”

Έτσι καταλήγουμε σε txt file όπου εκεί κράτησα τις στήλες Source, Destination & Info. Οπότε πλέον ανοίγουμε τα 2 txt files και συγκρίνουμε με κάποιο notepad compare tool.

Αυτό που φαίνεται στην παρακάτω εικόνα είναι η σύγκριση μεταξύ των 2 trace files. Είναι δύσκολο να μην προσέξουμε ότι κάτι συμβαίνει στη δεξιά μεριά όπου προβάλλεται η προβληματική λειτουργία.

Υπάρχει μεγάλος αριθμός από Lock Request File: & Lock Response. Ανατρέχοντας στο documentation βρίσκω πως αυτό που βλέπω είναι OPLOCK_Break Notification όπου έτσι ο server ενημερώνει τον client ότι δεν μπορεί να “κλειδώσει” το αρχείο.
Έχουμε να κάνουμε με κάτι που συμβαίνει στο server και δημιουργεί προβλήματα στην πρόσβαση των .xls αρχείων. Το πρώτο πράγμα που πήγε το μυαλό μου, τυχαίο; ήταν το Antivirus και βέβαια όταν ο πελάτης έκανε exclude τα *.xls από το AV η καθυστέρηση εξαφανίστηκε.
Βέβαια αυτό δεν είναι λύση αλλά workaround γιατί έτσι δημιουργούμε άλλα κενά ασφαλείας, όπως καταλαβαίνετε.
Όπως είπα και παραπάνω το SMB είναι πολύπλοκο πρωτόκολλο με την έννοια ότι περιέχει μεγάλο πλήθος από εντολές και λειτουργίες. Σε όσες περιπτώσεις έχει χρειαστεί να γίνει troubleshoot το smb τότε ανατρέχω στο επίσημο documentation http://msdn.microsoft.com/en-us/library/cc216517(PROT.10).aspx. Μπορείτε να κάνετε download τα 2 files από τις παρκάτω διευθύνσεις:
Στα pdf που θα βρείτε υπάρχει περιγραφή για κάθε λειτουργία των windows protocols. Είναι κάτι σαν Windows RFCs!
Με την παραπάνω περιγραφή ήθελα να παρουσιάσω εναλλακτικό τρόπο σύγκρισης 2 network traces.