Discussion:
OPNsense krijgt geen ipv6 PD
(te oud om op te antwoorden)
oneman
2016-07-06 22:21:49 UTC
Permalink
HI,


Ik had vroeger een m0n0wall router direct aan mijn FTU hangen en kreeg
daarmee netjes een ipv6 met dhcp6-pd. Na een verhuizing en overstap
naar OPNsense 16.1.18-amd64 lukt dat echter niet meer. Ik krijg een
werkende ipv4 / PPPoE, maar geen werkende ipv6.

Ik heb de howto in
http://blog.firewallonline.nl/how-to-en-tutorials/xs4all-pfsense-opnsense-ipv6/
gevolgd maar dan werkt het nog steeds niet.

Ik krijg geen prefix of ipv6 op de WAN en geen ipv6 op de LAN. Ik krijg
wel een vreemd, maar pingbare ipv6 gateway: fe80::2a0:a50f:fc78:5530

Het valt mij op dat ik in de log zie dat er geen default route wordt
aangemaakt voor ipv6 omdat de gateway 'not on the network' zou zijn:

opnsense: /usr/local/etc/rc.newwanipv6: The command '/sbin/route delete
-inet6 'default' 'fe80::2a0:a50f:fc78:5530%pppoe1'' returned exit code
'1', the output was 'route: writing to routing socket: No such process
delete net default: gateway fe80::2a0:a50f:fc78:5530%pppoe1 fib 0: not
in table'
kernel: IPv6 address: "fe80:b::2a0:a50f:fc78:5530" is not on the network
opnsense: /usr/local/etc/rc.newwanipv6: ROUTING: setting IPv4 default
route to 194.109.5.175
opnsense: /usr/local/etc/rc.newwanipv6: rc.newwanipv6: on (IP address:
fe80::20d:b9ff:fe41:e490) (interface: wan) (real interface: pppoe1).

Vermoedelijk komt dit omdat er geen routing vanaf en naar mijn router
wordt opgezet voor ipv6.

Ik ben een beetje lost. Ik heb al veel geexperimenteerd en weet niet
echt hoe ik nu verder moet.

Het enige wat nog vermeldenswaard is: ik heb een verbinding via
powerline connectors tussen de FTU in de meterkast en de router. In het
verleden moest ik daarvoor de MTU verlagen naar 1435. Maar dat helpt nu
ook niet meer.

Iemand een hint?

oneman
Rob
2016-07-07 07:49:56 UTC
Permalink
Post by oneman
Iemand een hint?
Niet zo veel in een keer veranderen.
Stapje voor stapje van de oude situatie naar de nieuwe.

Je bent verhuisd. Hang nu eerst de oude router direct aan je nieuwe
aansluiting. Werkt dat?

Ja, wissel dan je router om. Werkt het dan nog?

Ja, ga dan die power dingen ertussen zetten (slecht, maar goed...).
Werkt het dan nog?

