Remplacer la LiveBox par un ptit routeur Linux

Moi je sais pas vous, mais les boiboites toutes faites des FAI, je ne les aime pas trop en général… Bon y’en a de mieux que d’autre mais celle d’orange ne sont pas… génial !!

Donc voici un petit tuto pour remplacer tout ça.

1° – Le petit contexte

 

Donc nous avons une belle fibre optioque qui arrive à la maison :) on est content !

Par contre dès qu’on tire un peu trop dessus, la livebox elle ne suis plus du tout !

Déjà que avec l’ADSL c’est une merde, la on peut la qualifier de « Grosse Merde » !!

Nous allons donc la remplacer. Pour cela il nous faut :

1 vieux PC & 3 cartes réseaux :

  • la 1ere pour l’arrivé du GPON => eth0
  • la 2eme pour le LAN => eth1
  • la 3eme pour la TV => eth2

Et la téléphonie me diez-vous?? Ba je ne l’ai pas géré :) car je ne l’utilise pas…. désolé :)

Concernant la technologie utilisée, voici un petit schema qui résume la technologie choisit par orange (en 2008) :

Fibre Monomode => GPON (transceiver Optique/Cuivre) => Ethernet Gigabit en mode "trunk" 802.1q pour les VLANs

 

livebox-4485d

 

Une fois en trunk 802.1q, les trames ethernet sont donc toutes tagguées (pour les VLANs) suivant leur usage :

  • VLAN835 -> Internet (via PPPoE)
  • VLAN838 -> Services TV (nego http du décodeur + DHCP)
  • VLAN840 -> Services TV (streaming chaines)
  • VLAN841 -> Services TV (VoD)
  • VLAN851 -> Services ToIP

2° – Installation d’une debian et des outils

 

Dans un 1er temps il vous faudra installer une petite Debian sur un PC.

Pour se faire, se rapporter à l’article sur l’installation d’une debian  !

Ensuite pour les besoins de cette article, il suffira d’installer ces paquets supplémentaire :

  • pppoe : pour la gestion de la connexion PPP via l’ethernet
  • iptable : pour le firewall
  • iproute : outils de gestion des route
  • ppp : outil permettant le « point 2 point protocol »
  • bridge-utils : utilitaire pour « bridger » les interfaces réseaux
  • ebtables : outil de gestion des trames réseaux
  • vlan : programme pour la gestion de VLAN
  • traceroute : outils pour tester les routes

 

apt-get install pppoe iptables iproute ppp bridge-utils ebtables vlan traceroute

 

Enfin, ajoutez au fichier modules.conf le module 8021q (nécessaire pour les VLAN) :

#/etc/modules: kernel modules to load at boot time
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
loop
8021q

3° – Configuration de la partie Orange

a – Configuration du réseau

Donc on part du principe que le GPON est connecté sur l’interface eth0 de notre Linux. Nous allons géré ici cette parti la :

Ethernet Giga (sortie du GPON) -> eth0 (PC Linux)

 

Tout d’abord, il est nécessaire de préparer la configuration du réseau pour l’interface eth0. Voici ce qu’il faut mettre dans le fichier /etc/network/interface :

auto eth0 iface eth0 inet manual
# Net
auto vlan835
iface vlan835 inet manual
      vlan-raw-device eth0
# TV (nego)
auto vlan838
iface vlan838 inet manual
      vlan-raw-device eth0
# TV (multicast)
auto vlan840
iface vlan840 inet manual
      vlan-raw-device eth0

 

La carte ethernet eth0 ne dispose pas d’ip. C’ est normal ! :)

En effet, cela évite toute « pollution » (broadcast, arp notamment) sur le coté fibre.

b – Configuration de la connexion PPP

La, il s’agit du classique PPP, technologie déjà utilisé chez Orange pour l’ADSL (entre autre). On retrouve donc la désormais classique encapsulation PPPoE cher à l’opérateur depuis les débuts de l’accès haut débit.

Pour configurer le PPP, rien de plus simple :)

Éditez un fichier nommé ftth dans le répertoire /etc/ppp/peers/ :

pty "/usr/sbin/pppoe -I vlan835 -T 80 -m 1452"
noipdefault
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist
mtu 1492
usepeerdns
defaultroute
noaccomp
default-asyncmap
user "fti/******"

 

Pensez à adapter le user avec les identifiants fournis par Orange.

Ensuite, nous allons modifier les fichiers pap/chap du démon ppp afin de pouvoir vous authentifiez auprès des serveur d’Orange. Pour se faire, éditez les deux fichiers suivants (en remplaçant les étoiles par les valeurs de votre user de connexion fourni par Orange).

Fichier /etc/ppp/chap-secrets & /etc/ppp/pap-secrets :

# Secrets for authentication using CHAP
# client server secret IP addresses
"fti/*******" * "*******"

 

Enfin, éditez de nouveau le fichier /etc/network/interface et ajoutez à la fin du fichier les lignes suivantes :

auto ppp0
iface ppp0 inet ppp
    provider ftth

 

Voila, la connexion internet devrait fonctionner. Pour cela, un petit reboot s’impose. En effet, cela est plus prudent vu toutes les modifications effectués sur la couche réseau !

c -Test de la connexion PPP

 

Pour vérifier que la connexion est bien établie :

