Auteur Sujet: [Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un  (Lu 25270 fois)

0 Membres et 1 Invité sur ce sujet

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
Bonjour à tous,

Nouveau sur ce forum, ça n'en fait pas moins quelques semaines que je vous lis. En effet, j'ai récemment entrepris de remplacer ma Freebox Mini 4K par un routeur et je suis naturellement tombé ce forum qui contient une tonne d'infos utiles. Ayant atteint mon objectif, j'ai décidé de créer un compte ici pour partager mon expérience :)

J'ai d'abord fait l'acquisition d'un routeur Mikrotik RB4011, la marque m'ayant été recommandée pour son excellent rapport qualité/prix et l'excellente versatilité de son système d'exploitation, RouterOS.
Disposant d'un espace assez réduit pour mes équipements réseau, je voulais avant tout parvenir à la solution la plus compacte possible en terme de boitiers à administrer et d'adapatateurs secteur. De plus, ayant déjà un routeur, j'étais réticent à l'achat d'un modem/routeur supplèmentaire pour que celui-ci termine "bêtement" en mode Bridge.

Avec cette contrainte en tête, la cage SFP/SFP+ de mon RB4011 a rapidement mobilisé toute mon attention et j'ai eu la belle surprise de découvrir que le monde assez technique des SFP n'est pas limité aux modules SFP Ethernet/RJ45, DAC ou autres technos Fibre point à point.

J'ai en effet découvert l'existence de ces modules SFP ésothériques :

Parcourant lafibre.info, j'ai été assez surpris de voir que l'utilisation de de ces modèles n'a été à priori jamais été abordée, c'est ce qui m'a motivé à venir partager mon expérience.

Habitant dans une zone où la fibre optique n'a pas encore été déployée et disposant d'une ligne me permettant de profiter du VDSL2, j'ai entrepris de commander le module SFP VDSL2 modem cité ci-dessus.

Je devais ensuite déterminer si j'étais en zone "IPv6 natif"(+4rd) ou "Ancienne infrastructure"(+6rd). Parcourant les topics ici et ailleurs, j'ai été assez confus sur la manière de procéder. Souvent, il est demandé à la personne sa ville, afin de voir si elle existe dans la base FreePON. D'autres fois, il est demandé à la personne de vérifier si elle profite d'une IPv4 entière ou seulement d'un quart (symptome du 4rd). Dans le doute, j'ai choisi de dévelloper ma propre méthode :

Quand test-ipv6.com indique que "...you use a managed tunnel mechanism, 6RD...", cela signifie que vous êtes sur l'ancienne infrastructure.
Voilà, j'étais fixé là dessus.

Ce retour d'expérience/tuto s'adresse donc principalement à ceux qui comme moi profitent d'une connexion en VDSL2 chez Free sur l'ancienne infrastructure.

Dans un premier post j'aborderais la méthode qui m'a permis d'obtenir l'accès à Internet, c'est à dire dans mon cas, une simple IPv4.
Dans un second post j'aborderais la mise en place du 6rd Free sur Mikrotik RouterOS.

Je réserve aussi deux posts pour la téléphonie (sans grand espoir) et la télévision.

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #1 le: 18 janvier 2019 à 12:11:43 »
Mise en place du module SFP et obtention d'une IPv4

Matériel nécessaire :
 - Routeur Mikrotik RB4011
 - module SFP VDSL2 modem
 - un PC

