EDIT du 07/03/2019 :MAJ globale
EDIT du 03/09/2019 :rfc3442-classless-routes n'est plus utilisé car VLAN838 supprimé de la configuration
EDIT du 09/12/2019 :ajout du lien pour un script qui installe les fichiers post upgrade :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg632519/#msg632519VLAN 838 obsolète cf :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg696692/#msg696692EDIT du 08/04/2020 :Remplacement du google drive par github
ajout de la description pour lancer dibbler au démarrage (merci herve06)
EDIT du 27/02/2021 :Ajout de templates de config.gateway.json sur le Github (prêt à l'emploi - remplacer les XX par le MAC de la livebox et votre identifiant sous format HEXA) pour IPV4 / IPV6 / IPV4+TV (données "DHCP options" à mettre dans le controleur)
Bonjour à tous,
Je vous propose aujourd’hui un tutoriel avec les différentes possibilités de configurer son USG afin de remplacer la Livebox.
Comme j’ai un USG 3P, mes ports ETH sont labellisés comme suit
et toutes mes commandes sont pour un USG 3P :
• ETH0 : WAN (c’est ici qu’on branche l’ONT)
• ETH1 : LAN1 (LAN principal)
• ETH2 : LAN2 (LAN livebox ou décodeur TV)
Si vous utilisez un USG PRO, adaptez les commandes :
• ETH0 : LAN1
• ETH1 : LAN2
• ETH2 : WAN1 (c’est ici qu’on branche l’ONT)
• ETH3 : WAN2
Je vais traiter de la configuration Internet seul dans un premier temps, puis je vais rajouter la partie dédiée à la TV et pour finir on va voir comment rajouter la Livebox pour récupérer la partie téléphonique
L'ensemble des fichiers sont disponibles sous : https://github.com/shisva/USG_Orange 0. Étapes préliminaires :1. Il faut remplacer quelques fichiers sur l’USG, téléchargez les fichiers suivants :
• dhclient3
2. Connectez-vous en root via WinSCP ou via SSH. (Pour créer un compte root ou avoir accès en root -->
https://help.ubnt.com/hc/en-us/articles/204961724-EdgeRouter-What-is-the-root-account-password- )
3. Remplacez dhclient3 dans le répertoire /sbin/ et
s'assurer que le propriétaire est root, groupe root, droits 7554. <vide>
5. Modifier le fichier /opt/vyatta/sbin/vyatta-interfaces.pl
Il faut rechercher la ligne
$output .= "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n\n"
rajouter juste au-dessous
$output .= "option rfc3118-auth code 90 = string;\n\n";
Le résultat doit donner ça :
$output .= "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n\n";
$output .= "option rfc3118-auth code 90 = string;\n\n";
sauvegardez
6. Maintenant redémarrer l'USG
7. Connectez-vous à votre contrôleur, allez comme suit :
Device -> cliquez sur votre USG -> Configuration -> WAN
OU SINONSetting -> Networks -> Edit (sur la ligne WAN)
Cocher la case ”USE VLAN ID” et entrez 832Validez (via « Queue change puis Apply change), l’USG redémarre
Cette étape est très importante car le contrôleur va générer de cette manière le NAT et une partie du code sur ETH0, donc du travail en moins pour nous
8. Si vous planifiez d’avoir la TV/Livebox sur ETH2,
pensez à configurer votre LAN1/LAN2 avec les DNS d’orange (setting -> Network -> network corporate
ou Edit (sur la ligne du LAN2))
9.
A partir de cette étape déconnecter votre contrôleur du réseau10. Dernière étape de préparation, récupérer votre identifiant fti/xxxxxxxxx et allez sur le site
https://jsfiddle.net/kgersen/3mnsc6wy/embedded/result/, générez la chaîne en hexa et gardez la sous le coude
Maintenant on va rentrer dans le vif du sujet, voici la configuration pour :
1. Internet seul :
• téléchargez le fichier script_orange_eth0.sh
• remplacez via Notepad++ les xx:xx:xx:xx:xx… de la ligne :
set interfaces ethernet eth0 vif 832 dhcp-options client-option "send rfc3118-auth xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;"
par votre identifiant hexa généré à l’étape 10
et les YY:YY:YY:YY:YY:YY de la ligne suivante :
set interfaces ethernet eth0 vif 832 dhcp-options client-option "send dhcp-client-identifier 1:YY:YY:YY:YY:YY:YY;"
par le MAC de la livebox, sauvegardez
• copier le fichier script_orange_eth0.sh sur l’USG (de préférence sous /config/scripts/ car lors d’une mise à jour ce dossier n’est pas effacé)
•
le rendre exécutable • l’exécuter via ssh
• un petit reboot et voilà !
2. Ça marche ? Parfait ! On passe à l’IPV6 (optionnel, pour utilisateur aguerri) • téléchargez les fichiers
o dibbler-client_1.0.1-1~bpo80+1_mips.deb
o client.conf
o radvd.sh
o script_orange_eth0_IPV6.sh (le fichier contient les règles firewall pour
information seulement je vous déconseille de les utiliser telles quelles - vérifiez que dans le fichier /config/config.boot sur l'USG contient les règles du parefeu en IPV6, si c'est le cas, supprimer les règles du .sh, sinon lancer l'IPV6 dans le contrôleur pour générer les règles)
• copier le fichier dibbler-client_1.0.1-1~bpo80+1_mips.deb sur l’USG (de préférence sous /config/scripts/ car lors d’une mise à jour ce dossier n’est pas effacé),
•
le rendre exécutable • l’installer via ssh :
dpkg -i /config/scripts/dibbler-client_1.0.1-1~bpo80+1_mips.deb
• validez le faite qu’il se lance au démarrage de l’USG soit :
Should the Dibbler client be launched when the system starts? y
Dibbler can configure any or all of a computer's network interfaces.
More than one interface may be specified by separating the interface names with spaces.
Interfaces to be configured: faites juste "entrée"
The Dibbler client can request that the DHCPv6 server supplies additional configuration parameters.
1. dns 2. domain 3. none of the above
(Enter the items you want to select, separated by spaces.)
Additional parameters to obtain: faites juste "entrée"
• Dans le fichier client.conf remplacez via Notepad++ les xx:xx:xx:xx:xx… des lignes :
option 11 hex xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
par votre identifiant hexa généré à l’étape 10, sauvegardez
• copier client.conf et radvd.sh dans /etc/dibbler/ et s'assurer que le propriétaire est root, groupe root, droits 755
• copier et exécuter script_orange_eth0_IPV6.sh
• un petit reboot et voilà !
3. Partie TV :On part du postulat qu’internet marche, maintenant on va rajouter la partie tv (sans Livebox toujours) et qu’on branche le décodeur sur ETH2 (à adapter selon vos envies) ATTENTION !!! La configuration TV faisant intervenir plusieurs VLANs, cela rentre en conflit avec le contrôleur. Du coup, il faudra supprimer le VLAN 832 du contrôleur et conserver dans le config.gateway.json toutes les informations relatives aux VLAN 832/840
POUR DÉCODEUR CLASSIQUE - OBSOLÈTE car suppression du VLAN838 !!! UTILISEZ LA CONFIG UHDPossibilité de supprimer le VLAN 838 et le NAT associé mais pas de retour à ce jour • téléchargez le fichier script_orange_eth0_TV.sh
• remplacez via Notepad++ les xx:xx:xx:xx:xx… de la ligne :
set interfaces ethernet eth0 vif 838 dhcp-options client-option "send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;"
par votre mac de votre LiveboxTV, sauvegardez
• Le script n'étant pas exécutable directement, il va falloir :
o se connecter en SSH à l’USG en tant que root
o taper la commande : configure
o copier/coller chaque ligne du script dans le terminal SSH et valider
o je vous recommande de valider par bloc avec la commande : commit
o une fois l'ensemble copié, sauvegarder avec la commande : save
• Tester que la TV marche
• Générer le config.gateway.json (voir plus bas) - garder son contenu intact
•
Se connecter au contrôleur et décocher le VLAN 832 (il se peut qu'il soit déjà décoché)
• Si tout marche, épurer le config.gateway.json en conservant
au minimum toutes les informations relatives aux VLAN 832/838/840
si vous n'avez pas sauvegardé les données avant d'enlever le VLAN832 du contrôleur, essayer :
set port-forward wan-interface eth0.832
et
set firewall source-validation disable
POUR DECODEUR UHD • téléchargez le fichier script_orange_eth0_TV_UHD.sh
• remplacez via Notepad++ les XX... YY... et VV de la ligne :
set service dhcp-server shared-network-name net_LIVEBOX_TV_eth2_192.168.20.0-24 subnet 192.168.20.0/24 subnet-parameters "option vendor-specific 00:00:0d:e9:24:04:06:YY:YY:YY:YY:YY:YY:05:0f:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:06:09:4c:69:76:65:62:6f:78:20:VV;"
o YY:YY:YY:YY:YY:YY // avec 3 premiers octets de l'adresse MAC de la LIVEBOX codé en hexa
o XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX // avec le numéro de série de LIVEBOX codé en hexa.
o VV // par la version LIVEBOX codée en hexa (33 V3, 34 V4)
ou cf. script de zoc -->
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg608516/#msg608516 • sauvegardez
• copier et exécuter script_orange_eth0_TV_UHD.sh
• un petit reboot et voilà !
si vous rencontrez des problèmes avec le TV, essayer :
set port-forward wan-interface eth0.832
et
set firewall source-validation disable
SOLUTION ALTERNATIVE :
Sinon définir l'option dans l'interface de controleur :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg679578/#msg6795784. Ajout de la Livebox :
Si vous voulez mettre la Livebox TV sur ETH1, adaptez la partie en gras rouge du script script_orange_eth0_TV_UHD :
set service dhcp-server shared-network-name net_LIVEBOX_TV_eth2_192.168.20.0-24 subnet 192.168.20.0/24 subnet-parameters "option vendor-specific 00:00:0d:e9:24:04:06:YY:YY:YY:YY:YY:YY:05:0f:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:06:09:4c:69:76:65:62:6f:78:20:VV;"
qui devrait ressembler à quelque chose dans le genre (adresse IP à adapter) :
set service dhcp-server shared-network-name net_LAN_eth1_192.168.XX.X-24 subnet 192.168.XX.X/24 subnet-parameters "option vendor-specific 00:00:0d:e9:24:04:06:YY:YY:YY:YY:YY:YY:05:0f:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:06:09:4c:69:76:65:62:6f:78:20:VV;"
Pour notre exemple on suppose qu’on met la Livebox sur ETH2
• lorsque l’on crée le réseau à l’étape 8 il faut rajouter le VLAN832 pour que la Livebox communique
• Se connecter en root sur l’USG et taper
configure
set service dhcp-server global-parameters "option rfc3118-auth code 90 = string;"
set service dhcp-server global-parameters "option SIP code 120 = string;"
set service dhcp-server global-parameters "option Vendor-specific code 125 = string;"
commit
save
• Supposons que le réseau crée en 8 s’appelle « LIVEBOX » et que son IP est 192.168.10.1/24, on continuer à taper dans le ssh
configure
set service dhcp-server shared-network-name net_LIVEBOX_eth2_192.168.10.0-24 subnet 192.168.10.0/24 subnet-parameters "option rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:64:68:63:70:6c:69:76:65:62:6f:78:66:72:32:35:30;"
set service dhcp-server shared-network-name net_LIVEBOX_eth2_192.168.10.0-24 subnet 192.168.10.0/24 subnet-parameters "option SIP 00:06:73:62:63:74:33:67:03:41:55:42:06:61:63:63:65:73:73:11:6f:72:61:6e:67:65:2d:6d:75:6c:74:69:6d:65:64:69:61:03:6e:65:74:00;"
set service dhcp-server shared-network-name net_LIVEBOX_eth2_192.168.10.0-24 subnet 192.168.10.0/24 subnet-parameters "option Vendor-specific 00:00:05:58:0c:01:0a:00:00:00:00:00:ff:ff:ff:ff:ff;"
set service dhcp-server shared-network-name net_LIVEBOX_eth2_192.168.10.0-24 subnet 192.168.10.0/24 subnet-parameters "option domain-search "NIC.access.orange-multimedia.net.";"
set service dhcp-server shared-network-name net_LIVEBOX_eth2_192.168.10.0-24 subnet 192.168.10.0/24 subnet-parameters "option domain-name "orange.fr";"
commit
save
o avec "option domain-search "
NIC.access.orange-multimedia.net.";" remplacer le NIC par celui de votre région que l'on trouve dans /run/dhclient_eth0_832.leases
• on reboot pour voir si ça marche
5. Sauvegarde de la config dans le config.gateway.json Tout marche ? Super vous êtes un boss ! Maintenant on va générer un fichier que le contrôleur va lire et injecter à l’USG à chaque synchro
• on se connecte en ssh à l’USG
• on lance la commande : mca-ctrl -t dump-cfg > config.gateway.json
• le fichier se trouvera sous /home/"ton_nom"/ normalement
• on le récupère et là on a 2 choix : on le garde tel quel soit on l’épure pour ne garder que la partie qu’on vient de générer
•
si on choisit l’option 2 il faut valider notre structure sur le site suivant : https://jsonlint.com/ • Si c'est OK, on peut l'enregistrer sur le contrôleur sous : ip_du_controler/data/sites/nom_du_site
• Et c'est bon ! on peut relancer le contrôleur
+d'info :
https://help.ubnt.com/hc/en-us/articles/215458888-UniFi-How-to-further-customize-USG-configuration-with-config-gateway-jsonErreurs connues :
• il se peut que le script vous donne un "commit failed" --> relancer le script ou sinon saitir les lignes du script une à une via ssh (à l'ancienne)
Merci de me faire un retour s’il y a des erreurs ou des points d'améliorations

Merci à jaydee99 de mettre à disposition un json qui est disponible sous ce lien :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg521702/#msg521702Un autre json avec internet + TV :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg677787/#msg677787Merci à n0b pour son retour très complet :
https://lafibre.info/remplacer-livebox/le-guide-complet-pour-usgusg-pro-internet-tv-livebox-ipv6/msg625624/#msg625624NB : comme l'a signalé Zoc dans son post ici (
https://lafibre.info/remplacer-livebox/en-cours-remplacer-sa-livebox-par-un-routeur-ubiquiti-edgemax/msg428992/#msg428992) à partir de la version 1.10 de l'ERL il y a du changement.
Comme je ne fais pas souvent les MAJ je n’ai pas encore rencontré de problème. Mais si ça venait à planter, il faut rajouter ceci dans le config :
set interfaces ethernet eth0 vif 832 dhcp-options global-option "option rfc3118-auth code 90 = string;"
et donc refaire le config.gateway.json.
L'étape "Modifier le fichier /opt/vyatta/sbin/vyatta-interfaces.pl" devient obsolète
Remerciements : Zoc, c0mm0n , kgersen et tous les membres lafibre qui m'ont aidé ou inspiré pour faire ce tuto