Auteur Sujet: Ubiquiti ER Ipv6 dhcp6 en 2.X  (Lu 29328 fois)

0 Membres et 1 Invité sur ce sujet

dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #48 le: 12 septembre 2019 à 22:30:45 »
Merci pour ce guide !

J'utilise dhclient avec le patch de zoc ci-joint.

En ce qui me concerne cela n'a pas fonctionné directement : SOLICIT sans réponse.
Après avoir répliqué le DUID que j'utilisais avec Dibbler : SOLICIT > ADVERTISE > REQUEST > REPLY, avec réponse 'NoPrefixAvail'...
Cela a fonctionné seulement après avoir éteint l'ONT quelques minutes, un clic-clac ne suffit pas pour provoquer le Reset chez Orange.

Les modifications pour ma part :

Voici un unit systemd qui semble fonctionner, j'ai repris les "After" de l'unit SSH de l'ERL :

[Unit]
Description=dhclient for sending DUID IPv6
After=network.target auditd.service vyatta-router.service netplug.service

[Service]
Type=forking
ExecStart=/sbin/dhclient -6 -P -nw -cf /etc/dhcp3/dhclient6_eth1_832.conf -pf /var/run/dhclient6_eth1_832.pid -lf /var/run/dhclient6_eth1_832.leases eth1.832

[Install]
WantedBy=multi-user.target

Si on utilise un watchdog6 pour surveiller la connexion (cf zoc) il faut l'adapter :

/config/scripts/orange-watchdog6.sh

#!/bin/vbash
sleep 30

run=/opt/vyatta/bin/vyatta-op-cmd-wrapper

IP6ADDR=$(ip addr show scope global | awk '$1 == "inet6" {gsub(/\/.*$/, "", $2); print $2}')
if [ -z $IP6ADDR ]
then
  logger -t grewatch -p err "No IPv6 address"
  sudo systemctl restart dhclient6 >/dev/null 2>&1
  exit ;
fi


# Reading the default gateway
read _ _ GATEWAY6 _ < <(/sbin/ip -6 route list match default)
if [ -z "$GATEWAY6" ]; then
  logger -t watchdog6 -p err "No IPv6 route"
  sudo systemctl restart dhclient6 >/dev/null 2>&1
  exit
fi


# If we are here, then nothing is pinging. Try
# the default gateway
/bin/ping6 -c4 $GATEWAY6%eth1.832 > /dev/null 2>&1
if [ $? -ne 0 ]; then
  logger -t watchdog6 -p err "IPv6 is broken"
  sudo systemctl restart dhclient6 >/dev/null 2>&1
  exit
fi

Ensuite, et c'est plus grave, le fonctionnement IPv6 du dhclient parallèle à celui de l'IPv4 écrase les DNS reçus de la part d'orange.
Je n'ai pas trouvé mieux qu'un "enter-hook" qui reprend la fonction "make_resolv_conf" de vyatta / UBNT en excluant le cas IPv6.
Il faut donc créer :

/etc/dhcp3/dhclient-enter-hooks.d/noresolvupdate-ipv6

#!/bin/bash

# modified make_resolv_conf () for Vyatta system below
make_resolv_conf() {
case "$reason" in
BOUND6|REBIND6)
#echo "Debug : IPv6, no DNS update" >> /tmp/dhclient6.log
return
;;
esac
    local new_resolv_conf="/etc/resolv.conf.dhclient-new-$interface"
    local old_resolv_conf="/etc/resolv.conf.dhclient-old-$interface"
    mv -f $new_resolv_conf $old_resolv_conf
    if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
        if [ -n "$new_domain_name" ]; then
            echo search $new_domain_name >>$new_resolv_conf
        fi
        if [ -n "$new_domain_name_servers" ]; then
            for nameserver in $new_domain_name_servers; do
                echo nameserver $nameserver >>$new_resolv_conf
            done
        fi
    elif [ "x${new_dhcp6_name_servers}" != x ] ; then
if [ "x${new_dhcp6_domain_search}" != x ] ; then
    echo search ${new_dhcp6_domain_search} >> $new_resolv_conf
fi
for nameserver in ${new_dhcp6_name_servers} ; do
    echo nameserver ${nameserver} >> $new_resolv_conf
done
    else
        echo " " > $new_resolv_conf
    fi

    /opt/vyatta/sbin/vyatta_update_resolv.pl --dhclient-script 1
    if ! diff -q $old_resolv_conf $new_resolv_conf >&/dev/null; then
       if [ -d /opt/vyatta/config/active/service/dns/forwarding ]; then
          /opt/vyatta/sbin/vyatta-dns-forwarding.pl --update-dnsforwarding --outside-cli >&/dev/null
       fi
    fi
    rm -f $old_resolv_conf
}

