Auteur Sujet: Remplacement de la Livebox par un routeur Openwrt  (Lu 248526 fois)

0 Membres et 2 Invités sur ce sujet

simon

  • Abonné Orange Fibre
  • *
  • Messages: 935
Remplacement de la Livebox par un routeur Openwrt
« Réponse #792 le: 04 février 2023 à 18:15:30 »
maintenant j'ai recu une delegation de prefixe, par contre je ne comprend pas si le routeur lui meme recoit une IP ou si je dois la deduire de la delegation de prefixe, c est un peu paumant IPV6 , j'ai lu un bouquin dessus il y a 15 ans, mais maintenant j'ai les mains dedans.

Super, top que ca marche.
Le routeur ne recoit pas 'une' IPv6, mais un /56, soit 256 /64. Il va allouer un /64 par VLAN ou interface côté LAN, et assigner une adresse dans ce /64 sur cet interface.

Par exemple chez moi, j'ai plusieurs VLAN, dont l'un d'entre eux est déclaré comme ceci:
# VLAN 2
config interface 'vlan2'
        option device 'br0.2'
option force_link '1'
        option proto 'static'
        option ip6assign '64'
        option ip6hint '02'

ip6assign indique à netifd d'allouer un /64 du préfixe délégué par Orange (le /56).
ip6hint lui spécifie que je veux allouer le 2e /64 du préfixe délégué à cette interface.

En pratique, si Orange me délègue 2001:db8:16c4:3a00::/56, le VLAN déclaré ci-dessus se voit attribuer 2001:db8:16c4:3a02::/64, avec l'adresse 2001:db8:16c4:3a02::1 configurée sur l'interface locale du routeur.

ouinouin

  • Abonné Sosh fibre
  • *
  • Messages: 7
  • toulouse 31
Remplacement de la Livebox par un routeur Openwrt
« Réponse #793 le: 04 février 2023 à 18:29:49 »
ok, donc l'interface wan elle meme communique avec son adresse link local avec le routeur 'baobab' d orange :-)

du coup par contre c est tres angoissant, tout a coup on se retrouve avec toutes ses machines qui ont IPV6 sur internet avec les ports exposés en direct (si y a du samba qui traine etc etc).
le forward par defaut de tout n'est il pas trop permissif (le NAT en IPV4 fait une sorte de protection intrinseque que l'on ne trouve pas dans ipV6)

simon

  • Abonné Orange Fibre
  • *
  • Messages: 935
Remplacement de la Livebox par un routeur Openwrt
« Réponse #794 le: 05 février 2023 à 10:13:08 »
Il me semble que le forward par défaut fait du conntrack, et que seul le traffic initié par le LAN est autorisé, mais je n'en suis pas sûr... j'ai mon propre jeu de règles nftables, je n'utilise pas fw3/fw4.

Ceci dit, j'ai tendance à ne filtrer que le minimum au niveau du firewall, et notamment j'accepte le traffic entrant. Les machines sont bien protégées aujourd'hui (même windows) avec un firewall local activé par défaut. Sous linux, ufw fait des merveilles.

Aize147

  • Abonné Orange Fibre
  • *
  • Messages: 985
  • Orange FTTH 2G/800M - Free FTTH 8G/700M
Remplacement de la Livebox par un routeur Openwrt
« Réponse #795 le: 10 février 2023 à 10:14:43 »
Pour ceux que ça intéresse voici le script tc qui modifie la CoS 6 ainsi que le DSCP sur ARP, DHCPv4, DHCPv6, ICMPv6.

Avoir installé en prérequis les paquets suivants : tc-tiny, kmod-sched, kmod-sched-prio sur un OpenWRT en 22.03.3.

0:0 et 6:6 doivent être appliqué dans la partie egress du VLAN.

#!/bin/sh

DEVICE="${1}"

# Configure a PRIO qdisc on a VLAN interface.
tc qdisc replace dev "${DEVICE}" root handle 1: prio
tc filter del dev "${DEVICE}"

# ARP
tc filter add dev "${DEVICE}" parent 1: prio 1 protocol 0x806 u32 \
  match u32 0 0 \
  action skbedit priority 0:6

# DHCPv4
tc filter add dev "${DEVICE}" parent 1: prio 2 u32 \
  match ip ihl 5 0xf \
  match u16 0x0000 0x1fff at 6 \
  match ip protocol 17 0xff \
  match ip sport 68 0xffff \
  match ip dport 67 0xffff \
  action skbedit priority 0:6 pipe \
  action pedit munge ip tos set 0xc0 retain 0xfc pipe \
  action csum ip4h
 
# DHCPv6
tc filter add dev "${DEVICE}" parent 1: prio 3 protocol ipv6 u32 \
  match ip6 dst fe00::/7 \
  match ip6 protocol 17 0xff \
  match ip6 sport 546 0xffff \
  match ip6 dport 547 0xffff \
  action skbedit priority 0:6 pipe \
  action pedit ex munge ip6 traffic_class set 0xc0 retain 0xfc

