2009-08-12:

D-Link DI-524 i 2v2 w StarCraft

hardware:router:starcraft
Dzisiejszy post będzie trochę z innej bajki. Mianowicie, od jakiegoś pół roku dysponuje nowym routerem typu SOHO w domu - właśnie tytułowym DI-524 (rev.B), który zastąpił wysłużonego DI-604. I od pół roku miałem problem żeby pograć 2v2 w StarCraft'a siedząc z team partnerem po tej samej - wewnętrznej - stronie routera. Aż do wczoraj...

Problem dotyczył NAT i tzw. tablicy wirtualnych serwerów (aka przekierowania WAN->LAN). Mianowicie załóżmy że chcę aby z WAN ludzie mieli dostęp do serwera HTTP postawionego na moim kompie - w takim wypadku dopisuje do tablicy wirtualnych serwerów zew. port 80, adres mojego kompa w LAN i port na którym "stoi" serwer (załóżmy że też to jest 80). Po takiej konfiguracji gdy ktoś będzie chciał połączyć się na mój zew. IP i port 80, to router go po cichu "przekieruje" na mój serwer HTTP. I to wszystko działało OK.
Problem pojawiał się gdy z LAN chciałem połączyć się na adres MójZewIP:80. Stary router (DI-604) po cichu przekierowywał połączenie z LAN z powrotem do LAN, jako src IP wpisując swoje zewnętrzne IP. Natomiast mój DI-524 tego nie robił (złośliwiec nyo).

