Happy eyeballs wg Microsoft, czyli implementacja IPv6 w Windows 8.

Nietypowo nie będzie o Linuksie, a o Windows, który bardzo rzadko pojawia się na tym blogu.  Konkretnie o Windows 8 i IPv6.

Przy okazji wykładu na PLNOG na temat happy eyeballs[1] dowiedziałem się, jak to robią w Windows 8. Otóż Windows 8 określa, czy ma dostęp do sieci IPv6 poprzez pobranie pliku. Z serwera Microsoft[2]. A następnie cache’uje wynik na… bagatela 30 dni. Wystarczy, że w momencie sprawdzania sieć IPv6 albo serwer Microsoftu nie będą dostępne i żegnamy się z IPv6. Na miesiąc. Poza tym, to, że udało się połączyć z serwerem Microsoft nie oznacza, że istnieją trasy do wszystkich innych hostów IPv6. Więc rozwiązanie „takie sobie” (taki ładny eufemizm, zamiast sporej ilości przekleństw w kierunku twórców pseudostandardów w Microsoft).

W trakcie prezentacji przyszedł mi do głowy dirty hack (rozmowa po prezentacji sugeruje, że jak najbardziej powinien działać), który spowoduje, że system Windows będzie zawsze myślał, że ma dostęp do sieci IPv6. Do pliku hosts dopisujemy linię, która powoduje, że ipv6.msftncsi.com jest rozwiązywany na adres IPv4. Czyli plik jest pobierany z serwera IPv4, czyli system zawsze będzie próbował korzystać z IPv6. Tak, popsuje to mechanizm happy eyeballs (ale i tak był zepsuty). Może się przydać np. testerom, albo zwyczajnym fan(atyk)om IPv6.

Przy okazji, w prezentacji pojawia się Your task – check ipv6.msftncsi.com availability, które po sprawdzeniu pachnie mi lekkim FUDem. Przy sprawdzeniu co pięć minut dwóch rzeczy: pingowania po domenie i możliwości pobrania pliku, w ciągu 48h[3] nie zdarzył mi się ani jeden błąd. A dodatkowo sprawdzam przez tunel od HE, czyli potencjalny element, który może zawieść. Być może wyglądało to kiedyś gorzej i się poprawiło. To, że coś jest potencjalnie OKDR nie oznacza, że jest takie w praktyce. Bo wydaje się działać. Zresztą wystarczy zrobić farmę serwerów z adresem anycast i będzie to działać. Warto też sprawdzić:

host ipv6.msftncsi.com
ipv6.msftncsi.com is an alias for ipv6.msftncsi.com.edgesuite.net.
ipv6.msftncsi.com.edgesuite.net is an alias for a978.i6g1.akamai.net.
a978.i6g1.akamai.net has IPv6 address 2001:2030:0:f::d59b:9892
a978.i6g1.akamai.net has IPv6 address 2001:2030:0:f::d59b:9888

Czyli nie tyle serwery Microsoft, co Akamai (pozdrowienia dla f.). Nie jedno, ale 2 IP. Prawie na pewno rozproszone geograficznie i z wykorzystaniem anycastu. Nie zmienia to faktu, że dostępność tych IP nie oznacza dostępności po IPv6 każdego innego hosta („dziury” w routingu).

Źródła:

1. Prezentacja Krzysztofa Mazepy z EURONOG I PLNOG 2012 pt. IPv4 vs IPv6 IPv4 vs. – Happy Eyeballs.
2. Windows 8 moves to IPv6 Internet.

[1] Jest tylko po angielsku, więc w telegraficznym skrócie dla niespikających: w momencie połączenia host próbuje się łączyć po IPv6 i IPv4, jeśli ma łączność o zbliżonym opóźnieniu po obu protokołach, to preferuje IPv6. Zaleta jest taka, że w przypadku braku dostępności IPv6 nie czeka kilku(nastu/dziesięciu) sekund na timeout – użytkownik dostaje praktycznie bez opóźnienia content i oczka się cieszą.

