2010-04-13
Werkend IPv6 via zowel de tunnel als via ...
Attention: this item is more than 5 years old, links can be broken and information can have been updated.
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::694En 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 GMBHIk 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 17En dan de routing in /etc/ppp/ipv6-up.d/default :ip -6 route add default dev ${PPP_IFACE} table 17Maar 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 || trueDe 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 msEn 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 msDe 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.