Caps Services - Forum

K-net => Internet => Discussion démarrée par: psm le 18 Novembre 2020 à 11:45:55

Titre: IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 11:45:55
Bon je lance ce sujet, je sais pas si ça peut aider d'autres personnes mais bon au mois ça sera la pour la postérité.

Donc mon setup est le suivant:
- client dans le 27 donc "via" Axione
- routeur USG de chez Unifi/Ubiquiti

D'après le second post (https://forum.caps.services/index.php/topic,7653.msg96829.html#msg96829) du thread sur l'IPv6 chez K-net, pour Axione c'est du "simple" DHCPv6. (et en plus c'est noté stable, c'est cool).

Donc dans le contrôleur je vais éditer les infos pour le WAN comme suit (USG-WAN.png).

Mais après, bah j'ai rien:

$ show ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
       I - ISIS, B - BGP, * - FIB route.

C>* ::1/128 is directly connected, lo
C * fe80::/64 is directly connected, eth0
C * fe80::/64 is directly connected, eth1.10
C>* fe80::/64 is directly connected, eth1
$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                        S/L  Description
---------    ----------                        ---  -----------
eth0         83.243.XXX.XXX/24                  u/u  WAN
eth1         10.27.1.1/24                      u/u  LAN
eth1.10      10.27.8.1/22                      u/u
eth2         -                                 A/D
lo           127.0.0.1/8                       u/u
             ::1/128


Du coup je sais pas trop par où commencer :)
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 21:02:08
Comme Drywan l'a expliqué dans le topic à côté:

CitationL'unifi envoi un DUID-LLT au lieu d'un DUID-LL en v6, il faut lui ré-écrire avec en plus la MAC que tu as cloné, sinon le DHCPv6 va t'ignorer tout simplement.

Pour voir on DUID
/opt/vyatta/sbin/dhcpv6-pd-duid.pl --action=show

Pour le modifier
/opt/vyatta/sbin/dhcpv6-pd-duid.pl --action=set --duid=00030001MAC_ADDRESS

Et après tu dump ton WAN pour voir si le DHCPv6 répond à tes demande
sudo tcpdump -i eth0 -vv ip6 |grep TA_MAC_ADDRESS
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 21:12:24
Quand je teste tout ça, voilà ce que ça me donne:

Je modifie le DUID:
# /opt/vyatta/sbin/dhcpv6-pd-duid.pl --action=set --duid=00030001001e809bxxxx
#


