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
En vous remerciant par avance et désolé pour la longueur du post,
mais j’ai essayé de mettre un maximum d’informations