Linux router ipv6 configuratie

Hi,

Ik kan wel wat hulp gebruiken bij het configureren van ipv6 op mijn linux router. Doel van deze post is om wat basis dingen duidelijk te krijgen. Ik wil proberen mijn distro erbuiten te laten zodat anderen er wellicht ook nog wat aan hebben.

Laat ik voorop stellen dat ipv4 prima werkt. Ik heb een aantal vlans aangemaakt voor guest, iot en trusted networks. En een vlan wan met vlanid 6.
Mijn ppp config ziet er zo uit:

          plugin pppoe.so wan

          name "fake@freedom.nl"
          password "1234"

          persist
          maxfail 0
          holdoff 5

          mtu 1500
          noipdefault
          defaultroute

Ik zie in enkele voorbeelden dat ik voor ipv6 de regel +ipv6 ipv6cp-use-ipaddr toe moet voegen, dat heb ik gedaan.

Ik heb ook gelezen dat ik van ppp geen ipv6 prefix zal krijgen. Daarvoor moet ik een dhcp request doen. Mijn dhcpcd config ziet er alsvolgt uit:

        # don't touch our DNS settings
        nohook resolv.conf

        # generate a RFC 4361 complient DHCP ID
        duid

        # We don't want to expose our hw addr from the router to the internet,
        # so we generate a RFC7217 address.
        slaac private

        # we only want to handle IPv6 with dhcpcd, the IPv4 is still done
        # through pppd daemon
        noipv6rs
        ipv6only

        # settings for the interface
        interface ppp0
          ipv6rs              # router advertisement solicitaion
          iaid 1              # interface association ID
          ia_pd 1 wan         # request a PD and assign to interface

Ik wist niet of ik in dat laatste blokje de juiste interfaces heb gebruikt. Dus een request doen op ppp0 en de prefix assignen aan de wan interface. Ik snap niet zo goed waar dat voor dient. Ik zie wel dat ik op dit moment nog geen default route voor ipv6 heb. Ik kan op dit moment ook niet pingen naar ipv6 addresses.

Ik zie in de log wel dat ik een prefix heb gekregen, dus ik vermoed dat de request op ppp0 doen wel correct is:

Oct 23 09:49:02 rt01 systemd[1]: Starting DHCP Client...
Oct 23 09:49:02 rt01 dhcpcd[5894]: dhcpcd-10.0.6 starting
Oct 23 09:49:02 rt01 dhcpcd[5897]: dev: loaded udev
Oct 23 09:49:02 rt01 dhcpcd[5897]: DUID 00:01:00:01:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Oct 23 09:49:02 rt01 dhcpcd[5897]: ppp0: IAID 00:00:00:01
Oct 23 09:49:02 rt01 dhcpcd[5897]: ppp0: rebinding prior DHCPv6 lease
Oct 23 09:49:02 rt01 dhcpcd[5897]: wan: activating for delegation
Oct 23 09:49:02 rt01 dhcpcd[5897]: wan: IAID ff:00:00:06
Oct 23 09:49:03 rt01 dhcpcd[5897]: ppp0: soliciting an IPv6 router
Oct 23 09:49:12 rt01 dhcpcd[5897]: ppp0: failed to rebind prior DHCPv6 delegation
Oct 23 09:49:12 rt01 dhcpcd[5897]: ppp0: failed to rebind prior DHCPv6 delegation
Oct 23 09:49:14 rt01 dhcpcd[5897]: ppp0: ADV 2a10:37xx:xxxx::/48 from fe80::8a90:xxxx:fexx:xxx
Oct 23 09:49:14 rt01 dhcpcd[5897]: ppp0: REPLY6 received from fe80::8a90:xxxx:xxxx:xxxx
Oct 23 09:49:14 rt01 dhcpcd[5897]: ppp0: renew in 43200, rebind in 69120, expire in 86400 seconds
Oct 23 09:49:14 rt01 dhcpcd[5897]: lo: adding reject route to 2a10:xxxx:xxxx::/48
Oct 23 09:49:14 rt01 dhcpcd[5897]: ppp0: delegated prefix 2a10:xxxx:xxxx::/48
Oct 23 09:49:14 rt01 dhcpcd[5897]: wan: adding address 2a10:xxxx:xxxx:8::1/64
Oct 23 09:49:14 rt01 dhcpcd[5897]: wan: adding route to 2a10:xxxx:xxxx:8::/64
Oct 23 09:49:15 rt01 dhcpcd[5897]: ppp0: no IPv6 Routers available
Oct 23 09:49:32 rt01 dhcpcd[5897]: timed out
Oct 23 09:49:32 rt01 dhcpcd[5897]: timed out
Oct 23 09:49:32 rt01 systemd[1]: Started DHCP Client.

Als ik met de hand deze route aanmaak kan ik wel pingen naar internet:

sudo ip -6 route add default dev ppp0

Mijn eerste doel is om de linux machine die ik als router gebruik in ieder geval connected te hebben met ipv6 internet, ook na een reboot.
Mijn eerste vraag: Heb ik mijn ipv6 goed geconfigureerd of zitten er fouten in mijn config?

Zodra mijn router ipv6 internet kan bereiken wil ik mijn guest vlan van ipv6 voorzien. Ik heb forwarding aangezet met net.ipv6.conf.all.forwarding.
Mijn firewall rules voor forwarding zijn gedefinieerd voor inet, dus ik verwacht dat ze voor zowel ipv4 als ipv6 werken.

Ik gebruik corerad om prefixes te assignen aan vlans en de client in die vlans te voorzien van een public ipv6 address. Dat lijkt te werken. De router advertisement geeft de clients een local link als router address, ik had gelezen dat dat de bedoeling is bij ipv6.

Zou ik op dit punt de ipv6 interface op mijn router moeten kunnen pingen? Want dat werkt niet. Dat verbaast me eigenlijk want ik zou de local link sowieso moeten kunnen pingen toch?

Dit zijn nogal wat vragen. Ik hoop dat dit thread een beetje overzichtelijk is en mij en anderen een beetje verder kan helpen. Alvast bedankt allemaal!

Ik weet niet of ik het helemaal begrijp, maar

Zou ik op dit punt de ipv6 interface op mijn router moeten kunnen pingen?

Ja.
Al weet ik niet welk adres je wil gebruiken. Als dat dat fe80:: adres is moet je waarschijnlijk wel de interface gebruiken zodat de client weet hoe je router te bereiken.

Ja, dat werkt ook niet. Daar kan ik mee beginnen want dat zou gewoon moeten werken.

Je vraagt de prefix delegation aan voor een intern netwerk…:
bv:

interface ppp0
        ipv6only
        noipv4
        ipv6
        ia_pd 1 lo

waarbij: prefix:1::1/64 wordt toegekend aan lo.

En wat doe ik dan met mijn lan en guest vlans? Zet ik die ook in dat rijtje? En heeft corerad dan een andere functie? Die moet SLAAC aanbieden op die vlans.

Dat kun je naar eigen inzicht verder opdelen, hetzij SLAAC dan wel DHCPv6.
In het geval van SLAAC mogelijk meer entries on de ppp0 dhcpcd aanvraag
Dus niet alleen lo maar ook andere interfaces voorzien van een verlenge prefix.
Je hebt wel de Routing advertising daemon nodig. (radvd)

Ik heb zelf statisch togewezen adressen addressen op VLAN’s + DHCPv6.