L'ONU FS (XGS-ONU-25-20NI) a une limite de 17 VLAN mappable sur le bridge. Ceci peut donc poser problème dans le cas ou l'OLT remonte une quantité supérieur à 17 VLAN.
Cet ONU est trouvable ici : https://www.fs.com/fr/products/185594.html
Un ensemble de source sur l'ONU sont trouvable ici : https://hack-gpon.org/xgs/ont-fs-XGS-ONU-25-20NI/
Ceci n'est pas un tuto de comment faire une req DHCP avec prio 6 sur VLAN832. Les informations ne sont ici que pour configurer un ONU afin que celui puisse recevoir du trafique de l'OLT et émettre.
Vous briquez vos ONU ? J'en ai rien à faire, pas mon souci :p
L'ONU est bien limité à 17 VLAN rules. Aucunes des deux personnes ayant réussi à faire fonctionner l'ONU sur ce forum ont l'option TV. L'option TV prend 6x 840VLAN rules + 3x 838VLAN rules. Ceci explique la différence de quantité de VLAN rules. 13 VLAN rules pour eux, 22 pour moi (13 + 6 + 3 = 22).
Hors, les VLAN 838 et 840 sont envoyés par l'OLT avant le VLAN 832. Le VLAN 832 se retrouve donc non mappé sur le bridge car étant la 19ème règle envoyé (au delà de 17). Il devient donc impossible de passer des trams sur le vlan832.
Note
95% des personnes avec une offre Orange sont donc concerné par ce souci. Le mod de l'ONU ayant été fini, celui-ci vous permettra d'avoir une ligne fonctionnel avec cet ONU
Etant limité à environ 13 VLAN, vous ne devriez pas avoir le souci et donc une simple configuration du module sera suffisante.
Etant fort probablement à plus de 22 VLAN, vous devriez avoir le souci et donc une simple configuration du module ne sera pas suffisante. Il vous faudra donc faire un peu plus que de la simple configuration.
Un mod + configuration de l'ONU ont/sont réalisé. Je donnerais plus d'info à ce sujet une fois stable.
Le mod est disponible et la marche à suivre renseigné ici.
Changer directement les valeurs serial, vendor et hardware version sur l'ONU ne sont pas recommandé. En effet, dans le cas de RMA, il vous sera nécessaire de faire un revert. De même, l'ONU possède un ensemble de fichiers de config qui permettent de remplacer dynamiquement ces valeurs, sans avoir à changer les valeurs par défaut. Cette méthode est donc grandement privilégié et conseillé.
Un ONU doit avoir un failsafe qui permet de retourner à l'état initial en cas de brick ou de mauvaise configuration. Le mod qui est utilisé pour configurer l'ONU permet de faire, via un double power cycle de moins de 30 à 120sec, une remise en état d'usine de l'ONU. Ceci permet de limité énormément les bricks involontaire par mauvaises manipulations. Cela permet aussi de facilement remettre l'ONU en réglage usine (Il suffit de faire un double power cycle de moins de 120sec). Ce failsafe est encore en court d'amélioration.
La version 1.1 du mod est disponible ici : rssor mod v1.1 Les explications (English) sont disponible ici : readme
Il vous faudra connaitre le serial de l'ONU. Pour cela le plus simple est d'en faire la demande auprès de fs.com. Dans le cas ou vous auriez oublié, il existe un sous module au mod qui permet de trouvé ce serial en une 20ene de seconde (Récupération du serial)
Vous assurez d'être sur une machine hôte de l'ONU. Vous aurez besoin d'une adresse sur le réseau 192.168.100.0/24
. Vous aurez aussi besoin d'avoir une règle firewall qui permet à l'ONU d'accéder au port 8172 sur l'adresse que vous aurez choisi sur le réseau 192.168.100.0/24
.
L'ONU est accessible sur l'IP 192.168.100.1
Dans notre cas, ISP orange les commandes à faire sont les suivantes.
Important
=> Dans le cas où vous n'êtes pas sûr d'avoir moins de 17 règles de vlan à mapper
./fs_xgspon_mod.py install GPONXXXXXXXX orange SMBSXXXXXXXX
Ou
GPONXXXXXXXX
est le sérial d'origine de l'ONU fs.com etSMBSXXXXXXXX
le serial de la livebox
reboot de l'ONU (press enter)
Important
=> Dans le cas où vous êtes sûr d'avoir moins de 17 règles de vlan à mapper
./fs_xgspon_mod.py install GPONXXXXXXXX orange SMBSXXXXXXXX --vlan_rules ""
Ou
GPONXXXXXXXX
est le sérial d'origine de l'ONU fs.com etSMBSXXXXXXXX
le serial de la livebox
reboot de l'ONU (press enter)
./fs_xgspon_mod.py telnet SMBSXXXXXXXX
Ou
SMBSXXXXXXXX
le serial de la livebox
puis
/s/m/show 256
/s/m/show 257
C'est deux commande devraient permettre d'afficher le serial, vendor et hardware version pour vérification des bonnes valeurs (en hexa).
/traffic/pon/show onu
------------------------- ONU INFO --------------------------
Onu id 26
sdThreshold: 0
sfThreshold: 0
TO1: 80000
TO2: 1
eqd: XXXXXXXX
Serial Number(vendor code): SMBS
Serial Number(sn): XXXXXXX
Password: XX XX XX XX XX XX XX XX XX XX
Registration ID: 0xXXXXXXXXXXXXXXXX0000000000000000000000000000000000000000000000000000000000
------------------------- INFO END --------------------------
/traffic/pon/show link
----------------- LINK STATE -----------------
Operation State Machine: OPERATION (O5)
----------------- STATE END -----------------
/system/mib/show 506
EntityID = 0x0101
OuterPriFilter = 15
OuterVidFilter = 4096
OuterTPIDFilter = 0
InnerPriFilter = 8
InnerVidFilter = 832
InnerTPIDFilter = 5
EtherTypeFilter = 0
AniBriPortNum = 2
RmTagTreat = 1
OuterPriTreat = 15
OuterVidTreat = 0
OuterTPIDTreat = 0
InnerPriTreat = 8
InnerVidTreat = 2800
InnerTPIDTreat = 2
EntityID = 0x0101
OuterPriFilter = 15
OuterVidFilter = 4096
OuterTPIDFilter = 0
InnerPriFilter = 8
InnerVidFilter = 835
InnerTPIDFilter = 5
EtherTypeFilter = 0
AniBriPortNum = 6
RmTagTreat = 1
OuterPriTreat = 15
OuterVidTreat = 0
OuterTPIDTreat = 0
InnerPriTreat = 8
InnerVidTreat = 835
InnerTPIDTreat = 2
...
/traffic/eth/show connect all
US BRIDGE 65535
INDEX = 0, SLOT = 1, PORT = 4, VLANFILTER = 832 PRIFILTER = 0x1
VLAN MATCH : MATCH VLAN ACT : REPLACE OUT VID : 2800 OUT PRI : 0 TCI MAPPING: * PRI 0 -> FLOW 1 * PRI 1 -> FLOW 0 * PRI 2 -> FLOW 0 * PRI 3 -> FLOW 0 * PRI 4 -> FLOW 0 * PRI 5 -> FLOW 0 * PRI 6 -> FLOW 0 * PRI 7 -> FLOW 0
Warning
A ne faire que si les étapes précédentes sont OK
./fs_xgspon_mod.py persist SMBSXXXXXXXX
Ou
SMBSXXXXXXXX
le serial de la livebox
Warning
A ne faire que si les étapes précédentes sont OK
./fs_xgspon_mod.py rearm SMBSXXXXXXXX
Ou
SMBSXXXXXXXX
le serial de la livebox
Il s'agit ici de mettre en place un job cron pour rearm l'ONU. Ceci à pour but de re-armer le mod en cas de failsafe (double coupure de courant, 2 reboot rapide successif, ...). Dans mon cas, ce job est fait via opnsense toutes les 5mins.
sudo ./fs_xgspon_mod.py discoverserial_cig
Router:
- OpnSense
- Debian
NIC:
- X710-DA2 (l'ONU n'est accessible que lorsque la fibre est enfiché)
- X520-DA1
- X520-DA2
- N20KJ [Broadcom 57810 S]
Media converter:
- MC220L v2.x (l'ONU est accessible avec/sans fibre enfiché)
- MC220L v3.x (l'ONU est accessible avec fibre enfiché)
Ajout d'un template de tache cron pour rearm le module.
cd /usr/local/opnsense/service/conf/actions.d/
nano actions_onu_rearm.conf
[reload]
command:/opt/onu/fs_xgspon_mod.py
parameters:rearm %s
type:script_output
message:Rearm ONU (%s)
description:Rearm ONU
service configd restart
Pour tester
configctl -d onu_rearm reload GPONXXXXXXXX
tail -500f /var/log/configd/configd_YYYYMMDD.log
Ajout d'une nouvelle tache cron dans opnsense.
La valeur a mettre est celle du serial d'origine GPONXXXXXXXX (et non SMBSXXXXXXXX comme sur la capture)
- rss (rssor)
- lama
PS: je ne répond pas aux mails, aux messages privés et je ne fais pas la cuisine à votre place.