• AiutoFTTH
  • [Risolto] - IPv6 OPNsense - A volte non si configura correttamente

PF-Matteo Mmm... potrebbe essere una soluzione anche se mi piacerebbe capire come mai fa così...

Oltretutto il gateway IPv6 ha un indirizzo diverso ad ogni riavvio della PPPoE, quindi sarebbe anche interessante capire come fare ad assegnarlo via script...

Oltretutto non succede su ogni riavvio.... mi sembra che capiti quando la PPPoE va giù e sta giù per un po' (non so però quantificare esattamente il tempo). Quando poi torna su prende solo gateway IPv4.

Ora, che sta funzionando, se anche riavvio OPNsense ritorna su tutto correttamente...🤔

    Matwolf il gateway non cambia mai, se tu lo vedi cambiare nellaa cpe, presumo ci sia qualche bug

    • Matwolf ha risposto a questo messaggio

      PF-Matteo Ecco cosa vedo come gateway delle ultime connessioni:

      fe80::f0:1a%pppoe1

      fe80::f0:51%pppoe1

      fe80::f1:ba2a%pppoe1

      fe80::f0:1a2d%pppoe1

      La parte importante è sicuramente %pppoe1, ma non ho capito il link local address come lo calcola o chi glielo manda. Forse funziona con qualsiasi indirizzo fe80::%pppoe1?

      • MN00AA ha risposto a questo messaggio

        In effetti ho provato a mettere come gateway, manuale, fe80::1%pppoe1 e funziona ugualmente.

        Probabilmente perché è una interfaccia point-to-point

        Niente, anche con il gateway fissato manualmente, ho riprovato poco fa a fare un altro restart della PPoE (dopo circa 3 ore di uptime) e, pur rimanendo configurato il gateway di default, il traffico IPv6 non funzionava.
        Ho restartato ancora la PPPoE e si è rimesso ad andare.

        Direi quindi che la mancata configurazione automatica del gateway IPv6 fosse un sintomo e non la causa del problema.

        • MN00AA ha risposto a questo messaggio

          Matwolf cmq quello non e' il gateway ma il link-local lato tuo... La PPPoE e' un "tunnel layer3" con una sola destinazione, e BSD per motivi legacy fa specificare le rotte "senza gateway" (come quelle appunto delle PPPoE) usando come gateway "fittizio" un IP locale dell'interfaccia... Completamente contro intuitivo secondo me, ma questo e' 😅

          In teoria sempre per lo stesso motivo (che l'indirizzo del gateway e' fittizio) ti dovrebbe bastar specificare qualunque IPv6, basta che ci sia l'interfaccia corretta specificata (che e' quella che conta alla fine in questo caso non essendoci interrogazioni NDP/ARP da fare in layer2 per avere il MAC, come su Ethernet "liscio").

          Matwolf hai modo di vedere con tcpdump dall'altra parte se i pacchetti arrivano? Per capire se il problema e' che i pacchetti smettono di uscire, oppure che smettono di entrarti le "risposte"... Considerando che IPv6 non e' banale come IPv4 dove vengono scambiati gli indirizzi, routati eventuali aggiuntivi e amen, in IPv6 serve gestire la danza sghemba di DHCPv6-PD che e' una bella rogna (almeno dal punto di vista implementativo a livello di protocollo)...

          • Matwolf ha risposto a questo messaggio

            MN00AA cmq quello non e' il gateway ma il link-local lato tuo... La PPPoE e' un "tunnel layer3" con una sola destinazione, e BSD per motivi legacy fa specificare le rotte "senza gateway" (come quelle appunto delle PPPoE) usando come gateway "fittizio" un IP locale dell'interfaccia... Completamente contro intuitivo secondo me, ma questo e' 😅

            Nono, ti assicuro che quelli erano i gateway che mi assegnava automaticamente OPNsense quando si connetteva la PPPoE. Il mio link-local sull'interfaccia PPPoE è diverso. Ma comunque sì, ho verificato anche io che basta impostare qualsiasi link-local come gateway e funziona ugualmente.

            MN00AA hai modo di vedere con tcpdump dall'altra parte se i pacchetti arrivano? Per capire se il problema e' che i pacchetti smettono di uscire, oppure che smettono di entrarti le "risposte"...

            Appena mi ritrovo nella situazione di IPv6 "rotto" ci provo

            • MN00AA ha risposto a questo messaggio

              Matwolf Nono, ti assicuro che quelli erano i gateway che mi assegnava automaticamente OPNsense quando si connetteva la PPPoE. Il mio link-local sull'interfaccia PPPoE è diverso.

              Strano, in teoria l'indirizzo con il f0 che viene negoziato in IPV6CP di PPP indica l'indirizzo da usare lato locale (lato remoto visto dal BRAS)... E non dovrebbe usare un IPv6 link-local autogenerato come sopra insomma... Boh vai a capire >.<

              Matwolf Appena mi ritrovo nella situazione di IPv6 "rotto" ci provo

              Eh perche' potrebbe pure essere che "scade" qualcosa lato DHCPv6-PD, un po' come per i lease DHCPv4 delle IPoE, e quindi smetta di funzionare per questo...

              Ho io lo stesso problema (penso) con un dva5592. Metto tutto in DHCP e creo manualmente la rotta statica mettendo un ip link local e come interfaccia la ppoe.

              Funziona per un po' ma per caso dopo scopro che non funziona più(non so quindi da quanto tempo ha smesso di funzionare). In quei casi sono costretto a disattivare totalmente ipv6 sul DVA e riattivarlo. È come se scadesse un lease che però non viene rinnovato e quindi non funziona più niente.

              Se provo a settare tutto statico (prefisso e rotta) invece non funziona per niente.

              Boh.

              PF assegna gli indirizzi IPv6 in modalità Provider Delegation, ed in genere sull'interfaccia PPPoE non assegna un IP address di tipo Global ma usa i Link Local dell'interfaccia in quanto essendo essenzialmente una Punto-Punto che non deve essere raggiungibile dall'esterno non ha senso metterci un indirizzo Global.

              Ora, un interfaccia fisica di tipo ethernet si auto-configura l'indirizzo link-local senza problemi usando EUI-64, un interfaccia logica come una Dialer (PPP per capirci) non può in quanto non ha un mac-address di partenza per auto configurarsi, quindi l'indirizzo "link-local" o viene impostato staticamente a priori oppure viene auto generato ogni volta che l'interfaccia si avvia, probabilmente è per questo motivo che su OPNSense lo vedi cambiare di volta in volta.

              Sul fatto che non ti venga assegnata la /52 IPv6 al partire della sessione PPPoE mi fa pensare a problemi di dhcpv6 client, in genere è quest'ultimo che richiede la delega al provider per la classe IPv6.

              Hai confrontato la tua configurazione con quella suggerita da PF per PFSense?

                Fabio Bizzi l'indirizzo "link-local" o viene impostato staticamente a priori oppure viene auto generato ogni volta che l'interfaccia si avvia, probabilmente è per questo motivo che su OPNSense lo vedi cambiare di volta in volta.

                In realtà il link local assegnato alla PPPoE è sempre quello. E' quello del gateway che cambia ogni volta, ma abbiamo già appurato che ha un'importanza relativa, perché funziona ugualmente mettendo come gateway un link local scelto a caso manualmente e statico.

                Fabio Bizzi Sul fatto che non ti venga assegnata la /52 IPv6 al partire della sessione PPPoE mi fa pensare a problemi di dhcpv6 client, in genere è quest'ultimo che richiede la delega al provider per la classe IPv6.

                Hai confrontato la tua configurazione con quella suggerita da PF per PFSense?

                La configurazione rispecchia quella della guida di pfSense, infatti 9 volte su 10 funziona.

                Ora tengo monitorata la situazione e, la prossima volta che mi troverò IPv6 non funzionante a seguito di un riavvio di PPPoE proverò a fare qualche tcpdump, vediamo se si nota qualcosa di utile.

                  Matwolf Più che un TCPdump io snifferei il traffico a livello2, tipo con wireshark in mezzo, oppure snifferei direttamente da OPNsense (Packet Capture sull'interfaccia PPPoE), sarebbe interessante vedere i messaggi di ICMPv6/DHCPv6.

                    Fabio Bizzi oppure snifferei direttamente da OPNsense (Packet Capture sull'interfaccia PPPoE), sarebbe interessante vedere i messaggi di ICMPv6/DHCPv6.

                    sìsì, intendevo tcpdump direttamente su OPNsense. L'unica cosa è che credo sia complicato sniffare i primissimi pacchetti inviati sulla PPPoE (quindi gli scambi DHCPv6) perché l'interfaccia viene rimossa se va giù la sessione PPPoE... dovrei essere molto veloce a far partire il capture appena ricompare... 🤔

                      Matwolf Potresti sniffare direttamente sull'interfaccia ethernet dove poi vai ad appoggiare il PPPoE, penso che WireShark poi sia in grado di "spacchettare" il PPP e presentarti in chiaro i protocolli trasportati. Puoi sempre fare una prova "online" per verificarlo. ;)

                      Confermo che impostando il capture sull'intrefaccia "fisica" usata da PPPoE si vedono tutti i pacchetti di interesse.
                      Ora aspetto qualche giorno (ho notato che il lease del prefix è di 72 ore), per vedere se si ripresenta il problema e poi vi aggiorno.

                      Grazie

                        Matwolf occhio che su Linux ci sono dei casi particolari (accelerazione/offloading...) in cui facendo tcpdump sulle interfacce sottostanti si vede traffico solo in una delle direzioni... Non so se su BSD ci possa essere lo stesso problemino 😅

                        Io uso opnsense ma non ho mai notato problemi di questo genere l'ipv6 funziona correttamente sulle riconessioni.

                        7 giorni dopo

                        Tra i vari tentativi sono riuscito a riprodurre il caso di mancata configurazione del default gateway mentre avevo una sessione di packetcapture attiva!

                        Ancora non sono riuscito a capire da cosa deriva, infatti non è ripetibile purtroppo....

                        Comunque ho fatto "disconnetti" dalla PPPoE, aspettato qualche secondo, poi di nuovo "Connetti".

                        PPPoE tornata online, da interfaccia web tutto ok (il gateway era visibile) ma facendo un netstat -r da ssh era evidente che in realtà non c'era nessuna default route ipv6 configurata...

                        A quel punto ho cambiato manualmente il gateway da interfaccia, inserendo un IP link local a caso ed ecco che la route di default è stata configurata ed è tornato tutto a funzionare.

                        A quel punto, anche rimettendolo in automatico, tornava tutto ok e la route veniva riaggiornata....

                        Adesso, ovviamente, se ripeto il giochino questo non succede più... è davvero sporadico (oppure "a lunga scadenza")

                        Non so, non capisco cosa possa essere... a questo punto comincio a pensare che sia proprio un bug di OPNsense...

                        Ad ogni modo ho i pacchetti salvati per eventuali analisi...

                          Matwolf se lo fa solo ogni tanto è molto probabile sia qualche bug. È l' ultima release quella che hai installato?

                          • Matwolf ha risposto a questo messaggio

                            PF-Matteo È l' ultima release quella che hai installato?

                            Sì, è aggiornato all'ultima release disponibile