Werkend IPv6 via zowel de tunnel als via ... / 2010-04-13

2010-04-13 Werkend IPv6 via zowel de tunnel als via ... 10 years ago
Werkend IPv6 via zowel de tunnel als via de native aansluiting. Ik hou nog even de tunnel aan omdat die een voorspelbare v6 range heeft en ik daarin services heb die extern bereikbaar moeten zijn zoals deze website:
$ dig +short idefix.net aaaa
2001:888:1011::694
En nog veel lastiger om te wijzigen:
   Server Name: NS2.IDEFIX.NET
   IP Address: 2001:888:1011:0:0:0:0:694
   IP Address: 82.95.196.202
   Registrar: EPAG DOMAINSERVICES GMBH
Ik heb er dus voor gekozen wireless clients adressen uit de native range te geven en te routeren via die link, en de server en de wired aansluitingen nog via de v6 tunnel. Daar is rulebased routing voor nodig, en omdat ik verbindingen vanaf de server nog via de tunnel wil is 'native' de uitzondering voor mij. Eerst probeerde ik 'niet tunneladres' als regel:
ip -6 rule add type unicast not from 2001:888:1011::/48 priority 32765 table 17
En dan de routing in /etc/ppp/ipv6-up.d/default :
ip -6 route add default dev ${PPP_IFACE} table 17
Maar dat werkte niet: verkeer vanaf de server naar de wireless clients werd ook de ppp0 link opgestuurd, dat werkte dus niet. Dat was weer te omzeilen door een regel voor het wireless netwerk in table 17 te dupliceren, maar dat is niet handig bij eventuele wijzigingen van de IPv6 range.
Beter: een filter maken wat 'native' verkeer herkent. Een beetje voorkennis helpt: in de xs4all native dsl proef krijgen klanten een /48 uit 2001:980::/32. Dus dan in /etc/ppp/ipv6-up.d/default :
ip -6 rule add type unicast from 2001:980::/32 priority 32765 table 17
ip -6 route add default dev ${PPP_IFACE} table 17 || true
De gewone ipv6 default route komt uit /etc/network/interfaces :
auto xs4allipv6
iface xs4allipv6 inet6 v4tunnel
    endpoint 194.109.5.241
    address 2001:888:10:11::2
    netmask 64
    up ip tunnel change xs4allipv6 ttl 64
    up ip -6 addr add 2001:888:1011::13/128 dev xs4allipv6
    up ip -6 route add unreachable 2001:888:1011::/48
    # rest /48 nullrouten, specifiekere routes hebben voorrang
    up ip -6 route add default via 2001:888:10:11::1 src 2001:888:1011::13
    up ip -6 addr change 2001:888:10:11::2/64 dev xs4allipv6 preferred_lft 0
	# tunneladres nooit als uitgaand adres gebruiken
    #
    down ip -6 route del unreachable 2001:888:1011::/48
    # maar dan moet ik ook die nullroute weer weghalen :)
En nu werkt het voor beide IPv6 ranges. Native:
$ traceroute6 abaris
traceroute to abaris.idefix.net (2001:470:1f15:db:131:211:84:204) from 2001:980:111b:2:21f:e1ff:fe45:2894, port 33434, from port 63747, 30 hops max, 60 byte packets
 1  2001:980:111b:2:21f:c6ff:fe59:76f6 (2001:980:111b:2:21f:c6ff:fe59:76f6)  1.517 ms  1.773 ms  5.713 ms 
 2  lo1.dr4.1d12.xs4all.net (2001:888:0:4401::1)  37.795 ms  39.791 ms  20.754 ms 
 3  2001:888:0:4403::2 (2001:888:0:4403::2)  30.975 ms  17.414 ms  20.025 ms 
 4  0.ge-1-2-0.xr1.sara.xs4all.net (2001:888:2:2::1)  19.104 ms  21.797 ms  26.274 ms 
 5  10gigabitethernet3-3.core1.ams1.he.net (2001:470:0:e8::1)  24.385 ms  17.858 ms  17.255 ms 
 6  gige-gbge0.tserv11.ams1.ipv6.he.net (2001:470:0:7d::2)  24.295 ms  24.621 ms  23.004 ms 
 7  abaris.idefix.net (2001:470:1f15:db:131:211:84:204)  30.448 ms  27.849 ms  21.872 ms 
En tunnel:
$ traceroute6 abaris
traceroute to abaris.idefix.net (2001:470:1f15:db:131:211:84:204) from 2001:888:1011::13, port 33434, from port 53569, 30 hops max, 60 byte packets
 1  xs4all17.ipv6.xs4all.nl (2001:888:10:11::1)  17.177 ms  16.589 ms  17.447 ms 
 2  104.ae0.xr4.1d12.xs4all.net (2001:888:0:3::1)  25.176 ms  22.599 ms  15.982 ms 
 3  0.ge-0-2-0.xr1.sara.xs4all.net (2001:888:2:1::1)  22.124 ms  19.112 ms  19.868 ms 
 4  10gigabitethernet3-3.core1.ams1.he.net (2001:470:0:e8::1)  19.501 ms  16.943 ms  15.742 ms 
 5  gige-gbge0.tserv11.ams1.ipv6.he.net (2001:470:0:7d::2)  24.070 ms  20.348 ms  19.108 ms 
 6  abaris.idefix.net (2001:470:1f15:db:131:211:84:204)  25.500 ms  24.720 ms  21.881 ms 
De juiste data in radvd.conf komt uit een slim scriptje wat net nadat wide-dhcp6c de interfaces geconfigureerd heeft toeslaat. Op het moment dat het script /etc/wide-dhcpv6/dhcp6c-script uitgevoerd wordt is iets te vroeg, dus ik heb daar in staan:
RADVDCONF=/etc/radvd.conf

genradvdconf ()
{
    echo > $RADVDCONF
    for IFACE in "$@"
    do  
        /etc/wide-dhcpv6/iface2radvd.sh $IFACE >> $RADVDCONF
    done
}

( sleep 5 ; genradvdconf eth0.1 eth0.3 ; /etc/init.d/radvd reload ) &
En even doordenkend: als ik ooit iets probeer te benaderen bij een andere xs4all-v6-native klant heb ik inderdaad een probleem (met het ontvangen van de antwoorden). Deze oplossing is dus niet blijvend. Maar als IPv6 over dsl gewoon wordt dan hoef ik niet meer met die tunnel bezig te zijn.

Tags: , , ,

, reachable as koos+website@idefix.net. PGP encrypted e-mail preferred.

PGP key 5BA9 368B E6F3 34E4 local copy PGP key 5BA9 368B E6F3 34E4 via keyservers pgp key statistics for 0x5BA9368BE6F334E4 Koos van den Hout
RSS
Other webprojects: Camp Wireless, wireless Internet access at campsites, The Virtual Bookcase, book reviews
This page generated in 0.016006 seconds.