Auteur Sujet: Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)  (Lu 79951 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #36 le: 25 août 2017 à 23:42:10 »
si c'est comme l'ERL il faut faire l'egress pendant la création de l'interface donc pendant le "ip link add". Suivant les OS/drivers le map d'egress ne peut être changer une fois la sous interface créee.


cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #37 le: 26 août 2017 à 00:08:22 »
haaa ! bien vu !
ce serait direct dans /etc/config/network alors !? si c'est le cas ce serait bien plus pratique.

Donc il faudrait installer le package luci-app-qos https://wiki.openwrt.org/doc/uci/qos
la c'est beaucoup plus clair  8) par contre je ne saurai pas si ca marche  >:(

EDIT:
Ha non c'est pas ca!!!
« Modifié: 26 août 2017 à 10:16:09 par cetipabo »

cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #38 le: 26 août 2017 à 10:28:02 »
bon, si je fais un
Citer
root@LEDE:~# ip link delete ptm0.832
root@LEDE:~# ip link add link ptm0 name ptm0.832 type vlan id 832
root@LEDE:~#
ca fonctionne.

mais si j'ajoute le egress ca ne va pas...j'ai aussi essayé avec une autre syntaxe trouvée sur le net: egress-qos-map
Citer
root@LEDE:~# ip link delete ptm0.832
root@LEDE:~# ip link add link ptm0 name ptm0.832 type vlan id 832 egress 0:0
ip: invalid argument 'EGRESS' to 'type vlan'
root@LEDE:~# ip link add link ptm0 name ptm0.832 type vlan id 832 egress-qos-map 0:0
ip: invalid argument 'egress-qos-map' to 'type vlan'

Pourtant bon sang de bonsoir il doit bien y avoir moyen !
Citer
root@LEDE:~# cat /proc/ptm0.832
ptm0.832 VID: 832 REORDER_HDR: 1 dev->priv_flags: 1
total frames received 17528456
total bytes received 23313198078
Broadcast/Multicast Rcvd 14777926
total frames transmitted 2007311
total bytes transmitted 345677143
Device: ptm0
INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0
EGRESS priority mappings:

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #39 le: 26 août 2017 à 13:28:26 »
ca dit quoi ton 'ip link help' ?


cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #40 le: 26 août 2017 à 14:33:46 »
 >:( >:(
Citer
root@LEDE:~# ip link help
ip: invalid argument 'help' to 'ip'


cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #41 le: 26 août 2017 à 14:54:17 »
sur le forum de LEDE on me dit la syntaxe correct est :
Citer
ip link set ptm0.832 type vlan egress 0:0

ce qui bien entendu ne fonctionne pas chez moi  >:(
donc on me dit d'installer le package IP-full
Citer
root@LEDE:~# opkg install ip-full
Installing ip-full (4.4.0-9) to root...
Downloading http://downloads.lede-project.org/releases/17.01.2/packages/mips_24kc/base/ip-full_4.4.0-9_mips_24kc.ipk
Configuring ip-full.

root@LEDE:~# ip link set ptm0.832 type vlan egress 0:0
ip: either "dev" is duplicate, or "type" is garbage
>:( >:(

EDIT:
après reboot ca marche !!
Citer
root@LEDE:~# ip link set ptm0.832 type vlan egress 0:0
root@LEDE:~#

Donc ca y est, dans le fichier vlanprio.sh je mets :
#!/bin/sh
set -x
for i in 0 1 2 3 4 5 6 7; do
## on définit pour chaque file une priorité
    ip link set ptm0.832 type vlan egress $i:$i >/dev/null
    ip link set ptm0.838 type vlan egress $i:4 >/dev/null
    ip link set ptm0.840 type vlan egress $i:5 >/dev/null

done
    ip link set ptm0.832 type vlan egress 1:0 >/dev/null
    ip link set ptm0.832 type vlan egress 0:6 >/dev/null

j'ai pas compris a quoi sert ce set -x ??

Au final après l'execution du script je me retrouve donc comme ceci (je retrié par vlan pour la lisibilité) , c'est bon d'après vous ??
Citer
+ ip link set ptm0.832 type vlan egress 0:6
+ ip link set ptm0.832 type vlan egress 1:0
+ ip link set ptm0.832 type vlan egress 2:2
+ ip link set ptm0.832 type vlan egress 3:3
+ ip link set ptm0.832 type vlan egress 4:4
+ ip link set ptm0.832 type vlan egress 5:5
+ ip link set ptm0.832 type vlan egress 6:6
+ ip link set ptm0.832 type vlan egress 7:7


+ ip link set ptm0.838 type vlan egress 0:4
+ ip link set ptm0.838 type vlan egress 1:4
+ ip link set ptm0.838 type vlan egress 2:4
+ ip link set ptm0.838 type vlan egress 3:4
+ ip link set ptm0.838 type vlan egress 4:4
+ ip link set ptm0.838 type vlan egress 5:4
+ ip link set ptm0.838 type vlan egress 6:4
+ ip link set ptm0.838 type vlan egress 7:4


+ ip link set ptm0.840 type vlan egress 0:5
+ ip link set ptm0.840 type vlan egress 1:5
+ ip link set ptm0.840 type vlan egress 2:5
+ ip link set ptm0.840 type vlan egress 3:5
+ ip link set ptm0.840 type vlan egress 4:5
+ ip link set ptm0.840 type vlan egress 5:5
+ ip link set ptm0.840 type vlan egress 6:5
+ ip link set ptm0.840 type vlan egress 7:5
« Modifié: 26 août 2017 à 15:17:08 par cetipabo »

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 091
  • Paris (75)
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #42 le: 26 août 2017 à 16:47:58 »
j'ai pas compris a quoi sert ce set -x ??


c'est juste pour afficher les commandes avant de les executer, aka "command-echoing" (l’équivalent de 'echo on' sous Windows)

cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #43 le: 26 août 2017 à 18:25:30 »
OK alors c'est bon. Donc je récapitule pour faire propre :

Notez que je suis en VDSL donc c'est ptm0 pour moi  :)
Mon Matériel un BT HOME HUB 5 type A aussi connu sous le nom HH5A qui est à la base le modem/routeur du FAI anglais BT openreach et qu'on trouve à une bouchée de pain sur Ebay pré flashé avec LEDE 17.01.2. Acheté 25€ dans mon cas.

Ma config doit fonctionner sur tout modem/routeur équipé du SOC Lantiq XWAY VRX200 series ou VR9
voir la liste ici des modem/routeurs ADSL/VDSL compatibles: https://wiki.openwrt.org/doc/hardware/soc/soc.lantiq
Citer
FRITZ!Box WLAN 3370
FRITZ!Box WLAN 3390
FRITZ!Box Fon WLAN 7360
FRITZ!Box 6840 LTE
Astoria Networks ARV7519RW22 (Livebox 2.1)
Astoria Networks VGV7519KW (KPN Experia Box v8)
Arcadyan VGV7510KW22 (o2 Box 6431)
Draytek Vigor 2760(Vn)/(Delight)
TP-Link Archer VR200v
ZyXEL P-2812HNU-F1
ZyXEL P-2812HNU-F3
TP-Link TD-W8970
TP-Link TD-W8980
TP-Link TD-W9980
Netgear VEVG2500
BT Home Hub 5 Type A
BT OpenReach VG3503J

Donc il nous faut installer les packages suivants, s'ils n'y sont pas déja. Depuis LUCI ou avec la commande opkg :
Citer
dsl-vrx200-firmware-xdsl-a  <-- Pour les modem/routeur seulement, inutile si vous êtes en fibre.
dsl-vrx200-firmware-xdsl-b-patch  <-- Pour les modem/routeur seulement, inutile si vous êtes en fibre. 
iptables-mod-ipopt
igmpproxy
ip-full

Mon /etc/config/network partie wan :
config interface 'wan'
option ifname 'ptm0.832'
option proto 'dhcp'
option peerdns '1'
option broadcast '1'
option vendorid 'sagem'
option reqopts '1 3 6 15 28 51 58 59 90 119 120 125'
option sendopts '0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7834 0x5a:0000000000000000000000***********************'
option mtu '1500'

config interface 'replay'
option ifname 'ptm0.838'
option proto 'dhcp'
option dns '80.10.246.2 80.10.246.129'
option peerdns '1'
option broadcast '1'
option vendorid 'sagem'
option reqopts '1 3 42 72 121'
option sendopts '0x4d:2746535644534c5f6c697665626f782e4d4c54562e736f66746174686f6d652e4c697665626f7834 0x3d:01************'
option mtu '1500'

config interface 'tvorange'
option proto 'static'
option ifname 'ptm0.840'
option ipaddr '192.168.255.254'
option netmask '255.255.255.255'
option gateway '192.168.255.254'

et ajouter dans l'interface lan, la ligne suivante :
option igmp_snooping '1'
Voici a quoi ressemble mon interface lan:

config interface 'lan'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option _orig_ifname 'eth0.1 radio0.network1 radio1.network1'
option _orig_bridge 'true'
option ifname 'eth0.1'
option broadcast '192.168.1.255'
option ipaddr '192.168.1.1'
option gateway '192.168.1.1'
option dns '192.168.1.1'
option delegate '0'
option igmp_snooping '1'

dans /etc/config/igmpproxy
config igmpproxy
    option quickleave 1

config phyint
    option network wan
    option direction upstream
list altnet "0.0.0.0/0"

config phyint lan
    option network lan
    option direction downstream


puis dans /etc/sysctl.conf on ajoute la ligne:
net.ipv4.conf.all.force_igmp_version=2

dans /etc/config/firewall on ajoute:
config rule
        option src      wan
        option proto    igmp
        option target   ACCEPT
config rule
        option src      wan
        option proto    udp
        option dest     lan
        option dest_ip  224.0.0.0/4
        option target   ACCEPT
        option family   ipv4

Ce qui me donne le fichier complet /etc/config/firewall suivant :
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option drop_invalid '1'
option forward 'ACCEPT'

config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network 'lan'

config zone
option name 'wan'
option output 'ACCEPT'
option masq '1'
option mtu_fix '1'
option input 'ACCEPT'
option forward 'ACCEPT'
option network 'replay wan'

config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'

config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'

config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option src_ip 'fc00::/6'
option dest_ip 'fc00::/6'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'

config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'

config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'

config include
option path '/etc/firewall.user'

config forwarding
option dest 'wan'
option src 'lan'

config forwarding
option dest 'lan'
option src 'wan'

config rule
option src 'wan'
option proto 'igmp'
option target 'ACCEPT'

config rule
option src 'wan'
option proto 'udp'
option dest 'lan'
option dest_ip '224.0.0.0/4'
option target 'ACCEPT'
option family 'ipv4'

création du fichier /etc/vlanprio.sh qu'on n'oublie pas de rendre exécutable avec un chmod 755
#!/bin/sh
set -x
for i in 0 1 2 3 4 5 6 7; do
## on définit pour chaque file une priorité
    ip link set ptm0.832 type vlan egress $i:$i >/dev/null
    ip link set ptm0.838 type vlan egress $i:4 >/dev/null
    ip link set ptm0.840 type vlan egress $i:5 >/dev/null

done
    ip link set ptm0.832 type vlan egress 1:0 >/dev/null
    ip link set ptm0.832 type vlan egress 0:6 >/dev/null

ensuite dans LUCI on va dans SYSTEM >> STARTUP
et tout en bas, dans la zone Local Startup on ajoute :
sh /etc/vlanprio.sh

Dans Luci, NETWORK >> FIREWALL >> Custom Rules on ajoute les règles suivantes :
iptables -t mangle -A POSTROUTING -o ptm0.832 -j CLASSIFY --set-class 0000:0001
iptables -t mangle -A POSTROUTING -o ptm0.832 -p igmp -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -p icmp -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -p udp --dport 67 -j CLASSIFY --set-class 0000:0006

On reboot le routeur pour valider toutes ces modifications

et voila.  8)
Merci à tous ceux qui m'ont aidé  ;)
« Modifié: 11 mars 2018 à 10:30:27 par cetipabo »

ubune

  • Abonné Orange Fibre
  • *
  • Messages: 316
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #44 le: 27 août 2017 à 14:20:25 »
Hey !

Je reviens ici, j'ai migré vers LEDE 17.01,

Tout fonctionne désormais, dans ton post il manque la partie Firewall avec iptables-mod-opt, car sinon gros soucis de débit.

Pour le script vlanprio et les règles de FW :
En faite certains Flux ne passent pas par Iptables, c'est le cas du DHCP.

Cela permet donc de pouvoir gérer la COS en utilisant les files définit par le script, en gros tout le flux sera en prio 6, sauf le flux qui passe par IPTABLES.
Tu peux trouver les info en premiere page ici :
https://lafibre.info/remplacer-livebox/remplacer-la-livebox-sans-pppoe/

Mon exemple avec LEDE (merci à toi^^).

#!/bin/sh
set -x
for i in 0 1 2 3 4 5 6 7; do
    ip link set eth1.832 type vlan egress $i:$i >/dev/null  ## Chaque file devient en priorité $numdefile
    ip link set eth1.838 type vlan egress $i:4 >/dev/null   ## tout en prio 4 sur le vlan 838
    ip link set eth1.840 type vlan egress $i:5 >/dev/null   ## tout en prio 5 sur le vlan 840

done
    ip link set eth1.832 type vlan egress 1:0 >/dev/null    ## La file (1) était donc en prio 1 on la repasse à 0, ça deviendra la nouvelle file par défaut grace à la première règle iptables qui suit.
    ip link set eth1.832 type vlan egress 0:6 >/dev/null    ## Tout le flux devient en prio 6 ! sauf le flux qui passera par IPTABLES grace aux règles suivante.


Les customs rules qui se lancent au demarrage :

iptables -t mangle -A POSTROUTING -o eth1.832 -j CLASSIFY --set-class 0000:0001     ## En gros tout le flux passe dans la file 1 qui est en prio 0 (ATTENTION, si on ne fait pas ça = gros probleme de débit)
iptables -t mangle -A POSTROUTING -o eth1.832 -p igmp -j CLASSIFY --set-class 0000:0006 ##On passe le flux igmp dans la file 6 qui est en prio 6
iptables -t mangle -A POSTROUTING -o eth1.832 -p icmp -j CLASSIFY --set-class 0000:0006  ## On passe le flux icmp dans la file 6 qui est en prio 6
iptables -t mangle -A POSTROUTING -o eth1.832 -p udp --dport 67 -j CLASSIFY --set-class 0000:0006
## Inutile ? On passe le flux dhcp dans la file 6 qui est en prio 6

Inutile ? = En faite je comprends pas l'intérêt, car le flux qui ne passe pas par IPTABLES est déja en PRIO 6, et c'est le cas du DHCP.
Edit : d'ailleurs ça fonctionne même sans cette règle (logique).


Si quelqu'un detecte que j'ai mal compris n'hésitez pas à me corriger :).

Pour la mécanique, je suis reparti de zero, j'ai installé un LEDE propre, j'ai associé mon wifi sur un smartphone en partage de connexion sur le wan, pour pouvoir installer les paquets nécéssaire via opkg :
iptables-mod-opt
ip-full
tcpdump
nano
igmpproxy

Par contre la TV marchait niquel tout à l'heure, et maintenant erreur S04, j'ai la flemme de continuer car je m'en sert pas de toute façon. Mais bon j'aurai aimé avoir une sauvegarde d'une config 100% ok :/.

Merci à tous en tout cas, et vive LEDE :P

ps : 945mb/s en speedtest, donc aucune perte, avec wrt1900acs@LEDE 17.0.1
« Modifié: 27 août 2017 à 16:04:34 par ubune »

cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #45 le: 27 août 2017 à 15:54:20 »
Ha oui j'ai oublié les regles firewall que tu m'avais donné...donc je modifie mon post.
Merci !

ubune

  • Abonné Orange Fibre
  • *
  • Messages: 316
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #46 le: 27 août 2017 à 15:58:29 »
Ha oui j'ai oublié les regles firewall que tu m'avais donné...donc je modifie mon post.
Par contre il y en avait plus que ce que tu indiques maintenant.

#IPV4
## Tout les protocoles changent de file vers le skb 01 dont on a mis la prio à 0

iptables -t mangle -A POSTROUTING -o ptm0.832 -j CLASSIFY --set-class 0000:0001

##On maintient les paquets réseaux dans une file à prio 6

iptables -t mangle -A POSTROUTING -o ptm0.832 -p igmp -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -p icmp -j CLASSIFY --set-class 0000:0006

##Les paquets VOIP(téléphonie orange) sont taggués EF ont les met en prio 5
iptables -t mangle -A POSTROUTING -o ptm0.832 -m dscp --dscp 0x2e -j CLASSIFY --set-class 0000:0005

##Si votre client DHCP n'utilise pas les raw socket il faut envoyer les paquet DHCP dans la file 6 (prio 6)
iptables -t mangle -A POSTROUTING -o ptm0.832 -p udp --dport 67 -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -j CLASSIFY --set-class 0000:0001
iptables -t mangle -A POSTROUTING -o ptm0.832 -p igmp -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -p icmp -j CLASSIFY --set-class 0000:0006
iptables -t mangle -A POSTROUTING -o ptm0.832 -p udp --dport 67 -j CLASSIFY --set-class 0000:0006

ip6tables -t mangle -A POSTROUTING -o ptm0.832 -j CLASSIFY --set-class 0000:0001
ip6tables -t mangle -A POSTROUTING -o ptm0.832 -p ipv6-icmp -j CLASSIFY --set-class 0000:0006
ip6tables -t mangle -A POSTROUTING -o ptm0.832 -p udp --dport 547 -j CLASSIFY --set-class 0000:0006



Tu as juste en + les règles IPV6, qui ne fonctionnent pas avec nos config proposés.

cetipabo

  • Invité
Remplacement de la Livebox par un routeur LEDE (fork d'OpenWRT)
« Réponse #47 le: 27 août 2017 à 16:00:51 »
oui j'ai vu après coup, ainsi que des doublons...