J'utilise un serveur dédié sous windows server depuis plus d'un an. Le serveur ainsi que l'application fonctionnait à merveille. Pour des raisons financières, je ne peux pas m'offrir une license windows server indéfiniment. Donc j'ai opté pour ubuntu 20.04.
Depuis ce jour où mon serveur utilise linux (environ 2 mois), j'ai des clients qui me disent qu'ils sont dans l'impossibilité d'interagir correctement avec le serveur. Pendant ces 2 mois, j'ai tout de suite remarquer que chaque jour, c'était toujours les mêmes clients qui sont affectés par ce problème. Éventuellement, après avoir persisté pendant 10-15 minutes (si pas d'abandon), ils arrivent enfin a interagir avec le serveur sans problème.
Pendant que ses clients rencontrent ce problème, d'autres clients, ainsi que moi-même arrivent à interagir avec le serveur sans aucun souci. Pour cette raison, je n'ai jamais réussi à reproduire moi-même le problème.
Le serveur dédié a été diagnostiquer par le support, aucun souçis à déclarer de leur part. UFW est actif avec les configurations iptables par défaut ainsi que toutes règles requises pour mon application. Je parie que si je reviens à Windows (ce que je ne peux pas), le problème disparaîtra comme il est venu.
Un client assez patient ma permis de faire une capture wireshark depuis le serveur:
vous avez essayé avec 0 règles de firewall pour vérifier si le problème est le même ? Vous avez essayé avec d'autre version de linux (genre Debian) ? C'est quoi le nom de l'application en question ?
vous avez essayé avec 0 règles de firewall pour vérifier si le problème est le même ?
J'ai essayé `sudo iptables -F`, je me suis coupé l'herbe sous le pied et j'ai du restart la machine. Si quelqu'un pourrais me guider pour supprimer toutes les règles sans interrompre ma session SSH et mon application.
Vous avez essayé avec d'autre version de linux (genre Debian) ?
Non, pour cela il faudrait couper l'accès à mon application et j'aimerai éviter ce cas de figure.
C'est quoi le nom de l'application en question ?
C'est un logiciel propriétaire codé avec C# qui tourne un serveur TCP pour un service. Le code source est évidemment fermé.
et dans l'idéal il faudrait avoir un TCPDump des côtés : 1 - le client : pour voir ce qui est envoyé 2 - le serveur : pour voir ce qui arrive
Vous avez gardez les fichiers de capture ? Vous pouvez les mettre à dispo (plus simple à regrdaer/analyse que des captures d'écran) ?
Aussi votre application utilise C#, donc mono normalement, vous utilisez : 1 - les dépôts Ubuntu pour mono ? 2 - le dépôt officiel de mono ? 3 - l'implémentation officiel de microsoft pour linux, ubunut dans votre cas (cf : https://docs.microsoft.com/fr-fr/dotnet/core/install/linux-ubuntu ) ?
Note : l'éditeur supporte officiellement votre logiciel sous Ubuntu ? Car la finalité du nom du logiciel c'était pour trouver de la doc et non pas accéder au code source, car il y a peur d'être d'autre(s) solution(s) à votre problème.
Let Firewall, c'est netfilter. Iptables se sont des commandes qui agissent sur netfilter. Avec ubuntu il y a peut être aussi une couche supérieure UFW ou qq chose comme ça.
À mon niveau, je peux pas décoder cela et être sur à 100% qu'aucune règle ci-dessus ne gêne mon application. Je me demande si certains paquets seraient considérés invalides et par conséquent ignorés (ce qui expliquerait l'absence de l'ACK et la retransmission du client).
pour désactiver UFW ce ne serait pas tout simplement "ufw disable" (je touche pas à UFW donc…) ?
Sinon par rapport à la capture c'est visiblement le serveur qui ne reçoit pas la demande dans les temps, fait une retransmission, mais se retrouve avec 2 ACK car les deux arrivent (initiale + retransmission). Donc à priori il y aurais potentiellement un problème de congestion/latence entre le serveur et le client trop important par rapport à ce que le serveur attend.
Pour désactiver ufw c'est bien un "ufw disable". Personnellement j'utilise un Ubuntu sur une VM sur un serveur dédié Rise-2 sans aucun problème. Il est vrai que le serveur lui même est sous un Windows 2022.
Le problème est toujours présent après avoir désactivé ufw. J'ai commandé un vps sous debian 11 (ubuntu 21.10 si je ne me trompe pas) et j'ai redirigé le client sur le vps, le problème est toujours présent.
Tout semblerait pointer le programme, ou dotnet, ou bien le framework qui est responsable du networking (dotnetty).
Je me tate à commander un vps sous Windows et refaire l'essai.
Si vous avez un serveur dédié perso je serai parti sur de la virtualisation.
Genre : Proxmox + VM sous Windows
Si le problème disparaît alors pour moi l'application n'est soit pas compatible Linux soit l'éditeur du logiciel doit préciser si il faut utiliser le dotnet Microsoft ou Mono.