Remplacer ma Livebox par un système sous Debian


#1

Hello à toutes et tous,
Pour un projet, j’aimerais remplacer ma Livebox par un système sous Débian.

Dans un premier temps j’ai suivi les instructions récupérées sur ses sites :
http://shaarli.guiguishow.info/?XHaGeA
En m’aidant de ce lien, j’ai fait mes fichiers interfaces et dhclient.conf

auto eth0 orange

iface eth0 inet manual
  post-up /sbin/ip l s up dev $IFACE

iface orange inet manual
  pre-up /sbin/ip l a link eth0 name $IFACE type vlan id 832
  post-up /sbin/dhclient $IFACE
  pre-down /sbin/dhclient -r $IFACE || true
  post-down /sbin/ip l d $IFACE

    option rfc3118-authentication code 90 = string;

interface "orange" {
  send vendor-class-identifier "sagem";
  send user-class "+FSVDSL_livebox.Internet.softathome.Livebox3";
  send rfc3118-authentication <censuré>;
  request subnet-mask, routers,
    domain-name, broadcast-address, dhcp-lease-time,
    dhcp-renewal-time, dhcp-rebinding-time,
    rfc3118-authentication;
  supersede domain-name-servers 89.234.141.66, 89.234.186.18;
}

Pour le paramètre option 90 dhcp, j’ai utilisé ce lient dans un premier temps :
https://jsfiddle.net/kgersen/3mnsc6wy/embedded/result/

Pour la priorité 6 sur le vlan j’ai utilisé ce lient :
http://shaarli.guiguishow.info/?GKLE7w

Pour ce faire, au lieu de créer l’interface avec la commande

/sbin/ip l a link eth0 name $IFACE type vlan id 832

il faut utiliser la commande

/sbin/ip l a link eth0 name $IFACE type vlan id 832 egress-qos-map 0:clock6:

Ensuite, il faut ajouter la règle suivante :

sudo iptables -t mangle -I POSTROUTING -o orange -j CLASSIFY --set-class 0:1

J’ai fait un

ifup -a

et ensuite un

dhclient /etc/dhcp/dhclient.conf

Et bingo ça a fonctionnait du premier coups.

Pour générer le paramètre option 90 dhcp via un script, j’ai voulu m’aider de ce site :
https://lafibre.info/remplacer-livebox/cacking-nouveau-systeme-de-generation-de-loption-90-dhcp/msg580713/#msg580713

#!/bin/bash

login='fti/abcdefg'
pass='hijklmn'

tohex() {
  for h in $(echo $1 | sed "s/\(.\)/\1 /g"); do printf %02x \'$h; done
}

addsep() {
  echo $(echo $1 | sed "s/\(.\)\(.\)/:\1\2/g")
}

r=$(dd if=/dev/urandom bs=1k count=1 2>&1 | md5sum | cut -c1-16)
id=${r:0:1}
h=3C12$(tohex ${r})0313$(tohex ${id})$(echo -n ${id}${pass}${r} | md5sum | cut -c1-32)

Ca m’a bien généré l’identifiant à transmettre.
Du coups,j’ai refait tous mes fichiers interfaces et dhclient.conf.
J’ai refait les même manipulations que précédemment et la j’ai eu un message d’erreur après le dhclient /etc/dhcp/dhclient.conf

root@diagbox:~# dhclient /etc/dhcp/dhclient.conf
/etc/dhcp/dhclient.conf: interface name too long (is 23)

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

J’ai refait toutes les manipulations en générant l’identifiant via le générateur graphique( le lien un peu plus haut)
Et là, encore la même erreur.

Du coups je me suis inspiré des sites ci-dessous pour tenter une autre approche :
Pour les fichiers interfaces et dhclient
https://lafibre.info/remplacer-livebox/remplacer-la-livebox-sans-pppoe/msg339795/#msg339795

/etc/network/interfaces

On ajoute les lignes suivantes au fichier /etc/network/interfaces :

auto eth0
iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        broadcast 192.168.1.254

auto eth0.832
iface eth0.832 inet manual
    up dhclient -cf /etc/dhcp/dhclient.conf -v -pf /var/run/dhclient.vlan832.pid -lf /var/lib/dhcp/dhclient.vlan832.leases eth0.832
    post-down dhclient -x -pf /var/run/dhclient.vlan832.pid || true

iface eth0.832 inet6 manual

