La Fibre

Datacenter et équipements réseaux => Routeurs => Orange fibre Remplacer la LiveBox par un routeur => Discussion démarrée par: Mastah le 06 avril 2024 à 00:59:06

Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 06 avril 2024 à 00:59:06
Edit:
Documentation maintenant dispo en html >ici< (https://akhamar.github.io/orange-bypass-debian)
Repository github >ici< (https://github.com/akhamar/orange-bypass-debian)


BSD devenant de plus en plus à l'abandon et ayant un retard toujours plus grandissant sur le support de l'hardware moderne, j'ai décidé de passer d'OpnSense sur un routeur full Debian.

Vous trouverez ici (https://github.com/akhamar/orange-bypass-debian (https://github.com/akhamar/orange-bypass-debian)) un repo github permettant d'avoir un routeur sous Debian en dual stack avec:
- prise en charge du RA (Router Advertisement) orange (pas besoin de spécifier la gateway IPV6)
- prise en charge du RA (Router Advertisement) sur le LAN
- utilisation de nftables avec optimisation OFFLOAD (optionnel)
- utilisation de radvd combiné à isc-dhcp-server pour poser des leases dynamiques et statiques
- génération des options (user class, vendor class, 90, ...) automatique à chaque UP/DOWN de l'interface vlan832
- stack IPV4 totalement fonctionnel
- stack IPV6 totalement fonctionnel (ipv6 stateful)
- support de plusieurs subnet IPV6 si nécessaire (::01 vlan832 et ::02 lan sur le repo git) et configurable sur plusieurs interfaces
- support de la prio 6 sur les requêtes DHCP v4 & v6, ICMP6 Router solicitation & Neighbor solicitation, mais aussi ARP
- support du DSCP cs6 sur les requêtes DHCP v4 & v6, ICMP6 Router solicitation & Neighbor solicitation
- support du spoof MAC livebox

Ce qui n'est pas supporté:
- la télé
- le téléphone
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 06 avril 2024 à 00:59:14
Maj du 15/04/2024
- Passage du repo git a un website de documentation
- https://akhamar.github.io/orange-bypass-debian (https://akhamar.github.io/orange-bypass-debian)
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: LemurExpert le 06 avril 2024 à 14:47:34
Génial  :D, merci d'avoir pris le temps de nous faire un guide détaillé
Je vois que tu as même mis le patch de James pour passer le BCM57810 en 2.5gb   8)
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: basilix le 06 avril 2024 à 15:24:15
Je mets un petit grain de sel.

[ "$RUN" = "yes" ] && [ -n "$new_ip6_prefix" ] && [ -n "$interface_internal" ]

Est-ce que le code ci-dessous est équivalent en Bash ?

[[ $new_ip6_prefix && $interface_internal && $RUN == "yes" ]]

De même, pour un document en ligne ?

                echo ""
                echo "========================="
                echo "| interface: $interface"
                echo "========================="
                echo "| prefix: $prefix"
                echo "| index:  $index"
                echo "| ipv6:   $prefix$index::1/64"
                echo "========================="

cat <<EOF
                =========================
                | interface: $interface
                =========================
                | prefix: $prefix
                | index:  $index
                | ipv6:   $prefix$index::1/64
                =========================
EOF
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: basilix le 06 avril 2024 à 20:27:05
Autre suggestion mineure.

[[ $SECONDS -ge $TIMEOUT ]]

(( SECONDS >= TIMEOUT ))

Citation de: basilix
Est-ce que le code ci-dessous est équivalent en Bash ?

Oui, apparemment.

% set -x; if [[ "" && "" ]]; then true; else false; fi
+ [[ -n '' ]]
+ false
% unset var1 var2; if [[ $var1 && $var2 ]]; then true; else false; fi
+ unset var1 var2
+ [[ -n '' ]]
+ false
% var1=1; var2=1; if [[ $var1 && $var2 ]]; then true; else false; fi
+ var1=1
+ var2=1
+ [[ -n 1 ]]
+ [[ -n 1 ]]
+ true
% var1=1; var2=""; if [[ $var1 && $var2 ]]; then true; else false; fi
+ var1=1
+ var2=
+ [[ -n 1 ]]
+ [[ -n '' ]]
+ false
% set +x
%
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 06 avril 2024 à 20:29:03
Génial  :D, merci d'avoir pris le temps de nous faire un guide détaillé
Je vois que tu as même mis le patch de James pour passer le BCM57810 en 2.5gb   8)

Patch qui d'ailleurs à encore besoin de 2-3 ajustement, cf la manip à faire pour que le module soit pris en compte et les retour de l'auteur.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Kana-chan le 06 avril 2024 à 20:51:21
Bonsoir,

@basilix : Même si le code est équivalent en bash à ce que vous mettez, il est de la charge du dev de faire comme il l'entend.
Surtout lorsque les deux méthodes n'entrainent pas de différence au niveau des performances.

@Mastah : Merci pour cette version Debian. Étant sur pfsense+ des fois je me dis que BSD est assez long pour les mises à jour.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: kgersen le 06 avril 2024 à 23:06:01
super & merci du partage.

Pour ceux qui veulent contribuer, plutôt que de proposer des motifs mineurs de style de code, proposer plutôt de:

- convertir les parties spécifiques a Debian ifupdown vers systemd-networkd (en gros tout ce utilise /etc/network/interfaces (et interfaces.d/* aussi)).
- remplacer isc-dhcp (client & server qui sont EOL) par systemd-networkd

Cela permettrait d'en faire une version 'toute distrib' et pas que spécifique a Debian
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 07 avril 2024 à 15:36:15
super & merci du partage.

Pour ceux qui veulent contribuer, plutôt que de proposer des motifs mineurs de style de code, proposer plutôt de:

- convertir les parties spécifiques a Debian ifupdown vers systemd-networkd (en gros tout ce utilise /etc/network/interfaces (et interfaces.d/* aussi)).
- remplacer isc-dhcp (client & server qui sont EOL) par systemd-networkd

Cela permettrait d'en faire une version 'toute distrib' et pas que spécifique a Debian

D'ailleurs networkd gère la prio pour les req DHCP (de manière propre, genre cgroup ou via une option du client) ?
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: kgersen le 07 avril 2024 à 15:58:29
D'ailleurs networkd gère la prio pour les req DHCP (de manière propre, genre cgroup ou via une option du client) ?

a priori oui: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#SocketPriority=
(il faut systemd 253 ou plus)

mais je n'ai jamais testé.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 08 avril 2024 à 01:05:32
a priori oui: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#SocketPriority=
(il faut systemd 253 ou plus)

mais je n'ai jamais testé.

Je mettrais probablement à jour dans le future. Pour le moment debian 12.5 est encore en 252 pour systemd.
Une fois que la version 253 sera un peu plus répandu, ça vaudra probablement le coup de maj.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 15 avril 2024 à 22:04:42
Totalement passé en documentation html.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 14 juillet 2024 à 23:00:19
Changelog



Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: kgersen le 15 juillet 2024 à 09:57:58
nice.

As tu évalué l'impact de  nftables vs cgroup sur le débit en sortie/charge cpu ?

Tant qu'Orange reste < 1Gbps en upload j'imagine que ca n'influera pas trop ?

Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 15 juillet 2024 à 12:18:17
nice.

As tu évalué l'impact de  nftables vs cgroup sur le débit en sortie/charge cpu ?

Tant qu'Orange reste < 1Gbps en upload j'imagine que ca n'influera pas trop ?

J'ai une ligne 8/2, j'ai pas de souci. Et les règles ne match que certains type de packet très précis, donc peu/pas d'impact.
Je fais passer un traffic de 25Gbe, sur ce router, en test.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 27 juillet 2024 à 18:07:27
Salut

Merci beaucoup pour ce tuto. J'ai commencé à configurer mon debian avec.
Je suis un peu newb sur la partie ipv6 et le service ne veut pas démarrer:

No subnet6 declaration for lan (fe80::be24:11ff:fe46:5531)

Mon fichier de config est plutôt simple :

##################
#### Config

# Global config
# option dhcp6.domain-search "";
option dhcp6.rapid-commit;

# Lease config
default-lease-time 7200;
max-lease-time 86400;
log-facility local7;
one-lease-per-client true;
deny duplicates;
ping-check true;
update-conflict-detection false;
authoritative;

# Subnet
subnet6 ${IPV6_DELEGATION_64}::/64 {
  # Invite pool range
  range6 ${IPV6_DELEGATION_64}::129 ${IPV6_DELEGATION_64}::254;

  # DNS
  option dhcp6.name-servers ${IPV6_DELEGATION_64}::1;
}

ddns-update-style none;

Si quelqu'un peut m'aider ça serait cool.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 28 juillet 2024 à 14:17:01
Dans mon tuto j'utilise un template avec un subenv pour créer le fichier final, si tu ne fais pas ce que je fais ligne pour ligne, fichier pour fichier ça ne pourra pas fonctionner.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: kgersen le 28 juillet 2024 à 19:57:13
modération: j'ai supprimé les messages spam / hs.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 28 juillet 2024 à 20:12:49
Dans mon tuto j'utilise un template avec un subenv pour créer le fichier final, si tu ne fais pas ce que je fais ligne pour ligne, fichier pour fichier ça ne pourra pas fonctionner.

J'avais bien suivi mais j'ai quelques spécialités avec un environnement proxmox pci passthrough.
Certains fonction ethtool ne répond pas en proxmox. J'ai modifié le script et maintenant tout fonctionne un grand merci.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 28 juillet 2024 à 20:14:23
J'avais bien suivi mais j'ai quelques spécialités avec un environnement proxmox pci passthrough.
Certains fonction ethtool ne répond pas en proxmox. J'ai modifié le script et maintenant tout fonctionne un grand merci.

Top super ! Tu peux communiquer tes modifications ? Ca pourra peut-être servir à quelqu'un d'autre. En précisant que c'est pour proxmox et ce que tu fais globalement.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 28 juillet 2024 à 20:15:50
J'avais bien suivi mais j'ai quelques spécialités avec un environnement proxmox pci passthrough.
Certains fonction ethtool ne répond pas en proxmox. J'ai modifié le script et maintenant tout fonctionne un grand merci.

Autre question, tu utilises nftable pour la cos6 + dscp cs6 ? Est-ce bien fonctionnel pour toi ?
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 31 juillet 2024 à 16:39:55
Top super ! Tu peux communiquer tes modifications ? Ca pourra peut-être servir à quelqu'un d'autre. En précisant que c'est pour proxmox et ce que tu fais globalement.

Sur le script de vérification de l'état du port WAN il faut modifier le code car sur proxmox le ethtool ne permet pas d'avoir le détail de l'état :

until [[ $(ethtool -m $IFACE | grep -E 'Laser output power\s+:' | awk '{print $(NF - 1)}' | cut -d'.' -f1) -gt 0 ]]
Par

until [[ "$(ethtool $IFACE | awk '/Link detected:/ {print $3}')" = "yes" ]]

Sinon oui la Cos 6 est un prerequis dans ma zone et cela fonctionne très bien avec la config nftable.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 31 juillet 2024 à 19:15:10
Après le seul défaut pour moi c'est comment faire de la qos ?
A ma connaissance ce n'est pas implémenté ?
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 31 juillet 2024 à 22:10:36
Après le seul défaut pour moi c'est comment faire de la qos ?
A ma connaissance ce n'est pas implémenté ?

La QOS, tu veux dire les req DHCP en COS 6 et dscp cs6 ?
Ou si tu parles de QOS de ton local vers l'extérieur, il y aura plein de tuto nftable pour ça.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 31 juillet 2024 à 22:13:32
...
Sinon oui la Cos 6 est un prerequis dans ma zone et cela fonctionne très bien avec la config nftable.

@basilix c'est bien fonctionnel :p
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: basilix le 01 août 2024 à 14:24:35
@Mastah :

Ah, tant mieux !  :)

De mon côté, je reste bredouille. Je dois refaire ma configuration à zéro car plus rien ne fonctionne. Je n'ai pas obtenu de réponses aux questions que je me posais
parce que personne du projet Netfilter ne m'a répondu. Il fait trop chaud et les gens sont sûrement en vacances, débordés, ou pas enclin à vouloir répondre. Cela
m'embête de devoir injecter des règles nftables lors de l'initialisation du routeur.

J'hésite à ouvrir un rapport de bogue afin d'éclaircir les choses, au moins sur la documentation de nftables. J'aurais peut-être plus de chances d'avoir des explications.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: cyayon le 01 août 2024 à 15:48:02
@Mastah :

Ah, tant mieux !  :)

De mon côté, je reste bredouille. Je dois refaire ma configuration à zéro car plus rien ne fonctionne. Je n'ai pas obtenu de réponses aux questions que je me posais
parce que personne du projet Netfilter ne m'a répondu. Il fait trop chaud et les gens sont sûrement en vacances, débordés, ou pas enclin à vouloir répondre. Cela
m'embête de devoir injecter des règles nftables lors de l'initialisation du routeur.

J'hésite à ouvrir un rapport de bogue afin d'éclaircir les choses, au moins sur la documentation de nftables. J'aurais peut-être plus de chances d'avoir des explications.

Salut,
Si j'ai bien suivi, ton problème est d'avoir besoin d'injecter les rules netdev / egress avant la première request DHCP Client, donc juste après la creation de l'interface et avant le DHCP client ?
Ceci car nftables a besoin que l'interface existe. C'est bien cela ?
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: basilix le 01 août 2024 à 17:52:06
@cyayon :

Tout à fait. Mais j'aurais également souhaité avoir une explication des concepts.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: cyayon le 01 août 2024 à 21:13:14
Alors le pourquoi du comment… c’est pas choquant non plus …
Suffit de bien gérer les dépendances avec systemd-networks (wait-online sur status off), et ca roule.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 20 septembre 2024 à 08:42:42
bon ça fait quelques semaines que je tourne sur cette config.
Ça fonctionne vraiment très bien et la consommation est vraiment ridicule. Merci

En revanche je ne trouve pas d'article pour l'implémentation de QOS SQM directement sur nftables.
Beaucoup font référence à OpenWrt mais je ne sais pas si c'est applicable ici.


Quelqu'un aurait des pistes pour implémenter ça ?

Merci d'avance
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: cyayon le 20 septembre 2024 à 09:18:29
Salut,

Bonne question.
En cherchant un peu, cela ressemble à une belle usine à gaz...

https://github.com/jeverley/dscpclassify
https://forum.openwrt.org/t/sqm-and-nftables/165350/9
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: simon le 20 septembre 2024 à 09:48:18
Cherches tu à faire de la QoS pour prioriser certains flux ou as-tu un problème de bufferbloat ?
Avec des connexions fibres à latence faible et un gros upload, l'intérêt me semble assez limité, en sachant que cake ou autre SQM avancé nécessitent des gros CPU lorsqu'on approche le Gbit/s.

Pour ma part, je n'ai jamais remarqué de souci de bufferbloat sur une 300/300Mbit/s, sans configuration particulière d'OpenWRT (donc avec le classifier fq_codel).
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 20 septembre 2024 à 16:01:39
Cherches tu à faire de la QoS pour prioriser certains flux ou as-tu un problème de bufferbloat ?
Avec des connexions fibres à latence faible et un gros upload, l'intérêt me semble assez limité, en sachant que cake ou autre SQM avancé nécessitent des gros CPU lorsqu'on approche le Gbit/s.

Pour ma part, je n'ai jamais remarqué de souci de bufferbloat sur une 300/300Mbit/s, sans configuration particulière d'OpenWRT (donc avec le classifier fq_codel).

C'est plus pour luter contre le bufferbloat. Je l'avais avant sur mon ancien routeur avec une baisse de débit bien sur.
Je sais que c'est très consommateur mais justement avec cette configuration debian très efficace j'étais intéressé pour tester et voir la limite suivant la configuration.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 03 mars 2025 à 10:37:52
J'ai apporté pas mal de modification afin d'automatisé encore plus. J'apporterais des modifications au wiki d'ici peu.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Hiigaraa le 04 mars 2025 à 11:29:19
Mastah, Je me permet de répondre ici car tu poste tes screen de performance sur les autres topics (Mikrotik / OPNSense).

Oui ta solution est très performante (peut-être la meilleure parmi toutes les solutions de bypass de la livebox)
Par contre niveau UX c'est à 0 par rapport à un OPNSense / Winbox pour RouterOS. C'est pour ca que l'on ne bascule pas sur celle ci (aussi car elle n'intègre pas le flux TV et la gestion des VLANs)
C'est super important l'UX ainsi que les fonctionnalités supplémentaires.
Oui je pourrais être amené à basculer si toutes ces fonctionnalités + UX étaient la. Mais aujourd'hui tu peux flooder tant que tu veux les autres topics, ca ne me fera pas plus basculer.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: LemurExpert le 04 mars 2025 à 13:16:56
J'ai apporté pas mal de modification afin d'automatisé encore plus. J'apporterais des modifications au wiki d'ici peu.

ça fait 6mois maintenant que j'utilise un Debian basé sur ton tuto github, et franchement ça marche super bien merci encore, j'ai simplement rajouté la redirection locale de port et la reconnection automatique avec un petit script qui ping 8.8.8.8, pour les règles vlan avec nftable c'est chatgpt qui s'en est occupé  ;D
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 04 mars 2025 à 19:17:49
ça fait 6mois maintenant que j'utilise un Debian basé sur ton tuto github, et franchement ça marche super bien merci encore, j'ai simplement rajouté la redirection locale de port et la reconnection automatique avec un petit script qui ping 8.8.8.8, pour les règles vlan avec nftable c'est chatgpt qui s'en est occupé  ;D

Peux-tu montrer à quoi ressemble ta redirection de port local ainsi que la reconnexion auto ?
Je les prendrais peut-être dans la doc ou alors je m'en inspirerais peut-être.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: LemurExpert le 05 mars 2025 à 06:12:46
Peux-tu montrer à quoi ressemble ta redirection de port local ainsi que la reconnexion auto ?
Je les prendrais peut-être dans la doc ou alors je m'en inspirerais peut-être.

Le script de reconnexion auto:
#!/bin/bash
# /usr/local/sbin/network-watchdog.sh

LOGFILE="/var/log/network-watchdog.log"
TARGET="8.8.8.8"
PING_COUNT=4
MAX_FAIL=6  # 6 * 10 seconds = 1 minute of outage
FAIL_COUNT=0

# Ensure the logfile exists and has proper permissions
touch "$LOGFILE"
chmod 644 "$LOGFILE"

# Log when the service starts
echo "$(date): network-watchdog service started." >> "$LOGFILE"

# Trap termination signals to log when the service is stopping
trap 'echo "$(date): network-watchdog service stopping." >> "$LOGFILE"; exit 0' SIGTERM SIGINT

while true; do
  if ping -c "$PING_COUNT" "$TARGET" > /dev/null 2>&1; then
    FAIL_COUNT=0
  else
    ((FAIL_COUNT++))
    echo "$(date): Ping to $TARGET failed ($FAIL_COUNT/$MAX_FAIL)" >> "$LOGFILE"
  fi

  if [ "$FAIL_COUNT" -ge "$MAX_FAIL" ]; then
    echo "$(date): Connectivity lost for 1 minute. Reconnecting..." >> "$LOGFILE"
    /sbin/ifdown vlan832 && /sbin/ifup vlan832
    systemctl restart isc-dhcp-server.service radvd.service nftables.service
    echo "$(date): Network services restarted." >> "$LOGFILE"
    FAIL_COUNT=0
  fi

  sleep 10  # Check every 10 seconds
done
A utiliser dans un service rc.local

Pour la redirection de port locale c'étais une règle hairpin nftable que je n'ai plus, chatgpt m'avais aidé la aussi
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: basilix le 05 mars 2025 à 08:52:21
Personne n'a t'il tenté de percer le mystère de l'algorithme utilisé par la Livebox ?

[...]

Respecter les cycle de vie définis dans les RFC idoines et relancer depuis le DORA / SARR en cas de perte de la connectivité montante (à tester avec ARP et ICMPv6 NS/NA) comme le fait la LiveBox

[...]

De l'importance des tests de vie :

La cnx de la LB peut être interrompue sur plusieurs segments entre la LB et le BNG.
Si vous ne testez pas la cnx montante, vous allez vous retrouver hors séquence et donc vous faire blaster régulièrement.
Cela doit être fait sur LES DEUX stacks Ipv4 et IPv6
Une capture minimal de ce que fait la LB vous permettra de comprendre la puissance de ces deux algos ....
Et quand vous détectez une fin de vie sur un stack, vous relancez celui ci (cycle DORA ou SARR suivant le stack) proprement
Faite un RELEASE (du bon stack) AVANT de relancer le cycle ....
Durant votre capture, vous verrez que le BNG fait de même dans l'autre sens ... d'où l'importance de bien répondre à ces message avec la bonne COS6


J'ai jeté un coup d’œil à ma capture réseau.

[IPv4]

Le BNG émet une requête ARP à destination de la Livebox (unicast) toutes les 310 secondes.

La Livebox a une séquence plus complexe de requêtes ARP.

Lors des vingts première minutes, il y a une succession de paquets ARP unicast et broadcast :
broadcast, unicast, broadcast puis broadcast, unicast, unicast, broadcast.

La Livebox émet finalement une succession de requêtes ARP en diffusion générale (broadcast)
toutes les 120 secondes.

[IPv6]

Le BNG envoie trois premiers paquets NS (neighbor sollicitation) adressés à la Livebox avec un intervalle de dix secondes.

Finalement, le BNG envoie des paquets NS adressés à la Livebox toutes les 310 secondes.

La livebox envoie des paquets NS adressés au BNG toutes les 120 secondes.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 05 mars 2025 à 14:12:16
Le script de reconnexion auto:
#!/bin/bash
# /usr/local/sbin/network-watchdog.sh

LOGFILE="/var/log/network-watchdog.log"
TARGET="8.8.8.8"
PING_COUNT=4
MAX_FAIL=6  # 6 * 10 seconds = 1 minute of outage
FAIL_COUNT=0

# Ensure the logfile exists and has proper permissions
touch "$LOGFILE"
chmod 644 "$LOGFILE"

# Log when the service starts
echo "$(date): network-watchdog service started." >> "$LOGFILE"

# Trap termination signals to log when the service is stopping
trap 'echo "$(date): network-watchdog service stopping." >> "$LOGFILE"; exit 0' SIGTERM SIGINT

while true; do
  if ping -c "$PING_COUNT" "$TARGET" > /dev/null 2>&1; then
    FAIL_COUNT=0
  else
    ((FAIL_COUNT++))
    echo "$(date): Ping to $TARGET failed ($FAIL_COUNT/$MAX_FAIL)" >> "$LOGFILE"
  fi

  if [ "$FAIL_COUNT" -ge "$MAX_FAIL" ]; then
    echo "$(date): Connectivity lost for 1 minute. Reconnecting..." >> "$LOGFILE"
    /sbin/ifdown vlan832 && /sbin/ifup vlan832
    systemctl restart isc-dhcp-server.service radvd.service nftables.service
    echo "$(date): Network services restarted." >> "$LOGFILE"
    FAIL_COUNT=0
  fi

  sleep 10  # Check every 10 seconds
done
A utiliser dans un service rc.local

Pour la redirection de port locale c'étais une règle hairpin nftable que je n'ai plus, chatgpt m'avais aidé la aussi

Ok merci !
Un systemctl restart network fonctionnait pas ?
Pour info je mettrais a jour bientôt pour automatiser la parti radvd + dhcpd avec un changement de subnet orange (ipv6).
J'ai aussi pu faire en sort d'avoir à la fois SLAAC et DHCPdv6.
Je split le /56 en 2 subnet /64. Un pour SLAAC et un pour DHCPdv6.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: LemurExpert le 06 mars 2025 à 11:57:54
Ok merci !
Un systemctl restart network fonctionnait pas ?
Aucune idée, j'ai vu que tu utilisais ça sur ton github et j'ai pas chercher plus loin  ;D
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Krapace le 22 mars 2025 à 00:09:17
Merci pour ce tuto

Même si j'ai un peu galéré avec nftables (c'était ma 1ere fois), un VM Debian avec un MCL220 fait super bien le taf

Mon Turris Mox va pouvoir prendre sa retraite ;)

(https://i.ibb.co/1wPvcbY/Capture-d-cran-du-2025-03-22-00-03-53.png)
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 22 mars 2025 à 22:10:48
Merci pour ce tuto

Même si j'ai un peu galéré avec nftables (c'était ma 1ere fois), un VM Debian avec un MCL220 fait super bien le taf

Mon Turris Mox va pouvoir prendre sa retraite ;)

Ca va bientôt faire 1an que je tourne sur cette config et j'ai jamais eu un routeur aussi stable, facile a config / maj, sécure, performant et si peu consommateur d'électricité.

Vivement que opnsense se débarrasse au plus vite de BSD qui est un total abandon-ware...
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: surfinside le 30 mars 2025 à 10:46:05
Salut @Mastah,

GG pour ce TUTO ;)

Dans /etc/network/interfaces.d/wan
Pourquoi utiliser up /etc/network/inject_pcp_6 & up ip l s $IFACE type vlan egress 6:6 ?

Sauf erreur de ma part, le script inject_pcp_6 configure nftable pour mettre la prio à 6 sur les paquets DHCP et ARP (IPv4)

Et après avec la commande ip l'ensemble des paquets sont de nouveau paramétrés avec une prio 6

Merci !

EDIT : Oki la prio n'est pas appliquée sur la même couche
ip -> L2
nftable -> L3
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 30 mars 2025 à 14:28:12
Salut @Mastah,

GG pour ce TUTO ;)

Dans /etc/network/interfaces.d/wan
Pourquoi utiliser up /etc/network/inject_pcp_6 & up ip l s $IFACE type vlan egress 6:6 ?

Sauf erreur de ma part, le script inject_pcp_6 configure nftable pour mettre la prio à 6 sur les paquets DHCP et ARP (IPv4)

Et après avec la commande ip l'ensemble des paquets sont de nouveau paramétrés avec une prio 6

Merci !

EDIT : Oki la prio n'est pas appliquée sur la même couche
ip -> L2
nftable -> L3

Non c'est surtout pour mapper le 6 vers 6. Si la table de mapping n'existe pas les packets partent sans prio.
NFTable flag/tag les packets en prio 6, l'interface est config pour supporter une prio 6 en mappant 6:6.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: surfinside le 30 mars 2025 à 15:41:59
Merci pour ton retour rapide !
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 19 avril 2025 à 13:59:02
J'ai maj pour supporter un dual stack DHCPd v6 et SLAAC sur deux subnet different.
Il y a donc maintenant un subnet en XXXX:XXXX:XXXX:XX02::/64 et un en XXXX:XXXX:XXXX:XX03::/64

J'en ai aussi profiter pour apporter quelques modifications et améliorations
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 21 avril 2025 à 09:40:41
J'ai maj pour supporter un dual stack DHCPd v6 et SLAAC sur deux subnet different.
Il y a donc maintenant un subnet en XXXX:XXXX:XXXX:XX02::/64 et un en XXXX:XXXX:XXXX:XX03::/64

J'en ai aussi profiter pour apporter quelques modifications et améliorations

Merci beaucoup je viens d'appliquer les mises à jour.


Sur la partie IPv6 je suis un newb. Je ne comprends pas pourquoi certains de mes clients (android et autre) n'arrivent pas à avoir d'ip.
Mes PC windows aucun problème.

Si quelqu'un a une idée ? Merci d'avance.

Solicit message from fe80::xxxx:xxx:xxxx:xxxx port 546, transaction ID 0xF99F9D00
2025-04-21T09:18:46.115258+02:00 edge dhcpd[781]: Unable to pick client prefix: no IPv6 pools on this shared network
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Paul le 21 avril 2025 à 09:53:08
Les RA ne doivent pas fonctionner, tu as du DHCPv6 actif et Android ne le supporte pas.

Ton message de journal est lié à un autre problème. Comme si sur ton réseau, un appareil demande un préfixe mais ton serveur DHCPv6 n’en a pas à déléguer.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: HFR le 21 avril 2025 à 10:51:13
Les RA ne doivent pas fonctionner, tu as du DHCPv6 actif et Android ne le supporte pas.

Ton message de journal est lié à un autre problème. Comme si sur ton réseau, un appareil demande un préfixe mais ton serveur DHCPv6 n’en a pas à déléguer.

Merci en regardant de plus prêt la config je pense avoir trouvé l'erreur RADVD. Comme quoi suffit d'en parler pour trouver.
Titre: Bypass orange (G-PON/XGS-PON) sur debian (explications pas-à-pas)
Posté par: Mastah le 21 avril 2025 à 16:26:20
Merci beaucoup je viens d'appliquer les mises à jour.


Sur la partie IPv6 je suis un newb. Je ne comprends pas pourquoi certains de mes clients (android et autre) n'arrivent pas à avoir d'ip.
Mes PC windows aucun problème.

Si quelqu'un a une idée ? Merci d'avance.

Solicit message from fe80::xxxx:xxx:xxxx:xxxx port 546, transaction ID 0xF99F9D00
2025-04-21T09:18:46.115258+02:00 edge dhcpd[781]: Unable to pick client prefix: no IPv6 pools on this shared network

C'est justement pourquoi je fais du dual stack DHCPv6 et SLAAC, car android n'utilise que SLAAC alors que windows peut utiliser les deux.
Avec les dernières modif que j'ai faite, les smartrphone et autre device utilisant SLAAC auront une IPv6 sur le subnet xx03::/64.

Le truc très chiant avec SLAAC c'est que tu ne peux pas faire de lease (c'est le principe en même temps) et donc les adresses sont donnés plus ou moins "aléatoirement" (duid / mac adresse / ...) et donc ultra chiant lorsque tu veux faire des règles précise pour ça.
Mais le coup du dual stack DHCPv6 + SLAAC est pas mal pour le coup.

Mes devices de type temporaire / smartphone récup une ip dans un subnet précis avec une IPv6 au pif et mes devices (serveur, pc, ...) récup des IP d'un pool ou de lease prédéfini dans le subnet principale.