PDA

Bekijk Volledige Versie : Eigen IPv6 tunnel



Smart-Guyz
08/03/13, 15:44
Beste lezers,

Voor test doeleinden wil ik een eigen tunnel opzetten met eigen IPv6 space, echter krijgen ik dit niet goed voor elkaar, wellicht dat jullie kunnen helpen.
Ik heb een /32 IPv6 allocation. Hiervan heb ik een /48 doorgezet via een router (Big Iron 4000) naar een server (CentOS 5.8).
Tot aan hier werkt het, op zich rocket science, simpel IPv6 configureren en gaan.

Vervolgens wil ik op deze server een tunnel maken welke ik thuis (of waar dan ook) weer kan oppakken (het liefst geen VPN met aparte clients).
Er van uit gaan dat dit de parameters zijn waar ik mee werk:

SERVER IPv4: 195.69.***.2
CLIENT IPv4: 82.72.***.4
ASSINGED IPv6: 2a02:****:dead::/48
IPv6 voor de tunnel: 2a02:****:dead:1100::/64

Op de router heb ik de volgende configuratie staat voor de VLAN waar de server in zit:

ip address 195.69.***.2 255.255.255.0
ipv6 address 2a02:****:dead::1/48
ipv6 enable
ipv6 nd suppress-ra
Zoals ik al aangaf, werkt IPv6 op de server normaal. Er staat een firewall op de server, echter zet ik deze tijdens het testen uit, om zeker te weten dat deze niets blocked.

Op de server heb ik de volgende configuratie toegepast:

ip tunnel add ipv6tun mode sit ttl 255 remote any local 195.69.***.2
ip link set dev ipv6tun up
ip addr add 2a02:****:dead:1100::1/64 dev ipv6tun
ip route add 2a02:****:dead:1100::/64 via ::82.72.***.4 dev ipv6tun metric 1

De server zelf (eth0) heeft 2a02:****:dead:1100::2 als adres.

Thuis heb ik een Linksys E4200 en ik maak verbinding via de 6rd tunnel optie (irritant Nederlands). Daar vul ik in:

Voorvoegsel: 2a02:****:dead:1100::
Lengte voorvoegsel: 64
Grensrelais: 195.69.***.2
IPv4-adresmasker: 32

Vervolgens krijg ik op mijn PC thuis netjes een IPv6 adres uit deze range. Ik kan vanaf mijn PC de 2a02:****:dead:1100::1 pingen en ook de 2a02:****:dead:1100::2.
Echter kom ik niet verder dan dit. Ik kan niet de router pingen en ook geen andere servers met IPv6 die daarop aan zijn gesloten, ook niet naar de buiten wereld (zegge ipv6.google.com)
TCPDUMP op de server geeft het volgende weer over eth0 (*):

ICMP6, neighbor solicitation, who has ****, length 32
ICMP6, neighbor advertisement, tgt is ****, length 32

Op de interface ipv6tun krijg ik enkel het volgende (*):

ICMP6, echo request, seq 1, length 64

(*) Dit is niet de echte dat die ik krijg, ik zit nu niet op die server ingelogd en niet thuis, dus ik kan het echte result niet posten. Maar ik krijg een soort gelijke melding, alleen dan met andere IPv6 adressen.
Zodra ik thuis ben post ik het echte result, maar dit is gelijk aan.

Het lijkt er op dat hij zijn weg niet meer terug kan vinden en geen relpy kan sturen naar de mijn thuis netwerkje. Echter heb ik geen idee meer wat ik kan doen om dit te laten werken.
Ik weet uberhaubt niet of het kan werken, vandaar mijn vraag hier. Maar aangezien overige tunnel brokers het ook kunnen, lijkt het mij dat het gewoon zou moeten kunnen met een simpele setup op een server.

Ik zal binnenkort het topic aanvullen met de resultaten van mijn tcpdump op de server.

dicktump
08/03/13, 16:51
Staat IPv6 forwarding wel aan op de CentOS server?

Smart-Guyz
08/03/13, 18:47
Staat IPv6 forwarding wel aan op de CentOS server?
Ja, staat allemaal aan.

cat /proc/sys/net/ipv6/conf/*/forwarding
1
1
1
1
1
1
1
1

Op IPv4 trouwens ook:

cat /proc/sys/net/ipv4/conf/*/forwarding
1
1
1
1
1

Smart-Guyz
08/03/13, 19:05
Ik heb een kleine aanpassing gemaakt, ik heb i.p.v. een /64 de complete /48 doorgestuurd. Mijn thuis router geeft nu aan dat hij "Verbonden" is, eerder stond hier "Onbepaald" (?)
Het volgende krijg ik met een TCPDUMP binnen op de server [tcpdump -i ipv6tun ip6]


19:01:24.810836 IP6 2a02:****:dead:5248:d078:1bac:59b4:6dc1 > wb-in-x6a.1e100.net: ICMP6, echo request, seq 3143, length 40
19:01:29.579726 IP6 2a02:****:dead:5248:d078:1bac:59b4:6dc1 > wb-in-x6a.1e100.net: ICMP6, echo request, seq 3144, length 40

Op eth0 zie ik het volgende [tcpdump -i eth0 ip6]


