Auteur Sujet: Reverse Engineering : Nouveau système de génération de l'option 90 DHCP  (Lu 220521 fois)

0 Membres et 1 Invité sur ce sujet

hj67

  • Abonné Orange Fibre
  • *
  • Messages: 358
  • 67
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #336 le: 25 octobre 2018 à 23:55:53 »
Toujours dibbler, mais j'aimerais un truc un peu plus maintenu. Jusqu'à présent c'était le plus simple à patcher pour la CoS notamment, mais je pense changer pour une solution où la CoS est appliquée par mon switch (qui sait le faire, autant s'en servir). Si je pouvais arriver à utiliser le firmware de mon ER4 sans aucune modification ça serait top.
En IPv4 et Ipv6 sur la même interface ? Certains switchs ont des limitations de ce genre là. Quel modèle de switch ?

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #337 le: 26 octobre 2018 à 06:28:31 »
Mon switch (ES-24-LITE) ne peut pas appliquer une policy IPv6 et IPv4 sur le même port. Par contre il peut appliquer une policy en in ou en out (en théorie d'après la doc,  je n'ai pas encore essayé). L'idée c'est donc d'appliquer la QoS pour IPv4 en in sur le port relié au routeur, et en out sur le port qui va à l'ONT pour IPv6.

Edit:

Apparemment pas de policy en out sur mon switch, même s'il y a une commande CLI pour le faire :( https://community.ubnt.com/t5/EdgeSwitch/Failed-to-attach-one-or-more-policies-to-the-interface/td-p/1521464 https://community.ubnt.com/t5/EdgeSwitch/DiffServ-service-policy-out/td-p/2440719

Quoi qu'il en soit, pour l'instant il est impossible de faire de l'IPv6 chez Orange avec EdgeOS sans modifications. Donc à la limite je peux me contenter de faire la CoS IPv4 sur le switch et d'installer dibbler (ou autre) pour IPv6.
« Modifié: 26 octobre 2018 à 08:57:11 par zoc »

stefauresi

  • Abonné Bbox fibre
  • *
  • Messages: 528
  • FTTH 2G/600Mb sur Cergy (95) Bouygues Ultym Fibre
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #338 le: 26 octobre 2018 à 14:06:51 »
J'ai un SG500-28 de chez Cisco qui me sert a rien faudrait que je regarde s'il est capable de faire ça

Haribo_76

  • Abonné Orange Fibre
  • *
  • Messages: 12
  • FTTH 1G/s Antony 92
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #339 le: 26 octobre 2018 à 21:06:24 »
pour sg-500 de cisco à tester,

Class of service

Port based; 802.1p VLAN priority based; IPv4/v6 IP precedence/ToS/DSCP based; DiffServ; classification and re-marking ACLs, Trusted QoS

Queue assignment based on differentiated services code point (DSCP) and class of service (802.1p/CoS)


Sur la gamme classique de cisco, seul les switch catalyst de serie 3000 et supérieur peuvent avoir la COS en IN sur un vlan (pas en out), c'est à dire un switch de niveaux 3 et non un switch de niveaux 2 amélioré, un 2960L (fanless) ne sait faire de le cos que sur une interface et non un vlan

Perso j'ai un 3560CX (fanless), j'ai réussi à avoir une ip pour la partie ipv4 (attention cela ne fonctionne pas avec un dhclient modifié) mais pas ipv6. je dois refaire des tests pour la partie ipv6. 

pour les switch fanless de la gamme classique les versions poe sont des grilles pain


KalNightmare

  • Abonné Orange Fibre
  • *
  • Messages: 128
  • Massy 91
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #340 le: 27 octobre 2018 à 09:57:39 »
Le SG350-28, fonctionne très bien pour la COS en sortie sur le port SFP avec SFP-ONT en ipv4 et ipv6. Donc pour le SG500 sa doit fonctionner.

Il faut d'abord créer les ACE sur MAC/IPV4 et IPV6 dans ACCES-CONTROL, puis aller dans QOS ADVANCED, et faire une CLASS MAPPING, puis toujours dans QOS ADVANCED créer une POLICY, puis faire une POLICY CLASS MAP. Et après reste plus qu'a faire le POLICY BINDING en sortie.

Je met les screens si ça intéresse quelqu'un (ne pas tenir compte du vlan840, c'est parce que c'est le switch qui fait l'igmp chez moi)

hj67

  • Abonné Orange Fibre
  • *
  • Messages: 358
  • 67
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #341 le: 28 octobre 2018 à 09:24:40 »
Vu que ça parle switch, sur mon Dlink DGS-1210-10P (8 ports RJ45 + 2 SFP dont un utilisé par l'ONT-SFP Orange), je peux également mettre des ACL IPv4 + IPv6 sur un même port.
Autant en IPv4, ça fonctionne mais pas en IPv6 (pas de réponse aux requêtes Dibbler).

Voici la configuration mise en place:
Création de 2 ACL (les ACL se positionnent sur un port et non un vlan):
- une ACL IPv4: DHCPv4_SetCoSto6
- une ACL IPv6: DHCPv6_SetCoSto6

Dans l'ACL "DHCPv4_SetCoSto6" (du coup le nom n'est plus adéquat car j'ai rajouté une seconde règle pour l'IGMP par la suite, mais on ne peut pas renommer une ACL sans tout supprimer et recréer), j'ai 2 règles:
- règle 1 pour forcer la priorité 6 aux requêtes DHCPv4
- règle 2 pour forcer la priorité 5 au flux IGMP (pour la TV)
   
   

Dans l'ACL "DHCPv6_SetCoSto6", j'ai 1 règle:
- règle 1 pour forcer la priorité 6 aux requêtes DHCPv6
   

Et j'applique tout ça sur un port :
   


Mais comme je l'ai indiqué plus haut: en IPV4 tout est OK (DHCP, flux TV) mais en IPv6 pas de réponse via Dibbler. Je vois bien le flux passer avec un Wireshark, mais la priorité 6 en IPv6 n'est pas appliquée.

J'ai déjà essayé plusieurs choses sans succès:
- appliquer l'ACL IPv6 seul sans l'ACL IPv4
- appliquer les ACL sur le port SFP fibre ou sur le port RJ45 du routeur

Pour le moment, je sèche pour l'IPv6.
Un bug du firmware Dlink est possible ? J'ouvrirai bien un ticket chez Dlink, mais il faut que je sois sur de mon coup.
« Modifié: 28 octobre 2018 à 11:11:32 par hj67 »

xavierg

  • Abonné Orange Fibre
  • *
  • Messages: 96
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #342 le: 28 octobre 2018 à 16:23:07 »
Si je mets des côté les histoires de configuration de switchs, je note que Dibbler reste assez utilisé malgré son statut de non-maintenance...

KalNightmare

  • Abonné Orange Fibre
  • *
  • Messages: 128
  • Massy 91
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #343 le: 29 octobre 2018 à 17:46:44 »
Hj67, peux-tu voir pour rajouter une ACL type MAC qui filtre que le vlan832 ? parce que cela ne doit s'appliquer que sur le vlan 832.