Le souci c'est qu'au gré des évolution du FW cette fonction peut changer. Il faudra l'adapter.

Etrange que je sois le seul à avoir remarqué cela, probablement que beaucoup ici utilisent Google / OpenDNS /... en fixe dans la config "system".

KalNightmare

  • Abonné Orange Fibre
  • *
  • Messages: 128
  • Massy 91
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #49 le: 13 septembre 2019 à 15:36:03 »
Merci d'avoir trouver la liste de After, j'avais cherché mais sans résultat pour le moment.

Pour le watchdog_ipv6, je ne suis pas sur que cela fonctionne, vu que la gateway est en link-local, elle répondra toujours même si tu n'as de prefix ipv6.
Après j'ai quand même remarquer que dhclient fait bien le taf de reconnexion, et pour palier à un crash de dhclient il faudrait mieux rajouter les options de restart dans le Service systemd.

Pour les DNS, perso j'utilise mes DNS interne donc j'ai pas vu le problème.

dmfr

  • Abonné Orange adsl
  • *
  • Messages: 275
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #50 le: 13 septembre 2019 à 15:44:26 »
Pour le watchdog_ipv6, je ne suis pas sur que cela fonctionne, vu que la gateway est en link-local, elle répondra toujours même si tu n'as de prefix ipv6.
Après j'ai quand même remarquer que dhclient fait bien le taf de reconnexion, et pour palier à un crash de dhclient il faudrait mieux rajouter les options de restart dans le Service systemd.
L'intérêt du watchdog est surtout de réagir à un reset inopiné des sécurités Orange (desynchro VDSL ou reboot ONT) que l'ERL ne pourra pas détecter de lui-même (il a toujours le bail, mais celui-ci n'existe plus chez orange).
Et dans ce cas précis, non la gateway (fe80::ba0:bab) ne répond plus. Plus rien ne passe en fait, jusqu'à une requête DHCP acceptée et honorée.

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 283
  • Antibes (06) / Mercury (73)
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #51 le: 13 septembre 2019 à 19:49:46 »
Je confirme que le système de contrôle d’acces D’Orange bloque tout, y compris les pings vers la passerelle IPv6, tant qu’il n’a pas reçu un DHCP6 SOLICIT (voir même REQUEST) avec les identifiants clients.

barichon

  • Abonné Free fibre
  • *
  • Messages: 65
  • Levallois-Perret 92300
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #52 le: 14 septembre 2019 à 14:32:44 »
Hello all,

Bon c'est bon ça ping :)  Mais le test sur ipv6-test ne remonte toujours pas de connectivité, What else ?

fttmeh

  • Abonné Orange Fibre
  • *
  • Messages: 242
  • Hauts-de-Seine
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #53 le: 14 septembre 2019 à 15:00:54 »
Hello all,

Bon c'est bon ça ping :)  Mais le test sur ipv6-test ne remonte toujours pas de connectivité, What else ?

J'ai rajouté le script à mettre dans dhclient-exit-hooks.d pour distribuer un subnet /64 dans mon message : https://lafibre.info/index.php?topic=38811.msg684503#msg684503

barichon

  • Abonné Free fibre
  • *
  • Messages: 65
  • Levallois-Perret 92300
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #54 le: 14 septembre 2019 à 15:35:52 »
MERCI TOUT FONCTIONNE NOW !

par contre le daemon dhclient6 ne se reload pas auto au redémarrage il a fallu que je mette un script dans: /config/scripts/post-config.d

est-ce normal ?

J'ai rajouté le script à mettre dans dhclient-exit-hooks.d pour distribuer un subnet /64 dans mon message : https://lafibre.info/index.php?topic=38811.msg684503#msg684503
« Modifié: 14 septembre 2019 à 16:01:54 par barichon »

fttmeh

  • Abonné Orange Fibre
  • *
  • Messages: 242
  • Hauts-de-Seine
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #55 le: 14 septembre 2019 à 15:53:10 »
Merci beaucoup j'ai suivis à lettre, mais toujours rien sur ipv6-test (malgrés le ping6 ok)

Voici les ips de mes interfaces:

LAN-ET-TV eth0 ethernet
192.168.0.1/24
2a01:cb00:b6e:1495:822a:a8ff:fef1:e469/64
2a01:cb00:b6e:1495::1/64

Internet_ONT eth1 ethernet
2a01:cb00:b6e:1400::1/64

Internet Orange DHCP eth1.832 vlan
86.195.20.130/21


Tu dois seulement mettre une /64 sur eth0. Sur eth1 (l'ONT), la communication se fait entre link-local addresses.

As-tu vérifié que RADVD fonctionne bien ?

barichon

  • Abonné Free fibre
  • *
  • Messages: 65
  • Levallois-Perret 92300
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #56 le: 14 septembre 2019 à 20:03:19 »
Tout est ok... je vous remercie mille fois pour votre support à tous !

proap

  • Abonné MilkyWan
  • *
  • Messages: 568
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #57 le: 13 janvier 2020 à 21:10:10 »

  • Script /config/scripts/generate_dhcpv6_configfile.sh (faire chmod+x sur le script pour qu'il soit executable)
#!/bin/bash
# Place in /config/scripts/generate_dhcpv6_configfile.sh
target_file="/etc/dhcp3/dhclient6_eth1_832.conf"

interface="eth1"
vif="832"

auth_string=$(/bin/cli-shell-api showCfg interfaces ethernet $interface vif $vif dhcp-options client-option | grep "send rfc3118-auth" | awk '{ print $4 }' | awk -F ";" '{print $1}')
mac_livebox=$(/bin/cli-shell-api showCfg interfaces ethernet $interface vif $vif dhcp-options client-option | grep "dhcp-client-identifier" | awk '{ print $4 }' | awk -F ";" '{print $1}')


read -r -d '' conffile <<EOF
# $target_file\n
option dhcp6.auth code 11 = string;\n
option dhcp6.vendorclass code 16 = string;\n
option dhcp6.userclass code 15 = string;\n
\n
#External interface (VLAN must be 832 for Orange)\n
interface "eth1.832" {\n
\t#Orange France specific options\n
\tsend dhcp6.vendorclass 00:00:04:0e:00:05:73:61:67:65:6d;\n
\tsend dhcp6.userclass 00:2b:46:53:56:44:53:4c:5f:6c:69:76:65:62:6f:78:2e:49:6e:74:65:72:6e:65:74:2e:73:6f:66:74:61:74:68:6f:6d:65:2e:6c:69:76:65:62:6f:78:34;\n
\tsend dhcp6.vendor-opts 00:00:05:58:00:06:00:0e:49:50:56:36:5f:52:45:51:55:45:53:54:45:44;\n
\n
\t#Authentication for Orange France DHCP server (same value as for DHCPv4)\n
\tsend dhcp6.auth $auth_string;\n
\n
\tsend dhcp6.client-id 00:03:00:$mac_livebox;\n
\n
\trequest dhcp6.name-servers, dhcp6.vendorclass, dhcp6.userclass, dhcp6.auth;\n
}\n
EOF

echo -e $conffile > $target_file


fffmeh, est-ce qu'il faut toujours mettre l'option dhcp-client-identifier dans le fichier de configuration? Je croyais qu'elle était devenue obsolète...

mac_livebox=$(/bin/cli-shell-api showCfg interfaces ethernet $interface vif $vif dhcp-options client-option | grep "dhcp-client-identifier" | awk '{ print $4 }' | awk -F ";" '{print $1}')
\tsend dhcp6.client-id 00:03:00:$mac_livebox;\n

Et aussi, est-ce que quelq'un peut confirmer que le rfc3118-auth est bien du type:
client-option "send rfc3118-auth 00:00:00:00:00:00:00:00:00:00:00:1a:09:00:00:05:58:01:03:41:01:0d:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;"

 merci!
A+


fttmeh

  • Abonné Orange Fibre
  • *
  • Messages: 242
  • Hauts-de-Seine
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #58 le: 14 janvier 2020 à 11:31:46 »
fffmeh, est-ce qu'il faut toujours mettre l'option dhcp-client-identifier dans le fichier de configuration? Je croyais qu'elle était devenue obsolète...
EDIT : Voici ma capture tcpdump. Le client-identifier est bien là (Cf. screenshot

Et aussi, est-ce que quelq'un peut confirmer que le rfc3118-auth est bien du type

Cette chaine d'authentification me semble trop courte.

Tu as un générateur de la chaine d'authentification ici :https://jsfiddle.net/kgersen/3mnsc6wy/embedded/result/
« Modifié: 16 janvier 2020 à 20:02:27 par fttmeh »

orfait

  • Abonné Orange Fibre
  • *
  • Messages: 2
  • Bussy St Georges (77)
Ubiquiti ER Ipv6 dhcp6 en 2.X
« Réponse #59 le: 17 janvier 2020 à 12:08:50 »
Bonjour fttmeh,

Je viens de rejoindre le forum et me greffe sur ce sujet suite à la lecture de ce post qui doit être de toi :
https://community.ui.com/questions/Include-Network-Priority-CGROUP-in-EdgeMAX-2-X-kernel-line/98d39390-2092-4fd4-8c09-e8112a078fdf

Est-ce qu'il y a du nouveau ?
Je viens de prendre un ER-X pour remplacer la livebox, fw 2.0.8.

Merci