{"id":286,"date":"2018-04-30T10:18:12","date_gmt":"2018-04-30T09:18:12","guid":{"rendered":"https:\/\/blog.brimbelle.org\/?p=286"},"modified":"2018-05-04T09:24:00","modified_gmt":"2018-05-04T08:24:00","slug":"fibre-orange-ipv6-et-dhcpcd","status":"publish","type":"post","link":"https:\/\/blog.brimbelle.org\/index.php\/2018\/04\/30\/fibre-orange-ipv6-et-dhcpcd\/","title":{"rendered":"Fibre Orange, IPv6 et dhcpcd"},"content":{"rendered":"<p><a href=\"https:\/\/blog.brimbelle.org\/wp-content\/uploads\/2017\/07\/330x300-330x300choix-orange-fibre-32783.png\" rel=\"lightbox[286]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-269\" src=\"https:\/\/blog.brimbelle.org\/wp-content\/uploads\/2017\/07\/330x300-330x300choix-orange-fibre-32783-150x150.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/a>Comme je l&rsquo;avais indiqu\u00e9 dans mon pr\u00e9c\u00e9dent billet concernant la fibre Orange, l&rsquo;IPv6 fonctionne comme l&rsquo;IPv4, avec DHCPv6. Il faut de la m\u00eame fa\u00e7on qu&rsquo;en IPv4, envoyer des requ\u00eates DHCPv6 en fournissant les bonnes valeurs d&rsquo;options au serveur Orange : l&rsquo;option 11 (AUTH), l&rsquo;option 15 (USER_CLASS) et l&rsquo;option 16 (VENDOR_CLASS).<\/p>\n<p>Ceci, afin d&rsquo;obtenir une d\u00e9l\u00e9gation de pr\u00e9fixe IPv6 : un \/56 enti\u00e8rement rout\u00e9 jusqu&rsquo;\u00e0 l&rsquo;\u00e9quipement du client et utilisable comme bon lui semble.<\/p>\n<p>Jusqu&rsquo;\u00e0 maintenant, seul <a href=\"http:\/\/klub.com.pl\/dhcpv6\/\">dibbler<\/a> fonctionnait (un peu par hasard), mais il est maintenant possible d&rsquo;utiliser <a href=\"https:\/\/roy.marples.name\/projects\/dhcpcd\">dhcpcd<\/a> proprement, gr\u00e2ce \u00e0 Roy Marples, son d\u00e9veloppeur, qui a impl\u00e9ment\u00e9 toutes les fonctionnalit\u00e9s manquantes.<\/p>\n<p><!--more--><\/p>\n<p>En effet, m\u00eame si cela fonctionnait avec dibbler, plusieurs probl\u00e8mes subsistent :<\/p>\n<ul>\n<li>Il n&rsquo;est plus maintenu (la derni\u00e8re release date de 2015),<\/li>\n<li>Il y a un bug au niveau de l&rsquo;authentification : il faut mettre deux fois l&rsquo;option 11 (AUTH) dans la configuration pour que celle-ci soit envoy\u00e9e dans le paquet DHCPv6 Request ; ce qui g\u00e9n\u00e8re un paquet DHCPv6 Solicit contenant deux fois cette option 11, et n&rsquo;est pas correct au vu de la RFC.<\/li>\n<li>Le m\u00e9canisme d&rsquo;authentification n&rsquo;est pas support\u00e9 par dibbler : il ajoute simplement l&rsquo;option param\u00e9tr\u00e9e manuellement dans les paquets et ne fait aucune v\u00e9rification sur les r\u00e9ponses.<\/li>\n<li>Peu de distributions le supportent, ce qui n\u00e9cessite dans la plupart des cas de le compiler manuellement, plut\u00f4t que d&rsquo;utiliser un port\/package.<\/li>\n<\/ul>\n<p>Je me suis donc pench\u00e9 sur dhcpcd, qui est l&rsquo;un des rare client DHCPv6 activement maintenu. Apr\u00e8s quelques recherches, j&rsquo;ai constat\u00e9 que l&rsquo;option 15 (USER_CLASS) n&rsquo;\u00e9tait pas support\u00e9e. J&rsquo;ai donc contact\u00e9 Roy Marples, le d\u00e9veloppeur de dhcpcd. Celui-ci a tr\u00e8s gentiment accept\u00e9 d&rsquo;ajouter le support de cette option. <a href=\"https:\/\/roy.marples.name\/archives\/dhcpcd-discuss\/index.html#02025\">Apr\u00e8s pas mal d&rsquo;\u00e9changes<\/a>, nous avons \u00e9galement constat\u00e9 quelques soucis sur les autres options qu&rsquo;Orange n\u00e9cessite : l&rsquo;option 16 (VENDOR_CLASS) et l&rsquo;option 11 (AUTH). Roy a tr\u00e8s patiemment corrig\u00e9 les diff\u00e9rents probl\u00e8mes.<\/p>\n<p>Ainsi, la <a href=\"https:\/\/roy.marples.name\/git\/dhcpcd.git\/\">branche de d\u00e9veloppement de dhcpcd<\/a> (qui devrait devenir la version 7.0.4 prochainement) a maintenant tout le n\u00e9cessaire pour obtenir un bail DHCPv6 et r\u00e9cup\u00e9rer une d\u00e9l\u00e9gation de pr\u00e9fixe IPv6. Cette configuration minimale fonctionne (remplacez xxxxxxx par votre identifiant Orange) :<\/p>\n<p><code>ipv6only<br \/>\nduid<br \/>\nauthprotocol token 0x123\/0x456<br \/>\nauthtoken 0x123 \"\" forever fti\/xxxxxxx<br \/>\nauthtoken 0x456 \"\" forever dhcpliveboxfr250<br \/>\nuserclass FSVDSL_livebox.Internet.softathome.livebox3<br \/>\nvendclass 1038 sagem<br \/>\npersistent<br \/>\nnoipv6rs<br \/>\nallowinterfaces vlan832<br \/>\ninterface vlan832<br \/>\nia_pd 1<\/code><\/p>\n<p>Cette configuration permet non seulement de supporter toutes les options n\u00e9cessaires, mais aussi de g\u00e9rer correctement l&rsquo;authentification :<\/p>\n<ul>\n<li>Nous passons le bon token d&rsquo;authentification client, avec des valeurs correctes d&rsquo;anti-rejeu, m\u00eame si Orange n&rsquo;en tient pas compte,<\/li>\n<li>Nous v\u00e9rifions le token d&rsquo;authentification du serveur renvoy\u00e9 par les serveurs DHCPv6 d&rsquo;Orange.<\/li>\n<\/ul>\n<p>Attention, il semble qu&rsquo;en plus des diff\u00e9rentes options requises, Orange filtre sur la valeur du DUID de l&rsquo;option 1 (CLIENTID) dans les requ\u00eates DHCPv6. Mon impression est que la premi\u00e8re valeur du DUID \u00e9mise par l&rsquo;\u00e9quipement client connect\u00e9 est mise sur liste blanche, et qu&rsquo;il n&rsquo;est ensuite plus possible d&rsquo;utiliser une autre valeur. Ceci permettant \u00e0 Orange de limiter les \u00e9quipements connect\u00e9s, \u00e9viter les \u00e9changes sauvages de Livebox, etc.<\/p>\n<p>Il y a donc un travail n\u00e9cessaire pour r\u00e9cup\u00e9rer cette fameuse valeur du DUID :<\/p>\n<ul>\n<li>R\u00e9cup\u00e9rer la valeur pr\u00e9c\u00e9demment utilis\u00e9e par dibbler dans <code>\/var\/lib\/dibbler\/client-duid<\/code> en la concat\u00e9nant avec les valeurs de type de lien et date\/heure de ce m\u00eame fichier,<\/li>\n<li>Sniffer le trafic de la Livebox.<\/li>\n<\/ul>\n<p>Ensuite, il faut \u00e9diter le fichier <code>\/var\/db\/dhcpcd\/duid<\/code> pour positionner la bonne valeur.<\/p>\n<p>Voil\u00e0 donc qui devrait faire le bonheur de beaucoup de monde, car beaucoup de projets pourront en profiter : pfSense, OpenWRT, etc.<\/p>\n<p>Enfin, pour finir, je remercie encore Roy Marples pour ce support et sa sympathie.<\/p>\n<p>Note 04\/05\/2018 : dhcpcd 7.0.4 est maintenant officiel et le port OpenBSD a \u00e9t\u00e9 mis \u00e0 jour.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme je l&rsquo;avais indiqu\u00e9 dans mon pr\u00e9c\u00e9dent billet concernant la fibre Orange, l&rsquo;IPv6 fonctionne comme l&rsquo;IPv4, avec DHCPv6. Il faut de la m\u00eame fa\u00e7on qu&rsquo;en IPv4, envoyer des requ\u00eates DHCPv6 en fournissant les bonnes valeurs d&rsquo;options au serveur Orange : l&rsquo;option 11 (AUTH), l&rsquo;option 15 (USER_CLASS) et l&rsquo;option 16 (VENDOR_CLASS). Ceci, afin d&rsquo;obtenir une d\u00e9l\u00e9gation [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[162,64,161,159,160,157,156,155,158],"class_list":["post-286","post","type-post","status-publish","format-standard","hentry","category-informations-pour-les-geeks","tag-authentification","tag-dhcp","tag-dhcpcd","tag-dhcpv6","tag-dibbler","tag-fibre","tag-livebox","tag-orange","tag-routeur"],"_links":{"self":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts\/286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/comments?post=286"}],"version-history":[{"count":0,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts\/286\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/media?parent=286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/categories?post=286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/tags?post=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}