Skip to main content

Hallo,

M’n experiabox geeft de aangesloten apparaten een ipv6 adres, dat gaat goed op de edgerouter maar ook op een laptop die ik direct in de experiabox prik. Het probleem wat ik heb is dat ik geen ipv6 adressen krijg op apparaten achter m’n edgerouter. Ik denk dat het mis gaat omdat ik de prefixes niet goed instel, maar ik weet niet wat die moeten of kunnen zijn. Het lukt niet met of zonder ipv6-dmz.

M’n experiabox meldt een WAN Prefix en een Assigned prefix:

Wan Prefix: 2A02:A450:XXXX::/64

Assigned Prefix: 2A02:A450:XXXX:1::/64

Het (hopelijk) relevante deel uit config.boot (firewall gelijk aan die van wjb uit het eigen router ipv experiabox topic, afdeling edgerouter x zonder telefonie) is dit:

interfaces {
ethernet eth0 {
address 192.168.2.250/24
description KPN
dhcpv6-pd {
pd 0 {
interface switch0 {
host-address ::1
prefix-id :1
service slaac
}
prefix-length /48
}
rapid-commit enable
}
duplex auto
firewall {
in {
ipv6-name WANv6_IN
name WAN_IN
}
local {
ipv6-name WANv6_LOCAL
name WAN_LOCAL
}
}
ipv6 {
address {
autoconf
}
dup-addr-detect-transmits 1
}
speed auto
}
ethernet eth1 {
description Local1
duplex auto
speed auto
}
ethernet eth2 {
description Local2
duplex auto
speed auto
}
ethernet eth3 {
description Local3
duplex auto
speed auto
}
ethernet eth4 {
description Local4
duplex auto
speed auto
}
loopback lo {
}
switch switch0 {
address 192.168.113.249/24
description "Thuis netwerk"
ipv6 {
dup-addr-detect-transmits 1
router-advert {
cur-hop-limit 64
link-mtu 0
managed-flag false
max-interval 600
name-server 2a02:a47f:e000::53
name-server 2a02:a47f:e000::54
other-config-flag false
prefix ::/64 {
autonomous-flag true
on-link-flag true
valid-lifetime 2592000
}
radvd-options "RDNSS 2a02:a47f:e000::53 2a02:a47f:e000::54 {};"
reachable-time 0
retrans-timer 0
send-advert true
}
}
mtu 1500
switch-port {
interface eth1 {
}
interface eth2 {
}
interface eth3 {
}
interface eth4 {
}
vlan-aware disable
}
}
}

Ik heb verschillende combinaties geprobeerd van de prefix-length uit dhcpv6-pd{ } en prefix uit router-advert { }, maar de switch0 en de achterliggende apparaten krijgen geen ipv6 adres. De file /var/log/dhcp6c.log meldt in bovenstaand geval:

Mar/28/2021 23:28:14: client6_recvadvert: advertise contains NoAddrsAvail status

misschien is dat een hint..

Hopelijk kan iemand de vinger op de zere plek leggen.

alvast bedankt,

Gerben

Maar als m’n experiabox wel een ipv6 adres (door)geeft aan m’n ER-X, kan die dan niet op een of andere transparante manier andere adressen ook doorgeven aan de apparaten erachter?

Nee, dat zal niet gaan.

Wellicht dat je de DHCPv6 prefix delegation uit kunt zetten en handmatig een IPv6/56 adres op switch0 kunt definiëren. Ik heb daar geen ervaring mee maar niet geschiten is altijd mis.


Voor zover mijn kennis rijkt, zijn dit twee verschillende dingen: DHCPv6 kan een adres opvragen, precies zoals DHCPv4, en DHCPv6 kan een prefix opvragen. De Experiabox reserveert dan een subset van het /48 netwerk, in mijn geval een /56, en zet een route voor deze /56 naar de vragende router. De Edge is dan verder verantwoordelijk voor dit /56 netwerk. Als de V10A Experiabox prefix delegatie niet ondersteunt, dan zou het kunnen dat de complete /48 op LAN/Wifi zit, en dan zou ieder willekeurig IPv6 adres binnen de 2a02.AAAA.BBBB::/48 met internet verbonden moeten zijn (bij de V10 is dat niet zo!!), of alleen 2a02.AAAA.BBBB.1::/64 is beschikbaar. Dan wordt het handwerk om te splitsen in /80 subnetten, indien nodig. Automatische adres configuratie (SLAAC) is dan niet mogelijk, de Edge moet dan als DHCPv6 server werken. 

 

 


In de gui van EdgeOS heb ik ‘m een vast adres gegeven:

dashboard → switch0 → actions → config → +Add IP → Manually define → <zelfde als eth0 maar dan eindigend op :ffff:1/64 >

Meteen kreeg m’n werkstation ook een global ipv6 adres (meer in de lijn van 2a02:a450:aaaa:1:<4x random>:/64), dus dat is mooi

