A munkahelyemen érdekes hálózati problémánk van már jó ideje, router csere után is fennáll.
Két telephelyünk van:
- A: DIGI 1000 Mbit / sec., fix IP, TUF-AX4200 router, előtte Xiaomi MiWiFi 3G v1, OpenWrt 23.05.3
- B: Vodafone (volt UPC) 300 mbit / sec., fix IP, TUF-AX4200 router, előtte Ubiquiti Routerstation Pro, OpenWrt 23.05.3
És van a production szerverünk, Telekom hosting, ezen megy a webáruház, meg az admin oldalak.
Mindkét router-t el lehet érni kívülről, erős jelszóval vannak védve:
A: http://A.hu:55555
B: http://B.hu:55555
Azért, hogy minél hamarabb értesüljünk róla, ha valahol megszakad a kapcsolat, a production szerveren fut egy script percenként, ami lehívja a két fenti url-t, és ha nem az OpenWrt login oldal jön le, akkor küld egy Telegram alert-et, hogy az adott helyen megállt a net.
Az A telephelyen van egy dev szerver is, ezen fut a céges chat, meg egy Voip PBX szerver, ezen meg a telefonok.
Többször előfordul, hogy mindkét telephelyen rendben van a net, nem szól a percenként futó script, hogy baj lenne, mégis több percig nem elérhető a B telephelyről a céges chat, meg a telefonok, vagyis az A telephely. Ez szinte naponta előfordul, de mindig csak munkaidőben, este, éjszaka soha. Csináltam egy olyan harmadik ellenőrző script-et is, ami az A telephelyen lévő dev szerveren fut és a B telephely router login url-t hívja meg, így azonnal értesülünk ha megállt a két telephely között a kapcsolat, nem csak akkor, amikor átszólnak hogy nem megy a chat, ill. a telefon.
A megállások pár perce alatt minden más kapcsolat mindkét telephelyen hibátlanul, megfelelő sebességgel működik, bármilyen weboldal bejön, beleértve a production szerveren lévőket is, de a teszt parancsom:
curl -v http://B.hu:55555
A telephelyről nem megy, minden más helyről igen. Ami nagyon érdekes, hogy ilyenkor a ping az A telephelyről a B felé megy! Ha a B router WAN interface-t restartolom, semmi változás, nem áll helyre a kapcsolat A felé. Ha az A router WAN interface-t restartolom, akkor azonnal helyreáll a két telephely között a kapcsolat. Ha kézzel nem restartolok, pár perc alatt mindig megjavul magától a kapcsolat.
Mindkét router log-ja át van irányítva file-ba, ill. log szerverre, a leállások alatt semmi rendellenes nem látható. Ellenőriztem a megállásaok ideje alatt a kapcsolatok számát a router-eken, bőven nincsenek kimaxolva.
Mivel viszont a ping megy a leállások alatt is, ezért arra gondoltam, hogy csak a TCP áll meg. Ezért osszedobtam ESP-re nodemcu alatt egy UDP szervert, ami hulla primitív dolgot csinál: a bejövő adatot (ami egy szám) megszorozza 17-el, majd visszaküldi. Ezt a B telephelyen üzemeltem be és a router-en csak az UDP protokoll és csak az A telephely IP-jéről van forward-al beengedve rá. Az A telephelyen pedig a dev szerverre csináltam plusz egy olyan tesztet, ami percenként fut, kitalál egy véletlen számot, ezt elküldi a B telephely IP-jére a kinyitott UDP portra, majd a visszajövő adatot ellenőrzi, hogy a bejövő szám 17-szerese-e, ha nem akkor jön az alert.
És láss csodát, amikor jönnek az alert-ek, hogy nem mennek a TCP tesztek, akkor az UDP vígan megy! Vagyis csak a TCP van ilyenkor blokkolva, az UDP nem.
Van valami ötletetek, hogy mi lehet az oka ennek az anomáliának, vagy mit nézzek, loggoljak, ellenőrizzek?