Zo kom je er tenminste achter waar het probleem zit ipv 3 dingen
tegelijk te gaan debuggen.
oneman
2016-07-07 20:43:04 UTC
Permalink
Post by Rob
Post by oneman
Iemand een hint?
Niet zo veel in een keer veranderen.
Stapje voor stapje van de oude situatie naar de nieuwe.
Je hebt helemaal gelijk, maar dat heb ik ook (grotendeels) gedaan. Had
ik misschien moeten vermelden.
Post by Rob
Je bent verhuisd. Hang nu eerst de oude router direct aan je nieuwe
aansluiting. Werkt dat?
Ja, dat werkte, ook met de Fritzbox werkte het.
Post by Rob
Ja, wissel dan je router om. Werkt het dan nog?
Dan niet meer.
Post by Rob
Ja, ga dan die power dingen ertussen zetten (slecht, maar goed...).
Werkt het dan nog?
Helaas zijn die dingen nog even nodig. (ik moet nog een betonboor huren
om een gat in mijn plafond te boren... dat gaat gebeuren.) Ik ga in
iedergeval even de router direct op de FTU aansluiten om te zien of het
dan wel werkt.
Post by Rob
Zo kom je er tenminste achter waar het probleem zit ipv 3 dingen
tegelijk te gaan debuggen.
Miquel van Smoorenburg
2016-07-07 10:18:44 UTC
Permalink
Post by oneman
Ik krijg geen prefix of ipv6 op de WAN en geen ipv6 op de LAN. Ik krijg
wel een vreemd, maar pingbare ipv6 gateway: fe80::2a0:a50f:fc78:5530
Da's geen vreemde gateway, da's een link-local adres. Volledig
correct dat dat de gateway is.
Post by oneman
Het valt mij op dat ik in de log zie dat er geen default route wordt
opnsense: /usr/local/etc/rc.newwanipv6: The command '/sbin/route delete
-inet6 'default' 'fe80::2a0:a50f:fc78:5530%pppoe1'' returned exit code
'1', the output was 'route: writing to routing socket: No such process
delete net default: gateway fe80::2a0:a50f:fc78:5530%pppoe1 fib 0: not
in table'
Let wel, daar staat niet dat het niet lukt om een route aan te
maken, er staat dat het mislukt is om een route te deleten.
Post by oneman
kernel: IPv6 address: "fe80:b::2a0:a50f:fc78:5530" is not on the network
Geen idee waar dit vandaan komt, maar dit is inderdaad een
Post by oneman
Vermoedelijk komt dit omdat er geen routing vanaf en naar mijn router
wordt opgezet voor ipv6.
Jawel, maar dat moet jouw router doen, niet xs4all.

- WAN heeft geen global IPv6 adres, alleen link-local (fe80::iets/64)
- xs4all adverteert een link-local default gateway via RA (fe80::iets)
- vervolgens moet jouw router een global prefix aanvragen
via DHCPv6 Prefix Delegation (IA_PD)
- jouw router moet een /64 uit die global prefix op zn LAN
interface configureren.

Mike.
oneman
2016-07-07 21:49:40 UTC
Permalink
Post by Miquel van Smoorenburg
Post by oneman
Ik krijg geen prefix of ipv6 op de WAN en geen ipv6 op de LAN. Ik krijg
wel een vreemd, maar pingbare ipv6 gateway: fe80::2a0:a50f:fc78:5530
Da's geen vreemde gateway, da's een link-local adres. Volledig
correct dat dat de gateway is.
OK, dan is dat alvast in orde
Post by Miquel van Smoorenburg
Post by oneman
Het valt mij op dat ik in de log zie dat er geen default route wordt
opnsense: /usr/local/etc/rc.newwanipv6: The command '/sbin/route delete
-inet6 'default' 'fe80::2a0:a50f:fc78:5530%pppoe1'' returned exit code
'1', the output was 'route: writing to routing socket: No such process
delete net default: gateway fe80::2a0:a50f:fc78:5530%pppoe1 fib 0: not
in table'
Let wel, daar staat niet dat het niet lukt om een route aan te
maken, er staat dat het mislukt is om een route te deleten.
Post by oneman
kernel: IPv6 address: "fe80:b::2a0:a50f:fc78:5530" is not on the network
Geen idee waar dit vandaan komt, maar dit is inderdaad een
Scherp opgemerkt, die ene 'b' had ik niet gezien. Ik heb echt geen idee
waar die ip dan vandaan komt.
Post by Miquel van Smoorenburg
Post by oneman
Vermoedelijk komt dit omdat er geen routing vanaf en naar mijn router
wordt opgezet voor ipv6.
Jawel, maar dat moet jouw router doen, niet xs4all.
- WAN heeft geen global IPv6 adres, alleen link-local (fe80::iets/64)
- xs4all adverteert een link-local default gateway via RA (fe80::iets)
- vervolgens moet jouw router een global prefix aanvragen
via DHCPv6 Prefix Delegation (IA_PD)
- jouw router moet een /64 uit die global prefix op zn LAN
interface configureren.
Ah, juist. Dan is alles in orde op mijn WAN voor wat betreft de locale
ipv6 en gateway ipv6.

Het probleem zit 'm dan in het ontbreken van de prefix delegation. Ik
krijg geen op PD gebaseerde IP op de LAN ook al staat deze wel
ingesteld op PD en vraag ik een /48 prefix aan op de WAN

Kan het zijn dat de huidige MTU van 1492 nog van invloed is? Kan de PD
daar over struikelen?

