MTU 1504 i wiszące sesje…

MTU 1504 i wiszące sesje…

Dosyć nietypowy problem na stacji jednego z użytkowników:

Połączenie z domeną Active Directory działa prawidłowo, jest dostęp do zasobów sieciowych, poczty elektronicznej i całego pozostałego BackEndu, jednak pojawił się problem przy połączeniu z bazą danych. Połączenie było nawiązywane prawidłowo, jednak po pewnym czasie było zawieszane z nieokreślonej przyczyny.  Przy wspólnej analizie z zespołem sieciowców udało się ustalić przyczynę takiego stanu rzeczy – była nią nieprawidłowa wartość parametru MTU na interfejsie sieciowym, który był wyższy niż MTU na switchu, do którego była wpięta stacja.

Z tego też względu żaden z dostępnych mechanizmów wbudowanych w system (jak PMTU, czy fragmentacja pakietów) nie był w stanie obsłużyć tego przypadku, bo pakiety były dropowane już na warstwie 2, bez informacji zwrotnej….

Skąd się wzięła rozbieżność w konfiguracji MTU? Windows domyślnie ustawia wartość 1500, natomiast w tym wypadku ustawione było 1504. Po dłuższym googlowaniu udało się ustalić, że HP wypuścił „trefną” serię sterowników z ustawionym MTU na wartość 1504…

Karty sieciowe, które były dotknięte tą przypadłością to m.in:

  • HP NC382
  • HP NC532
  • HP Flex-10 10Gb 2-port 530FLB

Niepoprawne sterowniki były wypuszczane w seriach od 7.4.x.y – dopiero serie 7.8.x.y mają poprawioną konfigurację MTU.

OK – zlokalizowaliśmy przyczynę problemów – ale teraz czas na znalezienie globalnego rozwiązania tego problemu 🙂

Najlepszym rozwiązaniem będzie oczywiście globalne załatwienie problemu poprzez dystrybucję go na wszystkie stacje robocze  w organizacji. Jednakże trzeba pamiętać, że w pewnych segmentach sieci występuje konieczność utrzymywania MTU na poziomie niższym niż 1500, więc nie można globalnie wszystkim ustawić standardowego 1500. Kolejnym problemem jest to, że ustawienie MTU należy wykonać poleceniem

, Gdzie trzeba wskazać konkretny interfejs sieciowy, dla którego ustawiamy MTU. Ustawienie tej wartości w rejestrze niestety nie do końca działa jak należy o czym mieliśmy okazję się przekonać…

Tak więc pozostaje jeszcze kwestia różnorodności nazw interfejsów sieciowych na stacjach użytkowników. Zbierzmy to w całość. Aby podejrzeć aktualne interfejsy sieciowe oraz wartości MTU należy wykonać polecenie:

Przykładowy wynik:

MTU

Interfejs Loopback zawsze jest zwracany jako pierwszy, więc ten wiersz można pominąć, natomiast dla kolejnych należy sprawdzić, czy mają MTU większe niż 1500 (mniejsze pozostawiamy bez zmian). Jeśli MTU jest większe niż 1500 to należy wyciągnąć nazwę tegoż interfejsu a następnie dla niego ustawić maksymalną dopuszczalną w sieci wartość MTU = 1500.

Proces został zautomatyzowany poprzez skrypt przypięty do GPO startującego podczas uruchamiania komputerów. (Zapewne można sprytniej wyciąć dane z netsh – ale ważne że działa prawidłowo 🙂 )

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *