Auteur Sujet: Remplacer sa Livebox par un routeur Ubiquiti Edgemax  (Lu 1529798 fois)

0 Membres et 1 Invité sur ce sujet

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2400 le: 22 mars 2016 à 07:11:02 »
J'ai testé mon dhclient depuis (même si je ne suis toujours pas en DHCP), j'ai sniffé ce qui sortait de l'ERL et mes requêtes sortent bien en priorité 6  ;) ). Du coup j'ai aussi compilé un dibbler-client modifié pour IPv6.

Ce qu'il faut:
- pour le vif 832 de l'interface WAN, dans la config : egress-qos "0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7"
- remplacer /sbin/dhclient3 par celui joint (compressé au format tgz) à ce message (faire une sauvegarde de l'ancien au cas où...). S'assurer qu'il a les droits d'exécution.
- rebooter l'erl.




Dam64

  • Pau Broadband Country (64)
  • Abonné FAI autre
  • *
  • Messages: 121
  • Pau 64
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2401 le: 22 mars 2016 à 10:10:04 »
Je test ça ce soir voir ce midi si je trouve la motivation ;)

dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2402 le: 22 mars 2016 à 14:41:02 »
J'ai testé mon dhclient depuis (même si je ne suis toujours pas en DHCP), j'ai sniffé ce qui sortait de l'ERL et mes requêtes sortent bien en priorité 6  ;) ). Du coup j'ai aussi compilé un dibbler-client modifié pour IPv6.

Salut,

Sur quelles sources t'es-tu basé pour cette compilation ?
Perso j'ai utilisé les source ISC de la version présente sur l'ERL :
https://ftp.isc.org/isc/dhcp/4.1-ESV-R7/dhcp-4.1-ESV-R7.tar.gz

Y a-t-il un accès aux sources EdgeOS ?

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2403 le: 22 mars 2016 à 14:47:54 »
Attention, Ubiquiti a des modifications perso sur le client DHCP ISC.

Moi je suis parti de leur version pour le firmware 1.8. C'est sous licence GPL, donc il sont obligés de publier les sources, ici : https://www.ubnt.com/download/edgemax/default/default/erlite-3erpoe-5-firmware-v180  (Download GPL archive).

Dam64

  • Pau Broadband Country (64)
  • Abonné FAI autre
  • *
  • Messages: 121
  • Pau 64
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2404 le: 22 mars 2016 à 15:36:52 »
Ton dhclient fonctionne à merveille ;)

dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2405 le: 22 mars 2016 à 15:39:54 »
Moi je suis parti de leur version pour le firmware 1.8. C'est sous licence GPL, donc il sont obligés de publier les sources, ici : https://www.ubnt.com/download/edgemax/default/default/erlite-3erpoe-5-firmware-v180  (Download GPL archive).

En effet je m'en doutais mais je n'avais pas trouvé leur lien ! Merci de ces infos.

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2406 le: 22 mars 2016 à 15:43:54 »
Ton dhclient fonctionne à merveille ;)
Génial, bonne nouvelle et merci pour le test  8)

dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2407 le: 22 mars 2016 à 16:24:00 »
Génial, bonne nouvelle et merci pour le test  8)
Par curiosité, quels sont les CFLAGS que tu as utilisé pour compiler ?

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2408 le: 22 mars 2016 à 16:45:52 »
Je n'en sais rien.  ;D

Ubiquiti fournit le code source sous forme d'un package source debian, je me suis contenté de recompiler le package avec la commande "dpkg-buildpackage -us -uc" après avoir patché le code...

(J'utilise une VM Qemu MIPS pour compiler sans avoir a me casser la tête avec la cross-compilation, ni compiler directement sur l'ERL).


dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2409 le: 22 mars 2016 à 18:34:16 »
(J'utilise une VM Qemu MIPS pour compiler sans avoir a me casser la tête avec la cross-compilation, ni compiler directement sur l'ERL).

Sur l'edgemax impossible d'utiliser "dpkg-buildpackage -us -uc".

Pour ma part j'ai utilisé :
debian/autogen.h
./configure CFLAGS="-O2 -Wall -D_GNU_SOURCE"
make

Après avoir ajouté :
ip.ip_tos = IPTOS_CLASS_CS6;dans common/packet.c

J'ai bon ?  :)

En tout cas cela me produit bien un dhclient utilisable.

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 292
  • Antibes (06) / Mercury (73)
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2410 le: 22 mars 2016 à 18:44:18 »
Après avoir ajouté :
ip.ip_tos = IPTOS_CLASS_CS6;dans common/packet.c

J'ai bon ?  :)
Non, ça ne marchera pas, le kernel ne mappe ip_tos sur skb->priority que pour les paquets qui traversent le routeur, pas pour les paquets dont l'origine est le routeur.

Ce qu'il faut faire, c'est fixer directement la priorité skb (SO_PRIORITY) sur la socket (dans common/lpf.c) :

int if_register_lpf (info)
        struct interface_info *info;
{
        int val;
        int sock;
        struct ifreq tmp;
        struct sockaddr_ll sa;

        /* Make an LPF socket. */
        if ((sock = socket(PF_PACKET, SOCK_RAW,
                           htons((short)ETH_P_ALL))) < 0) {
                if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
                    errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
                    errno == EAFNOSUPPORT || errno == EINVAL) {
                        log_error ("socket: %m - make sure");
                        log_error ("CONFIG_PACKET (Packet socket) %s",
                                   "and CONFIG_FILTER");
                        log_error ("(Socket Filtering) are enabled %s",
                                   "in your kernel");
                        log_fatal ("configuration!");
                }
                log_fatal ("Open a socket for LPF: %m");
        }

        val = 1;
        setsockopt(sock, SOL_PACKET, PACKET_AUXDATA, &val, sizeof(val));

        /* ZOC: Set SO_PRIORITY (skb->priority in Linux kernel) to 6.
            vlan code will then map this priority to 802.1p priority according
            to egress configuration for the VLAN */
        val = 6;
        setsockopt(sock, SOL_SOCKET, SO_PRIORITY, &val, sizeof (val));
        ...




dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Remplacer sa Livebox par un routeur Ubiquiti Edgemax
« Réponse #2411 le: 22 mars 2016 à 18:55:40 »
Ce qu'il faut faire, c'est fixer directement la priorité skb (SO_PRIORITY) sur la socket (dans common/lpf.c) :
Je n'aurais pas trouvé tout de suite... Merci pour la correction !