Ik kan nu vanaf m’n werkstation de ER-X op z’n switch0 pingen maar niet diens eth0 en ook niet verder naar buiten. Maar ik heb wel het idee dat het de goede kant op gaat! Wellicht m’n routering nog niet goed? ->

admin@edgerouterx:~$ ip -6 ro
2a02:a450:aaaa:1::/64 dev eth0 proto kernel metric 256 expires 259099sec pref medium
2a02:a450:aaaa:1::/64 dev switch0 proto kernel metric 256 pref medium
fe80::/64 dev itf0 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth2 proto kernel metric 256 linkdown pref medium
fe80::/64 dev eth3 proto kernel metric 256 linkdown pref medium
fe80::/64 dev eth4 proto kernel metric 256 linkdown pref medium
fe80::/64 dev switch0 proto kernel metric 256 pref medium
default via fe80::7add:12ff:fe82:882c dev eth0 proto ra metric 1024 expires 799sec hoplimit 64 pref medium

 


Een ping6 vanaf m’n werkstation naar ipv6.google.com geeft qua tcpdump op de ER-X dit weer, op diens eth0 (dus het gaat wel op een of andere manier door m’n ER-X heen):

(werkstation) → )(switch0) - ERX - (eth0)] - (ExpBv10A) → ipv6.google.com

root@edgerouterx:~# tcpdump -i eth0 icmp6

16:58:04.942636 IP6 2a02-a450-(mijn werkstation).fixed6.kpn.net > ams16s21-in-x0e.1e100.net: ICMP6, echo request, seq 8, length 64
16:58:05.931132 IP6 mijnmodem.kpn > ff02::1:ff9e:e4a7: ICMP6, neighbor solicitation, who has 2a02-a450-(mijn werkstation).fixed6.kpn.net, length 32

M’n ERX kan ipv6.google.com zelf wel pingen.

 

 

 


Eth0 en switch0 liggen in hetzelfde subnet, dat geeft ellende. Metric is ook gelijk, dus moet een pakket nu linksaf of rechtsaf????  Ik weet niet goed hoe dit op te lossen, want ik ken de V10a niet. Een router zou “Neighbour Discovery” moeten doen, hij roept op LAN en Wifi “Wie heeft dit IPv6 adres” en krijgt dan het bijbehorende MAC adres retour. Dan houdt in dat clients achter een tweede router onzichtbaar zijn.  Als de V10a het hele /48 subnet op de LAN zet zou het mogelijk een ander verhaal zijn. Ik hoop dat er nog iemand tips heeft….

 


Sorry, ik zag het laatste bericht te laat. Het modem  zoekt dus het werkstation en kan het niet vinden omdat het achter de ERX zit… Voor Linux zijn er “proxy ndp” services ontwikkeld, waar de tweede router zijn eigen MAC adres opstuurt namens alles wat erachter hangt, “Proxy NDP”, maar ik weet niet of de ERX dit kent. Behalve datgene wat je voor IPv6 juist niet wilt, NAT, zou ik niet weten hoe dit op te lossen. Dat opsplitsen in /80 netwerken, wat ik eerder schreef, helpt ook niet omdat in het modem zelf geen routes gezet kunnen worden. 

 

 


