Posted: Sun Feb 19, 2012 21:44 Post subject: IPv6 - 6rd Uverse
Can anyone help me correct these settings for 6rd on Uverse for IPv6
Router: Linksys E3000
Firmware: DD-WRT v24-sp2 (12/08/11) std-usb-nas (SVN revision 17990M NEWD-2 K2.6 Eko)
Uverse 6rd Settings:
• The 6rd service provider prefix is 2602:300::/28.
• The 6rd IPv4 mask length is 0.
• The 6rd border router (BR) IPv4 address is 12.83.49.81.
• The DNS IPv4 server addresses should be set to 99.99.99.53, 99.99.99.153.
• The DNS IPv6 server addresses should be set to 2001:1890:0FFF:0840::10, 2001:1890:0FFF:0841::10
I tried this code and it does not seem to be working:
Code:
insmod ipv6
sleep 5
HOST6RD=12.83.49.81
WANIP=$(ip -4 addr show dev eth1 | grep 'inet' | awk '{print $2}' | cut -d/ -f1)
if [ -n "$WANIP" ]
then
V6PREFIX=$(printf ' 2602:300:%02x%02x:%02x%02x' $(echo $WANIP | tr . ' '))
ip tunnel add tun6rd mode sit ttl 255 remote any local $WANIP
ip link set tun6rd mtu 1280
ip link set tun6rd up
ip addr add $V6PREFIX:0::1/28 dev tun6rd
ip addr add $V6PREFIX:1::1/60 dev br0
ip -6 route add 2000::/3 via ::$HOST6RD dev tun6rd
kill -HUP $(cat /var/run/radvd.pid)
fi
echo "interface br0 { \
MinRtrAdvInterval 3; MaxRtrAdvInterval 10; AdvLinkMTU 1280; AdvSendAdvert on; \
prefix $V6PREFIX::/64 { AdvOnLink on; AdvAutonomous on; AdvValidLifetime 86400; \
AdvPreferredLifetime 86400; }; RDNSS 2001:1890:0FFF:0840::10 2001:1890:0FFF:0841::10 { }; };" \
> /tmp/radvd.conf
radvd -C /tmp/radvd.conf start
looks good to me... not sure why it wouldn't be working. telnet/ssh into the router and try pinging an IPv6 address(not website since DNS...)
if it pings fine, the issue is with the radvd configuration.
instead of having one script, try adapting the 6to4 one from the wiki(no difference from 6rd) and manually filling out the radvd config. maybe something like:
Code:
insmod /lib/modules/`uname -r`/kernel/net/ipv6/sit.ko
sleep 5
radvd -C /tmp/radvd.conf start
sleep 5
WANIP=$(ip -4 addr show dev vlan2 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1)
if [ -n "$WANIP" ]
then
V6PREFIX=$(printf '2602:300:%02x%02x' $(echo $WANIP | tr . ' '))
ip tunnel add tun6rd mode sit ttl 255 remote any local $WANIP
ip link set tun6rd mtu 1480
ip link set tun6rd up
ip addr add $V6PREFIX:0::1/28 dev tun6rd
ip addr add $V6PREFIX:1::1/64 dev br0
ip -6 route add 2000::/3 via ::12.83.49.81 dev tun6rd
kill -HUP $(cat /var/run/radvd.pid)
fi
sleep 10
radvd -C /tmp/radvd.conf start
I tried ping6 2001:4860:8004:0:0:0:0:93
That is ipv6.google.com
Never got any replies.
I will just have to keep messing with this. I have no experience with ipv6 so I guess this is the time to figure it out.
Do you know if I have the 6rd setup working on my router, do I have to do any setup on my win7 PCs to actually browse ipv6 sites from ie or firefox?
no and no. if you can't ping anything from the router itself, you got nothing.
as for client, it should all be automatic. the only change to make for windows 7 PCs is to manually add the DNS servers under IPv6 properties. Windows 7 unfortunately does not support RDNSS.
I got it working.
I can now ping6 and traceroute6 ipv6 addresses from the telnet to the router.
Here is the problem with the scripts other provided.
They bytes are off for an ATT address.
The script I was using would translated the address to something like this:
ATT Prefix 2602:300::/28
IP 111.111.111.111 -> 6f6f:6f6f
Then it combines them to 2602:300:6f6f:6f6f
I dont know much about ipv6 addresses, but I am guessing the /28 shifts something over
I had to do it this way:
Use 2602:30
111.111.111.111->6f6f:6f6f->6:f6f6:f6f0
(^shift the colons over 1 space and add 0 to the end)
Then combine them so: 2602:306:f6f6:f6f0
Then with 'ip addr add' I had to use the /28 and /60 as seen below.
In the example I change my ip to all ones.
Code:
insmod ipv6
sleep 5
HOST6RD=12.83.49.81
WANIP=111.111.111.111
V6PREFIX=2602:306:f6f6:f6f0
ip tunnel add tun6rd mode sit ttl 255 remote any local $WANIP
ip link set tun6rd mtu 1280
ip link set tun6rd up
ip addr add $V6PREFIX:0::1/28 dev tun6rd
ip addr add $V6PREFIX:1::1/60 dev br0
ip -6 route add 2000::/3 via ::$HOST6RD dev tun6rd
kill -HUP $(cat /var/run/radvd.pid)
fi
echo "interface br0 { \
MinRtrAdvInterval 3; MaxRtrAdvInterval 10; AdvLinkMTU 1280; AdvSendAdvert on; \
prefix $V6PREFIX::/64 { AdvOnLink on; AdvAutonomous on; AdvValidLifetime 86400; \
AdvPreferredLifetime 86400; }; RDNSS 2001:1890:0FFF:0840::10 2001:1890:0FFF:0841::10 { }; };" \
> /tmp/radvd.conf
radvd -C /tmp/radvd.conf start
I still cant browse ipv6 on my computers, so now I have to figure out the radvd.
edit: i figured out that it was offset by 1 but have no idea how to automate it. see: http://www.dslreports.com/forum/r26914293-
the problem is that each %2x returns two values. need some way of splitting them up between the colons.
as for radvd, try changing that /64 into a /60.
also, can you change the mtu to 1480? if it works, more performance .
Posted: Mon Feb 20, 2012 6:55 Post subject: dd-wrt working with settings for uverse - windows is flaky
Success for everything.
Although windows seems to be flaky problems with ipv6.
1 of my win7 PCs cant get any ipv6 address.
Another win7 was working and loading ipv6 pages, but after I rebooted the router again now it gets an ipv6 address, but windows says no internet connectivity. It looks like its a windows problem now.
Here are my router settings that worked.
My previous post for shifting the colons over still applies.
6rd router=12.83.49.81
Wan Ip = 111.111.111.111 (use your ip and convert to hex to fill in the rest)
ATT prefix = 2602:30
Then with 'ip addr add' I had to use the /28 and /60 as seen below.
-----------------
Startup Commands
-----------------
insmod ipv6
sleep 5
radvd -C /tmp/radvd.conf start
sleep 5
HOST6RD=12.83.49.81
WANIP=111.111.111.111
V6PREFIX=2602:306:f6f6:f6f0
ip tunnel add tun6rd mode sit ttl 255 remote any local $WANIP
ip link set tun6rd mtu 1280
ip link set tun6rd up
ip addr add $V6PREFIX:0::1/28 dev tun6rd
ip addr add $V6PREFIX:1::1/60 dev br0
ip -6 route add 2000::/3 via ::$HOST6RD dev tun6rd
kill -HUP $(cat /var/run/radvd.pid)
fi
sleep 10
radvd -C /tmp/radvd.conf start
------------------------------
Enable radvd - here is config
------------------------------
interface br0 {
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvLinkMTU 1280;
AdvSendAdvert on;
prefix 2602:306:f6f6:f6f0::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvValidLifetime 86400;
AdvPreferredLifetime 86400;
};
};
You broke the code for my setup . Maybe my radvd conf will help you out, i kept mine simple, everything seems peachy!
Code:
insmod ipv6
insmod sit
ip tunnel add uverse6rd mode sit remote 12.83.49.81 local 108.72.xx.xxx ttl 64
ip link set uverse6rd up
ip addr add 2602:30x:xxxx:xxxx::2/28 dev uverse6rd
ip route add ::/0 dev uverse6rd
ip -f inet6 addr
ip -6 addr add 2602:30x:xxxx:xxxx::1/60 dev br0
ip route add 2000::/3 dev uverse6rd
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
iptables -I INPUT 2 -p ipv6 -i vlan1 -j ACCEPT
iptables -t nat -A POSTROUTING --proto ! 41 -o eth0 -j MASQUERADE
Any script that combines the radvd with the startup script does not work.
If I split it up and run the radvd with its own script, then I get assigned an ip and gateway for ipv6.
I am running DD-WRT v24-sp2 (12/08/11) std-usb-nas
(SVN revision 17990M NEWD-2 K2.6 Eko) and it does not seem to like the radvd in the startup script.
I got this working on the router and it appears my computers are getting IPv6 addresses, but I can't access or ping any IPv6 sites from the computers. I can ping them from the router. Any suggestions or tips? Let me know what other info is needed from me. Thanks