Bonjour à tous,
Tout d'abord un grand merci à ce forum qui m'a permis de remplacer ma box par un routeur MikroTik!
J'ai lu des informations contradictoires sur la configuration nécessaire du SFP, et du routeur dans le cas d'une IPv4 en CG-NAT.
Donc voila un petit guide pour résumer la configuration minimale dans le cas de figure suivant:
- Routeur MikroTik RB5009
- SFP ONU GPON de chez FS.com (GPON-ONU-34-20BI) dans son dernier firmware (6BA1896SPLQA42)
- Fibre Red by SFR avec IPv4 CG-NAT et IPv6
- (Rennes, si la localisation géographique importe)
Je ne donne ici que les instructions pour obtenir une connectivité IPv4/IPv6 fonctionnelle, le reste de la configuration est libre :-)
Voir
https://lafibre.info/remplacer-sfr/mikrotik-34744/ pour une configuration complète (NAT, firewall, etc.).
Pré-requis- Mettre à jour le routeur MikroTik. La version 7.8 pose problème avec certains SFPs
- Noter le mot de passe fibre indiqué dans l'interface web
- Noter l'adresse MAC de la box indiquée sur l'étiquette
SFPLa seule opération nécessaire est le changement du mot de passe PLOAM:
sfp_i2c -i11 -s "MOT_DE_PASSE_FIBRE"
Au début j'avais changé le vendor ID et le numéro de série, mais le démon OMCI crashait car il lui manquait une MIB, probablement spécifique à l'ONT de la box.
C'est le syndrome "j'imite trop l'ONT opérateur" décrit sur ce forum :-)
En remettant le vendor ID et le numéro de série initial tout fonctionne.
IPv4Il est très facile de récupérer une IPv4, mais chez SFR en CG-NAT le DHCP renvoie une adresse dans un /31.
Or RouterOS ne supporte pas bien les liens point-à-point en /31, et dans cette configuration il n'est pas possible de joindre autre chose que la gateway SFR.
Pour configurer un lien P2P sur un routeur MikroTik il faut attribuer un /32 à l'interface, et indiquer la gateway en tant qu'adresse réseau.
Pour automatiser cela on peut indiquer au client DHCP d'exécuter un script à chaque fois que le bail DHCP est renouvelé:
{
:local address ([/ip/address/get [find interface=sfp-sfpplus1 dynamic]]->"network");
:local network ($address + 1);
/ip/address/remove [find interface=sfp-sfpplus1 dynamic];
/ip/address/add address=$address network=$network interface=sfp-sfpplus1
}
Par exemple si le DHCP nous attribue "10.153.1.101/31", le script va supprimer cette addresse et la remplacer par "10.153.1.101/32" avec "10.153.1.100" en adresse réseau.
(Une solution alternative serait de se placer dans un réseau plus grand qu'un /31 qui contient notre IP et la gateway. Un /24 par exemple.)
En incluant la définition de l'option 60 (voir
https://lafibre.info/remplacer-sfr/mikrotik-34744/), la configuration du client DHCP est donc:
/ip dhcp-client option add code=60 name=vendor-class-identifier value=0x6e657566626f785f4e42365641432d4658432d72305f4e42365641432d4d41494e2d52342e302e34305f4e42365641432d5844534c2d58585858585858
/ip dhcp-client add dhcp-options=vendor-class-identifier interface=sfp-sfpplus1 script="{\
\n :local address ([/ip/address/get [find interface=sfp-sfpplus1 dynamic]]->\"network\");\
\n :local network (\$address + 1);\
\n /ip/address/remove [find interface=sfp-sfpplus1 dynamic];\
\n /ip/address/add address=\$address network=\$network interface=sfp-sfpplus1\
\n}"
IPv6Pour IPv6 il suffit de remplacer l'adresse MAC de l'interface fibre par celle de la box, puis de configurer le client DHCP.
Il est important de désactiver le rapid commit, sinon on ne récupère pas de préfixe (voir
https://lafibre.info/remplacer-sfr/mirkrotik-rb5009-et-ipv6-ca-ne-veut-pas/):
/interface ethernet set sfp-sfpplus1 mac-address=AA:BB:CC:DD:EE:FF
/ipv6 dhcp-client add interface=sfp-sfpplus1 pool-name=pool_sfr6 pool-prefix-length=64 rapid-commit=no request=prefix use-interface-duid=yes
Je n'utilise pas de serveur DHCPv6 donc j'attribue juste un /64 à mon LAN dans lequel mes équipements s'adressent en SLAAC.
Pour une raison qui m'échappe encore mon routeur ne récupère pas la route par défaut en IPv6, je l'ai donc rajouté à la main:
/ipv6 address add from-pool=pool_sfr6 interface=bridge
/ipv6 route add dst-address=::/0 gateway=fe80::5555%sfp-sfpplus1
Et c'est tout !
Mon conseil c'est de commencer simple, avant de copier-coller des configurations complexes qui sont difficiles à débugger ! :-)