Bonjour, Ce qui est bizarre c'est que la requête HTTP est envoyée à moitié dans le paquet 6 (81 octets) et à moitié dans le paquet 8 (44 octets) alors que la carte indus annonce un MSS de 536. La carte aurait pu mettre toutes les données dans un seul paquet.
C'est peut-être une piste... Cordialement, Thomas 24 déc. 2023 13:14:04 Stéphane Rivière <s...@genesix.org>: > Boujour et bon courage à celles et ceux de permanence ou d'astreinte :) > > > Si quelqu'un a une idée ou a déjà rencontré un cas similaire... j'avoue être > en manque d'inspiration... > > C'est pour une application avec des cartes industrielles (PIC 32 bits, codage > en C, utilisation des stacks et libs MICROCHIP) reliées à des routeurs 4G (la > même manip que le message sur les QRC). > > Rien d'extravaguant. Tout étant implémenté, avec OpenVPN, un proxy Nginx en > frontal et un serveur HTTP GET/POST basique implémenté en Ada par mes soins. > > Je me retrouve avec des erreurs 408 (timout au niveau du proxy Nginx) > *uniquement avec la carte indus* (qui envoie juste une URL GET similaire à > celle ci-dessous). > > *Aucune erreur si j'envoie par FF une URL similaire : > *172.31.0.1:8081/231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342?* > * > > 172.31.0.3 - - [24/Dec/2023:11:19:37 +0100] "GET > /231224111843085123030003062C3031323353616C7574206C657320706F7465733738391F5C? > HTTP/1.1" *408* 0 "-" "-" < la *carte indus* > 172.31.0.3 - - [24/Dec/2023:11:20:48 +0100] "GET > /231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342? > HTTP/1.1" *408* 0 "-" "-"< *la carte indus* > 172.31.0.2 - - [24/Dec/2023:11:36:58 +0100] "GET > /231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342? > HTTP/1.1" 404 6 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:103.0) > Gecko/20100101 Firefox/103.0" > 172.31.0.2 - - [24/Dec/2023:11:37:10 +0100] "GET > /231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342? > HTTP/1.1" 404 6 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:103.0) > Gecko/20100101 Firefox/103.0" > 172.31.0.2 - - [24/Dec/2023:11:37:12 +0100] "GET > /231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342? > HTTP/1.1" 404 6 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:103.0) > Gecko/20100101 Firefox/103.0" > > > En utilisant Tshark pour se brancher sur le VPN, filtrer les paquets TCP sur > le port 8081 pour des trames HTTP uniquement. > > *Essai avec FF : OK - *avec l'URL > 172.31.0.1:8081/231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342?* > * > > Tshark *détecte le trafic comme étant bien des trames HTTP* : voir en gras > ci-dessous* > * > > root@* 🍀 /etc/openvpn >tshark -i tun0 -d tcp.port==8081,http -f "port 8081" > Running as user "root" and group "root". This could be dangerous. > Capturing on 'tun0' > 1 0.000000000 172.31.0.2 ? 172.31.0.1 TCP 52 55372 ? 8081 [ACK] Seq=1 > Ack=1 Win=501 Len=0 TSval=2641523022 TSecr=3450216110 > 2 0.000047455 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP ACKed unseen > segment] 8081 ? 55372 [ACK] Seq=1 Ack=2 Win=66 Len=0 TSval=3450226350 > TSecr=2641492368 > 3 0.807369694 172.31.0.2 ? 172.31.0.1 *HTTP* 489 [TCP Previous segment > not captured] GET > /231224111955085123030004062C3031323353616C7574206C657320706F7465733738396342? > HTTP/1.1 > 4 0.814896905 172.31.0.1 ? 172.31.0.2 *HTTP* 205 [TCP ACKed unseen > segment] HTTP/1.1 404 Not Found (text/plain) > > La transaction se limite à 4 lignes. *RAS... > * > > * > * > > *Essai avec la carte indus : KO* - on dirait que la pile TCP/IP pose problème > mais ce ne sont que des suppositions, je ne peux pas déverminer coté carte. > > Tshark*ne détecte pas de trame HTTP* > > J'ai rayé le trafic concernant le PC portable > > root@* 🍀 /etc/openvpn >tshark -i tun0 -d tcp.port==8081,http -f "port 8081" > Running as user "root" and group "root". This could be dangerous. > Capturing on 'tun0' > 1 0.000000000 172.31.0.2 ? 172.31.0.1 TCP 52 55372 ? 8081 [ACK] Seq=1 > Ack=1 Win=501 Len=0 TSval=2641574990 TSecr=3450268108 > 2 0.000048117 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP ACKed unseen > segment] 8081 ? 55372 [ACK] Seq=1 Ack=2 Win=67 Len=0 TSval=3450278328 > TSecr=2641523888 > / 3 1.486198007 172.31.0.3 ? 172.31.0.1 TCP 44 1032 ? 8081 [SYN] Seq=0 > Win=1200 Len=0 MSS=536 > 4 1.486247826 172.31.0.1 ? 172.31.0.3 TCP 44 8081 ? 1032 [SYN, ACK] > Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 > 5 1.526477917 172.31.0.3 ? 172.31.0.1 TCP 40 1032 ? 8081 [ACK] Seq=1 > Ack=1 Win=1200 Len=0 > 6 1.534424273 172.31.0.3 ? 172.31.0.1 TCP 121 1032 ? 8081 [PSH, ACK] > Seq=1 Ack=1 Win=1200 Len=81 [TCP segment of a reassembled PDU] > 7 1.534506612 172.31.0.1 ? 172.31.0.3 TCP 40 8081 ? 1032 [ACK] Seq=1 > Ack=82 Win=65535 Len=0/ > 8 1.534556251 172.31.0.3 ? 172.31.0.1 *TCP* 84 GET > /231224121420085123030006062C3031323353616C7574206C657320706F746573373839C50E? > HTTP/1.1 [TCP segment of a reassembled PDU] > 9 1.534571758 172.31.0.1 ? 172.31.0.3 TCP 40 8081 ? 1032 [ACK] Seq=1 > Ack=126 Win=65535 Len=0 > 10 6.586207028 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1 [TCP segment of a reassembled PDU] > 11 6.586259191 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 12 10.259594542 172.31.0.2 ? 172.31.0.1 TCP 52 [TCP Dup ACK 1#1] 55372 > ? 8081 [ACK] Seq=1 Ack=1 Win=501 Len=0 TSval=2641585234 TSecr=3450278328 > 13 10.259634469 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP Dup ACK 2#1] [TCP > ACKed unseen segment] 8081 ? 55372 [ACK] Seq=1 Ack=2 Win=67 Len=0 > TSval=3450288588 TSecr=2641523888 > 14 12.314271024 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1 > 15 12.314321739 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 16 17.386390765 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 17 17.386425101 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 18 20.459197857 172.31.0.2 ? 172.31.0.1 TCP 52 [TCP Dup ACK 1#2] 55372 > ? 8081 [ACK] Seq=1 Ack=1 Win=501 Len=0 TSval=2641595470 TSecr=3450288588 > 19 20.459285646 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP Dup ACK 2#2] [TCP > ACKed unseen segment] 8081 ? 55372 [ACK] Seq=1 Ack=2 Win=67 Len=0 > TSval=3450298788 TSecr=2641523888 > 20 22.475577986 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 21 22.475624696 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 22 23.841368755 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP ACKed unseen > segment] 8081 ? 55372 [FIN, ACK] Seq=1 Ack=2 Win=67 Len=0 TSval=3450302170 > TSecr=2641523888 > 23 23.879099409 172.31.0.2 ? 172.31.0.1 TCP 52 [TCP Previous segment > not captured] 55372 ? 8081 [FIN, ACK] Seq=2 Ack=2 Win=501 Len=0 > TSval=2641598893 TSecr=3450302170 > 24 23.879142697 172.31.0.1 ? 172.31.0.2 TCP 52 [TCP ACKed unseen > segment] 8081 ? 55372 [ACK] Seq=2 Ack=3 Win=67 Len=0 TSval=3450302207 > TSecr=2641598893 > 25 28.386615010 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 26 28.386665972 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 27 33.473644868 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 28 33.473688593 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 29 38.525671893 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 30 38.525723924 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 31 44.465509686 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 32 44.465560790 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 33 49.525705741 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 34 49.525755699 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 35 54.625130298 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 36 54.625181075 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 37 60.545164674 172.31.0.3 ? 172.31.0.1 TCP 46 [TCP Keep-Alive] 1032 ? > 8081 [ACK] Seq=125 Ack=1 Win=1200 Len=1[*Reassembly error*, protocol TCP: New > fragment overlaps old data (retransmission?)] > 38 60.545199295 172.31.0.1 ? 172.31.0.3 TCP 40 [TCP Keep-Alive ACK] > 8081 ? 1032 [ACK] Seq=1 Ack=126 Win=65535 Len=0 > 39 61.532257208 172.31.0.1 ? 172.31.0.3 TCP 40 8081 ? 1032 [FIN, ACK] > Seq=1 Ack=126 Win=65535 Len=0 > 40 61.584988611 172.31.0.3 ? 172.31.0.1 TCP 40 1032 ? 8081 [ACK] > Seq=126 Ack=2 Win=1200 Len=0 > 41 61.624593095 172.31.0.3 ? 172.31.0.1 TCP 40 1032 ? 8081 [FIN, ACK] > Seq=126 Ack=2 Win=1200 Len=0 > 42 61.624629615 172.31.0.1 ? 172.31.0.3 TCP 40 8081 ? 1032 [ACK] Seq=2 > Ack=127 Win=65535 Len=0 > > L'erreur 408 correspond à une erreur client et signale un timout car le proxy > ferme la session en l'absence de trafic identifiable. > > C'est le proxy Nginx qui semble coincer et non pas mon code serveur HTTP > GET/POST (qui est derrière le proxy), qui est plus permissif (puisque > rudimentaire). > > La conf du proxy est basique > > server { > allow 172.31.0.0/16; # VPN network range > deny all; # Reject all others > > listen 8081 default_server; > > server_name 8081.*.*.org; > access_log /var/log/nginx/8081.*.*.org.access.log; > error_log /var/log/nginx/8081.*.*.org.error.log debug; > > location / { > proxy_pass http://localhost:8001; > proxy_http_version 1.1; > proxy_set_header Upgrade $http_upgrade; > } > } > > On dirait que la pile TCP/IP est en vrac. > > Je n'ai pas accès aux sources embarquées dans la carte indus. > > Je n'ai pas l'expertise pour pousser plus loin le détail de l'analyse avec > Tshark. > > La moindre idée sera la bienvenue, au moins pour affiner l'analyse avec > Tshark. Mon canard en plastique personnel, à coté de l'écran, n'est pas un > expert réseau :) > > > Et bonne fêtes à toutes et tous :) > > > -- > Stéphane Rivière > Ile d'Oléron - France > > --------------------------- > Liste de diffusion du FRnOG > http://www.frnog.org/ --------------------------- Liste de diffusion du FRnOG http://www.frnog.org/