hj67

  • Abonné Orange Fibre
  • *
  • Messages: 358
  • 67
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #344 le: 30 octobre 2018 à 00:39:12 »
Je ne crois pas avoir cette possibilité.
Si je filtre sur le 832, je perds le 840 pour la TV, non ? (où j'applique la prio 5 sur le flux IGMP).
Je regarderais à l'occasion.

Strangelovian

  • Abonné Orange Fibre
  • *
  • Messages: 58
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #345 le: 01 novembre 2018 à 12:22:48 »
xavierg>
J'ai testé ton patch en ipv4 et ipv6, ça marche parfaitement! 8)
Les deux auth successives bootp et dhcpv6 sont différentes (alors que la LB envoie la même pendant un certain temps), mais ça ne semble pas gêner les équipements orange.

As-tu essayé d'altérer la TOS (COS CS6) et la priorité 802.1q (6) dans le code de isc-dhcp?

J'arrive sans problème à envoyer COS=CS6. La socket LPF PF_PACKET SOCK_RAW ne bronche pas.
Par contre, même si j'ai configuré le VLAN egress map à "6:6" de mon interface orange 832, et que j'ajoute dans le code LPF un setsockopt (sock, SOL_SOCKET, SO_PRIORITY, &tag ... (int tag=6) sur la socket LPF, la VLAN priority capturée par wireshark reste 0.

(seul work around qui marche pour moi pour l'instant: mapping egress à "0:6", et tout le traffic sort avec la prio 802.1q égale à 6. Il faut utiliser netfilter avec "classify set-class" pour remettre le reste du traffic "non network control" sur une autre classe, non mappée dans le egress map, pour éviter que tout soit envoyé à orange avec la prio 6, sinon perte de débit ...)

xavierg

  • Abonné Orange Fibre
  • *
  • Messages: 96
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #346 le: 01 novembre 2018 à 14:51:20 »
J'ai testé ton patch en ipv4 et ipv6, ça marche parfaitement! 8)
Cool, merci pour le feedback :)

Citer
Les deux auth successives bootp et dhcpv6 sont différentes (alors que la LB envoie la même pendant un certain temps), mais ça ne semble pas gêner les équipements orange.
Si ça s'avère nécessaire, on pourra implèmenter la conservation de l'auth générée pendant un certain temps dans le script d'auth... C'est l'avantage de déléguer le travail à un exécutable externe, ça ouvre pas mal de possibilités.

Citer
As-tu essayé d'altérer la TOS (COS CS6) et la priorité 802.1q (6) dans le code de isc-dhcp?
Moi non : je me contente de jouer avec vconfig et Netfilter/iptables comme décrit dans d'autres topics de ce forum. Mon script /etc/orange/up pour monter l'interface réseau vers l'ONT est le suivant :
#!/bin/bash
script_filepath="$(readlink -f "${0}")"
script_dirpath="$(dirname "${script_filepath}")"

IFACE="${1:-eth0.832}"
DHCLIENT_CONF="${script_dirpath}/dhclient.conf"

# Ensure DHCP packets get sent with VLAN priority 6:
# Step 1: map skb to VLAN priorities:
#   skb 0 (default): VLAN priority 6; used for packets we could not target
#   with iptables:
vconfig set_egress_map "${IFACE}" 0 6
#   skb 1: VLAN priority 0 (all packets but those assigned to skb 6)
vconfig set_egress_map "${IFACE}" 1 0
#   skb 6: VLAN priority 6
vconfig set_egress_map "${IFACE}" 6 6

# Step 2: classify traffic accordingly:
iptables --table 'mangle' --append 'POSTROUTING' --out-interface "${IFACE}"                               --jump 'CLASSIFY' --set-class '0000:0001'
iptables --table 'mangle' --append 'POSTROUTING' --out-interface "${IFACE}" --protocol 'udp' --dport '67' --jump 'CLASSIFY' --set-class '0000:0006'

# Run dhclient with the Orange-specific configuration file:
dhclient -v -cf "${DHCLIENT_CONF}" "${IFACE}"
dhclient_rc=$?

# There used to be extra steps here, but they have been moved to dhclient
# hooks.

exit "${dhclient_rc}"
Ça correspond, si je ne m'abuse, à ce que tu décris à la fin de ton post. Je trouve aussi que ça n'est pas très intuitif mais ça fait le boulot depuis un bon moment et je n'ai jamais cherché à patcher isc-dhcp-client juste pour ça. Cela dit, tu n'es pas le premier à patcher isc-dhcp-client pour ce besoin : zoc avait fait le même patch (juste un setsockopt ajouté dans lpf.c), et mystogan l'utilise cumulé à mon patch pour generate().

Strangelovian

  • Abonné Orange Fibre
  • *
  • Messages: 58
Reverse Engineering : Nouveau système de génération de l'option 90 DHCP
« Réponse #347 le: 01 novembre 2018 à 15:03:28 »
Ça correspond, si je ne m'abuse, à ce que tu décris à la fin de ton post. Je trouve aussi que ça n'est pas très intuitif mais ça fait le boulot depuis un bon moment et je n'ai jamais cherché à patcher isc-dhcp-client juste pour ça. Cela dit, tu n'es pas le premier à patcher isc-dhcp-client pour ce besoin : zoc avait fait le même patch (juste un setsockopt ajouté dans lpf.c), et mystogan l'utilise cumulé à mon patch pour generate().
Ah, je suis preneur du bout de code, si quelqu'un a réussi à dompter la priorité skb (socket buffer linux) de la socket LSP de isc-dhclient (socket(PF_PACKET, SOCK_RAW, htons((short)ETH_P_ALL).