auto eth1
iface eth1 inet static
    address 192.168.0.100

touch /var/lib/dhcp/dhclient.vlan832.leases

Avant de tenter de démarrer l’interface, il faut configurer dhclient.

Configuration de dhclient

Note : pour des raisons obscures liées à mes différentes tentatives, dans ma configuration j’utilise la dernière version (4.3.4) de la suite ISC DHCP (comprenant notamment dhclient) compilée à partir des sources officielles. La version officielle de Debian wheezy est en ce moment la 4.2.2. Au final, je pense que mes échecs avec la 4.2.2 étaient uniquement dus à des erreurs de configuration et je ne pense pas qu’il soit nécessaire de s’embêter à récupérer la dernière version. À l’avenir, j’essaierai de repasser sur le paquet Debian isc-dhcp-client 4.2.2.

Voici ma configuration (/etc/dhcp/dhclient.conf) :

option rfc3118-authentication code 90 = string;

interface "eth0.832" {
        send vendor-class-identifier "sagem";
        #send dhcp-client-identifier xx:xx:xx:xx:xx:xx;
        send user-class "+FSVDSL_livebox.Internet.softathome.Livebox3";
        send rfc3118-authentication 00:00:00:00:00:00:00:00:00:00:00:66:74:69:2f:xx:xx:xx:xx:xx:xx:xx;
        request subnet-mask, routers,
                domain-name, broadcast-address, dhcp-lease-time,
                dhcp-renewal-time, dhcp-rebinding-time,
                rfc3118-authentication;
        prepend domain-name-servers 8.8.8.8, 8.8.4.4;
}

Et pour la priorité 6 du vlan :
https://lafibre.info/remplacer-livebox/remplacer-la-livebox-sans-pppoe/

for i in 0 1 2 3 4 5 6 7; do
## on définit pour chaque file une priorité
    vconfig set_egress_map eth0.832 $i $i >/dev/null
done
## On modifie la priorité de la file 1 à 0 c'est là qu'on renverra tout nos paquets, la file 0 qui est celle par défaut passe à 6
    vconfig set_egress_map eth0.832 1 0 >/dev/null
    vconfig set_egress_map eth0.832 0 6 >/dev/null

Et encore la même erreur.

J’ai essayé également en ne faisant pas dhclient /etc/dhcp/dhclient.conf mais l’interface wan ne récupère pas d’ip :

eth0      Link encap:Ethernet  HWaddr 0c:9d:92:0c:3f:54
          inet addr:192.168.1.100  Bcast:192.168.1.254  Mask:255.255.255.0
          inet6 addr: fe80::e9d:92ff:fe0c:3f54/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:993 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3456 (3.3 KiB)  TX bytes:63290 (61.8 KiB)
          Interrupt:44

eth0.832  Link encap:Ethernet  HWaddr 0c:9d:92:0c:3f:54
          inet6 addr: fe80::e9d:92ff:fe0c:3f54/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:105 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:6318 (6.1 KiB)

eth0.832:avahi Link encap:Ethernet  HWaddr 0c:9d:92:0c:3f:54
          inet addr:169.254.5.134  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5640 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5640 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:501594 (489.8 KiB)  TX bytes:501594 (489.8 KiB)

wlan0     Link encap:Ethernet  HWaddr 80:c5:f2:fe:5d:09
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::82c5:f2ff:fefe:5d09/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17052 errors:0 dropped:10509 overruns:0 frame:0
          TX packets:6713 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1372226 (1.3 MiB)  TX bytes:910122 (888.7 KiB)

Si quelqu’un a une solution je suis preneur :slight_smile:
En vous remerciant par avance et désolé pour la longueur du post,
mais j’ai essayé de mettre un maximum d’informations


#2

Hello,
Je m’auto réponds :slight_smile:

mon erreur vient du fichier interfaces :
source /etc/network/interfaces.d/*

# Local loopback
auto lo
iface lo inet loopback

auto eth0 orange

iface eth0 inet manual
  post-up /sbin/ip l s up dev $IFACE

iface orange inet manual
  pre-up /sbin/ip l a link eth0 name $IFACE type vlan id 832 egress-qos-map 0:6
  post-up dhclient -cf /etc/dhcp/dhclient.conf -v -pf /var/run/dhclient.orange.pid -lf /var/lib/dhcp/dhclient.orange.leases orange

Orange, est l’interface utilisant le vlan 832.