Verder begrijp ik iets niet van de routering. Ik kan namelijk vanaf de
router wel de gateway pingen, maar niet de xs4all DNS server ipv6 of
ping.xs4all. Het lijkt of er aan de xs4all kant ook iets ontbreekt. Als
het inderdaad het link local adres van de gateway is, dan zou je
verwachten dat deze netjes mijn ping routeerd als die ping vanaf de WAN
nic komt met een ipv6 link local adres?
Post by Miquel van Smoorenburg
Mike.
Miquel van Smoorenburg
2016-07-08 07:31:36 UTC
Permalink
Post by oneman
Post by Miquel van Smoorenburg
- WAN heeft geen global IPv6 adres, alleen link-local (fe80::iets/64)
- xs4all adverteert een link-local default gateway via RA (fe80::iets)
- vervolgens moet jouw router een global prefix aanvragen
via DHCPv6 Prefix Delegation (IA_PD)
- jouw router moet een /64 uit die global prefix op zn LAN
interface configureren.
Ah, juist. Dan is alles in orde op mijn WAN voor wat betreft de locale
ipv6 en gateway ipv6.
Het probleem zit 'm dan in het ontbreken van de prefix delegation. Ik
krijg geen op PD gebaseerde IP op de LAN ook al staat deze wel
ingesteld op PD en vraag ik een /48 prefix aan op de WAN
Kan het zijn dat de huidige MTU van 1492 nog van invloed is? Kan de PD
daar over struikelen?
DHCP PD kijkt niet naar MTU ofzo. Kijk eens met tcpdump op
je uitgaande interface. Of wireshark, dat is meer uitgebreid.
Dan kan je zien of je router probeert een PD aan te vragen,
en wat voor antwoord daarop komt.

Als je wireshark niet rechtstreeks op je router kan draaien kan
je een raw dump maken en die op een machine waar je wireshark
kan draaien bekijken. Iets als tcpdump -i pppoe1 -s 4000 -w pppoe1.pcap .
Post by oneman
Verder begrijp ik iets niet van de routering. Ik kan namelijk vanaf de
router wel de gateway pingen, maar niet de xs4all DNS server ipv6 of
ping.xs4all. Het lijkt of er aan de xs4all kant ook iets ontbreekt. Als
het inderdaad het link local adres van de gateway is, dan zou je
verwachten dat deze netjes mijn ping routeerd als die ping vanaf de WAN
nic komt met een ipv6 link local adres?
Je komt vanaf een link-local adres, en de naam zegt
het al: dat adres werkt alleen op die ene link. Je kan geen
adressen bereiken die niet op die zelfde link zitten.

Al zou je een ping naar buiten kunnen sturen, dan nog zou je
nooit antwoord kunnen krijgen; hetgene dat jij pingt kan geen
antwoord sturen, want link-local adressen bestaan niet op
het global internet.

Link-local adressen zijn ook niet uniek. Als je meerdere interfaces
hebt op een apparaat, kunnen ze allemaal in dezelfde /64 zitten,
maar dat adres geldt dan alleen op die specifieke interface.
Als je iets pingt moet je ook specifiek de interface opgeven:

# werkt niet
$ ping6 fe80::3617:ebff:fea5:3a7a
connect: Invalid argument

# werkt wel
$ ping6 fe80::3617:ebff:fea5:3a7a%em1
PING fe80::3617:ebff:fea5:3a7a%em1(fe80::3617:ebff:fea5:3a7a) 56 data bytes
64 bytes from fe80::3617:ebff:fea5:3a7a: icmp_seq=1 ttl=64 time=0.556 ms

