La Fibre
Datacenter et équipements réseaux => Routeurs =>
Remplacer la LiveBox par un routeur => Discussion démarrée par: mathew.lear.fr le 19 avril 2016 à 08:00:04
-
Premiere chose, merci a thegibs et renaud07.
Jai creer cette poste pour regroupe tous les info qui se trouve adroit et a gauche...
1st step is to configure the GS108Tv2
Bonjour,
Tout d'abord merci aux contributeurs du thread Ubiquity (zoc, kgersen, florian, MikeTheFreeMan…) qui ont fourni la recherche et les éléments nécessaires à la mise en œuvre de ce tuto. Ce post sera mis à jour en fonction des premiers retours.
L'ambition de ce post est de proposer une solution *générique* permettant de prendre en charge le nouveau mode de connexion Fibre Livebox (DHCP) avec des routeurs ne supportant pas le changement de CoS (Class of Service) nécessaire en particulier pour les échanges DHCP indispensables à l'obtention d'une adresse IP.
Pour rappel, les demandes DHCP depuis votre équipement doivent être marqués en CoS=6 (sauf quelques exceptions remontées par quelques chanceux abonnés, si ce n'est pas le cas vous n'aurez… pas d'adresse donc pas d'Internet).
Notoirement, le routeur Ubiquity ERL ne sait pas nativement faire ce travail (il existe des solutions à base de patchs et de compilation custom, voir le thread dédié au routeur). Beaucoup d'autres routeurs 'grand public' auront ce soucis.
Pour ce premier essai (testé avec succès au moins pour la partie Internet à ce jour), l'objectif est de mettre en œuvre le schéma suivant:
Câblage:
Port 1 du switch Netgear GS108Tv2 => Port WAN du routeur.
Switch Netgear GS108Tv2 port 2 => ONT
Routeur (port à dédier à la Livebox) => Livebox Play port WAN (Internet)
Livebox Play (port "TV") => Boîtier Livebox TV
Livebox Play (port RJ11) => Téléphone
Routeur (port(s) à dédier à votre LAN interne) => switch (réutiliser le Netgear sur les ports 3 à 8 est tout à fait possible) => vos appareils locaux
Ca donne ceci pour le câblage:
(http://thegibs.free.fr/netgeargs108tv2/cablage.jpg)
Configuration du switch: se connecter à l'adresse IP du switch sur votre réseau interne. Mettre à jour le firmware (ici: http://www.netgear.com/support/product/GS108Tv2 (http://www.netgear.com/support/product/GS108Tv2)). Ensuite (reboot), procéder à la configuration suivante.
Choisir les ports à utiliser. Dans cet exemple, on prendra le port 1 (g1) pour le routeur, et le port 2 (g2) pour l'ONT.
Créer les VLANs
(http://thegibs.free.fr/netgeargs108tv2/1.jpg)
Assigner les VLANs aux 2 interfaces. Ici sur le VLAN 832, on coche les ports à utiliser. Procéder de même pour les VLANs 838 et 840 précédemment créés.
(http://thegibs.free.fr/netgeargs108tv2/2.jpg)
Enfin, restreindre tout traffic sur les 2 ports uniquement aux VLANs
(http://thegibs.free.fr/netgeargs108tv2/3.jpg)
Maintenant, passons à la QoS.
Créer une classe. Il suffit de lui donner un nom (reconnaissable :) ) et de faire 'Add' en bas à droite.
(http://thegibs.free.fr/netgeargs108tv2/4.jpg)
Cliquer sur le nom de la classe:
(http://thegibs.free.fr/netgeargs108tv2/5.jpg)
Il faut maintenant définir des critères discriminants, qui permettront d'identifier le trafic concerné par cette classe. Onn choisira le plus générique possible, à savoir un trafic du port 68 vers 67, sur le VLAN 832. Puis 'Apply' (attention ça n'est pas modifiable, il faut supprimer/recréer la classe si besoin, après l'avoir détachée des Policy et Service Configuration associées (voir plus loin).
(http://thegibs.free.fr/netgeargs108tv2/6.jpg)
Il nous faut maintenant créer une Policy Configuration (en clair: que doit-on faire de ce trafic défini dans la classe). A nouveau, pour commencer on lui donne juste un nom, puis on fait 'Add'.
[EDIT]: donner un nom générique à la Policy, car il sera peut-être nécessaire d'en créer plusieurs associations avec les classes, ce nom ne doit donc plutôt pas être attaché à "l'action" de la Policy, mais plutôt au profil de connexion recherché (Internet, Orange,...). Les images seront mises à jour lorsque d'autres policies seront ajoutées au tuto. Merci à MikeTheFreeMan.
(http://thegibs.free.fr/netgeargs108tv2/7.jpg)
Ensuite, on clique sur le nom de la policy créée:
(http://thegibs.free.fr/netgeargs108tv2/8.jpg)
Et on configure "l'action" à effectuer, en l'occurrence, marquer la CoS à 6. Rien d'autre, et 'Apply'.
(http://thegibs.free.fr/netgeargs108tv2/9.jpg)
Ensuite, direction la Service Configuration. Nous allons associer cette Policy Configuration à un port 'in' dédié (ici le g1). Puis 'Apply'.
(http://thegibs.free.fr/netgeargs108tv2/10.jpg)
Et voilà pour le moment.
Il manque encore:
- Le marquage CoS du trafic voix (CoS=5)
- Le marquage CoS d'autres types de trafic (ICMP, IGMP…)
- L'IPv6, mais pour le routeur ERL il est probable que cela exige une évolution de l'OS, le switch ne pourra pas influer (voir contributions dans ce fil)
D'après les premiers retours ce n'est pas nécessaire, mais cela permettra de se rapprocher au mieux de la configuration de la Livebox.
Pour ma part, je n'ai pas encore testé car je ne maîtrise pas encore bien l'ERL pour le configurer en "parent" de la Livebox. Indiquez en réponse vos tests et partagez votre expérience avec tel ou tel routeur !
EDIT: une ressource équivalente trouvée par florian: http://flyovercountry.org/2014/02/google-fiber-gigabit-speeds-your-router-part-2-qos/ (http://flyovercountry.org/2014/02/google-fiber-gigabit-speeds-your-router-part-2-qos/)
Merci encore à tous les contributeurs.
-
2nd Step is to modify /opt/vyatta/sbin/vyatta-interfaces.pl as shown below (to do this the easiest way is to use vi via putty):
OK, c'est une bonne nouvelle.
Pour l'ERL il suffira donc de patcher le fichier perl qui génère le fichier de configuration DHCP. Pas très difficile.
Update: Alors, pour un firmware 1.7 (et sans doute suivants), il faut modifier le fichier /opt/vyatta/sbin/vyatta-interfaces.pl. Rechercher la ligne
$output .= "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n\n";
et rajouter en dessous
$output .= "option rfc3118-auth code 90 = string;\n\n";
-
3rd step is to configure your erl3 with the correct settings (see image in 1st post for wiring details):
Use this tool to generate your own "send rfc3118-auth" https://jsfiddle.net/kgersen/45zudr15/embedded/result/
Add the output from above to line 127 of the config.boot
Make sure that you add your own login details on line 254 otherwise you wont be able to login
hers is my config.boot which gives the following setup, after a reboot my erl takes up to 5 minutes to get its IP address, please be patient, once you have an IP its also a good idea to reboot your livebox via the power button:
(http://i.imgur.com/E65Ikgi.jpg)
(http://i.imgur.com/XoU7VmL.jpg)
firewall {
all-ping enable
broadcast-ping disable
ipv6-receive-redirects disable
ipv6-src-route disable
ip-src-route disable
log-martians enable
name WAN_IN {
default-action drop
description "WAN to internal"
enable-default-log
rule 10 {
action accept
description "Allow established/related"
log disable
protocol all
state {
established enable
invalid disable
new disable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
log disable
protocol all
state {
established disable
invalid enable
new disable
related disable
}
}
}
name WAN_LOCAL {
default-action drop
description "WAN to router"
rule 10 {
action accept
description "Allow established/related"
log disable
protocol all
state {
established enable
invalid disable
new disable
related enable
}
}
rule 20 {
action drop
description "Drop invalid state"
log disable
protocol all
state {
established disable
invalid enable
new disable
related disable
}
}
}
options {
mss-clamp {
interface-type pppoe
interface-type pptp
interface-type tun
mss 1452
}
}
receive-redirects disable
send-redirects enable
source-validation disable
syn-cookies enable
}
interfaces {
bridge br0 {
aging 300
bridged-conntrack disable
hello-time 2
max-age 20
priority 0
promiscuous disable
stp false
}
bridge br1 {
aging 300
bridged-conntrack disable
hello-time 2
max-age 20
priority 0
promiscuous disable
stp false
}
ethernet eth0 {
duplex auto
speed auto
vif 832 {
address 192.168.2.1/24
description LIVEBOX
}
vif 838 {
bridge-group {
bridge br0
}
egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
}
vif 840 {
bridge-group {
bridge br1
}
egress-qos "0:5 1:5 2:5 3:5 4:5 5:5 6:5 7:5"
}
}
ethernet eth1 {
duplex auto
speed auto
vif 832 {
address dhcp
address dhcpv6
description "Internet VoIP et Canal 2"
dhcp-options {
client-option "send vendor-class-identifier "sagem";"
client-option "send user-class "\053FSVDSL_livebox.Internet.softathome.Livebox3";"
client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:66:74:69:2F:39:63:32:XX:XX:XX:XX;"
client-option "request dhcp-lease-time, dhcp-renewal-time, dhcp-rebinding-time, domain-search, rfc3118-auth, SIP;"
default-route update
default-route-distance 210
name-server update
}
egress-qos "0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7"
firewall {
in {
name WAN_IN
}
local {
name WAN_LOCAL
}
}
ipv6 {
address {
autoconf
}
dup-addr-detect-transmits 1
}
}
vif 838 {
bridge-group {
bridge br0
}
description VoD
egress-qos "0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4"
}
vif 840 {
bridge-group {
bridge br1
}
description "Canal 1 et zapping"
egress-qos "0:5 1:5 2:5 3:5 5:5 6:5 7:5"
}
}
ethernet eth2 {
address 192.168.66.1/24
duplex auto
speed auto
}
loopback lo {
}
}
protocols {
igmp-proxy {
disable-quickleave
interface br1 {
alt-subnet 0.0.0.0/0
role upstream
threshold 1
}
interface eth0 {
alt-subnet 0.0.0.0/0
role downstream
threshold 1
}
}
}
service {
dhcp-server {
disabled false
global-parameters "option rfc3118-auth code 90 = string;"
global-parameters "option SIP code 120 = string;"
hostfile-update disable
shared-network-name LAN {
authoritative disable
subnet 192.168.66.0/24 {
default-router 192.168.66.1
dns-server 192.168.66.1
dns-server 8.8.8.8
lease 86400
start 192.168.66.50 {
stop 192.168.66.199
}
}
}
shared-network-name LIVEBOX {
authoritative enable
subnet 192.168.2.0/24 {
default-router 192.168.2.1
dns-server 81.253.149.9
dns-server 80.10.246.1
domain-name orange.fr
lease 86400
start 192.168.2.100 {
stop 192.168.2.200
}
subnet-parameters "option rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30;"
subnet-parameters "option SIP 00:06:73:62:63:74:33:67:03:41:55:42:06:61:63:63:65:73:73:11:6f:72:61:6e:67:65:2d:6d:75:6c:74:69:6d:65:64:69:61:03:6e:65:74:00;"
}
}
}
dns {
}
gui {
https-port 443
}
mdns {
reflector
}
nat {
rule 5010 {
log disable
outbound-interface eth1.832
protocol all
type masquerade
}
}
ssh {
port 22
protocol-version v2
}
upnp2 {
listen-on eth0.832
listen-on eth2
nat-pmp enable
secure-mode disable
wan eth1.832
}
}
system {
config-management {
commit-revisions 50
}
host-name ubnt
login {
user mathew {
authentication {
encrypted-password $6$E4xfu3Z2Bb7Db$e5x9rhLLvVgvzthXjntQ8N7XO9toBbBZ7IV7jGV8JZknKQvI0.w9kamu1v4NgWW0cG.kUkt1q/Yu129bNjazu1
}
level admin
}
}
name-server 8.8.8.8
ntp {
server 0.ubnt.pool.ntp.org {
}
server 1.ubnt.pool.ntp.org {
}
server 2.ubnt.pool.ntp.org {
}
server 3.ubnt.pool.ntp.org {
}
}
offload {
ipsec enable
ipv4 {
forwarding enable
vlan enable
}
ipv6 {
forwarding disable
}
}
package {
repository wheezy {
components "main contrib non-free"
distribution wheezy
password ""
url http://http.us.debian.org/debian
username ""
}
repository wheezy-security {
components main
distribution wheezy/updates
password ""
url http://security.debian.org
username ""
}
}
syslog {
global {
facility all {
level notice
}
facility protocols {
level debug
}
}
host 192.168.66.1 {
facility all {
level err
}
}
}
time-zone Europe/Paris
}
/* Warning: Do not remove the following line. */
/* === vyatta-config-version: "config-management@1:conntrack@1:cron@1:dhcp-relay@1:dhcp-server@4:firewall@5:ipsec@5:nat@3:qos@1:quagga@2:system@4:ubnt-pptp@1:ubnt-util@1:vrrp@1:webgui@1:webproxy@1:zone-policy@1" === */
/* Release version: v1.8.0.4853089.160219.1607 */