La Fibre

Fournisseurs d'accès à Internet fixe en France métropolitaine => SFR / RED => SFR Incidents SFR => Discussion démarrée par: yrousse le 21 juin 2014 à 16:34:29

Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 21 juin 2014 à 16:34:29
Bonjour,

J'ai le setup suivant:
FTTH SFR > ONT > NB6v > EdgeRouter Lite > LAN

Je garde la NB6v pour le (ou "à cause du") décodeur TV. Donc l'objectif est pour le moment d'avoir mon LAN derrière mon EdgeRouter et basta. Et tant pis pour le double NAT sur IPv4.

Coté IPv4, l'EdgeRouter est configuré et ça fonctionne.
En revanche, je ne sais pas du tout par quel bout prendre l'IPv6... Dois-je terminer le tunnel L2TP sur l'EdgeRouter ou me contenter de le mettre en bridge? Dans tous les cas, comment faire ça?

Pour mon premier essai, je pensais qu'un set interfaces ethernet eth0 address dhcpv6 allait au moins m'obtenir une IPv6 de la part de la NB6v mais non. Donc je rate manifestement une grosse évidence quelque part...

firewall {
    all-ping enable
    broadcast-ping disable
    ipv6-receive-redirects disable
    ipv6-src-route disable
    ip-src-route disable
    log-martians enable
    name WAN_IN {
        default-action drop
        description "packets from Internet to LAN & WLAN"
        enable-default-log
        rule 1 {
            action accept
            description "allow established sessions"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "drop invalid state"
            log disable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    name WAN_LOCAL {
        default-action drop
        description "packets from Internet to the router"
        enable-default-log
        rule 1 {
            action accept
            description "allow established session to the router"
            log disable
            protocol all
            state {
                established enable
                invalid disable
                new disable
                related enable
            }
        }
        rule 2 {
            action drop
            description "drop invalid state"
            log enable
            protocol all
            state {
                established disable
                invalid enable
                new disable
                related disable
            }
        }
    }
    receive-redirects disable
    send-redirects enable
    source-validation disable
    syn-cookies enable
}
interfaces {
    ethernet eth0 {
        address dhcp
        address dhcpv6
        description WAN
        duplex auto
        firewall {
            in {
                name WAN_IN
            }
            local {
                name WAN_LOCAL
            }
        }
        speed auto
    }
    ethernet eth1 {
        address 192.168.2.254/24
        description LAN
        duplex auto
        speed auto
    }
    ethernet eth2 {
        address 192.168.3.1/24
        description LAN2
        duplex auto
        speed auto
    }
    loopback lo {
    }
}
service {
    dhcp-server {
        disabled false
        hostfile-update disable
        shared-network-name LAN {
            authoritative disable
            subnet 192.168.2.0/24 {
                default-router 192.168.2.254
                dns-server 192.168.2.254
                lease 86400
                start 192.168.2.100 {
                    stop 192.168.2.200
                }
            }
        }
        shared-network-name LAN2 {
            authoritative disable
            subnet 192.168.3.0/24 {
                lease 86400
                start 192.168.3.100 {
                    stop 192.168.3.150
                }
            }
        }
    }
    dns {
        dynamic {
            interface eth0 {
                service dyndns {
                    host-name all.dnsomatic.com
                    login xxxxxxxx
                    password xxxxxxxxxx
                    server updates.dnsomatic.com
                }
            }
        }
        forwarding {
            cache-size 1000
            listen-on eth1
            listen-on eth2
        }
    }
    gui {
        https-port 443
        listen-address 192.168.2.254
    }
    nat {
        rule 5000 {
            description "masquerade for WAN"
            log disable
            outbound-interface eth0
            type masquerade
        }
    }
    ssh {
        listen-address 192.168.2.254
        port 22
        protocol-version v2
    }
    upnp {
        listen-on eth1 {
            outbound-interface eth0
        }
    }
}
system {
    conntrack {
        expect-table-size 4096
        hash-size 4096
        table-size 32768
        tcp {
            half-open-connections 512
            loose enable
            max-retrans 3
        }
    }
    host-name ubnt
    login {
        user xxxx {
            authentication {
                encrypted-password xxxxxxxxxxxxxxxxx
                plaintext-password ""
            }
            full-name Yann
            level admin
        }
    }
    name-server 208.67.222.222
    name-server 208.67.220.220
    name-server 2620:0:ccc::2
    name-server 2620:0:ccd::2
    ntp {
        server 0.ubnt.pool.ntp.org {
        }
        server 1.ubnt.pool.ntp.org {
        }
        server 2.ubnt.pool.ntp.org {
        }
        server 3.ubnt.pool.ntp.org {
        }
    }
    offload {
        ipsec enable
        ipv4 {
            forwarding enable
        }
        ipv6 {
            forwarding disable
        }
    }
    syslog {
        global {
            facility all {
                level notice
            }
            facility protocols {
                level debug
            }
        }
    }
    time-zone Europe/Paris
}
Bien sur, ici, pas d'autre configuration propre à IPv6 pour le moment.
Eth2 n'est pas utilisé pour le moment.

Des conseils seraient les bienvenus...  :)
Titre: NB6v + Edgerouter
Posté par: kgersen le 21 juin 2014 à 22:43:24
ca (re)marche IPv6 chez SFR?!

Chez moi ca ne marche meme pas dans la NB. Ca a beau être activé , ca ne marque jamais 'connecté'. J'ai même essayé plusieurs reboot de la Box et de l'ONT.
(http://i.imgur.com/uJlebGt.png)
et la ou on config:
(http://i.imgur.com/kvWHx88.png)

Apres SI ca marche c'est pas dit que ca utilise DHCPv6. Ca pourrait n'utiliser que "ipv6 stateless autoconfiguration" qui est plus simple à mettre en oeuvre que DHCP (c'est le cas sur la Freebox par exemple).

Dans ce cas il faut voir comment configurer ce mode dans l'Edgemax. Sur un routeur Cisco c'est "ipv6 address autoconfig" par exemple.

Ensuite, si IPv6 marche, pour cascader un routeur derrière la box il faudrait que SFR attribue un réseau ipv6 plus grand que /64 pour pouvoir 'router' soi même sur le réseau derriere l'Edgemax.

Au pire, en attendant, on peut faire un tunnel avec https://tunnelbroker.net (https://tunnelbroker.net) . C'est gratuit même pour un /48 routé et ca fourni la configuration à faire y compris pour un Edgemax.

Titre: NB6v + Edgerouter
Posté par: Nico le 21 juin 2014 à 22:48:27
ca (re)marche IPv6 chez SFR?!
Ça s'est arrêté de marcher ?

Sur Facebook par exemple comme tu peux le voir je suis à 100% en IPv6 :
(http://i.imgur.com/FLa49lt.png)

Citer
Chez moi ca ne marche meme pas dans la NB. Ca a beau être activé , ca ne marque jamais 'connecté'. J'ai même essayé plusieurs reboot de la Box et de l'ONT.
C'est bien marqué "connecté" chez moi.

Citer
Ensuite, si IPv6 marche, pour cascader un routeur derrière la box il faudrait que SFR attribue un réseau ipv6 plus grand que /64 pour pouvoir 'router' soi même sur le réseau derriere l'Edgemax.
Et ça tombe drôlement bien, c'est un /56 qui est attribué !
Titre: NB6v + Edgerouter
Posté par: yrousse le 21 juin 2014 à 22:51:11
Après avoir glané quelques infos, pour IPv6, SFR utilise une session PPP dans un tunnel L2TP.
Plus d'info ici:
http://wiki.openwrt.org/doc/howto/ipv6.softwire#prefix.delegation.through.dhcpv6 (http://wiki.openwrt.org/doc/howto/ipv6.softwire#prefix.delegation.through.dhcpv6)
(Merci Pierre!)

J'avoue que c'est chaud pour moi de partir de ça pour en faire une config pour l'EdgeRouter. J'ai pas le niveau (mais je me documente...). En plus, le client L2TP n'est pas explicitement documenté par Ubiquity. Voir: https://community.ubnt.com/t5/EdgeMAX/L2TP-client/td-p/381249 (https://community.ubnt.com/t5/EdgeMAX/L2TP-client/td-p/381249)

Suggestions bienvenues.
Titre: NB6v + Edgerouter
Posté par: kgersen le 21 juin 2014 à 22:51:38
Ça s'est arrêté de marcher ?
J'en sais rien pour mon cas, ca fait 2 jours a peine que j'ai la fibre SFR.
C'est peut-etre ma ligne ou mon NRO qui supporte pas ipv6.

Et ça tombe drôlement bien, c'est un /56 qui est attribué !
Ah ben ca c'est tres bien. Un très bon point pour SFR.
Titre: NB6v + Edgerouter
Posté par: Nico le 21 juin 2014 à 22:56:03
Attends quelques jours à tout hasard alors, sait-on jamais que ça vienne dans un second temps.
Titre: NB6v + Edgerouter
Posté par: kgersen le 25 juin 2014 à 15:34:04
Attends quelques jours à tout hasard alors, sait-on jamais que ça vienne dans un second temps.

j'attendu. J'ai cherché partout. j'ai contacter le SAV SFR. Apres m'avoir fait changer ma NB6v pour rien (perte de temps, etc) il me disent que finalement IPv6 n'est pas compatible avec la Fibre SFR ... j'ai pas le temps de répondre que la fenetre de TChat avec le SAV se bloque puis se ferme ...sympa!

Donc Nico et yrousse vous confirmez bien que vous avez la Fibre SFR et qu'IPv6 n'est pas compatible  :P

ou alors ca n'est que le profil 1G/200M qui n'a pas IPv6 , je ne vois que ca comme explication plausible.

Ca vaut le coup que je perdre du temps a "batailler" avec le SAV pour qu'ils remontent l'affaire plus haut ou pas ? j'ai l'impression qu'ils ne captent pas grand chose.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Nico le 25 juin 2014 à 16:17:25
La fibre SFR et IPv6 sont compatibles. J'ai du mal à voir pourquoi un profil différent (qui est juste de la QoS sur l’arbre GPON) pourrait jouer sur IPv6.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Nico le 25 juin 2014 à 16:27:05
L'IPv6 était lié à une version du firmware de la NB6, tu peux nous donner ta version ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 25 juin 2014 à 17:05:14

J'ai ca:

Version principale   NB6V-MAIN-R3.3.9
Modèle                   NB6V-FXC-r0

l'interface de gestion web permet bien d'activer ou pas ipv6, c'est juste que ca 'se connecte' pas (session ppp v6 qui monte pas?):
(http://i.imgur.com/w7qFsJ6.png)
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Nico le 25 juin 2014 à 17:11:46
En haut à droite j'ai :

Version          : NB6V-MAIN-R3.3.9
Adresse MAC      : ***
Adresse IP       : ***
Profil d'accès   : box FTTH (IPv6)



Tu as bien la même chose ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 25 juin 2014 à 17:16:25
J'ai:

Version    : NB6V-MAIN-R3.3.9
Adresse MAC    : *****
Adresse IP    : *****
Profil d'accès    : box FTTH

Il y aurait donc 2 profils différents ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 25 juin 2014 à 17:18:18
ou si tu désactives IPv6, est-ce qu'en haut a droite le profil change de nom ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Nico le 25 juin 2014 à 17:19:47
A première vue il y a une différence ici en tout cas. Par contre je ne suis pas convaincu que ce soit lié au débit. Peut-être autre chose je ne sais pas.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: DamienC le 25 juin 2014 à 18:04:04
Chez moi, quand je désactive l'option ipv6, j'ai ça :
(http://img11.hostingpics.net/pics/707236ipv4.png)
Et quand j'active l'option ipv6, j'ai ça :
(http://img11.hostingpics.net/pics/957893ipv6.png)

Donc le problème c'est bien que votre box n'arrive pas à avoir d'ipv6..
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 25 juin 2014 à 20:54:41
Ah merci a tous 2, ca me rassure un peu. Je vais harceler le SAV de SFR donc ;)
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 25 juin 2014 à 23:38:52
Plutôt que de harceler le SAV qui ne semble pas très bien être informé, est-ce que tu pourrais faire une capture réseau du démarrage de ta box pour qu'on puisse voir où ça coince, et nous la montrer (par MP si tu crains qu'elle ne contienne des informations sensibles) ? Pour cela, en FTTH, il suffit de se mettre entre la box et l'ONT avec par exemple un switch administrable, un hub, ou encore un PC avec plusieurs interfaces réseau, et de lancer tcpdump ou Wireshark (et si tu n'as rien de tout ça, tu peux toujours effectuer une capture (https://lafibre.info/sfr-tutoriels/captures-reseau-du-demarrage-et-fonctionnement-de-la-neufbox-6/msg113352/#msg113352) directement depuis la box).
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 26 juin 2014 à 13:08:15
Plutôt que de harceler le SAV qui ne semble pas très bien être informé, est-ce que tu pourrais faire une capture réseau du démarrage de ta box pour qu'on puisse voir où ça coince, et nous la montrer (par MP si tu crains qu'elle ne contienne des informations sensibles) ? Pour cela, en FTTH, il suffit de se mettre entre la box et l'ONT avec par exemple un switch administrable, un hub, ou encore un PC avec plusieurs interfaces réseau, et de lancer tcpdump ou Wireshark (et si tu n'as rien de tout ça, tu peux toujours effectuer une capture (https://lafibre.info/sfr-tutoriels/captures-reseau-du-demarrage-et-fonctionnement-de-la-neufbox-6/msg113352/#msg113352) directement depuis la box).

oui j'y ai pensé mais ca prend du temps sans parler des risques si je dois 'open' ma NB6v.
J'ai pas de switch qui fait SPAN sous la main, je vais voir si je peux faire ca avec un routeur sous openwrt, je crois qu'il y a un package SPAN dispo.
Ca bouffe du temps toutes ces débouilles et si j'avais le temps de bidouiller j'aurais plutot virer la NB6 pour mettre un ERL...dilemme.
En plus le probleme est clairement coté SFR la.
Je vais voir.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 26 juin 2014 à 14:38:26
J'ai recontacter le SAV de SFR . Le probleme est escaladé plus haut, on me rappelle sous 48 heures. A suivre.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 27 juin 2014 à 18:33:43
J'ai eu un tech SFR (niveau 2?) par téléphone.

Il a trouvé un firmware pas a jour dans mon ONT. il a mis a jour mais ca n'a résolu aucun des 2 problemes.

Concernant IPv6 il recommande de toute facon de pas l'activer et il ne peut rien faire si ca se connecte pas. D'apres lui c'est 'en chantier' donc ca marche ou ca marche pas y'a rien à faire et il n'a aucun moyen d'action (fumeux comme explication mais bon). Il m'a même demandé pour quel usage je voulais activé IP v6.

J'ai donc commandé un petit switch manageable qui fait SPAN (un Netgear GS105E). Je devrait le recevoir lundi, je ferait une capture de ce qui se passe au boot entre l'ONT et la box.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 30 juin 2014 à 22:58:42
Apres quelques déboires de cables défectueux, j'ai pu faire une capture rapide pour voir ce qu'il se passe.
J'ai pas tout analyser encore mais je trouve ca:

labox -> 109.6.4.36 PPP PAP Authenticate-Request (Peer-ID='dhcp/monippublic@adressemacdelabox', Password='unmotdepassecompliquer')et la reponse:
109.6.4.36->labox PPP PAP Authenticate-Nak (Message='Request Denied')
Un souci sur le serveur 109.6.4.36 (LNS?) qui refuse la requête donc ?

Je vais lire a fond le tuto de Marin ( https://lafibre.info/sfr-tutoriels/captures-reseau-du-demarrage-et-fonctionnement-de-la-neufbox-6/ ) pour essayer de voir si je retrouve la sequence entiere de boot.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 01 juillet 2014 à 01:00:18
Un souci sur le serveur 109.6.4.36 (LNS?) qui refuse la requête donc ?

Visiblement oui.

Le « unmotdepassecompliquer », il fait bien 16 caractères et est composé de chiffres et de lettres majuscules (ça devrait être le cas si le déchiffrement n'a pas échoué) ?

Il y a peut-être un problème en interne avec la base de données d'identifiants IPv6 de SFR. Dans ce cas, il faudrait essayer de remonter le problème aux personnes qui s'occupent de ça (pas sûr que tu y arrives en passant par le 1023...).

Un truc à tester éventuellement serait d'essayer de reproduire la setup IPv6 de ton côté, sur ton PC (la session L2TP s'établissant au-dessus de la connexion IPv4 publique), en faisant varier la configuration, par exemple en faisant commencer ton identifiant par « ppp/ » comme c'est le cas en ADSL et non « dhcp/ », et également en enlevant 4 au dernier octet de l'adresse MAC transmise dans l'identifiant, pour voir ce que ça donne.

Tu pourrais aussi essayer de te connecter sur un LNS différent, par exemple moi je suis sur 109.6.1.72 et non 109.6.4.36.

Pour rappel, c'est le logiciel libre xl2tpd qui est utilisé pour mettre en place le tunnel, et j'ai réuni quelques informations concernant la façon dont il est lancé et configuré dans ce message : https://lafibre.info/sfr-tutoriels/bypasser-la-neufbox-avec-un-routeur-ubiquiti-edgemax/msg148375/#msg148375
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 01 juillet 2014 à 13:38:57

Le « unmotdepassecompliquer », il fait bien 16 caractères et est composé de chiffres et de lettres majuscules (ça devrait être le cas si le déchiffrement n'a pas échoué) ?


c'est bien ca.

J'ai mis les mains dans le cambouis de xl2tpd et commencé à faire des tests sur un Linux. A suivre.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 01 juillet 2014 à 15:42:05
Bon... J'y arrive pas !  :'(

Ma dernière tentative est décrite ici : http://community.ubnt.com/t5/EdgeMAX/Stateless-IPv6-no-LAN-gt-WAN/m-p/896940#U896940 (http://community.ubnt.com/t5/EdgeMAX/Stateless-IPv6-no-LAN-gt-WAN/m-p/896940#U896940)

En gros (et en tenant compte des derniers essais désespérés...):
J'ai toujours ONT -> NB6v -> EdgeRouter -> clients LAN. Je ping depuis le router vers tout ce qui sera sur mon LAN, tout ce qui sera sur le WAN (y compris clients connectés au switch de la NB6v) et à l'extérieur (ipv6.google.com par exemple). Mais je ne ping toujours pas mon interface WAN et google depuis mes client LAN.
Pour info: WAN = eth1, LAN = eth0 et NB6v = 2a02:xxxx:xx:xx00::/56
L'autoconfiguration sur le WAN m'attribue bien quelque chose de cohérent en eui64, tel que 2a02:xxx:xx:xx00:MAC_address/64 avec en route les IPv6 de la NB6v. Manifestement, de ce coté-là, rien qui puisse chatouiller.
Coté WAN, je ne travaille plus avec wide-dhcp6c car il ne m'a jamais attribué d'IP pour mon LAN depuis la NB6v (!) et autant faire du hardcoding pour débugger. Donc, saisie en dur d'une IP pour l'interface LAN et configuration du Router-Advert. Là aussi, cette partie semble fonctionner parfaitement, avec les clients récupérant toutes les infos nécessaires (y compris les DNS OpenDNS, via RDNSS).

Pour faire celà, j'ai:
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth1.accept_ra=2
net.ipv6.conf.eth1.autoconf=1
et
interfaces {
     ethernet eth0 {
         address 192.168.2.254/24
         description LAN
         duplex auto
         ipv6 {
             address {
                 eui64 2a02:xxxx:xx:xx01::/64
             }
             dup-addr-detect-transmits 1
             router-advert {
                 cur-hop-limit 64
                 default-preference high
                 link-mtu 0
                 managed-flag true
                 max-interval 600
                 other-config-flag true
                 prefix ::/64 {
                     autonomous-flag true
                     on-link-flag true
                     valid-lifetime 2592000
                 }
                 radvd-options "RDNSS 2620:0:ccc::2 2620:0:ccd::2 { };"
                 reachable-time 0
                 retrans-timer 0
                 send-advert true
             }
         }
         speed auto
     }
     ethernet eth1 {
         address dhcp
         description WAN
         duplex auto
         firewall {
             in {
                 ipv6-name WAN6_IN
                 name WAN_IN
             }
             local {
                 ipv6-name WAN6_LOCAL
                 name WAN_LOCAL
             }
         }
         ipv6 {
             dup-addr-detect-transmits 1
         }
         speed auto
     }
     ethernet eth2 {
         description NotInUse
         disable
         duplex auto
         speed auto
     }
     loopback lo {
     }
 }

Dans le lien vers le forum Ubiquity, vous trouverez mon Firewall. Il laisse passer ICMPv6. J'ai aussi testé en désactivant toutes les régles IPv6. Pas de changement.

Il y a un truc évident sur lequel je me loupe... Mais quoi? (sachant que pour moi,  il y a encore 10 jours, IPv6 était ces adresses pour grains de sable... (en gros))
Est-ce-que je me trompe coté périmêtre des subnets? Ou bien coté routes IPv6?
root@ubnt:/home/yann# netstat -6 -r     
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
::1/128                        ::                         U    256 0     0 lo
2a02:xxxx:xx:xx01::/64         ::                         U    256 0     0 eth0
2a02:xxxx:xx:xx00::/64         ::                         UAe  256 0     0 eth1
fe80::/64                      ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth1
::/0                           fe80::MAC_NB6v   UGDAe 1024 0     0 eth1
::/0                           ::                         !n   -1  1 17289 lo
::1/128                        ::                         Un   0   1     7 lo
2a02:xxxx:xx:xx00::/128        ::                         Un   0   1     0 lo
2a02:xxxx:xx:xx01::/128        ::                         Un   0   1     0 lo
2a02:xxxx:xx:xx01:MAC_eth0/128 ::                         Un   0   1   129 lo
2a02:xxxx:xx:xx00:MAC_eth1/128 ::                         Un   0   1  4080 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::MAC_eth0/128   ::                         Un   0   1  1486 lo
fe80::MAC_eth1/128   ::                         Un   0   1  1936 lo
ff00::/8                       ::                         U    256 0     0 eth0
ff00::/8                       ::                         U    256 0     0 eth1
::/0                           ::                         !n   -1  1 17289 lo

J'ai tenté bien des choses sur les routes static mais rien pour le moment.

Avez-vous des suggestions?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 01 juillet 2014 à 19:22:27
Comment tu règles le routage de retour ?  ca semble coincé sur le flux de retour on dirait du moins.
c-a-d comment la NB6v sait que pour atteindre (en v6) une des machines sur ton LAN elle doit passer par l'ERL ? ( un ping passe dans le sens lan->ERL->NB6v->Internet mais les paquets de retour doivent coincer : internet->NB6v->"heu comment je sais que pour atteindre X je dois envoyer sur l'ERL"):
en V4 ce genre de truc est impossible avec les box des FAI si on a pas moyen d'ajouter une route de retour dans la box (je parle pas de NAT, juste de cascader 1 routeur derriere une box vers un autre LAN privé par exemple).
Donc soit la NB6v permet d'ajouter des routes , soit il faut lui dire peut-etre avec un RA v6: il faut que l'ERL annonce sur sa patte WAN qu'il est la route pour le subnet de ton LAN de son autre patte. Si et seulement la NB6v accepte ces messages alors ca peut marcher. Pas sur que ca marche donc.

enfin c'est mon avis rapide comme ca, j'ai pas encore v6 qui marche chez moi et mon ERL est encore dans le carton :p


Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 01 juillet 2014 à 19:55:01
on me signale et autant pour moi concernant v4, la NB6v permet d'ajouter des routes . c'est bien la seule non ?

effectivement sur http://192.168.1.1/network/route (http://192.168.1.1/network/route)

n'ayant pas v6 sur ma NB6v je ne vois si ca permet aussi d'ajouter des routes pour v6. si c'est le cas ca résoudra ton probleme.

Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 01 juillet 2014 à 23:38:58
L'ajout des routes sur la NB6v: en IPv4 seulement. Et en IPv6, on a un mécanisme sur ICMPv6 et Neighbors Discovery qui est censé faire le job de manière "automatique".

Il semblerait que le "problème" provienne du fait que la Static route de la NB6v vers ses clients LAN soit sur /64 au lieu du /56, du coup un subnet propre à ton EdgeRouter ne sera pas pris en compte. Ou bien c'est le paramètre on-link dans le router-advert de la box. Même punition.
J'avoue que je suis à la limite de ma compréhension des mécanismes propres à IPv6.

J'attend d'en savoir plus pour tirer des conclusions...
Au pire, il y a peut-être une solution avec un Proxy NDP mais encore faut-il que je comprenne comment je peux le faire fonctionner...
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 00:40:01
J'ai toujours pas v6 chez moi mais je continu a 'analyser' comment marche la NB6.

J"ai trouvé ca dans le fichier /etc/dhcp/ipv6.script du firmware de la NB6v:

        # SFR provide ::/56
        # first  ::/64 is allocated to lan. (private lan)
        #        advertise by radvd and protected by firewall
        # second ::/64 is allocated to lan. (dmz)
        #        NOT advertise and NOT protected by firewall
        local lan_net=$(ipv6_local_subnet ${prefix_iapd} 0)
        local dmz_net=$(ipv6_local_subnet ${prefix_iapd} 1)

J'ai pas encore analyser ce ficher en détail pour comprendre ce qu'il fait mais cette partie peut peut-etre t'aider: essais en te mettant en dmz (:2::/64 du /56).

Voila le fichier complet :
#!/bin/sh

ipv6_local_subnet() {
local prefix=$1
local subnet=$2
local subnet_prefix=$(echo $prefix | awk -F\: '{print $4}')

subnet_prefix=0x${subnet_prefix}
subnet_prefix=$((${subnet_prefix} + ${subnet}))
subnet_prefix=$(printf %x ${subnet_prefix})

echo ${prefix} | awk -F\: -v i=${subnet_prefix} '{print $1":"$2":"$3":"i"::1/64"}'
}

dhcp6_setup() {
local prefix_iapd=$(echo "${new_prefix}"|awk -F/ '{print $1}')
local lan_ifname=$(status get lan_ifname)
local net_ipv6_ifname=$(status get net_ipv6_ifname)
local net_ipv6_ipaddr=$(echo ${prefix_iapd} | awk -F :: '{print $1"::1/56"}')

if [ -z "${new_prefix}" ]; then
logger -s -t "dhcp6c[$$]" "${REASON} no prefix"
exit 1;
fi

# router
sysctl -w net.ipv6.conf.${net_ipv6_ifname}.accept_ra=2

# SFR provide ::/56
# first  ::/64 is allocated to lan. (private lan)
#        advertise by radvd and protected by firewall
# second ::/64 is allocated to lan. (dmz)
#        NOT advertise and NOT protected by firewall
local lan_net=$(ipv6_local_subnet ${prefix_iapd} 0)
local dmz_net=$(ipv6_local_subnet ${prefix_iapd} 1)
ip6tables -A FORWARD -j LAN_FORWARD -o ${lan_ifname} -d ${lan_net}
ip -6 addr flush dev ${lan_ifname} scope global
ip -6 addr add ${lan_net} dev ${lan_ifname}
ip -6 route add ${dmz_net} dev ${lan_ifname}

status set net_ipv6_ipaddr "${net_ipv6_ipaddr}"
status set net_ipv6_prefix "${new_prefix}"

# status set net_ipv6_dns ""

/etc/init.d/hosts restart
/etc/init.d/radvd restart

if [ "$(status get net_ipv6_status)" != "up" ]; then
logger -s -t "IPv6" -p local1.info "DHCP ANSWER [${REASON} ${new_prefix}]"
status set net_ipv6_status "up"
event notify "ipv6-up"
fi
}

dhcp6_deconfig() {
local lan_ifname=$(status get lan_ifname)
local net_ipv6_ifname=$(status get net_ipv6_ifname)
local old_prefix=$(status get net_ipv6_prefix)
local prefix_iapd=$(echo "${old_prefix}"|awk -F/ '{print $1}')
local lan_net=$(ipv6_local_subnet ${prefix_iapd} 0)
local dmz_net=$(ipv6_local_subnet ${prefix_iapd} 1)

/etc/init.d/radvd stop

if [ "$(status get net_ipv6_status)" != "down" ]; then
logger -s -t "IPv6" -p local1.info "DHCP ANSWER [${REASON} ${old_prefix}]"
status set net_ipv6_status "down"
event notify "ipv6-down"
fi

# router
sysctl -w net.ipv6.conf.${net_ipv6_ifname}.accept_ra=0

ip -6 addr flush dev ${lan_ifname} scope global
ip -6 route del ${dmz_net} dev ${lan_ifname}
ip -6 route del default
ip6tables -D FORWARD -j LAN_FORWARD -o ${lan_ifname} -d ${lan_net}

status set net_ipv6_uptime ""
status set net_ipv6_ipaddr ""
status set net_ipv6_prefix ""
status set net_ipv6_dns ""
}

case "$REASON" in
"REQUEST")
dhcp6_setup
;;
"RENEW")
;;
"REBIND"|"RELEASE")
dhcp6_deconfig
;;
*)
exit 1
esac

exit 0
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 05:14:14
Plus d'infos:

La NB6v ne fait pas serveur DHCPv6. Coté LAN, elle ne fait que du RA (avec radvd).

Coté WAN elle a un client DHCPv6 et c'est comme ca qu'elle reçoit sa config IPv6.

A noter le "net.ipv6.conf.${net_ipv6_ifname}.accept_ra=2" (voir la doc la https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt (https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt) ):

"local forwarding" est activé sur la NB6v.
Donc la NB6v, avec accept_ra a 2, 'devrait' accepter et traiter les Router Advertisements si l'ERL en envoi (ca c'est confirmable avec une capture).

mon conseil:

mettre ton 'lan' (derrière l'ERL donc son eth0) en :2::/64 car :0::/64 et :1::/64 sont routés en dur dans la NB6 (lan et dmz).
mettre l'ERL WAN (son eth1) en :1::/64 s'il fait firewall v6 ou :0::/64 si tu preferes le firewall v6 de la NB6 .
le point a controler: que l'ERL envoi bien des RA sur eth1 comme quoi c'est lui le next hop pour :2::/64
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 03 juillet 2014 à 05:21:36
La NB6v ne fait pas serveur DHCPv6. Coté LAN, elle ne fait que du RA (avec radvd).

Je crois que tu te trompes : en plus des paquets ICMPv6 Router Advertisement, je reçois régulièrement des paquets DHCPv6 Solicit venant de ma box (depuis son adresse locale en fe80::xxxx:xxxx:xxxx:xxxx vers l'adresse multicast ff02::1:2, et elle renseigne son modèle et son firmware dans le champ « Vendor Class » donc difficile de douter que ça vient d'elle).
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 03 juillet 2014 à 05:46:36
En fait si, désolé, je crois que tu as raison... mais qu'elle envoie sa demande d'attribution d'IPv6 sur le WAN et sur le LAN (pour en obtenir une sur le WAN) ???

Pas très logique comme comportement.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 03 juillet 2014 à 06:10:56
En effet, Martin... jamais réussi à obtenir que wide-dhcp6 client fonctionne.
Pas de Stateful d'après rdisc6 :
Soliciting ff02::2 (ff02::2) on eth1...

Hop limit                 :           64 (      0x40)
Stateful address conf.    :           No
Stateful other conf.      :           No
Router preference         :       medium
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 Prefix                   : 2a02:abcd:ac:ab00::/64
  Valid time              :       604800 (0x00093a80) seconds
  Pref. time              :       604800 (0x00093a80) seconds
 MTU                      :         1453 bytes (valid)
 Source link-layer address: 24:xx:xx:xx:xx:xx
 from fe80::xxxx:xxx:xxxx:xxxx

Sinon, oui, un WAN (eth1) en autoconf (et ra=2) va bien recevoir des RA. Et pinger depuis l'ERL se passe bien dans ce cas. Mais j'imagine que le firewall de la NB6v n'apprécie pas les paquets venant de mes clients LAN... car là, au mieux j'arrive sur l'interface WAN, pas plus loin (ça ne revient pas, si je comprend bien).

Donc la suggestion de Kgersen me parait très intéressante: mettre l'ERL en subnet DMZ.
En revanche, en bon noob que je suis, je ne sais pas trop quoi faire ensuite. Je suis perdu avec ces histoires de subnet (ou alors, c'est parce qu'il est 6h du mat' et je ne suis pas encore couché...).
Si j'ai bien compris: SFR me donne un abcd:abcd:abcd:ab00::/56, ce qui me donne 256 subnets /64 que je peux égrener de abcd:abcd:abcd:ab00::/64 à abcd:abcd:abcd:abff::/64. J'ai bon?
D'après le post de Kgersen, On sait à présent qu'on en a 2 qui sont traités spécifiquement: l'un est Advertisé par radvd au sein de la NB6v et Firewallé, l'autre est planqué et en DMZ.
Mais... je ne vois pas très bien à quoi correspond les notations de Kgersen (":1::/64")...
Alors je tente ce qui suit: Je viens de mettre mon WAN en EUI64 abcd:abcd:abcd:ab01::/64 et mon LAN en EUI64 abcd:abcd:abcd:ab02::/64
C'est bien l'intention?
Et oui, mon LAN (eth0) a bien radvd qui tourne, les clients le voient, prenne leur addresse et leur GW (eth0) et récupèrent les DNS par RDNSS.

Bon, je poste ce message et je reboote l'ERL pour faire propre...
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 06:12:52
Oui les "DHCPv6 Solicit" sont émis par les clients DHCP pas les serveurs.
C'est le client DHCPv6 qui 'parle' sur le LAN donc.

DHCPv6 peut servir a 2 choses: distribué des addresses comme en V4 ou faire de la délégation de prefix.
Dans le cas de la NB6, le client DHCPv6 sert à faire de la délégation:

En regardant la config du client dhcpv6:
(/etc/init.d/dhcp6c)
#!/bin/sh /etc/rc.common

logger -t "dhcp6c[$$]" "$action"

config() {
local net_ipv6_ifname=$1
local lan_ifname=$2

echo "interface ${net_ipv6_ifname} {
        send ia-pd 0;
script \"/etc/dhcp/ipv6.script\";
};

id-assoc pd {
        prefix-interface ${lan_ifname} {
               sla-id 0;
               sla-len 8;
        };
};
" > /run/dhcp6c.conf
}

start() {
local net_ipv6_ifname=$(status get net_ipv6_ifname)
local lan_ifname=$(status get lan_ifname)
local vendorid="neufbox_$(cat /proc/productid)_$(cat /etc/efixo_release)"
test -d /etc/adsl && local vendorid="${vendorid}_$(status get version_dsldriver)"

config ${net_ipv6_ifname} ${lan_ifname}

[ "$(nvram get ipv6_debug)" = "on" ] && opd_D="-D"
exec dhcp6c -f -d ${opd_D} -V ${vendorid} -c /run/dhcp6c.conf ${net_ipv6_ifname} ${lan_ifname}

logger -t "dhcp6c[$$]" "start failed"
stop
exit 1
}

stop() {
test -e /run/dhcp6c.pid && pid=$(cat /run/dhcp6c.pid)
test -z ${pid} && return

kill ${pid}

# remove prefix::1/64 from lan_ifname
REASON=RELEASE /etc/dhcp/ipv6.script
}


id-assoc pd {
        prefix-interface ${lan_ifname} {
               sla-id 0;
               sla-len 8;
        };

on constate un "Prefix interface statement": ca permet d'attribué l'ip a l'interface en question (lan_ifname donc surement le lan de la nb6):
 sla-id: valeur attribué a cette interface dans le prefix donc 0 -> ::0:/64
 sla-len: longueur du prefix délégué a ce routeur: 64-8 = 56 donc c'est bien /56

Une bonne explication ici: http://manpages.ubuntu.com/manpages/hardy/man5/dhcp6c.conf.5.html (http://manpages.ubuntu.com/manpages/hardy/man5/dhcp6c.conf.5.html)

Le daemon est bien lancé sur les 2 interfaces:
exec dhcp6c -f -d ${opd_D} -V ${vendorid} -c /run/dhcp6c.conf ${net_ipv6_ifname} ${lan_ifname}
Pourquoi sur le coté lan aussi...

Tu peux dumper ici un des messages " DHCPv6 Solicit " en entier pour voir ce qu'il "solicite" ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 03 juillet 2014 à 06:20:31
Tu peux dumper ici un des messages " DHCPv6 Solicit " en entier pour voir ce qu'il "solicite" ?

Tu en as un dans ma capture du démarrage de la box (https://lafibre.info/images/wireshark/201401_sfr_neufbox6_demarrage.pcap) en fait, il suffit de taper le filtre « dhcpv6 » dans Wireshark pour l'isoler (ainsi que la réponse reçue du serveur de SFR).
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 06:21:13
Mais... je ne vois pas très bien à quoi correspond les notations de Kgersen (":1::/64")...
c'est les subnet du /56.

:0::/64 c'est le 1er subnet (celui firewallé par la box et advertisé).
:1::/64 le dmz
:2::/64 et les suivants jusqu'a 255 (ou FF) car un /56 te donne 256 subnet /64.

donc
Citer
Alors je tente ce qui suit: Je viens de mettre mon WAN en EUI64 abcd:abcd:abcd:ab01::/64 et mon LAN en EUI64 abcd:abcd:abcd:ab02::/64

C'est bien l'intention?
oui c'est ca.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 06:30:35
Tu en as un dans ma capture du démarrage de la box (https://lafibre.info/images/wireshark/201401_sfr_neufbox6_demarrage.pcap) en fait, il suffit de taper le filtre « dhcpv6 » dans Wireshark pour l'isoler (ainsi que la réponse reçue du serveur de SFR).

ah oui exact.

C'est donc bien du DHCPv6 pour faire de l'"Identity Association for Prefix Delegation".

Mais coté LAN c'est les mêmes Solicit ?

Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 03 juillet 2014 à 07:08:31
Mais coté LAN c'est les mêmes Solicit ?

Ah non en fait, je viens de remarquer que la partie « Identity Association for Prefix Delegation » n'est pas présent sur le LAN (à part ça tout semble être identique, mis à part l'option 8 « Elapsed time » qui est à 0xffff au lieu de 0x0000). De plus, il semble revenir à chaque fois que je redémarre la session DHCPv4 sur l'interface eth0 de mon PC. Cependant, il reste sans réponse. Ça doit être pour autre chose du coup.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 03 juillet 2014 à 07:15:01
Ce n'est pas les RAs du radvd de la NB6v que tu vois sur ton eth0?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 03 juillet 2014 à 07:27:00
Bon... WAN sur le subnet :1::/64 de mon prefix /56 et LAN sur le subnet :2::/64, je ping depuis l'ERL vers le Net.
Je ping depuis un client LAN sur l'interface WAN de mon ERL mais pas plus loin.
Impossible de pinguer le local link de la NB6v ("No route to host") depuis un Mac, ni son global link.
IPv6 forwarding actif, RA=2 sur le WAN, aucun firewall.

Des idées?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 03 juillet 2014 à 17:02:21
Ce n'est pas les RAs du radvd de la NB6v que tu vois sur ton eth0?

Je les vois oui, en plus du DHCPv6 (et je n'ai pas de NB6V mais une NB6, cependant il ne me semble pas qu'il y ait de différence à ce niveau-là).
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 03 juillet 2014 à 18:11:53
Bon... WAN sur le subnet :1::/64 de mon prefix /56 et LAN sur le subnet :2::/64, je ping depuis l'ERL vers le Net.
Je ping depuis un client LAN sur l'interface WAN de mon ERL mais pas plus loin.
Impossible de pinguer le local link de la NB6v ("No route to host") depuis un Mac, ni son global link.
IPv6 forwarding actif, RA=2 sur le WAN, aucun firewall.

Des idées?

Ne pas pinger le local link en dehors du segment local c'est normal.

il faudrait capturer les paquets entre la NB et l'ERL pour voir précisèment ce qu'il se passe.

Ca donne quoi un traceroute v6 depuis le Net (http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-traceroute.php) vers l'ip d'un client LAN ? (met l'ip complete de ton mac par exemple sans le /64 a la fin).

Remet la config complete de l'ERL ici.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 03 juillet 2014 à 20:37:23
Je posterai ma config un peu plus tard, je suis en train d'essayer 2-3 trucs.
Avec un comparse, on a pu atteindre des clients sur le LAN de l'ERL grace à des routes proxy dans tous les sens. Pas idéal. Et toujours pas de ping6 sur google.com depuis un client LAN. À croire qu'il y a un firewall qui se balade (mais iptables n'est pas démarrer).

Un des problèmes que je vois avec la NB6v: elle annonce son subnet :1::/64 qui est firewallé et planque son :2::/64 "en DMZ". Donc pour l'instant, je tente une conf manuelle, sur le subnet :2::/64 pour ne pas voir mes paquets passer par :1::/64. J'ai donc fixé mes adresses sur interfaces WAN (eth1) et LAN (eth0), en virant net.ipv6.conf.eth1.accept_ra=2 .
Reste à déterminer les routes qui fonctionnent.

Sur le LAN de NB6v, on voit quelques Sollicits DHCP6v et des NA/NS échangés. À ce niveau-là, tout parait normal. Il me semble.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: jewome62 le 03 juillet 2014 à 23:27:13
Si tu arrives à appliquer la config sur le EdgeRouter, il doit avoir moyen de le faire pour Linux,
si tu as des pistes ou infos je serai ravis de les tenter. Mais je suis pas fort en ipv6
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 04 juillet 2014 à 21:50:19
C'est sans doute plus facile à faire depuis un PC sous Linux que depuis l'ERL ;)

J'ai enfin déballé mon ERL et commencé a jouer avec. Je le trouve simple et efficace mais un peu 'lourd' niveau ligne de commande.
J'ai pu me faire un tunnel IPv6 avec HE (https://tunnelbroker.net/) en 10 minutes, ca marche bien mais c'est limité a 100M/100M coté HE (pour du gratuit c'est pas mal quand meme).
Etant toujours bloqué coté NB6v je vais en resté la pour le moment (je bloque sur un 'mismatch' L2TP/PPP en tentant de faire le tunnel depuis un poste Linux( Error Message: Tunnel auth failed for mismatch )).

Pour en revenir au probleme de yrousse, j'ai regardé rapidement la config qu'il a posté il y a quelque temps et je ne vois pas de RA (router_advert) coté WAN (eth1) donc dans tout les cas la NB6v ne recevra rien par RA. Le seul chose qui peut arriver est un Redirect venant de l'ERL suite a un NS (Neighbor Solicitation) venant de la NB6. Mais ca c'est uniquement si la NB6v fait un NS quand elle cherche a joindre une IP qui n'est pas dans :0::/64 (lan) ou :1::64 (dmz). Il faudrait connaitre la table de routage de la NB6v pour voir (peut quelqu'un a un NB6v 'open' peut-il nous aider la).
Dans ce cas peut-etre qu'en mettant la dmz (:1::64) derriere l'ERL ca pourrai marché car la NB6v a une route static vers son LAN (donc l'ERL) pour la dmz:

(wan) NB6v (lan)--- subnet :0::/64 --- (wan)ERL(lan) --- subnet :1::/64 --- X

NB6 doit envoyé un paquet a X (une ip de la dmz donc). Sa route local dit d'envoyé ca sur sa patte lan. il balance une ND pour faire ca. l'ERL voit le NS, constate que pour joindre X ca doit passé a travers lui donc envoi un Redirect a NB6v en mettant son propre linklocal comme next hop.

Plus généralement, je ne suis pas "convaincu" qu'on puisse utilisé RA/RD et IPv6 Neighbour Discovery en général pour faire du 'routage'. En pratique je n'ai jamais fait car on a la main sur les routeurs donc soit on met des routes statiques soit on active un protocole de routage (RIPng, ospf). Maintenant je n'ai pas poussé a fond ma pratique sur RA/RD car on ne s'en sert que pour configurer des hôtes pas des routeurs.
A mon sens il manque dans l'interface web de la NB6v une fonctionnalité pour ajouter des routes IPv6.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 04 juillet 2014 à 23:34:49
Etant toujours bloqué coté NB6v je vais en resté la pour le moment (je bloque sur un 'mismatch' L2TP/PPP en tentant de faire le tunnel depuis un poste Linux( Error Message: Tunnel auth failed for mismatch )).

Plutôt que de se limiter au message d'erreur, tu dois bien pouvoir repérer la différence au niveau de l'envoi des données par rapport à la Neufbox avec Wireshark ?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 05 juillet 2014 à 00:07:51
Plutôt que de se limiter au message d'erreur, tu dois bien pouvoir repérer la différence au niveau de l'envoi des données par rapport à la Neufbox avec Wireshark ?

oui mais j'ai rien vu de probant a par les trucs 'dynamiques' comme les n° tunnels et les hash des challenge CHAP.

Faut dire aussi que j'ai mis un peu de coté cette recherche depuis que j'ai déballé mon ERL et mis en place un tunnel avec HE.

Apres je suis plus tenté par 'open' ma NB6v que continuer a essayer de faire marcher le tunnel depuis un poste Linux car si c'est juste le LNS a changé par exemple il faudra bien que ma NB6v soit open si SFR ne bouge pas de son coté.

La question est "y'a t'il un risque vis a vis de SFR de reflasher ma NB6v en open"? La procédure parait simple et réversible donc c'est très tentant. Je vais quand meme attendre lundi au cas ou je me retrouve avec une 'brique' tout le week-end. ;D

Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 05 juillet 2014 à 00:27:46
Quelques news mais rien de décisif...

[3615MaVie]
En fait, j'ai fait tellement d'essais...   :)
La nuit dernière, c'étaient 3 sessions SSH simultanées pour faire les modifs et du tcpdump. Plus un wireshark sur une machine directement sur le LAN de la NB6v. ;) Il y a 2 semaines, j'ignorais vraiment tout d'IPv6... Et ma première install d'un Wireshark était... hier.
Un gros kiffage en cours...  ::)
[/3615MaVie]

Rappel: WAN = eth1, LAN = eth0
(Je vais tenté d'être didactique ici, ça aidera peut-être les débutants comme moi et vous permettra de me corriger sur mes erreurs)

Donc ce soir, j'ai dans /etc/sysctl.conf :
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.proxy_ndp=1
net.ipv6.conf.all.proxy_ndp=1
net.ipv6.conf.eth1.accept_ra=2
Pas d'autoconf ici, ni via le CLI (dont les scripts veulent voir un Disable forwarding également sur l'interface), car je veux la main sur l'interface de mon WAN et surtout sur son subnet (pour contrer le radvd qui tourne sur le LAN de la NB6v). Donc ici, j'accepte les Router Advertisement (=2) car mon interface est un Host qui doit prendre de l'info de son routeur (la NB6v). Pour que mon hôte reste un routeur, on précise Forwarding à 1.
Enfin, les flags pour le NDP proxy sont là pour une raison évoquée plus loin.
À noter que certains flags ici ont déjà la bonne valeur par défaut mais Linux fait un peu ce qu'il veut et c'est bien peu documenté (ou complexe selon l'angle de vue), je suis donc ici en réglages explicites. En revanche, j'ai lu quelque part que ne pas céder à l'autoconfiguration désactivait d'autres petites choses, les redirects? À surveiller... Mais quand on lit parfois qu'il est bon d'avoir le firewall activé pour que certaines choses fonctionnent mieux... Une corde, s'il-vous-plait... ;)

En fonction des infos de Kgersen, je souhaite être dans le subnet DMZisé de mon préfixe 2a02:dead:be:af01::/56, qui n'est pas broadcasté et qui se trouve sur :1::/64. Ayant des difficultés à lire le script publié (ben oui, autant être nul partout...), je pars donc sur ce qui suit :
ethernet eth1 {
     address dhcp
     description WAN
     duplex auto
     firewall {
         in {
             ipv6-name WAN6_IN
             name WAN_IN
         }
         local {
             ipv6-name WAN6_LOCAL
             name WAN_LOCAL
         }
     }
     ipv6 {
         address {
             eui64 2a02:dead:be:af01::/64
         }
         dup-addr-detect-transmits 1
     }
     speed auto
 }
Avec eui64, l'adresse résultante est basée sur ma MAC address, toujours dans mon subnet.

J'ai également mis mon interface LAN, qui porte mon radvd, dans un subnet différent :
ethernet eth0 {
     address 192.168.2.254/24
     description LAN
     duplex auto
     ipv6 {
         address {
             eui64 2a02:dead:be:af02::/64
         }
         dup-addr-detect-transmits 1
         router-advert {
             cur-hop-limit 64
             default-preference high
             link-mtu 0
             managed-flag false
             max-interval 600
             other-config-flag false
             prefix ::/64 {
                 autonomous-flag true
                 on-link-flag true
                 valid-lifetime 2592000
             }
             reachable-time 0
             retrans-timer 0
             send-advert true
         }
     }
     speed auto
 }
Ici, on est en autoconfiguration pour les clients LAN. RàS de ce coté-là, à priori.
À noter que j'avais mis un
set interfaces ethernet eth0 ipv6 router-advert radvd-options 'RDNSS 2620:0:ccc::2 2620:0:ccd::2 { };'Mais cela semble superflu, l'ERL semble faire son boulot avec :
name-server 208.67.222.222
 name-server 208.67.220.220
 name-server 2620:0:ccc::2
 name-server 2620:0:ccd::2

Donc ici, les NS/NA ICMP6 passent bien, dans les 2 sens, entre mon interface WAN et le LAN de la NB6v.

En partant de là, je crois que tout devrait bien se passer... Sauf que non...
ping6 ipv6.google.com montrent bien les requêtes et les responses ICMP6 sur l'interface WAN. Mais la même chose depuis un client LAN ne montrera que les requètes.
(Avec mon firewall ou pas. J'ai ICMP6 autorisé sur tout pour le moment)

Je n'ai pas la capture wireshark sur le LAN de la NB6v devant les yeux là (plus une grosse flemme), mais on y voit aussi les requêtes ICMP6 continuer à se diriger vers la sortie, ainsi que les réponses revenir mais avec un Destination unreachable doté pourtant d'une adresse comportant le bon prefix (2a02:dead:be:af02::/64).
Donc, en l'état, sur le lien de la NB6v/mon WAN, "personne" ne sait trouver mon LAN et donc mes clients.

Ma table de routage (modifiée) :
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
::1/128                        ::                         U    256 0     0 lo
2a02:dead:be:af00::/64         ::                         UAe  256 0     1 eth1
2a02:dead:be:af01::/64         ::                         U    256 0     0 eth1
2a02:dead:be:af02::/64         ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 eth1
::/0                           fe80::_local-link_de_la_NB6v   UGDAe 1024 2     0 eth1
::/0                           ::                         !n   -1  1 23150 lo
::1/128                        ::                         Un   0   1     0 lo
2a02:dead:be:af01::/128        ::                         Un   0   1     0 lo
2a02:dead:be:af01:_MAC_eth1_/128 ::                         Un   0   1  4171 lo
2a02:dead:be:af02::/128        ::                         Un   0   1     0 lo
2a02:dead:be:af02:_MAC_eth0_/128 ::                         Un   0   1     0 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::/128                     ::                         Un   0   1     0 lo
fe80::_MAC_eth0_/128   ::                         Un   0   1  1253 lo
fe80::_MAC_eth1_/128   ::                         Un   0   1  1730 lo
ff00::/8                       ::                         U    256 0     0 eth0
ff00::/8                       ::                         U    256 0     0 eth1
::/0                           ::                         !n   -1  1 23150 lo

Donc pour revenir sur le NDP proxy, possible que ce soit une solution, envisageable si on peut éviter les saisies manuelles, d'autant que les produits Apple de mon réseau jouent de l'adresse Global temporaire... Il faudrait donc un ndppd (NDP Proxy Deamon), sauf que pour EdgeOS, y'a pas (celui de Goretsoft est down et le prometteur ndppd6 est à compiler sur MIPS, tester, etc. Je me refuse à aller si loin. Et "même si", c'est une solution "crade".

Pistes à creuser préférentiellement (pour moi) :
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 05 juillet 2014 à 00:36:05
oui mais j'ai rien vu de probant a par les trucs 'dynamiques' comme les n° tunnels et les hash des challenge CHAP.

Si tu parles bien de l'authentification PPP, peut-être que tu ne dois justement pas utiliser CHAP, mais transmettre le mot de passe en clair avec PAP, comme le fait la box ?

Pour moi, la logique, après avoir reversé une application web ou un logiciel, quand je veux reproduire son comportement sur le réseau et que ça ne fonctionne pas, c'est d'essayer d'avoir un comportement de plus en plus proche de l'original jusqu'à que ça fonctionne... en l'occurrence, il faudrait que tu compares bien les captures avec Wireshark pour voir où sont les grosses différences déjà.

Si tu ne parles pas de l'authentification PPP mais de l'authentification L2TP (qui se fait avant l'authentification PPP donc), alors je te rappelle que si les identifiants PPP sont ceux que tu as vu dans ta capture, les identifiants L2TP sont 6pe/6pe dans tous les cas, et eux sont transmis hashés.

Le contenu du fichier /etc/xl2tpd/l2tp-secrets sur la box :

* 6pe 6pe
La question est "y'a t'il un risque vis a vis de SFR de reflasher ma NB6v en open"? La procédure parait simple et réversible donc c'est très tentant. Je vais quand meme attendre lundi au cas ou je me retrouve avec une 'brique' tout le week-end. ;D

La procédure de flash n'est pas spécialement risquée à ma connaissance, sachant que tu as une image de rescue en cas de problème.

Il est plutôt difficile de briquer une Neufbox involontairement sur le plan logiciel, le pire des cas doit être d'écraser une partie de la mémoire flash qui contient des informations critiques, mais ça ne devrait pas arriver tant tu ne fais pas n'importe quoi avec dd ou bien un utilitaire non-documenté lié à la manipulation de la nvram.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 05 juillet 2014 à 00:40:42
La 1ere l’authentification se fait bien (j'ai 6pe et le bon hostname).
ca coince après et avant la 2eme authentification (celle en ppp avec le long mot de passe).
je reviendrais sur ca si j''open' pas ma box lundi.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 07 juillet 2014 à 16:53:57
Quelqu'un avec un NB6v "open", pourrait-il me dire si parmi les routes IPv6, on a quelque chose d'équivalent à :

ipv6 route abcd:beef:ac:dc00::/56 abcd:beef:ac:dc00::1/64

Please...?
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: Marin le 07 juillet 2014 à 17:11:00
Sur ma Neufbox 6 (la gestion de l'IPv6 a l'air d'être tout à fait similaire sur les deux modèles) :

root@nb6:~# ip -6 route show
2a00:5e80:xxx:xx00::/64 dev lan0  proto kernel  metric 256  mtu 1453 advmss 1393 hoplimit 0
2a00:5e80:xxx:xx01::/64 dev lan0  metric 1024  mtu 1453 advmss 1393 hoplimit 0
fe80::/64 dev lan0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev wan0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev ppp1  proto kernel  metric 256  mtu 1450 advmss 1390 hoplimit 0
fe80::/10 dev ppp1  metric 1  mtu 1450 advmss 1390 hoplimit 0
fe80::/10 dev ppp1  proto kernel  metric 256  mtu 1450 advmss 1390 hoplimit 0
default dev ppp1  metric 1024  mtu 1450 advmss 1390 hoplimit 0
default via fe80::xxxx:xxff:fexx:xx00 dev ppp1  proto kernel  metric 1024  expires 0sec mtu 1450 advmss 1390 hoplimit 64
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 07 juillet 2014 à 17:36:25
Merci beaucoup, Marin.

Ça confirme le code rapporté par Kgersen et son analyse.
Donc pas de route /56 et on a un onlink flag true sur son radvd...  >:(
Sans NDP Proxy pour l'ERL, ça sent le no-go cette histoire d'IPv6 avec la box SFR en intermédiaire...
J'ai comme l'impression que je vais me concentrer sur le sujet dédié au bypass complet:
https://lafibre.info/sfr-tutoriels/bypasser-la-neufbox-avec-un-routeur-ubiquiti-edgemax/ (https://lafibre.info/sfr-tutoriels/bypasser-la-neufbox-avec-un-routeur-ubiquiti-edgemax/)

Ou bien, box en open et on modifie les paramètres de routage mais je ne vois pas trop la "beauté" de la chose versus un bypass total.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: kgersen le 08 juillet 2014 à 02:35:49
J'ai finalement 'open' ma NB6v mais sans succès concernant IPv6.

Un truc à tester éventuellement serait d'essayer de reproduire la setup IPv6 de ton côté, sur ton PC (la session L2TP s'établissant au-dessus de la connexion IPv4 publique), en faisant varier la configuration, par exemple en faisant commencer ton identifiant par « ppp/ » comme c'est le cas en ADSL et non « dhcp/ », et également en enlevant 4 au dernier octet de l'adresse MAC transmise dans l'identifiant, pour voir ce que ça donne.

Tu pourrais aussi essayer de te connecter sur un LNS différent, par exemple moi je suis sur 109.6.1.72 et non 109.6.4.36.


J'ai editer "/etc/init.d/ppp6ol2tp" dans la box et fait tout sorte d'essais : différentes variations du mot de passe et différents LNS. rien ne passe. J'ai bien activé le debug de xl2tpd. Ca rejete toujours au PAP du tunnel PPP.
Ca sert donc plus a rien d'insister je pense. Faut atteindre le bon vouloir de SFR. Je vais quand meme tenté de les recontacter demain.
Titre: SFR IPv6 sur NB6v / Edgerouter
Posté par: yrousse le 08 juillet 2014 à 19:23:58
Oui, tant que ta ligne n'est pas effectivement activée en IPv6...
En revanche, l'expérience acquise avec tes essais seront bénéfiques pour le sujet
https://lafibre.info/sfr-tutoriels/bypasser-la-neufbox-avec-un-routeur-ubiquiti-edgemax/ (https://lafibre.info/sfr-tutoriels/bypasser-la-neufbox-avec-un-routeur-ubiquiti-edgemax/)
Dans le cadre d'un bypass donc...

Pour ce fil (ERL derrière la NB6v), franchement, j'ai laissé tomber. Vu comment IPv6 est servi par le LAN de la box... Sans NDP Proxy, je ne vois pas comment on peut faire maintenant que j'ai bien fait le tour de la chose.

D'ailleurs, je vais de ce pas poster sur le sujet du bypass...  ;)