# ICMPv6
tc filter add dev "${DEVICE}" parent 1: prio 4 protocol ipv6 u32 \
  match ip6 dst fe00::/7 \
  match ip6 protocol 58 0xff \
  action skbedit priority 0:6 pipe \
  action pedit ex munge ip6 traffic_class set 0xc0 retain 0xfc

Script à placer dans /etc/config si un jour vous devez faire un backup.

chmod +x sur le fichier, puis modification à la main du rc.local ou via le web LuCi pour que le script soit lancé au boot. Voir script hotplug plus bas.

/etc/config/tc.sh intf.vlanid

Enfin il faudra utiliser un script hotplug et qui cette fois-ci marche pour tout le monde, quelque soit la plateforme :

#!/bin/sh

set -x
exec >>/tmp/hotplug.log 2>&1

VLAN=eth1.832

if [ "${ACTION}" == "add" ] && [ "${DEVICENAME}" == "${VLAN}" ]; then
   /etc/config/tc.sh "${VLAN}"
 
fi

La variable VLAN est à modifier selon la configuration du routeur.

Puis enregistrer le fichier en tant que "10-tc" que l'on met dans le dossier /etc/hotplug.d/net

Après cela si on relance les interfaces en utilisant /etc/init.d/network restart le hotplug fait son taff et (re)lance le script. Il s'applique aussi dès le démarrage grâce à cette méthode.

Ne pas faire attention au VLAN ID utiliser dans les captures, c'est uniquement pour des tests dans une VM.

Résultat en DHCPv4 :



DHCPv6 :



ICMPv6 :

« Modifié: 11 février 2023 à 22:29:52 par Aize147 »

Fibroberto

  • Abonné Orange Fibre
  • *
  • Messages: 17
  • 06110
Remplacement de la Livebox par un routeur Openwrt
« Réponse #796 le: 10 février 2023 à 11:17:44 »
A part un script firewall plus simple, est-ce que ça apporte quelque chose par rapport à la solution nftable ?
Plus propre ? Meilleur conso CPU ?
Je serais bien tenté sur mon ERX, mais j'ai peur de tout péter pour un gain pas forcément évident.

Aize147

  • Abonné Orange Fibre
  • *
  • Messages: 985
  • Orange FTTH 2G/800M - Free FTTH 8G/700M
Remplacement de la Livebox par un routeur Openwrt
« Réponse #797 le: 10 février 2023 à 15:27:15 »
A part un script firewall plus simple, est-ce que ça apporte quelque chose par rapport à la solution nftable ?
Plus propre ? Meilleur conso CPU ?
Je serais bien tenté sur mon ERX, mais j'ai peur de tout péter pour un gain pas forcément évident.

C'est effectivement plus propre si on part du principe que la solution nftable doit d'abord être réglée à 0:6 en egress puis tout refiltrer le trafic derrière.

Au niveau CPU ça doit être mieux, après je n'ai pas pu voir de mon côté car j'utilise principalement du x86-64 et du ARM64 avec une puce switch intégré, donc aucun impact réel sur le CPU mais à voir sur du matériel plus limité.

Electrocut

  • Abonné Orange Fibre
  • *
  • Messages: 512
  • Pont-Péan (35)
Remplacement de la Livebox par un routeur Openwrt
« Réponse #798 le: 11 février 2023 à 01:58:04 »
Bonjour,

Pour ceux que ça intéresse voici le script tc qui modifie la CoS 6 ainsi que le DSCP sur ARP, DHCPv4, DHCPv6, ICMPv6.
[...]
Merci beaucoup pour ce script  8)

Je tentais de remettre ma config au propre, suite au post https://lafibre.info/remplacer-livebox/durcissement-du-controle-de-loption-9011-et-de-la-conformite-protocolaire
Tout fonctionnait, sauf le réglage du CoS 6 + DSCP sur les paquets ARP, DHCPv4, DHCPv6, ICMPv6.

Avec cette config, basée du premier post :

/etc/config/network
config device
        option name 'eth1.832'
        option type '8021q'
        option ifname 'eth1'
        option vid '832'
        list egress_qos_mapping '1:0'
        list egress_qos_mapping '0:6'
        list egress_qos_mapping '6:6'
        option macaddr 'xx:xx:xx:xx:xx:xx'

/etc/nftables.d/nft-prio6-rules.include
oifname "eth1.832" counter meta priority set 0:1
oifname "eth1.832" ip protocol icmp counter meta priority set 0:6
oifname "eth1.832" ip protocol igmp counter meta priority set 0:6
oifname "eth1.832" udp dport 67 counter meta priority set 0:6
oifname "eth1.832" udp dport 547 counter meta priority set 0:6
oifname "eth1.832" ip protocol icmpv6 counter meta priority set 0:6

... j'avais le comportant suivant suivant :
  • TOUS les paquets sortant possèdent l'entête PRI:6
  • Débit montant est faible

Comme si les règles nftables n'était pas prise en compte ...

Avec ton script lancé au démarrage + cette config :

/etc/config/network
config device
        option name 'eth1.832'
        option type '8021q'
        option ifname 'eth1'
        option vid '832'
        list egress_qos_mapping '0:0'
        list egress_qos_mapping '6:6'
        option macaddr 'xx:xx:xx:xx:xx:xx'

