niedziela, 3 maja 2020

Cambium cnMaestro i problemy z urządzeniami cnPilot i ePMP.

W ostatnim czasie zostałem poproszony o pomoc w diagnozie problemu i opracowaniu propozycji naprawy problemów z urządzeniami Cambium cnPilot i ePMP w połączeniu z zarządzaniem chmurowym w cnMeastro.

Problem wyglądał tak, że urządzenia Cambium miały problem z synchronizacją profili oraz traciły kontakt z cnMaestro, a ponowna rejestracja urządzenia (onboarding) w cnMeaestro nie dochodziła do skutku, a na urządzeniu pojawiał się komunikat "Connecting" i tak zostawało.
Z kolejnymi dniami problem rozszerzył się też na inne projekty w podobnej konfiguracji, które wcześniej przez wiele tygodni wszystko działało bez problemów. Co było dosyć ciekawe problem nie objął wszystkich projektów zrealizowanych za pomocą rozwiązań Cambium.

Zgodnie z sugestią Supportu Cambium w Polsce wykonaliśmy zrzutu komunikacji urządzeń i wspólnie z technikami Cambium rozpoczęliśmy ich analizę w programie Wireshark. W każdym przypadku komunikacja z cnMaestro była resetowana po próbie negocjacji MSS, następnie występował ciąg retransmisji pakietów, następnie komunikat "TCP Out-Of-Order" i reset połączenia. Analiza wielkości pakietów wykazała, że w projektach w których występował problem, MTU jest ustawione na 1430 bajty (cześć urządzeń projektu podłączona za pomocą VPN i połączeń LTE, pozostałe lokalizacje miały MTU 1500). Według zaleceń Supportu Cambium minimum jakie jest akceptowane przez cnMaestro to MTU 1434 bajty, który nie może być defragmentowany oraz zasugerowali podniesienie MTU do wartości 1460.
Niestety podniesienie MTU dla połączeń realizowanych za pomocą VPN i LTE do wartości MTU 1460 poprawiła nieznacznie sytuację i część urządzeń (ePMP) uzyskała możliwość synchronizacji z cnMeastro.

Poszedłem dalej tym tropem ... zbudowałem środowisko testowe w którym w łatwy sposób mogłem regulować MTU i fragmentacje pakietów. Każde podniesienie MTU powodowało kolejne postępy, dla wartości MTU 1480 wszystkie cnPilot, które były już zarejestrowane nawiązały ponowną synchronizacje z cnMaestro, ale nowe urządzenia nadal nie potrafiły się prawidłowo zarejestrować w cnMeastro nawet przy wartości MTU 1496. Wszystko prawidłowo działo dopiero przy MTU 1500.

Wszystkie te informacje zostały przekazane w czwartek do Suportu Cambium, który miał dalej zająć się analizą sytuacji i naprawieniem problemu poprzez ponowne umożliwianie rejestracji i synchronizacji dla urządzeń z mniejszym MTU oraz włączona fragmentaryzacją pakietów. Według nieoficjalnych informacji problem pojawił się po zmianie wersji cnMaestro z 2.3 do 2.4.



Propozycja rozwiązania problemu.

Rozwiązanie jest niby proste, trzeba zwiększyć MTU do wartości 1500 bajty, ale jak tego dokonać mając np połączenie VPN/LTE ?

Proponuje do tego użyć tunelu IP w którym definiujemy MTU na 1500 bajty oraz pozwalamy na defragmentacje pakietów wewnątrz tego tunelu.

W moim przypadku wykorzystaliśmy routery MikroTik. W lokalizacji urządzeń  Cambium na punkcie styku z internetem LTE używany jest router MikroTik, a w jednych z centrów kolokacji był już użytkowany router MikroTik. W związku z tym, ze połączenie LTE nie posiadało publicznego stałego adresu IP użyłem połączenia vpn L2TP i na tej warstwie uruchomiłem tunel EoIP. Tunel EoIP wybrałem jedynie z uwagi na możliwość transportowania w nim również vlanów, których używam do różnych ustawień nadajników i profilów dostępu do sieci bezprzewodowej realizowanej za pomocą Cambium.

Posiadacze innych rozwiązań mogą spróbować ustawień np: z tunelami GRE opartymi o vpn ipsec.

Istnieje jeszcze możliwość zmiany MTU na samym urządzeniu cnPilot, w tym wypadku chodzi o zmniejszenie tej wartości. Ja tej opcji nie weryfikowałem z uwagi na ilość urządzeń Cambium w każdym z projektów. Informacje jak to zrobić jest opublikowana w tym wpisie na Cambium Networks Community.


Aktualizacja:

W chwili przygotowania tego wpisu w cnMaestro pojawił się komunikat:




W niedziele o godzinie 11:43 CEST (5:43 ET) cnMaesto wykazywał wersję 2.4.0-r9


Jeszcze nie otrzymałem informacji od Supportu Cambium o rozwiązaniu problemów, planuje w poniedziałek/wtorek przetestować czy naprawili problem z MTU.