Mike.
oneman
2016-07-11 19:20:46 UTC
Permalink
Post by Miquel van Smoorenburg
Post by oneman
Post by Miquel van Smoorenburg
- WAN heeft geen global IPv6 adres, alleen link-local (fe80::iets/64)
- xs4all adverteert een link-local default gateway via RA (fe80::iets)
- vervolgens moet jouw router een global prefix aanvragen
via DHCPv6 Prefix Delegation (IA_PD)
- jouw router moet een /64 uit die global prefix op zn LAN
interface configureren.
Ah, juist. Dan is alles in orde op mijn WAN voor wat betreft de locale
ipv6 en gateway ipv6.
Het probleem zit 'm dan in het ontbreken van de prefix delegation. Ik
krijg geen op PD gebaseerde IP op de LAN ook al staat deze wel
ingesteld op PD en vraag ik een /48 prefix aan op de WAN
Kan het zijn dat de huidige MTU van 1492 nog van invloed is? Kan de PD
daar over struikelen?
DHCP PD kijkt niet naar MTU ofzo. Kijk eens met tcpdump op
je uitgaande interface. Of wireshark, dat is meer uitgebreid.
Dan kan je zien of je router probeert een PD aan te vragen,
en wat voor antwoord daarop komt.
Als je wireshark niet rechtstreeks op je router kan draaien kan
je een raw dump maken en die op een machine waar je wireshark
kan draaien bekijken. Iets als tcpdump -i pppoe1 -s 4000 -w pppoe1.pcap .
Post by oneman
Verder begrijp ik iets niet van de routering. Ik kan namelijk vanaf de
router wel de gateway pingen, maar niet de xs4all DNS server ipv6 of
ping.xs4all. Het lijkt of er aan de xs4all kant ook iets ontbreekt. Als
het inderdaad het link local adres van de gateway is, dan zou je
verwachten dat deze netjes mijn ping routeerd als die ping vanaf de WAN
nic komt met een ipv6 link local adres?
Je komt vanaf een link-local adres, en de naam zegt
het al: dat adres werkt alleen op die ene link. Je kan geen
adressen bereiken die niet op die zelfde link zitten.
Al zou je een ping naar buiten kunnen sturen, dan nog zou je
nooit antwoord kunnen krijgen; hetgene dat jij pingt kan geen
antwoord sturen, want link-local adressen bestaan niet op
het global internet.
Link-local adressen zijn ook niet uniek. Als je meerdere interfaces
hebt op een apparaat, kunnen ze allemaal in dezelfde /64 zitten,
maar dat adres geldt dan alleen op die specifieke interface.
# werkt niet
$ ping6 fe80::3617:ebff:fea5:3a7a
connect: Invalid argument
# werkt wel
$ ping6 fe80::3617:ebff:fea5:3a7a%em1
PING fe80::3617:ebff:fea5:3a7a%em1(fe80::3617:ebff:fea5:3a7a) 56 data bytes
64 bytes from fe80::3617:ebff:fea5:3a7a: icmp_seq=1 ttl=64 time=0.556 ms
Mike.
Ik heb een tcp dump gemaakt op de onderliggende igb1_vlan6 interface,
dan zie ik dat de ppp verbinding opgezet wordt, maar ik zie geen enkel
dhcpv6 verkeer daarna. Geen idee waar dan die ipv6 gateway vandaan komt
die ik wel op de WAN terug zie. Maar er wordt dus geen PD aangevraagd.

De ipv6 gateway komt misschien toch ook uit de ppp setup, ik zie
namelijk zowel 'PPP IPCP' verkeer als 'PPP IPV6CP' verkeer.

Maar goed, in iedergeval vindt er geen dhcp verkeer plaats en dus geen
PD request. Ik heb nog geen idee waarom niet, daar ga ik nu verder in
duiken.

Bedankt zover.
Miquel van Smoorenburg
2016-07-11 20:02:01 UTC
Permalink
Post by oneman
Ik heb een tcp dump gemaakt op de onderliggende igb1_vlan6 interface,
dan zie ik dat de ppp verbinding opgezet wordt, maar ik zie geen enkel
dhcpv6 verkeer daarna. Geen idee waar dan die ipv6 gateway vandaan komt
die ik wel op de WAN terug zie.
De gateway komt niet via DHCP, maar via een icmp route-advertisement.
Je moet even vergeten hoe het werkt met IPv4 DHCP, het uitdelen
van netwerk, gateway, en adressen werkt met DHCPv6 anders. Het is
verdeeld tussen Route-Advertisements ("RA") voor netwerk en
gateway, en daadwerkelijk IP adres dat met DHCPv6 wordt uitgedeeld.
Of helemaal geen IPv6 adres, maar een range (IA-NA vs IA-PD).
Post by oneman
Maar er wordt dus geen PD aangevraagd.
De ipv6 gateway komt misschien toch ook uit de ppp setup, ik zie
namelijk zowel 'PPP IPCP' verkeer als 'PPP IPV6CP' verkeer.
Ook dat is anders met IPv4 en IPv6, IPV6CP is om een unieke
identifier voor link-local adressing te onderhandelen, zodat
er een link-local fe80::/64 adres op de link kan opgezet
worden, waar RA en DHCPv6 over kan.
Post by oneman
Maar goed, in iedergeval vindt er geen dhcp verkeer plaats en dus geen
PD request. Ik heb nog geen idee waarom niet, daar ga ik nu verder in
duiken.
Succes :)