19:03:23.648563 IP6 2a02:****:dead:5248:d078:1bac:59b4:6dc1 > wb-in-x6a.1e100.net: ICMP6, echo request, seq 3145, length 40
19:03:23.656526 IP6 fe80::204:80ff:fe82:bd00 > ff02::1:ffb4:6dc1: ICMP6, neighbor solicitation, who has 2a02:****:dead:5248:d078:1bac:59b4:6dc1, length 32
19:03:24.549544 IP6 fe80::204:80ff:fe82:bd00 > ff02::1:ffb4:6dc1: ICMP6, neighbor solicitation, who has 2a02:****:dead:5248:d078:1bac:59b4:6dc1, length 32
19:03:25.649530 IP6 fe80::204:80ff:fe82:bd00 > ff02::1:ffb4:6dc1: ICMP6, neighbor solicitation, who has 2a02:****:dead:5248:d078:1bac:59b4:6dc1, length 32

Dit is een ping naar ipv6.google.com

Smart-Guyz
08/03/13, 23:40
Nevermind, ik heb het aan de praat na twee dagen knutselen, haha.
in mijn zoektocht naar een manier om het verkeer op ipv6tun te krijgen dacht ik aan proxy en ja hoor, dat was de oplossing:


ip -6 neigh add proxy 2a02:****:dead:: dev eth0

Met andere woorden, proxy het adres weg van deze interface en dat werkt.
Toch blij dat ik mijn bevindingen heb kunnen delen!

En nu bouwen met die tunnels en allemaal op snelle Nederlands IPv6 adressen :P

Smart-Guyz
09/03/13, 00:33
Nevermind, ik heb het aan de praat na twee dagen knutselen, haha.
in mijn zoektocht naar een manier om het verkeer op ipv6tun te krijgen dacht ik aan proxy en ja hoor, dat was de oplossing:


ip -6 neigh add proxy 2a02:****:dead:: dev eth0

Met andere woorden, proxy het adres weg van deze interface en dat werkt.
Toch blij dat ik mijn bevindingen heb kunnen delen!

En nu bouwen met die tunnels en allemaal op snelle Nederlands IPv6 adressen :P

Bleh, te snel gepost. Het werkt inderdaad wel, maar niet op de manier hierboven.
Voordat ik deze hierboven deed, deed ik een proxy op een specifiek adres en daardoor werkte het.

Echter ben ik nu nog op zoek om een subnet via NDP van eth0 af te halen, of via iets anders uiteraard.

visser
09/03/13, 13:06
Bleh, te snel gepost. Het werkt inderdaad wel, maar niet op de manier hierboven.
Voordat ik deze hierboven deed, deed ik een proxy op een specifiek adres en daardoor werkte het.

Echter ben ik nu nog op zoek om een subnet via NDP van eth0 af te halen, of via iets anders uiteraard.

Wat er precies in je setup niet lukt kan ik zo niet zeggen, maar m.i. zoek je in de verkeerde richting.
-proxy, en "subnet halen via NDP" klinkt als de terugkeer van proxy-arp, en nu juist in IPv6 heb je een enorme bak subnetten en kun je gewoon netjes routeren zonder kunstjes op laag 2.5 om wat adressen min of meer te bridge-routen.

Of ben je op de E4200 beperkt in wat er kan ?
M.i. zou de technisch overzichtelijke oplossing zijn op een GRE of 6-in-4 tunnel, waarover je bv /56 naar je thuis router stuurt.

Je router kan dan gewoon een /64 subnet aanbieden op elk interface, en nog een paar /64's door routeren naar andere hosts als je achter je router nog een paar gerouterde netwerken hebt.

dennis0162
09/03/13, 14:41
Kan je aan beide kanten van de tunnel wel pingen naar het tunnel IP?

Ik heb het op de volgende manier gedaan:

Router in DC:



Static route: ipv6 route 2A00:c0f::/48 2A00:x:1::150


Server in DC:


Eth0: 37.72.x.150 / 2a00:x:1::150/64

ip tunnel add ipv6tun mode sit ttl 255 remote any local 37.x.98.150
ip link set dev ipv6tun up
ip addr add 2a00:x:c0f::1/48 dev ipv6tun
ip route add 2a00:x:c0f::/48 via ::83.82.110.89 dev ipv6tun metric 1


Raspberry PI thuis:


modprobe ipv6
ip tunnel add tunipv6 mode sit remote 37.x.98.150 local 192.168.8.101 ttl 255
ip link set tunipv6 up
ip addr add 2a00:x:c0f::2/48 dev tunipv6
ip route add ::/0 dev tunipv6
ip -f inet6 addr




eth0 Link encap:Ethernet HWaddr b8:27:eb:e8:75:32
inet addr:192.168.8.101 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fee8:7532/64 Scope:Link
inet6 addr: 2a00:x:c0f:c0f::5/64 Scope:Global



Vervolgens op mijn Windows PC 2a00:x:c0f:c0f::c0f als IP-adres en 2a00:x:c0f:c0f::5 gateway.
Let wel op dat overal IPv6 routing aan staat.

De Linksys E4200 kan je ook nog flashen met DD-wrt zodat je ook SSH toegang kan activeren en wat meer kan.

Smart-Guyz
09/03/13, 14:42
Je bracht me op een idee. Ik heb nu de alles weer netjes verdeeld in /64 met de zelfde setup als in de begin post.
Echter heb ik op de Big Iron een static route aangegeven en heb ik eth0 het zelfde IPv6 adres gegeven als de tunnel.

Nu werkt alles prima!