RCS & RDS a lansat testele de IPv6 pentru clientii rezidentiali (comunicat de presa) si fiecare dintre noi am inceput sa ne punem intrebarea daca vom putea folosi CPE-ul pe care-l avem acasa pentru a beneficia de experienta IPv6.
Desi “vendorii” de routere de tip SOHO stau prost la capitolul firmware care sa suporte IPv6 via PPPoE + DHCPv6 cu prefix delegation (PD), exista intotdeauna alternativa softului “open-source”.
Asadar, am luat routerul meu de acasa Linksys WRT 54-GL v1.1 care avea pe el imaginea originala de pe site de la linksys
(WRT54GL_FW_4.30.14.005_20091026.bin) si i-am facut upgrade. Pentru ca lucrurile sa fie mult mai simple pentru toata lumea am cautat sa ajung la firmware-ul final care sa suporte IPv6 (de la RDS) folosind numai interfata web:
1. am instalat via WEB (Administration / Firmware Upgrade) imaginea dd-wrt.v24-12548_NEWD_mini.bin
2. dupa ce s-a instalat m-am conectat din nou pe router via WEB folosind username: root si parola: admin
3. am modificat si instalat via WEB (Administration / Firmware Upgrade) imaginea
tomato-K26-1.28.RDSMIPSR1PD-MiniIPv6.bin
4. dupa ce s-a instalat si am vazut ca nu ma pot conecta via WEB cu nici o combinatie de username si parola am resetat la default (am tinut butonul de reset apasat 30 de secunde)
5. m-am conectat pe router via WEB folosind username: admin si parola: admin
6. mi-am facut pe langa setarile uzuale de PPPoE si setarile de IPv6:
- am setat service name “ipv6test” ca sa primesc v4 / v6 via PPPoE
- am ales “DHCPv6 cu PD (prefix delegation)” si am bifat ca accept RA-uri (router advertisements) pe interfata PPPoE (WAN) ca sa primesc si pe router o adresa IPv6 globala

Pot folosi in felul acesta vechiul meu router linksys ca sa testez experienta IPv6 de la RDS si pana acum nu am intampinat nici o problema.