Mike.
oneman
2016-07-12 21:18:13 UTC
Permalink
Post by Miquel van Smoorenburg
Post by oneman
Ik heb een tcp dump gemaakt op de onderliggende igb1_vlan6 interface,
dan zie ik dat de ppp verbinding opgezet wordt, maar ik zie geen enkel
dhcpv6 verkeer daarna. Geen idee waar dan die ipv6 gateway vandaan komt
die ik wel op de WAN terug zie.
De gateway komt niet via DHCP, maar via een icmp route-advertisement.
Je moet even vergeten hoe het werkt met IPv4 DHCP, het uitdelen
van netwerk, gateway, en adressen werkt met DHCPv6 anders. Het is
verdeeld tussen Route-Advertisements ("RA") voor netwerk en
gateway, en daadwerkelijk IP adres dat met DHCPv6 wordt uitgedeeld.
Of helemaal geen IPv6 adres, maar een range (IA-NA vs IA-PD).
Post by oneman
Maar er wordt dus geen PD aangevraagd.
De ipv6 gateway komt misschien toch ook uit de ppp setup, ik zie
namelijk zowel 'PPP IPCP' verkeer als 'PPP IPV6CP' verkeer.
Ook dat is anders met IPv4 en IPv6, IPV6CP is om een unieke
identifier voor link-local adressing te onderhandelen, zodat
er een link-local fe80::/64 adres op de link kan opgezet
worden, waar RA en DHCPv6 over kan.
Post by oneman
Maar goed, in iedergeval vindt er geen dhcp verkeer plaats en dus geen
PD request. Ik heb nog geen idee waarom niet, daar ga ik nu verder in
duiken.
Succes :)
Mike.
Ik weet nog niet waarom er geen dhcpv6-pd request plaats vind, maar ik
zie wel iets anders raars in de tcpdump


Ik zie af en toe een unsolicited RA van de gateway
20880 385.669647 fe80::2a0:a50f:fc78:5530 ff02::1
ICMPv6 68 Router Advertisement

Verder voordurende NS packets, echter zonder de bijbehorende RA aan het
adres van de WAN:
20867 384.716472 fe80::20d:b9ff:fe41:e490 fe80::2a0:a50f:fc78:5530
ICMPv6 68 Neighbor Solicitation for fe80::2a0:a50f:fc78:5530

Waarom reageerd de gateway niet op deze NS packets? Dat zou normaliter
toch wel moeten?
Miquel van Smoorenburg
2016-07-12 21:38:18 UTC
Permalink
Post by oneman
Ik weet nog niet waarom er geen dhcpv6-pd request plaats vind, maar ik
zie wel iets anders raars in de tcpdump
Ik zie af en toe een unsolicited RA van de gateway
20880 385.669647 fe80::2a0:a50f:fc78:5530 ff02::1
ICMPv6 68 Router Advertisement
Dat kan ja, dat zal om de zoveel tijd plaatsvinden.
Post by oneman
Verder voordurende NS packets, echter zonder de bijbehorende RA aan het
20867 384.716472 fe80::20d:b9ff:fe41:e490 fe80::2a0:a50f:fc78:5530
ICMPv6 68 Neighbor Solicitation for fe80::2a0:a50f:fc78:5530
Waarom reageerd de gateway niet op deze NS packets? Dat zou normaliter
toch wel moeten?
Ik weet niet of dat moet, en eerlijk gezegd weet ik ook niet of
de routers aan de xs4all kant dat wel of niet doen.