... le comportement est OK (PRI:6 + DSCP:CS6).
Je n'ai pas pu vérifier le contenu de la 1ère requête DHCP envoyée, mais celles de renouvellement de bail sont OK.

A noter que si je réinitialise le réseau à l'aide de la commande /etc/init.d/restart, les règles tc sont perdues.
On retombe alors en PRI:0 + DSCP:CS0.



ubune

  • Abonné Orange Fibre
  • *
  • Messages: 317
Remplacement de la Livebox par un routeur Openwrt
« Réponse #799 le: 11 février 2023 à 09:56:29 »
... j'avais le comportant suivant suivant :
  • TOUS les paquets sortant possèdent l'entête PRI:6
  • Débit montant est faible

Comme si les règles nftables n'était pas prise en compte ...


Il y a plusieurs moyen de vérifier si les rules sont chargées :
Exemple (en page 1) :
nft list ruleset | grep "set 0:"

Et tu avais bien "include" dans la configuration firewall ?

config include 'orange_rules'
option enabled '1'
option type 'nftables'
option path '/etc/nftables.d/nft-prio6-rules.include'
option position 'chain-append'
option chain 'mangle_postrouting'

Sinon merci pour le script, c'est vraiment propre.
Mais comme indiqué précédemment, l'éxecution du script requiert une image openwrt personnalisée ou alors l'installation des différents packages après passage en openwrt.
Le passage en 22.03 a permit de justement pouvoir remplacer la box avec une image native (aucun package à ajouter).

Sans démonstration de gain significatif je préfère laisser le tuto tel quel pour l'instant.

Fibroberto

  • Abonné Orange Fibre
  • *
  • Messages: 17
  • 06110
Remplacement de la Livebox par un routeur Openwrt
« Réponse #800 le: 11 février 2023 à 14:57:29 »
Bon j'ai mis en place chez moi avec le script tc.
Le débit est le même et le gain en CPU est marginal (j'ai fait 2 speedtest, j'ai du gagner 2/3% de CPU idle max sur le deuxième avec le tc).
Par contre le script hotplug ne fonctionne pas dans hotplug.d/iface chez moi sur mon edgerouter x.
Le script n'était trigger que sur "${DEVICE}" == "eth0.832" (au passage il manque un = sur ton deuxième test, et parfois quand je copie colle les scripts, sur certaines lignes vides je me retrouve avec un .. je sais pas si c'est mon firefox, mon vi ou autre, bref), une fois que l'interface avait reçu l'IP (et l'interface ne reçoit l'IP que si le script tc est passé, donc ça ne marchait pas). Je n'ai jamais de script trigger sur eth0 dans iface.
A la place j'ai mis le script dans hotplug.d/net et ça donne ça :

#!/bin/sh

if [ "${ACTION}" == "add" ] && [ "${DEVICENAME}" == "eth0.832" ]; then
  /etc/config/tc.sh eth0.832
fi

Et là ça marche pour moi.

edit :
Et il faut penser à modifier sysupgrade.conf parce que j'ai l'impression que les scripts de hotplug custom ne sont pas backup par défaut.

Aize147

  • Abonné Orange Fibre
  • *
  • Messages: 985
  • Orange FTTH 2G/800M - Free FTTH 8G/700M
Remplacement de la Livebox par un routeur Openwrt
« Réponse #801 le: 11 février 2023 à 15:51:20 »
Par contre le script hotplug ne fonctionne pas dans hotplug.d/iface chez moi sur mon edgerouter x.

Tu as quelle version de OpenWrt ?

Fibroberto

  • Abonné Orange Fibre
  • *
  • Messages: 17
  • 06110
Remplacement de la Livebox par un routeur Openwrt
« Réponse #802 le: 11 février 2023 à 16:53:33 »
La dernière stable 22.03.3.
Sur mon edgerouter x le script dans iface n'est jamais appelé sur eth0 seul. Il est appelé 2 fois, sur eth0.832, pour l'interface wan4 et pour l'interface wan6 mais une fois celle ci up (ce qui n'arrive que quand j'ai lancé le script tc), ça ne marche donc par pour moi.
En revanche dans net, je peux recevoir le signal add de eth0.832 qui me permet de lancer le script dès que l'interface existe, et la connexion se fait après normalement.

Aize147

  • Abonné Orange Fibre
  • *
  • Messages: 985
  • Orange FTTH 2G/800M - Free FTTH 8G/700M
Remplacement de la Livebox par un routeur Openwrt
« Réponse #803 le: 11 février 2023 à 22:20:59 »
La dernière stable 22.03.3.
Sur mon edgerouter x le script dans iface n'est jamais appelé sur eth0 seul. Il est appelé 2 fois, sur eth0.832, pour l'interface wan4 et pour l'interface wan6 mais une fois celle ci up (ce qui n'arrive que quand j'ai lancé le script tc), ça ne marche donc par pour moi.
En revanche dans net, je peux recevoir le signal add de eth0.832 qui me permet de lancer le script dès que l'interface existe, et la connexion se fait après normalement.

J'ai remis au propre le post plus haut pour les prochains.