Ceva e putred totusi, in LAN am problema. Ori e o ruta ori DNSul… Cateodata merge, cateodata nu.
De pe laptop dau ping6 la google:
ping6 ipv6.google.com
PING ipv6.google.com(fx-in-x63.1e100.net) 56 data bytes
^C
— ipv6.google.com ping statistics —
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
dau de pe router si bineinteles ca merge:
ping6 ipv6.google.com
PING ipv6.google.com (2a00:1450:8007::63): 56 data bytes
64 bytes from 2a00:1450:8007::63: seq=0 ttl=54 time=26.301 ms
64 bytes from 2a00:1450:8007::63: seq=1 ttl=54 time=26.312 ms
— ipv6.google.com ping statistics —
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 26.301/26.306/26.312 ms
Am observat ca pe laptop pingui un host si pe router un IP. Am zis sa pingui de pe laptop IPul ala si tot nu vrea.
Ca sa “dezghet” treaba dau un ping la IPv6 a routerului (cea din LAN) si apoi merge sa ies oriunde pe IPv6. Figura tine ceva timp apoi iar o ia razna.. Mie-mi suna a ruta busita, oare trebuie sa mai configurez ceva pe router?
Apropos, OS: Mandriva Linux 2010.2 64 bit
@tux: problema ta anterioara nu avea legatura cu LAN-ul tau, iti garantez asta dar nu-ti pot detalia.
cat despre problema curenta din LAN, mie mi se pare ca e o problema de “neigbor discovery” (“ARP-ul” de IPv6). tie iti expira intrarea (poti verifica dand comanda “ip -6 neighbor”) pe care o “recapeti” cu ping6 in IP-ul de LAN al routerului.
verifica pe LINUX-ul tau ca accepti RA-uri (trebuie sa ai valoarea 1):
xxx:/$ cat /proc/sys/net/ipv6/conf/all/accept_ra
1
xxx:/$ cat /proc/sys/net/ipv6/conf/eth0/accept_ra #schimba eth0 daca folosesti alta interfata
1
Ambele au valoarea 1 deci nu e aia.
In schimb am fost curios sa vad daca se modifica tabela de routare si se pare ca da…
http://i.imgur.com/Bd57C.png
@tux: ba este exact ce ti-am spus (asa se vede din poza ta). ai o problema cu “ARP-ul” de IPv6 adica neighbor discovery. cand dai ping6 practic faci “NS – neigh solicitation” adica un fel de “ARP request” de IPv6 care este de fapt un packet trimis pe adresa de multicast ff02::1:ffab:b11c. daca accepti RA-urile cum mi-ai aratat mai sus, atunci un alt hint ar putea fi o problema cu un firewall copiat de pe IPv4 (iptables -> ip6table), o greseala des intalnita pentru ca pe IPv6 trebuie permis ICMPv6 type 133 – 136, tocmai din motivul descris mai sus iar la IPv4 de obicei se filtreaza tot ICMP-ul.
oricare ar fi rezolvarea, aici trebuie sa umbli ca sa o gasesti:
ICMPv6 type 133 – 136 / ND (neighbor discovery), NS (neighbor solicitation)
Daca dau comanda: ip -6 neighbor
fe80::3246:9aff:fe8c:1856 dev wlan0 lladdr 30:46:9a:8c:18:56 router DELAY
se schimba mesajul din capat cateodata cu STALE sau REACHABLE, insa si cu REACHABLE tot nu merge un ping amarat in IPv6.
am oprit acum ip6tables si vad ca tot nu merge…
Salut Liviu,
Am o intrebare…sper sa nu fie prea banala.
Am deja pe routeru-ul meu (pe WRT54GL v1.1) firmware-ul Tomato v1.28
Cum pot upgrada update-ul asta “tomato-K26-1.28.905xRAF-EN-MIPSR1-076V-MiniIPv6.trx” ? (nu ma prea pricep cu trx-urile astia π )
Multumesc
@ps: inteleg ca ai incercat sa-l incarci si nu ti-a mers cu extensia .trx ? atunci redenumeste-l in .bin si incearca sa-l incarci din interfata web (Administration -> Upgrade). daca nu merge asa spune-mi si o sa incerc si eu sa fac asta ca sa-ti raspund printr-un exemplu concret.
Liviu, problema ea e ca atunci cand dau click pe “http://tomato.groov.pl/K26/build5x-076V-EN/tomato-K26-1.28.905xRAF-EN-MIPSR1-076V-MiniIPv6.trx” imi deschide direct fisierul si apar numai semne (normal) si nu stiu de ce (folosesc Firefox 7.0.1)
@ps: trebuie sa recunosc ca nu m-am asteptam sa-mi spui asta :). ia-l de aici: tomato-K26-1.28.905xRAF-EN-MIPSR1-076V-MiniIPv6.trx (click dreapta -> Save Link As)
Merci Liviu…eu eram capiat, setasem browserul sa deschida automat fisierul salvat… π am uitat (entuziasmul asta π )
salut,
@tux: banuiec ca tu ai un firmware tomato cu un bug ipv6
care este outputul comenzii “ip -6 addr li dev lo” pe routerul tau ?
@tux: daca pe router in /etc/dhcp6c.conf ai o linie de felul “prefix-interface lo {” atunci clar e buggy si o sa-ti trebuiasca alta imagine.
http://tomato.groov.pl/index.php?dir=K26%2Fbuild5x-079V-EN
@ionut:
Tomato v1.28.7480 MIPSR2-Toastman-RT K26 USB VPN
root@router:/tmp/home/root# ip -6 addr li dev lo
1: lo: mtu 16436
inet6 2a02:2f02:1022:5000:200:ff:fe00:0/64 scope global
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
si
cat /etc/dhcp6c.conf
interface ppp0 {
send ia-pd 0;
send rapid-commit;
request domain-name-servers;
script “/sbin/dhcp6c-state”;
};
id-assoc pd 0 {
prefix-interface lo {
sla-id 0;
sla-len 0;
};
prefix-interface br0 {
sla-id 1;
sla-len 0;
};
};
Ca o solutie temporara am facut un script ce ruleaza in fiecare minut in cron si care ping6uie routerul π
Partea proasta e ca la fiecare reconectare RDS se schimba IPv6 routerului… (IPv6 din LAN, de pe iface br0).
@tux: asa cum ti-a zis si Ionut mai sus ai o versiune de Tomato buggy (vezi ::/64 de pe Lo0 si linia prefix-interface lo din /etc/dhcp6c.conf). asta e primul lucru pe care l-am fixat in versiunea modificata/recompilata din acest post. tie iti trebuie imagine cu MIPSR2 deci ia o imagine de la ei de pe site si nu vei mai avea problema asta:
http://tomato.groov.pl/index.php?dir=K26%2Fbuild5x-079V-EN
Multumesc Liviu & Ionut! O sa flashui jucaria probabil prin weekend π
Am flashuit aseara routerul. Totul functioneaza perfect acum! Multumesc inca odata!
Asta e pentru nostalgici π Daca doriti sa aveti si butonul cu sigla Cisco aprins (am observat ca acesta este oprit default, spre deosebire de dd-wrt), nu trebuie sa faceti nimic altceva decat telnet 192.168.1.1, user in telnet sau ssh va fii intotdeauna “root”, indiferent de ce user folositi pentru interfata web, parola dvs., si dati comanda “led amber/white (culorile butonului in functie de preferinte) on|off”.
@Mihai: super tare, chiar functioneaza ! nu stiam de asta.
Stiam de comanda LED, era si in dd-wrt, dar nu pricepeam de ce nu se aprinde si la Tomato; dupa niste sapaturi adanci pe forumuri, am gasit: nu e facut script si pentru led ca sa nu ocupe prea multa memorie imaginea finala (oh da, ca si mult ocupa 10 kb π ), in fine… ca sa va amuzati nitel am gasit pe net doua scriptulete pentru LED, unul care functioneaza cu cru (inlocuitorul lui crontab), si celalalt care va arata in functie de lumina ledului cum e conexiunea pppoe (le-am mai aranjat nitel ca erau pentru versiuni mai vechi de tomato):
pentru cru:
# cru a NightLightOn “0 20 * * * led white on aoss on”
(20:00 everyday)
# cru a NightLightOff “0 6 * * * led white off aoss off”
(06:00 everyday)
si pentru pppoe:
while sleep 2; do
if [ “`ifconfig | grep -c ppp0`” = “1” ] ; then
led amber off
led white on
else
logger “WANDOWN – turn on AMBER LED”
led white off
led amber on
killall script_wanup.sh
fi
done
Enjoy. π