Quantcast
Channel: Hacker's ramblings
Viewing all articles
Browse latest Browse all 519

IPv6 through WLAN access-point

$
0
0

I had a glitch with my DD-WRT -setup as it failed to pass-trough native IPv6-traffic on my own network. It took me a while to understand why only IPv4-traffic was getting trough it, but I managed to get it working. Here is my setup:




It is pretty trivial, the internet connection goes trough firewall and a router. Behind the router, there is my wired Ethernet and wireless connection to mobile devices. I had no issues with wired devices, IPv6 was working fine, so I guessed my WLAN-setup was flawed.


A closer inspection revealed, that my DD-WRT was configured to use IPv6 Stateless address autoconfiguration. This is part of IPv6-specification and a closer inspection of the traffic reveals, that autoconfiguration is done with couple of specially crafted ICMPv6-packets. I bumped into Mr. Matt Brown's blog, which pointed me to the RFC 4862 which defines the protocol. It states that there exists two kinds of nodes:



  • router - a node that forwards IP packets not explicitly addressed to itself

  • host - any node that is not a router


Then it struck me:
My WLAN access-point is considered a router, altough it is a bridge by definition, but for the sake of IPv6 autoconfiguration it is a router. As it came out, the autoconfiguration packages are using link-local addresses from address-space of fe80::/64, which by definition won't survive a hop over a router. (Which in my mind I didn't have, it was a WLAN bridge!)


The plan was to:



  1. disable the autoconfiguration from the WLAN access-point and manually define a static IPv6-address

  2. use a static default route from the WLAN access-point and confirm that it has proper IPv6-connectivity

  3. run router advertisement daemon (RADVD) to advertise the WLAN access-point as a proper router for any wireless clients

  4. make sure, that any incoming traffic from the mobile clients is properly routed to the real IPv6-router, and confirm that traffic flows both ways


This was actually very easy to do into DD-WRT. After disabling and enabling the wireless interface on my Windows 8, I finally got a default route:



PS C:\Windows\system32> netsh interface ipv6 show route


Publish  Type      Met  Prefix                    Idx  Gateway/Interface Name
-------  --------  ---  ------------------------  ---  ------------------------
No       Manual    256  ::/0                       18  fe80::c2c1:c0ff:c2c1:c0ff



This was nice! Everything simply started working. What I'm still looking for are ways of getting the default route without disable/enable for the interface. Both, on Linux and Windows.


Viewing all articles
Browse latest Browse all 519

Trending Articles