Echter, het is geen ethernet, maar een PPP interface. Daarop hoor je
helemaal geen Neighbor Sollicitations te sturen. Er zitten maar
2 machines op de PPP link, jouw machine, en de router, en de
link-local adressen zijn in de PPP onderhandeling al vastgesteld.
Beide kanten *weten het al*. Dan alsnog Neighbor Discovery gaan
doen is Erg Vreemd.

Mike.
Philip Homburg
2016-07-12 22:18:31 UTC
Permalink
Post by Miquel van Smoorenburg
Echter, het is geen ethernet, maar een PPP interface. Daarop hoor je
helemaal geen Neighbor Sollicitations te sturen. Er zitten maar
2 machines op de PPP link, jouw machine, en de router, en de
link-local adressen zijn in de PPP onderhandeling al vastgesteld.
Beide kanten *weten het al*. Dan alsnog Neighbor Discovery gaan
doen is Erg Vreemd.
Er zijn mensen binnen de IETF die denken dat je op iedere link
duplicate address detection kan doen. Wat natuurlijk alleen werkt als
neighbor discovery werkt.

Maar mijn ervaring is dat op point-to-point links in het algemeen
ND niet werkt. Maar er is voor zover ik weet geen enkele RFC waarin staat dat
je dat niet hoeft te doen. Het is gewoon dat niemand het implementeert.
--
We just programmed the computers to revive us when it was all over... they
were index linked to the [...] stock market prices you see, so that we'd
be revived when everybody else had rebuilt the economy enough to be able to
afford our rather expensive services again. -- Slartibartfast in THHGTTG
oneman
2016-07-17 11:30:55 UTC
Permalink
Post by oneman
Post by Miquel van Smoorenburg
Post by oneman
Ik heb een tcp dump gemaakt op de onderliggende igb1_vlan6 interface,
dan zie ik dat de ppp verbinding opgezet wordt, maar ik zie geen enkel
dhcpv6 verkeer daarna. Geen idee waar dan die ipv6 gateway vandaan komt
die ik wel op de WAN terug zie.
De gateway komt niet via DHCP, maar via een icmp route-advertisement.
Je moet even vergeten hoe het werkt met IPv4 DHCP, het uitdelen
van netwerk, gateway, en adressen werkt met DHCPv6 anders. Het is
verdeeld tussen Route-Advertisements ("RA") voor netwerk en
gateway, en daadwerkelijk IP adres dat met DHCPv6 wordt uitgedeeld.
Of helemaal geen IPv6 adres, maar een range (IA-NA vs IA-PD).
Post by oneman
Maar er wordt dus geen PD aangevraagd.
De ipv6 gateway komt misschien toch ook uit de ppp setup, ik zie
namelijk zowel 'PPP IPCP' verkeer als 'PPP IPV6CP' verkeer.
Ook dat is anders met IPv4 en IPv6, IPV6CP is om een unieke
identifier voor link-local adressing te onderhandelen, zodat
er een link-local fe80::/64 adres op de link kan opgezet
worden, waar RA en DHCPv6 over kan.
Post by oneman
Maar goed, in iedergeval vindt er geen dhcp verkeer plaats en dus geen
PD request. Ik heb nog geen idee waarom niet, daar ga ik nu verder in
duiken.
Succes :)
Mike.
Ik weet nog niet waarom er geen dhcpv6-pd request plaats vind, maar ik
zie wel iets anders raars in de tcpdump
Ik zie af en toe een unsolicited RA van de gateway
20880 385.669647 fe80::2a0:a50f:fc78:5530 ff02::1
ICMPv6 68 Router Advertisement
Verder voordurende NS packets, echter zonder de bijbehorende RA aan het
20867 384.716472 fe80::20d:b9ff:fe41:e490 fe80::2a0:a50f:fc78:5530
ICMPv6 68 Neighbor Solicitation for fe80::2a0:a50f:fc78:5530
Waarom reageerd de gateway niet op deze NS packets? Dat zou normaliter
toch wel moeten?
Uiteindelijk bleek het een 'bug' te zijn in opnsense, waardoor dhcp6c
niet wordt gestart. Zou opgelost moeten zijn in een volgende versie,
voor nu moet ik dhcp6c handmatig starten na een reboot van de router.
Kan ik voor nu even mee leven.

Loading...