[2] Konkretnie http://ipv6.msftncsi.com/ncsi.txt Zawartość jest stała i jest to po prostu Microsoft NCSI Jak widać wyżej, serwer jest Akamai.

[3] Tak, wiem, bardzo mała próbka, będzie aktualizowane wyniki z dłuższego okresu poniżej.

PS Kiedyś opisywałem, jak sprawdzić IP komputera pod różnymi systemami. Dodałem informację o sprawdzaniu łączności po IPv6.

UPDATE: Miała być statystyka z dłuższego okresu, to będzie. Minęło 16 dni. W tym czasie, przy sprawdzeniach co 5 minut, zanotowałem 75 braków odpowiedzi na ping i 26 błędów w pobraniu pliku przez WWW. Ale! Co minutę sprawdzam też, czy drugi koniec tunelu się pinguje po IPv6. Po wyeliminowaniu równoczesnego braku odpowiedzi z końca tunelu i błędów do hosta MS, zostało 49 błędów pingowania i 0 (zero) błędów pobrania pliku przez WWW. Czyli raczej błędy tunelu, niż rozwiązania MS. Jakby się ktoś zastanawiał, jak to możliwe, że plik się pobrał, przy braku odpowiedzi na ping do hosta – zapewne kwestia dłuższego timeoutu.

P.I.W.O. 2012 – wrażenia z imprezy.

Jestem w miarę regularnym bywalcem Poznańskiej Imprezy Wolnego Oprogramowania, więc dotarłem i w tym roku. W tym roku udało mi się być na praktycznie wszystkich prezentacjach – ostatnią odpuściłem na rzecz rozmów w kuluarach. Czego zresztą potem trochę żałowałem, ale odrobiłem na afterparty. W przeciwieństwie do poprzednich edycji nie tylko pojawiły się wykłady z maksymalną oceną, ale było ich nawet kilka. Średnia ocena wykładu ponad 8, więc było naprawdę dobrze.

Trochę mam wrażenie, że wciąż ci sami ludzie z tych samych firm występują na kolejnych edycjach (m.in. PCSS, Wikia, Allegro), ale w sumie po pierwsze, pretensje mógłbym mieć do siebie najwyżej (bo nie wystąpiłem), a po drugie było ciekawie. Zresztą wśród publiczności też sporo znajomych twarzy.

Poszczególnych prezentacji omawiać nie będę, przynajmniej nie teraz – być może w ciągu paru dni napiszę parę słów o każdej. Praktyka AKA Linux/Android przewijała się z polityką/ideologią, ale było i ciekawie, i inspirująco. I to zarówno prywatnie, jak i „służbowo”. Więcej mam nadzieję wkrótce.

Na koniec miły akcent – udało mi się wygrać koszulkę w konkursie wiedzy o CLI linuksowym. Cztery osoby zdobyły równą ilość punktów, ale jedna już wcześniej wygrała koszulkę w losowaniu, więc zrezygnowała (dzięki! :-)). W sumie trochę się zdziwiłem bo o ile samo polecenie zwykle kojarzę, to składni z przełącznikami – niekoniecznie. Chyba jury podeszło mocno liberalnie. Albo dość intuicyjne te polecenia się porobiły i nie trzeba podawać parametrów. I tak, przewijanie wstecz w konsoli crtl+pgup było moją odpowiedzią, a odpowiedź jest błędna. Co ciekawe akurat shift+pgup używam na co dzień. Czeski błąd.

Rockbox 3.12

Po bardzo długiej przerwie opublikowana została kolejna wersja Rockbox, czyli 3.12. Wielkich zmian – przynajmniej dla mnie – nie ma, warto odnotować, że z powodu problemów z obsługą USB Ipod Nano 2g został przeniesiony z wersji stabilnej do niestabilnej. Pełna lista zmian Rockbox 3.12 tutaj.

Przy okazji, pojawiła się też nowa wersja Rockbox Utility. Nie wiem, czy wina samego Rockboksa, czy Utility, ale przy końcu instalacji dostaję wersję o błędzie. Co prawda przy fontach i wszystko działa, ale nie wygląda to budująco.

Jak naprawiłem Libre Office 3.5.4 w Debianie.

