Sur les version récentes du contrôleur UniFi (5.8 sûr, peut être 5.7 également), duplex et speed se contrôlent également via l'interface donc peuvent être retiré du fichier config.gateway.json
Petit truc bien utile à savoir aussi : il y a un répertoire spécial ( /config/scripts/ ) dans l'arborescence de l'USG qui n'est pas effacé lors d'un changement de firmware, et les scripts placés dans un sous répertoire de celui-ci ( /config/scripts/post-config.d ) sont exécutés automatiquement au premier reboot suivant tout changement de firmware. Ça permet de ne plus avoir d'opérations manuelles à faire lors des changement de firmware.
J'ai dans /config/scripts un sous dossier USG qui contient le dhclient3 patché + tout ce qui est nécessaire pour setup l'IPv6 (le .deb de dibbler pour l'architecture mips, client.conf, radvd.sh et un script d'install perso).
Dans /config/scripts/post-config.d j'ai un script setup-orange-ipv4.sh :
#!/bin/bash
if ! diff -q /sbin/dhclient /config/scripts/USG/dhclient3; then
sudo cp /sbin/dhclient3 /sbin/dhclient3.bak
sudo cp --force /config/scripts/USG/dhclient3 /sbin/dhclient3
sudo chown root:root /sbin/dhclient3
sudo chmod 755 /sbin/dhclient3
sudo sed --in-place=.bak '/\$output \.= "option rfc3442/a \ $output .= "option rfc3118-auth code 90 = string;\\n\\n";' /opt/vyatta/sbin/vyatta-interfaces.pl
sudo shutdown -r 5
fi
Après une maj de firmware, le script fait un backup de /sbin/dhclient3, remplace celui d'origine par la version patchée, s'assure que owner, group et permissions soient ok, modifie vyatta-interfaces.pl avec sed en faisant un backup, et reboot avec un délai de 5 minutes (pour me laisser éventuellement le temps de SSH et d'annuler le reboot si besoin), tout ça a condition que /sbin/dhclient3 ne soit pas déjà le dhclient3 patché, par sécurité.
Je n'utilise pas le fichier rfc3442-classless-routes, je ne sais plus qui ici m'avait dit que ce n'était utile que pour TV et/ou Téléphone, que je n'utilise pas. Internet seul marche parfaitement bien sans.
Je n'ai pas mis le script pour le setup de l'IPv6 dans post-config.d parce que je n'ai pas réussi à faire en sorte que l'install de dibbler soit non interactive. Après chaque maj de firmware, je patiente jusqu'au second reboot, puis je SSH sur l'USG, j'execute le script de setup IPv6 manuellement et tout est bon. Peut etre que le reboot n'est même pas nécessaire mais là encore je n'ai pas trouvé comment renouveler le lease dhcp du port WAN une fois que tout est en place autrement qu'en rebootant.