Co to ma do StarCrafta? StarCraft jest grą typu p2p, czyli każdy łączy się z każdym, przy czym to serwer Battle.net podaje graczom zestaw IP:Portów (UDP btw) na które mają się połączyć. Oczywiście, w przypadku dwóch osób z LAN serwer każe im się połączyć ze sobą, podając im jedynie ich zewnętrzne IP (w końcu skąd by miał mieć wewnętrzne, i skąd by miał wiedzieć kto konkretnie ma dostać wew. IP, a kto zew. IP (no OK, można to łatwo rozwiązać, ale 10 lat temu nikt o tym nie myślał, a jakoś i w patch'ach się ta funkcjonalność nie znalazła - w końcu to routery powinny się tym zajmować)). I wszystko by było OK gdyby router tłumaczył przekierowywał połączenia LAN->WAN->LAN, czego nie robił. Więc nie mogliśmy sobie z ally pograć ;<

Chyba nie muszę mówić że próbowałem różnych sztuczek żeby przekonać router do zachowania jak DI-604, jednak bez skutku. Aż w końcu wczoraj (w akcie desperacji) stwierdziłem że spróbuje zrobić downgrade do starszego firmware. Ściągnąłem kilka wersji firmware, w tym jakieś z roku 2006, zrobiłem downgrade i... zadziałało. Użyty przeze mnie firmware to 2.04 z 18 kwietnia roku 2006.

Oczywiście downgrade do starszego softu ciągnie za sobą kilka bugów które zostały usunięte w nowszych wersjach firmware. W przypadku DI-524 i 2.04 w changelog można znaleźć następujące pozycje:

Firmware: V2.07
1. Fix the problem: DI-524 has crashed problem after upgrading firmware.
2. Modify the time from 2008 to 2020.
3. Fixed the wireless client re-associates one hour later.
4. Add antenna transmit power
5. Fix "Cannot use remote application of MSN"


Firmware: V2.04Patch05
1. Daylight saving does not work for southern hemisphere(Australia)

Firmware: V2.04B02
1.WPA/WPA2 Enterprise fixed.


W zasadzie większość poprawek dotyczy WiFi (z którego nie korzystam w tym routerze, w domku stoi oddzielny AP), czasu oraz MSN, więc za bardzo mi osobiście to nie przeszkadza.

Nom, i to na tyle. Ide grać w SC, c.u. later ;>

Comments:

2009-08-12 11:50:17 = Furio
{
No to teraz diff obu wersji ( najswiezszej i dzialajacej ) i zrobisz patch'a :P:P

HF,GL!
}
2009-08-12 12:16:25 = Jurgi
{
Miałem w czerwcu wątpliwą przyjemność zakupić tenże model, tyle że w rewizji G. Już po zakupie zorientowałem się, że większość ludzi odradza tę firmę. Za Chiny nie mogłem doprowadzić do poprawnego działania WiFi. Okazało się, po wielu męczarniach, że nie działa toto z SP3 do XP: http://klub-internautow.pl/index.php?topic=1078.msg23549#msg23549
Po ciężkich bojach pomogła aktualizazja firmware, którą znaleźć to był istny quest: wg międzynarodowej strony dlinka rewizja G nie istnieje… (Coś jak dr Kupperweiser?)

Niestety, w nowym firmware zniknęły niektóre opcje… Ale chyba usuwanie features w kolejnych wersjach to u nich standard, bo np. "antenna transmit power" nie miałem i nie mam…
}
2009-08-12 17:01:11 = Marcin
{
Ja też mam d-linka. Model nie najnowszy (DSL-G624T) i muszę za każdym razem ustawiać Port Forwarding od nowa bo moje ustawienia z jakichś dziwnych przyczyn router "zapomina" po kilkunastu godzinach. I zauważyłem, że kiedy mam kilka własnych Port Forwarding Rules to nie mogę dodać reguły filtrowania ruchu (Inbound/Outbound filters). Do tego potrafi się wieszać kiedy na linii są jakieś trzaski - np. burza lub kiepski kabel TP. Naprawdę dziwny sprzęt...
}
2009-08-12 22:13:52 = Patryk
{
ten problem rozpoczął sie po którymś patchu do SC, po prostu popsuli obsługę wielu połączeń zza jednego nata. Jeżeli był jakiś update niedawno, to pewnie poprawili. Miałem ten sam zgrzyt, do tego stopnia, że stawialiśmy jakieś openvpny, żeby koledzy zza jednego nata mogli pograć :/.
}
2009-08-13 08:31:03 = Gynvael Coldwind
{
@Furio
;> Może jak będę miał chwilę to się pobawię ;>

@Jurgi
Hmm, na rewizji G można bodajże własną kompilację linuxa postawić ne?

@Marcin
Huh, ano... Hmm, szczerze to kupiłem D-Linka głownie dlatego że poprzedni model mi działał bez zarzutów. Cóż, widać nowsze mają więcej problemów...

@Patryk
Eee neee, jestem pewien że problem z 2v2 był od zawsze (pamiętam jak koło roku 2000 próbowaliśmy ze znajomymi pograć 2v2, tyle że oni byli w LAN, i mimo długiej walki z siecią nic się nie udało zrobić). Potem ktoś wymyślił żeby Game Data Port poustawiać różne u różnych graczy, i porobić na routerze przekierowania, i od wtedy 2v2 normalnie się grało.
Natomiast zachowanie router'a to zupełnie inna bajka ;>
}
2009-08-14 19:54:20 = cee
{
Mam dl-604 i zachwycony nie jestem... raz na jakis czas twardy reset + wczytanie ustawien musi byc inaczej... robi sobie przerwy podczas pracy(przez minute zero reakcji)...
Widze jednak, ze moglem trafic gorzej :D

@Gyn
A hamachi i granie przez "lana"(nie chce mi sie tlumaczyc, wiesz o co mi chodzi:)) nie rozwiaze problemu? Ja tak gram w wara 3 i dziala calkiem niezle. Proby grania na bnet zakonczyly sie niepowodzeniem(kumpel tez ma d-linka) - w najlepszym wypadku spore lagi.

@Marcin
Zrob backupa ustawien na dysk i jak akurat potrzebujesz tak "zaawansowanych" opcji to wczytuj backupa z dysku. Tak chyba jest sporo szybciej niz przebijac sie przez milion menu i ustawiac wszystko po raz 150...
Ja moj mam podpiety do anteny od radiowki i jakos daje rade nawet podczas burzy.. wiesza sie chyba w losowych momentach;)
}
2009-08-14 21:37:23 = Gynvael Coldwind
{
@cee
Widać co egzemplarz to historia ;>
Anyway, właśnie na Battle.necie najbardziej mi zależy ;>
}
2009-08-19 13:14:22 = cee
{
@Gyn
Ja to bzm nawet powiedzial, ze te urzaqdzenia maja dusze i humory ;)
Jeszcze teraz mi przyszlo do glowy pewne pytanie - probowales wylaczyc firewalla na routerze? On ma tendencje do dosc dziwnego dzialania...
Ostatecznie jak nie uda sie ustawic routera mozesz... zbudowac wlasny :) - jakis stary komp z linuxem, ze 2 karty sieciowe i router jako switch albo duzo kart sieciowych i router na allegro :) Pelna mozliwosc konfiguracji, artykulow w necie na ten temat pewnie sie sporo znajdzie.
}
2009-08-20 07:45:17 = Gynvael Coldwind
{
@cee
Z firewall'em kombinowałem, i nic to niestety nie dało.
Co do 'starego kompa z linuxa', to stoi koło mojej nogi jakiś serwerek, i był on planem zapasowym tak na prawdę. Nie chciałem go co prawda na świat wystawiać, a jedynie kilkoma regułkami iptables trochę zmodyfikować ruch (nawet próbowałem to zrobić w pewnym momencie, ale okazało się to wymagające więcej czasu niż miałem w tamtej chwili hehe).
Na szczęście w końcu downgrade firmware wystarczył ;>
}
2009-08-20 19:39:57 = XANi
{
problem połączeń LAN->WAN->LAN jest prawie wszędzie z tego powodu że praktycznie w każdej konfiguracji (także w 99% HOWTO typu "jak udostępnić internet paru kompom przez linuksa" jest po prostu "zrób SNAT (czy MASQUERADE jak kto woli) na interfejsie do internetu.

To doprowadza do tego że jak masz np. takie przekierowanie na www czy cokolowiek to z punktu kompa który się łączy wygląda to tak
1. Klient wysyła pakiety na zewnętrzny IP np. 192.168.2.2 -> 1.2.3.4
2. Routerek je odbiera i przekierowuje je do wewnątrz NIE zmieniając SNAT (bo to domyślnie robi tylko dla interfejsu zewnętrznego). 192.168.2.2 -> 192.168.2.3
3. Serwer wysyła odpowiedź na adres wewnętrzny klienta 192.168.2.3 -> 192.168.2.2
4. Klient je odrzuca bo oczekiwał ich z IP 1.2.3.4

Rozwiązaniem jest SNAT/MASQ (można powiedzieć ze jest so SNAT z automatycznym łapaniem IP) na każdym interfejsie, w przypadku linuksa wystarczy parę regułek, w przypadku routerka musi to już obsługiwać soft.

Mój router to http://www.interprojekt.pl/wiki/Wiki.jsp?page=ALIX.1D__miniITX + zewnętrzny dysk USB, bez problemu ściąga 50 GB torrenty no i mam na nim co mi się podoba (system na karcie flash 2GB)
}
2009-08-21 07:23:31 = Gynvael Coldwind
{
@XANi
Fajny routerek ;>>>
}
2009-08-21 12:11:30 = Jurgi
{
@Gyn — a nie wiedziałem, że na tym można Lina postawić. Rozejrzę się i jak będzie bardzo user friendly i coś, to może się skuszą kiedyś. Dla samej zabawy raczej nie znajdę czasu.
}

Add a comment:

Nick:
URL (optional):
Math captcha: 7 ∗ 9 + 2 =