Niedawno chciałem odczytać jakiś dokument w formacie .doc i okazało się, że Libre Office nie startuje. Pojawiała się plansza logowania i tyle. Potrzebowałem tylko odczytu, więc zwaliłem na Debiana w wersji unstable, locale ustawione na iso-8859-2, więc użyłem sąsiedniego kompa, skonwertowałem do PDF i zapomniałem o sprawie.

Jakiś czas później chciałem coś napisać, więc wróciłem do sprawy. Uruchomienie z wiersza poleceń, zmiana locale itp. nie pomogły. Jedyny komunikat, który dostałem, zawierał:

com::sun::star::uno::RuntimeException

Podejrzewałem Debiana unstable, więc szybkie sprawdzenie bugów i jest jeden #641412, w miarę pasujący opisem, ale niestety bez rozwiązania. Spróbowałem Google i tu efekt był lepszy. Znalazłem tę stronę [SOLVED] LibreOffice 3.5 error: Missing vcl resource. Tytuł optymistyczny.

Zainstalowałem pakiet libreoffice-gnome, tym razem przy uruchomieniu w oknie pojawiła się informacja o braku praw do pliku. Faktycznie, jeden z katalogów z plikami konfiguracyjnymi miał właściciela root. Usunąłem (z roota) ~/.config/libreoffice ~/.config/.libreoffice oraz ~/.config/.openoffice.org (ostatnia nazwa niedokładna), uruchomiłem Libre Office… Tadam!

Najpopularniejsza bateria.

Battery lithium CR2032

Źródło: http://en.wikipedia.org/wiki/File:Battery-lithium-cr2032.jpg

Czasem człowiekowi się wydaje, że wie całkiem sporo i mało co jest go w stanie zaskoczyć, a tymczasem zupełnie niedawno zaskoczył mnie temat, po którym zaskoczenia się w sumie nie spodziewałem: bateria. Zaczęło się od tego, że w wadze kuchennej coraz częściej widoczne były objawy słabej baterii. A to nie bardzo chciał się pomiar wagi załączyć, a to po załączeniu pomiaru wagi znikał czas, a to wręcz przygasał wyświetlacz w charakterystyczny dla dogorywającej baterii sposób.

Otworzyłem klapkę i ujrzałem to, czego się obawiałem, czyli wynalazek podobny do stosowanych w zegarku (fachowo, za angielską Wikipedią: button cell lithium battery). A z zegarkiem i tego typu bateriami to do tej pory zwykle było tak, że sam nie wymieniałem baterii, tylko grzecznie do zegarmistrza nosiłem. Co prawda ostatnio wątpię w sensowność takiego postępowania, bo wymiana kosztuje coraz więcej, a wystarcza na coraz krócej, ale to temat na zupełnie inny wpis.

Wynalazek okazał się mieć napis, który głosił CR2032. Szybkie sprawdzenie, za ile można to kupić w sieci i trafiam na stronę Wikipedii poświęconej baterii CR2032. I okazuje się, że to dobrze znana mi z komputerów bateria do BIOSu (w zasadzie CMOS) i w ogóle jeden z najpopularniejszych rodzajów baterii we wszelkiego rodzaju elektronice w ogóle.

Na koniec jeszcze tip dla kupujących, bo początkowo rozważałem zakup przez sieć. Głównie ze względu na koszt przesyłki, który dla jednej czy dwóch baterii jest miażdżący, a w sumie mam parę wiekowych płyt głównych, a jak się kiedyś przekonałem wymiana baterii w płycie głównej potrafi zdziałać cuda. Ostatecznie kupiłem jedną sztukę w sklepie z elektroniką. Zakup przez sieć może się opłacać przy naprawdę dużych ilościach, ale – tu tip właściwy – Ikea również posiada takie baterie o nazwie Solviden w przyzwoitej cenie, pakowne po 8 (co też nie jest małą ilością, ale w sklepie z elektroniką tyle zapłacimy za 2-3 sztuki). Niestety, mało który producent podaje pojemność baterii, więc ciężko jednoznacznie określić, który wariant jest korzystniejszy w dłuższym okresie.