Succes! Dank @wjb voor het meedenken maar vooral @hmmsjan_2 voor de tip over ndppd! Ik heb die gedownload, ge-cross-compiled voor m’n ER-X en geinstalleerd (via https://www.reddit.com/r/Ubiquiti/comments/gehazp/how_to_ipv6_on_edgerouter_x_and_probably_others/ ) en nu kan m’n werkstation ipv6 adressen pingen.

In het kort:

Op m'n ubuntu werkstation:

# cd /tmp
# apt-get install g++-mipsel-linux-gnu make
# git clone https://github.com/ikucuze/ndppd.git
# cd ndppd
# make CROSSCOMPILE=1 all
# scp -p ndppd ndppd-init-debian-jessi admin@edgerouterx:/tmp/
# ssh admin@edgerouterx
# sudo -i
# mv /tmp/ndppd /usr/sbin/
# mv /tmp/ndppd-init-debian-jessi /etc/init.d/ndppd

Maak /etc/ndppd.conf:

--------
proxy eth0 {
autowire yes
rule ::/0 {
iface switch0
}
}

proxy switch0 {
autowire yes
router yes
rule ::/0 {
iface eth0
}
}

-------

edit /etc/init.d/ndppd en zet deze regels:
DEAMON=/usr/sbin/ndppd
DEAMON_ARGS="-c /etc/ndppd.conf -d -p $PIDFILE"

Dan starten:

/etc/init.d/ndppd start

Om het automatisch te starten kun je 'm nog kopieren of verplaatsen:

cp -av /etc/init.d/ndppd /config/scripts/post-config.d/

 

https://test-ipv6.com zegt readiness score: 10/10 :-)


Mooi! Ik had dit verhaal ook gezien, maar dacht dat dit wel erg ingewikkeld wordt en met software uit vreemde bronnen moet je ook altijd oppassen, maar u bent een kenner, zie ik.

Misschien nog een keer het Ubuntu station aan de LAN van de Experia box hangen en

“dhclient -6 -P -v -i <interface>”  om te checken of prefix delegatie echt niet werkt op de 10a, maar het lijkt van niet… 

 


Mooi! Ik had dit verhaal ook gezien, maar dacht dat dit wel erg ingewikkeld wordt en met software uit vreemde bronnen moet je ook altijd oppassen, maar u bent een kenner, zie ik.

Misschien nog een keer het Ubuntu station aan de LAN van de Experia box hangen en

“dhclient -6 -P -v -i <interface>”  om te checken of prefix delegatie echt niet werkt op de 10a, maar het lijkt van niet…

Dit is de output van een pi die direct aan de experiabox v10a hangt:

root@pi7:~# dhclient -6 -P -v -i eth0
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on Socket/eth0
Sending on Socket/eth0
Created duid "\000\001\000\001('\342\316\270'\353u\345\351".
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT: X-- IA_PD eb:75:e5:e9
XMT: | X-- Request renew in +3600
XMT: | X-- Request rebind in +5400
XMT: Solicit on eth0, interval 1010ms.
RCV: Advertise message on eth0 from fe80::7add:12ff:fe82:882c.
RCV: X-- Server ID: 00:03:00:01:78:dd:12:82:88:2c
PRC: Lease failed to satisfy.

 


Beste Gerben, 

Ziet er niet goed uit voor de V10a. Fedora 34  en de V10 via Wifi:

 

Internet Systems Consortium DHCP Client 4.4.2b1
Copyright 2004-2019 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on Socket/wlp0s19f2u1
Sending on   Socket/wlp0s19f2u1
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT:  X-- IA_PD 74:80:d5:5d
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on wlp0s19f2u1, interval 1060ms.
RCV: Advertise message on wlp0s19f2u1 from fe80::b2ac:d2ff:fe57:410e.
RCV:  X-- Preference 7.
RCV:  X-- IA_PD 74:80:d5:5d
RCV:  | X-- starts 1620424431
RCV:  | X-- t1 - renew  +57750
RCV:  | X-- t2 - rebind +92400
RCV:  | X-- Options]
RCV:  | | X-- IAPREFIX 2a02:0000:1111💯:/56
RCV:  | | | X-- Preferred lifetime 115500.
RCV:  | | | X-- Max lifetime 201900.
RCV:  X-- Server ID: 00:03:00:06:b0🇦🇨d2:57:41:0e
RCV:  Advertisement recorded.
PRC: Selecting best advertised lease.
PRC: Considering best lease.
PRC:  X-- Initial candidate 00:03:00:06:b0🇦🇨d2:57:41:0e (s: 10104, p: 7).
XMT: Forming Request, 0 ms elapsed.
XMT:  X-- IA_PD 74:80:d5:5d
XMT:  | X-- Requested renew  +3600
XMT:  | X-- Requested rebind +5400
XMT:  | | X-- IAPREFIX 2a02:0000:1111💯:/56
XMT:  | | | X-- Preferred lifetime +7200
XMT:  | | | X-- Max lifetime +7500
XMT:  V IA_PD appended.
XMT: Request on wlp0s19f2u1, interval 1000ms.
RCV: Reply message on wlp0s19f2u1 from fe80::b2ac:d2ff:fe57:410e.
RCV:  X-- IA_PD 74:80:d5:5d
RCV:  | X-- starts 1620424432

RCV:  | X-- t1 - renew  +57750
RCV:  | X-- t2 - rebind +92400
RCV:  | X-- 2Options]
RCV:  | | X-- IAPREFIX 2a02:0000:1111💯:/56
RCV:  | | | X-- Preferred lifetime 115500.

 

RCV:  | | | X-- Max lifetime 201900.
RCV:  X-- Server ID: 00:03:00:06:b0🇦🇨d2:57:41:0e
PRC: Bound to lease 00:03:00:06:b0🇦🇨d2:57:41:0e.
Prefix BOUND6 old= new=2a02:0000:1111💯:/56


Een van de 256 /64 prefixen gebruikt aan de "WAN" kant:

eroot@maartenamd hj]# ip -6 addr add 2a02:0000:1111:123:1111:2222:3333:4444/64 dev wlp0s19f2u1

Gebruik dit adres door een default route met lage metric en dit source address

ip -6 route add default via fe80::b2ac:d2ff:fe57:410e dev wlp0s19f2u1 metric 100 src 2a02:0000:1111:123:1111:2222:3333:4444

ipv6-test.com