# ifconfig ppp0
ppp0 Link encap:Protocole Point-à-Point
inet adr:80.12.82.79 P-t-P:193.253.161.3 Masque:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1456 Metric:1
RX packets:2416957 errors:0 dropped:0 overruns:0 frame:0
TX packets:2237583 errors:0 dropped:0 overruns:0 carrier:0 collisions:0
lg file transmission:3
RX bytes:2094381922 (1.9 GiB) TX bytes:404761500 (386.0 MiB)

 

Pour vérifier les logs de la connexion PPP :

# plog

 

Pour arreter la connexion :

# poff ftth

 

Pour lancer la connexion :

# pon ftth

3° – configuration du routeur

a – configurer la carte réseau coté LAN

 

Très simple :)

La carte réseau relié au LAN s’appel donc eth1.

Le réseaux privé (LAN) est le 192.168.1.x et le routeur (notre tit serveur linux) aura pour IP 192.168.1.254.

Il suffit d’éditer le fichier /etc/network/interface et d’y ajouter à la fin :

allow-hotplug eth1
iface eth1 inet static
    address 192.168.1.254
    netmask 255.255.255.0

 

b – activation du routeur

Pour activer le routeur de manière dynamique :

echo "1" >/proc/sys/net/ipv4/ip_forward

 

Pour rendre ce réglage persistent (actif après le reboot), éditez le fichier « /etc/sysctl.conf » puis recherchez la ligne commençant par « net.ipv4.ip_forward » et remplacez la valeur « 0 » par la valeur « 1 » puis sauvegarder :

net.ipv4.ip_forward=1

 

c – Mise en place du NAT

 

Pour que les PC de la maison puisse profiter de la connexion, voici un petit script permettant au serveur linux de jouer le rôle de routeur NAT :

 

Script firewall :

#
# Interfaces de confiance
#
-A INPUT -i lo -j ACCEPT 
-A INPUT -i eth1 -j ACCEPT 
-A FORWARD -i eth1 -j ACCEPT 
#
# ACCEPT en connexion directe
#
-A INPUT -p icmp -j ACCEPT 
-A INPUT -p udp -m udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
#
# NAT
# 
-A FORWARD -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
COMMIT
# Completed on Sat May 30 11:36:12 2009
# Generated by iptables-save v1.4.2 on Sat May 30 11:36:12 2009
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:00]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Sat May 30 11:36:12 2009
# Generated by iptables-save v1.4.2 on Sat May 30 11:36:12 2009
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#
# NAT
#
-A POSTROUTING -o ppp0 -j MASQUERADE 
COMMIT

 

Pour l’activer :

iptables-restore < /chemin/firewall

 

Pour l’activer au démarrage, ajouter cette ligne dans le fichier /etc/rc.local

Par défaut, en entrée, tout est bloqué sauf le ping.

4 – La vidéo

 

Nous allons considérer que la vidéo passera sur la carte eth2.

Nous allons donc configurer cette interface pour relayer le flux et les requêtes du décodeur sur les bons vlan (838 et 840)

Il faut donc éditer le fichier /etc/network/interfaces et ajouter à a fin :

auto video
iface video inet manual
     bridge_ports vlan838 vlan840 eth2
     bridge_stp off

 

Ensuite nous allons dire au noyau de forwarder directement les trames sur les bridges en by-passant iptables et arptables.

Pour cela, il faut placer ces commandes dans le fichier /etc/rc.local avant le « exit 0 » :

echo "0" >/proc/sys/net/bridge/bridge-nf-call-arptables
echo "0" >/proc/sys/net/bridge/bridge-nf-call-ip6tables
echo "0" >/proc/sys/net/bridge/bridge-nf-call-iptables
echo "0" >/proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged
echo "0" >/proc/sys/net/bridge/bridge-nf-filter-vlan-tagged

exit 0

 

Orange priorise les vlan 838/840 d’une certaine manière (trames de contrôle par rapport aux flux multicast udp de streming TV). On appelle cela la QoS.

Enfin pour bien isoler les 2 interfaces VLAN 838 et VLAN 840, nous allons bloquer les trames multicast émise depuis le VLAN 838 et laisser passer les broadcast.

Pour configurer tout ceci, il faut placer ces commandes dans le fichier /etc/rc.local avant le « exit 0 »

# For QOS
for i in 0 1 2 3 4 5 6 7; 
do 
    vconfig set_egress_map vlan838 $i 4 >/dev/null 
    vconfig set_egress_map vlan840 $i 5 >/dev/null 
done

# Blocage des trames multicast
/sbin/ebtables -F /sbin/ebtables -t filter -A FORWARD -o vlan838 -d ff:ff:ff:ff:ff:ff/ff:ff:ff:ff:ff:ff -j ACCEPT 
/sbin/ebtables -t filter -A FORWARD -o vlan838 -d 01:00:00:00:00:00/01:00:00:00:00:00 -j DROP

exit 0 

5 – Conclusion

Et voilou !!

  • On débranche électriquement le décodeurs et on éteint le petit linux.
  • On le relie à la carte réseaux eth2
  • On relie la carte réseau eth1 au switch
  • et enfin eth0 au GPON.
  • On redémarre le petit Linux.
  • Une fois celui-ci allumé, le décodeur

et si tout va bien :) la télé marche et l’internet aussi :)

Sinon…. ba …. dites moi les erreurs…. :)


Article lu 25209 fois

Laisser un commentaire