Connaissances préalables requises :
 - son adresse IPv4 publique (https://whatismyipaddress.com/ depuis votre ligne fixe Free)

(Attention, bien que j'ai pu tester et valider le bon fonctionnement de cette solution chez moi, je décline toute responsabilité en cas d'échec chez vous)

On commence par insérer dans la cage SFP le module préalablement déballé :



RouterOS doit alors affiché l'interface sfp-sfpplus1 comme "Running" et la lumière à droite du SFP doit être orange, fixe et la lumière à gauche doit clignoter lentement en vert, indiquant que le module a été reconnu par le routeur.

On branche ensuite le cable RJ11. Pendant environ 60 seconde la lumière verte va clignoter plus vite puis se fixer. C'est le temps qu'il faut au module pour se synchroniser avec le DSLAM. RouterOS affiche à ce moment là "link ok" dans le status de l'interface.





On utilise ensuite l'outil bien utile "Packet Sniffer" sur l'interface sfp-sfpplus1.



Lancez la capture.

Il faut maintenant générer du traffic *depuis Internet* vers votre IPv4 publique dont vous avez normalement pris note avant de commencer tout ça.
Pour cela, plusieurs solutions : ping en 4G depuis votre téléphone, ou depuis votre VPS, ou via un ami, ou depuis un site tierce (https://ping.eu/).

Evidemment, les pings vont échouer car votre installation n'est pas complète. C'est normal. Attendez encore quelques secondes et stopper la capture.
Téléchargez le fichier pcap et ouvrez le dans Wireshark. On observe la chose suivante :



En rouge, dans le champs "Destination" du header Ethernet, on retrouve l'adresse MAC de votre Freebox coté WAN. Notez cette adresse.
En vert, dans le champ "ID" du header 802.1Q, on retrouve l'id du VLAN utilisé par Free pour servir Internet. Notez cet ID.

On commence par changer l'adresse MAC de notre interface :
/interface ethernet set sfp-sfpplus1 mac-address=<addresse MAC que vous avez noté ici>
(sans les chevrons, évidemment)

On crée ensuite le VLAN en question sur notre interface  :
/interface vlan add interface=sfp-sfpplus1 vlan-id=836 name=vlan836-internet
(Attention, dans quelques instants votre routeur sera connecté "nu" sur Internet. Je vous encourage fortement à changer votre mot de passe si vous ne l'avez pas déjà fait et à vous renseigner sur les règles utiles à mettre dans le Firewall.)

Ensuite, on crée un client DHCP sur ce VLAN :
/ip dhcp-client add interface=vlan836-internet add-default-route=yes
Il faut patienter quelques secondes le temps que le status du client DHCP change à "Bound"

Enfin, on crée une règle NAT Masquerade pour que votre LAN ai aussi accès à Internet :

/ip firewall nat add chain=srcnat out-interface=vlan836-internet action=masquerade
Voilà!
« Modifié: 18 janvier 2019 à 13:05:48 par EntertainingMuffin »

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #2 le: 18 janvier 2019 à 12:11:54 »
Mise en place du tunnel 6rd Free

Qu'est-ce que 6rd ? Très simplement :
  • Les paquets IPv6 sont envoyés tel quels à une machine sur le réseau, en IPv4, qu'on appelle la passerelle 6rd
  • Tout ou partie de l'adresse IPv4 publique de l'abonné est encodée dans l'adresse IPv6 publique utilisée pour communiquer dans le tunnel 6rd

Forts de ce constat, nous avons besoin de deux choses :
  • L'adresse IPv6 publique que l'on peut calculer
  • L'adresse IPv4 de la passerelle que nous pouvons trouver grâce au Packet Sniffer

Pour illustrer le calcul de l'IPv6 je vais utiliser la fausse IPv4 suivante : 82.10.11.12
On commence par exprimer l'IPv4 dans sa forme hexadécimale : 52.0A.0B.0C ou 520A0B0C tout attaché.

On prend le préfixe utilisé par Free pour le 6rd, auquel on concatène notre IPv4 :
 "2a01:0e3" + "520a0b0c" = "2a01:0e3520a0b0c"

On formatte tout ça correctement pour que ça ressemble à une vraie IPv6 (groupes de 4 caractères hexa):
"2a01:0e35:20a0:b0c0"

Vous remarquerez qu'on utilise que 4 blocs de 4 caractères sur les 8 que permet IPv6. On les rajoute sous forme de 0 :
:
"2a01:0e35:20a0:b0c0:0000:0000:0000:0000"

Puis en supprimant tout les zéros qui puisse l'être on trouve :
"2a01:e35:20a0:b0c0::/64"

Voilà, on a le préfixe IPv6 de base associé à votre IPv4, avec son masque :)

Vous avez peut-être remarquer que le dernier 0 ne fait pas partie de notre adresse IPv4. En effet, Free donne 16 préfixes IPv6 à chacun de ses clients en 6rd :
"2a01:e35:20a0:b0c0::/64"
"2a01:e35:20a0:b0c1::/64"
"2a01:e35:20a0:b0c2::/64"
...
"2a01:e35:20a0:b0cf::/64"

Ça nous servrira pour la suite. On utilise ensuite l'outil bien utile "Packet Sniffer" sur l'interface sfp-sfpplus1.

Lancez la capture.

Il faut maintenant générer du traffic *depuis Internet* vers une IPv6 arbitraire de votre préfixe, par exemple 2a01:e35:20a0:b0c0::1.

Evidemment, les pings vont échouer car votre installation n'est pas complète et l'IPv6 est bidon. C'est normal. Attendez encore quelques secondes et stopper la capture.
Téléchargez le fichier pcap et ouvrez le dans Wireshark. On observe la chose suivante :



En rouge, on trouve l'adresse de la passerelle 6rd.

On passe au paramétrage de notre routeur.

Premièrement, si ce n'est pas déjà fait, il est nécessaire d'activer IPv6 :
/system package enable ipv6
/system reboot

Ensuite, on crée le tunnel 6to4 :
/interface 6to4 add name=6rd local-address=<votre IPv4 publique> remote-address=<Passerelle 6rd Free> mtu=1480
Puis on crée au moins deux pools IPv6 qui correspondent à deux des préfixes que nous alloue Free:
/ipv6 pool add name="Pool 0" prefix=2a01:e35:20a0:b0c0::/64 prefix-length=64/ipv6 pool add name="Pool 1" prefix=2a01:e35:20a0:b0c1::/64 prefix-length=64
On crée ensuite deux adresses :
/ipv6 address add interface=6rd address=::/64 from-pool="Pool 0" eui-64=yes advertise=no comment="WAN address"
/ipv6 address add interface=<votre interface LAN> address=::/64 from-pool="Pool 1" advertise=yes comment="LAN prefix"

Comme les commentaires l'indiquent, la première va correspondre à l'adresse de votre routeur sur Internet, et la deuxième est en fait un préfixe complet qui va être annoncé sur votre LAN.

Enfin, on ajoute la route par défaut :
/ipv6 route add dst-address=::/0 gateway=6rd
À ce moment là, vos machines compatibles SLAAC devraient s'auto-configurer une adresse IPv6 à partir du préfixe annoncé, et être en mesure d'accéder à Internet en IPv6.

Votre réseau est maintenant connecté "nu" sur internet en IPv6, je vous conseille donc d'ajouter les règles qui vous semblent utile au Firewall IPv6 afin d'éviter des mésaventures :)
« Modifié: 18 janvier 2019 à 18:39:34 par EntertainingMuffin »

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #3 le: 18 janvier 2019 à 12:12:09 »
Réservé pour Téléphonie

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #4 le: 18 janvier 2019 à 12:12:24 »
Réservé pour TV

Fuli10

  • Abonné Free fibre
  • *
  • Messages: 1 003
  • Conflans Sainte Honorine (78)
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #5 le: 18 janvier 2019 à 13:51:45 »
Salut,
Sympa le tuto. J'ai fais pareil il y a longtemps sur UF avec certain modem (voir mon tuto ici). Je ne connaissais pas du tout ces SFP modem, et ça a l'air super sympa pour pouvoir utiliser autre chose que les interfaces très limités des modems. Par contre ça a l'air aussi chère voir plus qu'un modem/routeur VDSL2 complet.

Le problème du modem en bridge c'est que le routeur derrière lui fonctionne toujours en ethernet, et donc à besoin d'une réponse à la requêtes ARP "quel est la MAC de la passerelle" qu'elle balance au modem. La seule réponse que j'ai trouvé c'est en fixant en dure dans la table ARP l'adresse MAC de la passerelle dans le routeur (avec arp -s ou équivalent). Pire, j'avais un modem qui lui aussi fonctionnait en mode L2 ethernet sur lien VDSL et se bloquait comme un c** à demander une réponse ARP au modem (le Zyxel tout pourri).

Du coup j'ai quelques points à soulever:
- essaye de voir si t’arrive à faire une configuration avec une IP statique (sans DHCP) . Si ton modem réagit comme les TP-link, normalement ça ne devrait pas fonctionner, et il faudra surement ajouter une entrée en dure dans la table ARP du routeur (je ne connais pas la syntax mikrotik pour ça). Je pense que tu peux ajouter cela dans ton tuto.
- normalement en zone 6rd, tu as carrèment un /60 rien que pour toi. A toi de l'utiliser comme tu veux.
- il y a un problème dans la configuration de ton tunnel. Il s'agit rien de plus qu'un 6to4, donc tout ton trafic IPv6 passera via ta passerelle 6rd (qui il me semble est la même IP pour tout le monde). Le problème c'est qu'avec le 6rd, si tu cherches à accéder à une IPv6 de ton voisin et bien cela ne fonctionnera pas avec ce tunnel. La RFC du 6rd implique que si le prefix match 2a01:e30::/28, l'adresse de la passerelle sera automatiquement extraite des 32 bits suivants (la taille du prefix et des bits extraits étant des paramètres du 6rd) et qu'automatiquement pour communiquer en IPv6 avec son voisin il établira de manière statique un tunnel vers l'IPv4 xx.yy.yy.yy (xx étant un autre paramètre du 6rd, yy.yy.yy étant l'adresse extraite de l'IPv6) donc ici vers l'IPv4 de ton voisin.
Lors de mes essais la passerelle 6rd de Free refusait catégoriquement de transmettre quoi que ce soit vers une autre IPv6 en 6rd chez Free. J'étais obligé de créer un 2ème tunnel avec un prefix /28+32 et comme IPv4 de passerelle l'IPv4 du 2ème site. Pas pratique pour l'établissement dynamique d'un lien IPv6 entre 2 sites chez Free. Bref, essaye de voir si t'as un mode 6rd prévu plutôt que 6to4, et surtout s'il fonctionne (j'en ai un dans le modem Zyxel, mais il n'a jamais fonctionnait et vu la version ancienne du kernel j'ai laissé tombé).

Note: je n'ai jamasi réussi à remettre la TV ni le téléphone car je n'ai jamais réussi à faire la configuration suivante : modem VDSL2 en bridge <--> media converter fibre <-----fibre --->switch<--- fibre ---> SFP + freebox server.
L'idée étant de pouvoir sniffer ce qui passe en sortie du server niveau TV pour tenter de reproduire le lien box TV <---> réseau Free.

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 377
  • Lyon (69) / St-Bernard (01)
    • Twitter
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #6 le: 18 janvier 2019 à 14:28:41 »
Et si tu bridges le VLAN 835 vers la Fbx, ça fait pas la magie ?

doctorrock

  • Abonné Orange Fibre
  • *
  • Messages: 931
  • Draguignan 83
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #7 le: 18 janvier 2019 à 14:33:46 »
C'est super cool de donner un retour d'XP sur le SFP VDSL2.

En effet, sur Mikrotik, personne n'a jamais testé car c'est galère la compatibilité.
En gros, ya un risque non négligeable que le SFP ne fonctionne tout simplement pas, et vu son prix, ça serait très dommage.

Aussi, sur le SFP, tu peux pas régler les paramètres VDSL (VPI/VCI, VC-MUX), et donc selon ton FAI, si c'est pas "standard", ben là encore, le SFP ne fonctionnera pas avec la ligne DSL.
Un topic de Mikrotik : https://forum.mikrotik.com/viewtopic.php?f=3&t=104109&start=200

Donc, ce SFP fonctionne sous RouterOS , ET avec du VDSL2 de Free en France.
Reste à savoir s'il fonctionne pour les autres FAIs maintenant

Catalyst

  • Abonné FAI autre
  • *
  • Messages: 189
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #8 le: 18 janvier 2019 à 14:35:42 »
Beau tuto !

Tu peux simplifier la configuration en supprimant les pools ipv6 qui ne servent là qu'à assigner des adresses aux interfaces 6to4 et LAN. Puis affecter directement des adresses ipv6 à ces interfaces.

Il faudrait aussi, du fait de l'encaps 6to4, gérer la MTU (par un ND   RA avec mtu=1480 vers les hosts du LAN).

Edit : correction et précision
« Modifié: 18 janvier 2019 à 17:29:31 par Catalyst »

EntertainingMuffin

  • Abonné Free vdsl
  • *
  • Messages: 10
  • Muffinland
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #9 le: 18 janvier 2019 à 14:36:42 »
Hello Fuli10, merci pour ta réponse !

Effectivement le routeur reviens à ~200€ et le module SFP à ~100€, ça fait un peu cher. Après il existe des routeurs Mikrotik pour ~50€, à voir ce que ça donne :)

Concernant le /60 en 6rd, j'ai refais mes calculs et si je comprend biens cela correspondrais pas au demi-octet de 4 bit situé après l'adresse IPv4 encodée, soit effectivement 16 /64 ?

Concernant ton 3ème point; 6rd n'est effectivement "rien de plus qu'un 6to4", d'après la RFC. Aussi, je ne suis pas sûr de comprendre quand tu dis "l'adresse de la passerelle sera automatiquement extraite des 32 bits suivants".

La RFC (https://tools.ietf.org/html/rfc5969#section-4) dit :
Citer
In 6to4, a similar operation is performed by incorporating an entire IPv4 address at a fixed location following a well-known /16 IPv6 prefix.

Puis
Citer
In 6rd, the IPv6 prefix as well as the position and number
   of bits of the IPv4 address incorporated varies from one 6rd domain
   to the next.
Ce qui signifie, en gros, qu'un FAI (6rd domain) peut faire "n'importe quoi" (ie placer tout ou partie de l'IPv4 n'importe où dans l'IPv6).

Ensuite il y a le schéma suivant :
   |     n bits    |    o bits    |   m bits  |    128-n-o-m bits      |
   +---------------+--------------+-----------+------------------------+
   |  6rd prefix   | IPv4 address | subnet ID |     interface ID       |
   +---------------+--------------+-----------+------------------------+
   |<--- 6rd delegated prefix --->|

Dans lequel il n'est pas question de passerelle.
Malheureusement je n'ai pas connaissance d'une autre IPv6 free 6rd pour effectuer des tests.

Enfin, concernant la téléphonie, je pensais plutôt tenter d'établir des sessions MGCP avec Asterix via le VLAN 835 (à moins que le SIP revienne...), et comprendre comment le Multicast fonctionne concernant la TV.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 076
  • Paris (75)
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #10 le: 18 janvier 2019 à 14:53:00 »
la page 8 de ce doc Free donne des infos précisent pour la mise en oeuvre du 6rd chez Free: https://ripe58.ripe.net/content/presentations/ipv6-free.pdf

Fuli10

  • Abonné Free fibre
  • *
  • Messages: 1 003
  • Conflans Sainte Honorine (78)
[Tuto][VDSL][6rd] Remplacer sa Freebox par un routeur Mikrotik, tout-en-un
« Réponse #11 le: 18 janvier 2019 à 15:06:49 »
Effectivement on a bien 16 /64. Après cela a peut-être changé depuis le temps mais lors de mes tests j'arrivais à joindre prefix+IPV4+F::1.
D'après le shéma de la RFC et de ce qui est possible: n=28, o = 32. n+o = 60.
Le prefix = 2a01:e30::/28
Les 32 bits de l'IPv4 sont ensuite ajoutés: pour une IPv4 en hexa aa.bb.cc.dd t'auras comme prefix délégué 2a01:e3a:abbc:cdd0::/60 => soit 16 réseaux /64
Après il y a un truc (de mémoire) pour les réseaux en 4rd avec l'IPv4 partagé (en tout cas pour les premières valeurs qui sont sortie à l'époque). Quand t'avais comme IPv4 partagé aa.bb.cc.dd, ton IPv6 était 2a01:e3a:abbc:cddZ::/62 avec Z=0 pour les ports 0-16k, Z=4 pour les ports 16k-32k, Z=8 pour les ports 32k-48k et Z=C pour les ports 48k-64k. Et donc au final seulement 4 réseaux /64 de dispo.

Pour ce qui est du tunnel, de base il me semble que  tout le monde a comme IP du tunnel 192.88.99.101. Problème, c'est si tu veux joindre ton voisin ayant comme IPv6 2a01:e3f:feed:dcc0::/60, ton tunnel ne doit pas se faire entre toi et 192.88.99.101 mais entre toi et ff.ee.dd.cc.

T'as pas besoin de connaitre quelqu'un pour faire un test. Fait un simple ping scan sur ton réseau (82.aa.bb.cc/24). Si une freebox répond au ping, fait un simple ping6 [2a01:e35:2aab:bcc0::1] qui correspond à l'IPv6 de la box. Le tout derrière la freebox au début pour partir d'un état qui marche. Ensuite refait le test avec ton installation. l'IPv4 répondra mais plus l'IPv6.
Ajoute ensuite un tunnel 6to4 vers 2a01:e35:2aab:bcc0::1/60 via 82.aa.bb.cc et tu verras que ça fonctionnera de nouveau.
Maintenant le 6rd c'est l'établissement dynamique de ces tunnels en extrayant l'IPv4 du routeur à partir de l'IPv6 si le prefix match (le fameux site-to-site de la présentation).