Je check le tcpdump:
# tcpdump -i eth0 -vv ip6 |grep 001e809bxxxx
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:08:57.974828 IP6 (hlim 1, next-header UDP (17) payload length: 60) fe80::21e:80ff:fe9b:9d70.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 solicit (xid=98e5be (client-ID hwaddr type 1 001e809bxxxx) (IA_NA IAID:0 T1:0 T2:0) (rapid-commit) (elapsed-time 0) (option-request DNS-server DNS-search-list))
21:08:57.985705 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 124) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 advertise (xid=98e5be (IA_NA IAID:0 T1:3600 T2:5400 (IA_ADDR 2a03:4980:xxx:xxx::dd pltime:7200 vltime:10800)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
21:08:58.978091 IP6 (hlim 1, next-header UDP (17) payload length: 102) fe80::21e:80ff:fe9b:9d70.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 request (xid=d869ff (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (IA_NA IAID:0 T1:0 T2:0 (IA_ADDR 2a03:4980:xxx:xxx::dd pltime:7200 vltime:10800)) (elapsed-time 0) (option-request DNS-server DNS-search-list))
21:08:58.989488 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 133) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=d869ff (IA_NA IAID:0 T1:0 T2:0 (status-code no addresses)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
21:09:00.791543 IP6 (hlim 1, next-header UDP (17) payload length: 60) fe80::21e:80ff:fe9b:9d70.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 solicit (xid=1ff530 (client-ID hwaddr type 1 001e809bxxxx) (IA_NA IAID:0 T1:0 T2:0) (rapid-commit) (elapsed-time 0) (option-request DNS-server DNS-search-list))
21:09:00.803304 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 124) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 advertise (xid=1ff530 (IA_NA IAID:0 T1:3600 T2:5400 (IA_ADDR 2a03:4980:xxx:xxx::dd pltime:7200 vltime:10800)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
21:09:01.794633 IP6 (hlim 1, next-header UDP (17) payload length: 102) fe80::21e:80ff:fe9b:9d70.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 request (xid=c36f2 (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (IA_NA IAID:0 T1:0 T2:0 (IA_ADDR 2a03:4980:xxx:xxx::dd pltime:7200 vltime:10800)) (elapsed-time 0) (option-request DNS-server DNS-search-list))
21:09:01.806258 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 133) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=c36f2 (IA_NA IAID:0 T1:0 T2:0 (status-code no addresses)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
21:09:03.479053 IP6 (hlim 1, next-header UDP (17) payload length: 60) fe80::21e:80ff:fe9b:9d70.dhcpv6-client > ff02::1:2.dhcpv6-server: [udp sum ok] dhcp6 solicit (xid=48680f (client-ID hwaddr type 1 001e809bxxxx) (IA_NA IAID:0 T1:0 T2:0) (rapid-commit) (elapsed-time 0) (option-request DNS-server DNS-search-list))
21:09:03.490146 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 124) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 advertise (xid=48680f (IA_NA IAID:0 T1:3600 T2:5400 (IA_ADDR 2a03:4980:xxx:xxx::dd pltime:7200 vltime:10800)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
^C14 packets captured
16 packets received by filter
0 packets dropped by kernel

#


IA_ADDR 2a03:4980:xxx:xxx::dd correspond bien à l'ip6 que j'ai dans les infos de ma connections sur clients.* mais le routeur ne semble rien chopper.

En tout cas ça communique :)
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: Vincent O le 18 Novembre 2020 à 21:58:20
Question bête : ça marche avec la KBox ?
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 21:59:10
Oui c'est comme ça que j'ai su que ça marchait.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 22:00:35
Dans le tcpdump je vois aussi le /56 attribué:

21:57:15.242664 IP6 (class 0xc0, hlim 255, next-header UDP (17) payload length: 178) fe80::427c:7dff:fe5e:ba31.dhcpv6-server > fe80::21e:80ff:fe9b:9d70.dhcpv6-client: [udp sum ok] dhcp6 reply (xid=e58f3b (IA_NA IAID:0 T1:0 T2:0 (status-code no addresses)) (IA_PD IAID:0 T1:3600 T2:5400 (IA_PD-prefix 2a03:4980:xxx:xxxx::/56 pltime:7200 vltime:10800)) (client-ID hwaddr type 1 001e809bxxxx) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (DNS-server resolver1.k-net.fr resolver2.kwaoo.net))
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 22:21:26
Peut-être qqchose à voir avec https://community.ui.com/questions/WAN-DHCPv6-options/8174cfee-1c23-4c8b-947f-11542400e83b#answer/d2fe8e90-6171-4afe-b18c-2b08d301bb27 ?
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 18 Novembre 2020 à 22:38:20
Du coup j'ai testé ça:
# cat /var/run/dhcp6c-eth0-pd.conf
# This file was auto-generated by /opt/vyatta/sbin/dhcpv6-pd-client.pl
# configuration sub-system.  Do not edit it.

interface eth0 {
send ia-na 1;
request domain-name-servers, domain-name;
send rapid-commit;
send ia-pd 1;
script "/opt/vyatta/sbin/ubnt-dhcp6c-script";
};

id-assoc na 1 {};

id-assoc pd 1 {
prefix ::/64 infinity;
};


Mais pas mieux
# show dhcpv6-pd log
Nov/18/2020 22:31:49: client6_recvadvert: unexpected advertise
Nov/18/2020 22:31:50: update_ia: status code for NA-1: no addresses
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: Fyr le 19 Novembre 2020 à 21:54:53
t'as découpé le /56 reçu en plusieurs bouts pour prendre que le /64 dans ta conf DHCP ?



...
.. na 1 {};
.. pd 1 {
       prefix ::/64 infinity; <= y a deux écoles. Une avec ::64 ici pour le prefixe final, et l'autre école avec ::/56 le prefixe reçu à découper

       prefix-interface WAN {
               sla-id 0; <= la première
               sla-len 8; <= 56+8=64
       };
       prefix-interface LAN {
               sla-id 1; <= la seconde
               sla-len 8; <= 56+8=64
       };
};

Attention les routes sont pas apprises par DHCPv6 Du coup le show ipv6 route sera vide. (et les fe80::/64 bizarre) Faudra dire au routeur d'accepter les annonces RA, c'est ignoré par défaut sur les routeurs.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 19 Novembre 2020 à 22:41:24
Mon problème là tout de suite c'est de savoir si je dois vraiment modifier des scripts dans l'OS et pas uniquement faire une config "perso" via le json.

Modifier le DUID ok, mais si je dois modifier d'autres choses, c'est le coup que chaque màj du firmware casse le truc.

Je suis pas mega calé en IPv6, donc y'a aussi des p'tites choses que je vais pas capter :)

J'aimerai bien voir une config même d'un EdgeMax pour me rendre compte déjà d'une config qui marche.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: Drywan le 20 Novembre 2020 à 16:16:29
Bonjour,

Donc tu devrais avoir maintenant quelques chose comme ça ?

Drywan@ubnt:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                        S/L  Description
---------    ----------                        ---  -----------
eth0         45.83.xxx.xxx/22                  u/u  WAN
             2a03:4980:xxx:xxxx::1/128
eth1         192.168.1.1/24                    u/u  LAN
             2a03:4980:xxx:xxxxx:xxxx:xxxx:xxxx:xxxx/64


Et vérifie bien ton DUID après avoir fait ton"set"

Drywan@ubnt:~$ /opt/vyatta/sbin/dhcpv6-pd-duid.pl --action=show
DUID 00:03:00:01:xx:xx:xx:xx:xx:xx
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 20 Novembre 2020 à 17:27:15
Alors bingo ça marche par contre, il me donne rien sur eth0:

$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                        S/L  Description
---------    ----------                        ---  -----------
eth0         83.243.XXX.XXX/24                  u/u  WAN
eth1         10.27.1.1/24                      u/u  LAN
eth1.10      10.27.8.1/22                      u/u
             2a03:4980:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64
eth2         -                                 A/D
lo           127.0.0.1/8                       u/u
             ::1/128


Mais ça marche bien sur mes postes sur le LAN.
J'imagine qu'il faut maintenant que j'adapte mes règles de FW, qui par défaut bloquent tout.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 20 Novembre 2020 à 18:23:53
Ah alors en fait non, j'ai une machine qui a chopé du v6, mais après un off/on y'a plus rien, et une autre machine en fait ne chope rien.
Je retourne voir ce qu'il ne va pas.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: Drywan le 20 Novembre 2020 à 20:44:48
Nettoie bien tes règles FW pour commencer et regarde si tu récupères une /128 sur ton WAN.

Normalement tu dois recevoir une /128 pour ton WAN et ensuite un préfixe /56 pour tes LAN(s).
Le routeur va attribuer une /64 par eth(x) LAN.
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: BulletZ le 21 Mars 2021 à 22:15:14
Déterrage et hijack de topic pour ceux que ça intéresse, qui se trouvent comme moi sur Axione (27) avec un routeur OpenWRT:

Ça marche, une fois qu'on a bien tout réglé ;)

le DHCP upstream a une configuration un peu "étrange": il renvoie un prefix /56 (c'est bien) et une IP en dehors de ce prefix (jusque là pas de problème), mais ensuite il refuse d'allouer cette même addresse, ce qui perturbe beaucoup le client DHCP d'OpenWRT:

advertise:

[udp sum ok] dhcp6 advertise (xid=b435d6 (IA_NA IAID:1 T1:3600 T2:5400 (IA_ADDR 2a03:4980:120:8e4::47 pltime:7200 vltime:10800)) (IA_PD IAID:1 T1:3600 T2:5400 (IA_PD-prefix 2a03:4980:117:e500::/56 pltime:7200 vltime:10800)) (client-ID hwaddr type 1 <MACADDRESS>) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (reconfigure-accept) (DNS-server 2a03:4980::10:0:17 2a03:4980::f:0:6))


le client répond alors avec un request qui est refusé:

[udp sum ok] dhcp6 request (xid=47d8b5 (elapsed-time 0) (option-request SIP-servers-domain SIP-servers-address DNS-server DNS-search-list SNTP-servers NTP-server AFTR-Name opt_67 opt_94 opt_95 opt_96) (client-ID hwaddr type 1 <MACADDRESS>) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (reconfigure-accept) (Client-FQDN) (IA_NA IAID:1 T1:0 T2:0 (IA_ADDR 2a03:4980:120:8e4::47 pltime:7200 vltime:10800)) (IA_PD IAID:1 T1:0 T2:0 (IA_PD-prefix 2a03:4980:117:e500::/56 pltime:7200 vltime:10800)))
[udp sum ok] dhcp6 reply (xid=47d8b5 (IA_NA IAID:1 T1:0 T2:0 (status-code NoAddrsAvail)) (IA_PD IAID:1 T1:3600 T2:5400 (IA_PD-prefix 2a03:4980:117:e500::/56 pltime:7200 vltime:10800)) (client-ID hwaddr type 1 <MACADDRESS>) (server-ID hwaddr/time type 1 time 565959855 aa00005c8993) (reconfigure-accept) (DNS-server 2a03:4980::10:0:17 2a03:4980::f:0:6))


La solution consiste donc à ne pas demander d'IP pour le WAN, mais uniquement le PD. Ensuite, on délègue un /64 sur le LAN, et tout "tombe en marche".

Les bouts de config qui vont bien:

/etc/config/network:

config interface 'lan'
        [la config v4 qui va bien]
option ip6assign '64'

config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'
option reqaddress 'none'
option reqprefix 'auto'


/etc/config/dhcp:

config dhcp 'lan'
option interface 'lan'
option start '20'
option limit '50'
option leasetime '6h'
option ra 'server'
option dhcpv6 'server'
option ra_management '1'


Dans cette situation, l'interface WAN n'a pas d'ipv6 publique, uniquement du link local, c'est normal et ça fonctionne très bien. Le routeur et les postes sur le LAN peuvent communiquer en v6 (le routeur utilise l'IP assignée à l'interface LAN).

Et voila!
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: psm le 22 Mars 2021 à 08:27:52
Ah cool, je m'y suis pas encore remis et je me dis que c'est possiblement pour ça que ça marchait mal quand j'ai testé.

Faudrait que je m'y remette :)
Titre: Re : IPv6 / Axione / Ubiquiti USG
Posté par: BulletZ le 02 Juillet 2021 à 18:47:25
Et je me réponds à moi-même suite à un raccordement Axione dans le 84: là, le DHCPv6 fonctionne normalement et il n'est pas besoin de désactiver la demande d'IP pour le WAN. Bizarre, mais bon  ;)