Auteur Sujet: Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)  (Lu 2091 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 313
  • Paris (75)
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #12 le: 03 décembre 2024 à 01:01:05 »
oui il manque le détail de ces 4 octets. Wireshark devrait nous dire a quoi ils correspondent.

florentriv

  • Abonné Free fibre
  • *
  • Messages: 17
  • IDF
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #13 le: 03 décembre 2024 à 13:44:08 »
Bonsoir,
l'analyse des trames trop longues vues sur le NAS pourrait éclairer : tcpdump -i en3 -e -w fichier de_trace.pcap, à passer ensuite dans Wireshark pour afficher les détails.
Heu oui, j'avais mis de coté ce test là, désolé.
Je viens de le faire, avec tcpdump sur le nas (donc "après" la freebox pour les requêtes ARP):
nashome# tcpdump -i igb0 -e -w freebox-filaire.pcap arp
nashome# tcpdump -i igb0 -e -w freebox-wifi.pcap arp

Voici une comparison des requêtes ARP dans wireshark:
=> les 4 octets supplémentaires viennent du FCS  :o

EDIT: et je rajoute la comparaison des réponses
« Modifié: 16 décembre 2024 à 21:09:35 par florentriv »

pju91

  • Abonné Free fibre
  • *
  • Messages: 1 008
  • 91
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #14 le: 03 décembre 2024 à 15:26:10 »
Heuu, si je lis bien, tu nous donnes les screenshots de la trame ARP Request, qui génère bien une réponse ARP reply de la part de ton container en .14. donc c'est normal a priori.
En fait, si le FCS de la réponse est invalide, le paquet pourait être droppé par le client s'il tient compte du champ FCS puisqu'il semble y en avoir un dans la réponse ARP également.
Dans ce cas : paquet ARP de réponse ARP droppé => pas de résolution ARP => ça ne fonctionne pas.

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 313
  • Paris (75)
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #15 le: 03 décembre 2024 à 16:47:31 »
Plusieurs pistes:

Ca peut-être un souci de driver.

il y a un flag de config dans les drivers pour remonter ou pas le FCS.
https://man.freebsd.org/cgi/man.cgi?query=igb&sektion=4&manpath=freebsd-release-ports#end
Sur freebsd avec ton driver, dixit la doc c'est:

       hw.em.disable_crc_stripping

regarde sa valeur et essaie de l'inverser pour voir.

par ailleurs ce n'est pas "naturel" de porter l'ip sur l'interface lan quand celle-ci est aussi dans un bridge. En général on met l'ip sur le bridge lui-meme. C'est ce qu'on fait dans le monde Linux et c'est ce qui est aussi indiqué dans la doc de freebsd:

https://docs.freebsd.org/en/books/handbook/advanced-networking/#network-bridging

Citer
If the bridge host needs an IP address, set it on the bridge interface, not on the member interfaces.

Hors je vois que ton inferface lan (igb0) porte l'IP (donc le mécanisme arp dessus)  et le bridge (bridge0 ) n'en a pas (ou alors j'ai mal lu dans ce cas oublions).

Sinon ce n'est pas cela, il faudrait voir si sans bridge, juste l'interface lan ca fait la même chose (on sait que ca fonctionne mais il y a t'il +4 octet aussi en réception et en émission)
Ainsi que sur une autre machine non freebsd sur le lan (est-ce qu'une capture sur un autre pc non freebsb voit aussi +4 octet venant des clients wifi et si oui est que la réponse a +4 aussi). L'idée est de voir si c'est Freebsd qui pose probleme ou un bridge sur Freebsd.




florentriv

  • Abonné Free fibre
  • *
  • Messages: 17
  • IDF
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #16 le: 16 décembre 2024 à 22:44:16 »
Je n'ai pas eu bcp de temps pour ce soucis récemment, mais voici enfin des réponses:

Heuu, si je lis bien, tu nous donnes les screenshots de la trame ARP Request, qui génère bien une réponse ARP reply de la part de ton container en .14. donc c'est normal a priori.
En fait, si le FCS de la réponse est invalide, le paquet pourait être droppé par le client s'il tient compte du champ FCS puisqu'il semble y en avoir un dans la réponse ARP également.
Dans ce cas : paquet ARP de réponse ARP droppé => pas de résolution ARP => ça ne fonctionne pas.
Je viens d'éditer mon message précédent, et j'ai rajouté une comparaison de la réponse ARP (fait sur le même dump qu'avant, cf les dates).
On n'y voit du tout le FCS (dans aucun des cas), mais un trailer de 4 octets dans la réponse au client wifi.
Donc je ne sais pas trop quoi conclure.


il y a un flag de config dans les drivers pour remonter ou pas le FCS.
https://man.freebsd.org/cgi/man.cgi?query=igb&sektion=4&manpath=freebsd-release-ports#end
Sur freebsd avec ton driver, dixit la doc c'est: hw.em.disable_crc_stripping
Par défaut, ce paramètre est à 0 chez moi. Je l'ai mis à 1 (via une config + reboot + confirmé qu'il était vraiment à 1).
Et le soucis est toujours présent :(


par ailleurs ce n'est pas "naturel" de porter l'ip sur l'interface lan quand celle-ci est aussi dans un bridge. En général on met l'ip sur le bridge lui-meme. C'est ce qu'on fait dans le monde Linux et c'est ce qui est aussi indiqué dans la doc de freebsd:
Je confirme: l'ip du NAS est montée sur l'interface physique (igb0), et pas sur le bridge comme cela devrait l'être.
Malheureusement, c'est TrueNas qui gère ça, et je n'ai pas (encore?) trouvé comme lui dire de monter l'IP au bon endroit.
Je garde l'idée en tête.


Sinon ce n'est pas cela, il faudrait voir si sans bridge, juste l'interface lan ca fait la même chose (on sait que ca fonctionne mais il y a t'il +4 octet aussi en réception et en émission)
Ainsi que sur une autre machine non freebsd sur le lan (est-ce qu'une capture sur un autre pc non freebsb voit aussi +4 octet venant des clients wifi et si oui est que la réponse a +4 aussi). L'idée est de voir si c'est Freebsd qui pose probleme ou un bridge sur Freebsd.
Le NAS sans le bridge: je ne pense pas sur de pouvoir le faire facilement, car le bridge est géré par TrueNAS.
Par contre, je peux observer la communication avec le NAS lui-même (ce qui marche tout le temps, même en wifi), donc:
- client wifi & filaire: le même macbook que d'habitude
- serveur: le même NAS, mais je ping l'ip du host du nas directement (ip en .11 qui est sur igb0), pas le container

### Client wifi (✅):
nashome# tcpdump -i igb0 -nn -vvve arp
21:41:30.416103 14:10:zz:zz:zz:cb > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 64: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.8.11 tell 192.168.8.227, length 50
21:41:30.416141 3c:ec:xx:xx:xx:4c > 14:10:zz:zz:zz:cb, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.8.11 is-at 3c:ec:xx:xx:xx:4c, length 28

### Client filaire (✅) :
nashome# tcpdump -i igb0 -nn -vvve arp
21:46:23.433610 38:c9:zz:zz:zz:3b > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.8.11 tell 192.168.8.235, length 46
21:46:23.433650 3c:ec:xx:xx:xx:4c > 38:c9:zz:zz:zz:3b, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Reply 192.168.8.11 is-at 3c:ec:xx:xx:xx:4c, length 28
=> les requêtes ARP (depuis wifi) arrivent "grosses" sur le NAS aussi, mais les réponses sont normales


Et l'autre test que tu propose:
- client wifi & filaire: le macbook habituel
- "serveur": un pc sous windows 10 (chipset Realtek 2.5Gb, donc hard+soft différent du nas) branché directement sur la freebox (comme le NAS)

Un wireshark sur le pc (coté "serveur" donc) montre exactement les mêmes tailles que juste au dessus, notamment client en wifi: requête 64 bytes, réponse: 42 bytes.
Et on retrouve le FCS de 4 bytes (00000000) "unverified" sur la requête, comme quand on ping le container (et que c'est KO).
Par contre, la réponse est "normale".


J'ai essayé de résumé les tailles + infos diverses dans ce comparatif:



Catalyst

  • Abonné FAI autre
  • *
  • Messages: 222
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #17 le: 18 décembre 2024 à 23:50:35 »
En contournement, mettre une entrée ARP statique sur le(s) client(s) vers le container ?
Si, bien sûr, ses adresses MAC et IP ne bougent pas et que ce ne soit pas une charge importante d'administration des clients. Mais tu l'as peut-être déjà envisagé.

florentriv

  • Abonné Free fibre
  • *
  • Messages: 17
  • IDF
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #18 le: 21 décembre 2024 à 19:21:01 »
En contournement, mettre une entrée ARP statique sur le(s) client(s) vers le container ?
Si, bien sûr, ses adresses MAC et IP ne bougent pas et que ce ne soit pas une charge importante d'administration des clients. Mais tu l'as peut-être déjà envisagé.
Je ne suis pas assez désespéré pour vraiment envisager ça  ;D
Mais pour comprendre, j'ai testé vite fait, et ca semble marcher: j'arrive à pinger mon container.
Donc j'imagine que le soucis est assez spécifique aux trames ARP.

florentriv

  • Abonné Free fibre
  • *
  • Messages: 17
  • IDF
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #19 le: 21 décembre 2024 à 19:37:27 »
Ces derniers jours, j'ai creusé ces questions là:
Plusieurs pistes:
Ca peut-être un souci de driver.
[...]
L'idée est de voir si c'est Freebsd qui pose problème ou un bridge sur Freebsd.

Et pour ça, j'ai d'abord cherché & trouvé comment monter l'ip sur le bridge (et plus sur l'interface physique) dans TrueNAS.
Puis, j'ai réalisé pas mal de tests pour comparer, notamment:
  • j'ai mis l'ip sur le bridge ou sur l'interface physique
  • j'ai testé de pinger le NAS et le container (pour voir si tous les ports du bridge sont symétriques)
  • j'ai testé de changer le hardware (carte réseau), notamment en utilisant: un adapteur eth usb et une carte eth PCI-Express, histoire d'utiliser un driver différent
  • et j'ai comparer à chaque fois depuis un client wifi et un client filaire (pour avoir une référence)

Voici mes résultats sur le tableau joint.

Et mes conclusions:
  • => les 2 ports igb0&1 se comportement pareil, donc pas de bug lié à l’ipmi shared
  • => le bug se produit lorsque le traffic passe par le bridge (cf: ip du NAS sur le bridge et container KO en même temps) et pas quand le traffic arrive que sur l’interface physique (ip du NAS sur igb0), donc bug autour du bridge ?
  • => le bug se produit avec les interfaces physiques igb0&1, et pas avec ue0 ou em0 qui semblent tolérer bcp mieux les trames plus larges (+4 ou +8 bytes) sans soucis, donc bug spécifique au driver igb ?

Et la conclusion (dernière ligne):
=> avec la carte PCI-Express (em0), j'ai tout qui fonctionne comme je veux (sauf l'IPMI)  :)
« Modifié: 21 décembre 2024 à 21:02:14 par florentriv »

kgersen

  • Modérateur
  • Abonné Orange Fibre
  • *
  • Messages: 9 313
  • Paris (75)
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #20 le: 22 décembre 2024 à 11:13:56 »
Intéressant. On s'oriente donc vers un bug du driver igb en présence d'un bridge.

il faudrait voir ici: https://bugs.freebsd.org/bugzilla/ si y'a quelque chose de documenter ou ouvrir une nouvelle "issue.

a moins qu'on considere que la faute est coté Apple ...  ;D

florentriv

  • Abonné Free fibre
  • *
  • Messages: 17
  • IDF
Switching KO sur le LAN: wifi->eth (Freebox Pop & jails FreeBSD)
« Réponse #21 le: 22 décembre 2024 à 19:20:51 »
Intéressant. On s'oriente donc vers un bug du driver igb en présence d'un bridge.
Yep, tout à fait. Avec une précision importante:
D'après mes nombreux tests, le soucis se produit lorsqu'on cumule 2 facteurs (ce qui explique que je sois potentiellement le seul ou des seuls à être impacté):
  • Un bridge FreeBSD avec driver igb
  • et un client wifi connecté sur une Freebox Pop

Et la 2ème condition est importante (cf: l'absence de soucis avec mon ancienne config: Livebox + la même config de bridge freebsd igb) !!!
D'ou le bug que j'ai créé chez Free: https://dev.freebox.fr/bugs/task/39919 (en isolant le soucis des +4bytes en wifi seulement, sans parler de freebsd). NB: pas encore de réponse.

il faudrait voir ici: https://bugs.freebsd.org/bugzilla/ si y'a quelque chose de documenter ou ouvrir une nouvelle "issue.
Je n'ai presque pas cherché là bas, car je voulais d'abord bien cerner le soucis qui était assez flou au début.
Et je ne sais pas encore si je vais créer une issue, car j'ai déjà passé bcp de temps sur ce soucis et j'ai peur de ne pas savoir montrer comment reproduire le soucis clairement (cf le bug qui est trigger par les +4bytes de la freebox que l'on ne comprends pas)  :-\

a moins qu'on considere que la faute est coté Apple ...  ;D
Non, rien de spécifique Apple dans mon soucis en fait, j'ai déjà testé et reproduit le soucis avec aucun matériel ni software Apple.
cf: https://lafibre.info/installation-free/probleme-partiel-de-switching-sur-le-lan-freebox-pop-containers-freebsd/msg1096824/#msg1096824


En tout cas, un grand merci pour ton aide (et celles des autres), cela m'a motivé et bien aidé à continuer le debug  8)