WYSOKIE ID MOGA MIEC TYLKO USERS Z ZEWNETRZYNYM IP ALBO Z PRZEKIEROWANYMI PORTAMI. JEŚLI NIE ZALICZASZ SIE DO NICH, KIEDY DOSTAJESZ WYSOKIE ID TO JEST ONO FAKE ( I SZKODZI TRANSEROM)
-ID zostaje przydzielony każdemu klientowi eMule automatycznie przez serwer zaraz po nawiązaniu połączenia i gwarantuje bezproblemową komunikację pomiędzy klientami.
- Wysokie ID oznacza ze port klienta (Standartowo 4662) jest otwarty i dostępny.
- Niskie ID oznacza że port jest zablokowany , nieosiagalny lub że nierozpoznano IP klienta. Przyczyną tego może być firewall(ściana ogiowa) , router albo proxyserwer, NAT
- Niskie ID nieoznacza ze niemożna nic ściągać , tylko będziemy mieć wtedy do dyspozycji mniej źródeł (klienci z LowID nie mogą się połączyć z userami LowID, w przeciwieństwie do userów HighID którzy łączą się ze wszystkimi klientami)
- Ponieważ nieznany jest IP klienta z niskim ID, to komunikacja (wymiana informacji i zapytań o pliki) z innymi klientami musi być prowadzona przez serwer z którym jest połączony emule z niskim ID co obciąża CPU serwera i zmniejsza tym samym ilość użytkowników których mógłby obsługiwac serwer ( ściągamy dane od innych klientów sieci P2P a nie ze serwera !!! )
-lundunum ma patche ktore ograniczaja ilość userów lowid do 20% ogolnej liczby uzytkowników
- Serwery używąjace patch lugdunum ograniczają dlatego ilość klientów z LowID (ograniczenie ilości userów lowid do 20% ogolnej liczby uzytkowników) lub wogóle niedopuszczają do połączenia
- Na pełnych albo przeciążonych serwerach może się takze zdażyć że ważne informacje np. o miejscu w kolejce lub zapytania o pliki mogą sie zgubić co powoduje gorsze kredyty i zmniejsza prędkość downloadu.
- Problem z niskim ID dotyczy tylko wymiany informacji i zapytań o pliki, transfer plików powinien być w porównaniu do HighID niewiele mniejszy (tylko klienci z HighID są wymieniani jako źródła a tym samym w przypadku klienta z LowId ilość dostępnych dla niego źródeł pomniejszona o userów z LowID z którymi nie może się połączyć nie jest znacząco mniejsza niż miałoby to miejsce w przypadku klinta z HighId)
- Zdaza sie też ze pomimo wolnego portu 4662 i poprawnej konfiguracji klient otrzymuje niski ID co jest przeważnie przyczyną źle skonfigurowanych lub przeciażonych serwerów . (zapobiegamy temu zaznacząjąc opcje reconnect on LowId lub ponownie łącząc się na ręcznie na wybrany przez siebie niebciążony server serwer)
- Na tej stronie mozna skontrolowac dostepnosc portow : --->>>>> h**p://www.thedonkeynetwork.com/connection_test
- Jezeli macie wysoki HighID (Niski ID jest poniżej 16777216) to wartość jego niema żadnego wpływu na szybkosc transferu, liczy się tylko sam fakt przynależności do danej grupy HighId bądć LowId
- Żeby obliczyć swój ID na podstawie własnego IP należy wykonać następujace obliczenie:
IP: A . B . C . D ID = A + B *256 + C* 65536 + D *16777216
IP: 213.23.36.138 ID = 213 + 23*256 + 36 *65536 + 138*16777216 = 2317621205
jezeli natomiast posiadamy wewnetrzny adres ip to serwer przydziela nam losowy/niski ID
- Od wersji 23a źródła z niskim ID zostają odzucane żeby zminimalizować obciążenie serwerów. Za wyjątkiem klientów z lowID którzy są połączeni z tym samym serwerem co wasz klient i za wyjątkiem klientów z lowID którzy chcą coś od was zaladować.
- Przy bezpośredniej wymianie źródeł miedzy klientami , klienci lowID zostają pominięci (dlatego zalecane jest dla nich wyłączanie portu UDP)
--------------------------------------------------------------------------------------------------------------------------
PORTY
1.)
Local Port: 4662
Remote Port: kazdy
Protokól: TCP
Kierunek: wchodzacy
Funkcja: Port klienta / polaczenie OD innych klientów
- Ten port mozna zmienic w opcjach emule.(Ustawienia-->Parametry Lacza-->Port klienta)
- Użytkownicy Routerow musza takze zmienic ustawienia (port forwarding) tego portu we
własnym Routerze aby nieotrzymac nizkiej ID.
2.)
Local Port: kazdy
Remote Port: 4662
Protokól: TCP
Kierunek: wychodzacy
Funkcja: Port klienta / Polaczeni DO innych klientów
- 4662 jest standartowym ustawieniem tego portu, ale ze mogl zostac on w innych klientach emule zmieniony
należy ustawic w konfiguracji Firewalla przy "Remote Port" nie 4662 tylko "kazdy".
3.)
Local Port: 4672
Remote Port: kazdy
Protokól: UDP
Kierunek: wchodzacy
Funkcja: Wymiana zródel pomiedzy klientami
- Ten port mozna zmienic w opcjach emule.(Ustawienia-->Parametry Lacza-->Port UDP).
- Po zmianie tego portu nalezy takze dopasowac ustawienia Routera.
- W przypadku gdyby port forwarding niebyl mozliwy nalezy deaktywowac ten port w opcjach emule.
4.)
Local Port: kazdy
Remote Port: 4672
Protokól: UDP
Kierunek: wychodzacy
Funkcja: Wymiana zródel pomiedzy klientami
- 4672 jest standartowym ustawieniem tego portu, ale ze mogl zostac on w innych klientach emule zmieniony
nalezy ustawic w konfiguracji Firewalla przy "Remote Port" nie 4672 tylko "kazdy".
5.)
Local Port: kazdy
Remote Port: 4661
Protokól: UDP
Kierunek: wychodzacy
Funkcja: Polaczenie z serwerem
- 4661 jest standartowym portem do polaczenia sie z serwerem , Administratorzy serwero zmieniaja czesto jednak
ten port i dlatego nalezy w ustawieniach Firewalla Remote Port ustawic na "kazdy"
6.)
Local Port: kazdy
Remote Port: 4665
Protokól: UDP
Kierunek: wychodzacy
Funkcja: Wyszukiwanie zródel na serwerze
- Na serwerach ktore uzywaja do polaczen standartowego porta 4661 jak w punkcie 5 opisane , port do
wyszukiwania źródeł automatycznie ustawiony jest na 4665.Serwery ktore zmieniaja port połączeniowyna inny maja automatycznie
port do wyszukiwania źródeło 4 wyzszy niz port połączeniowy. (Np.: Placzeniowy: 5000 Wyszuukiwanie źródeł 5004)
--------------------------------------------------------------------------------------------------------------------------
PRZEKIERUNKOWANIE PORTÓW
Jeżeli mamy wewnetrzne IP , możemy uzyskać wysokie ID za pomocą przekierunkowania portów na serwerze udostepniajacym internet na nasze IP. Aby tego dokonać należy mieć jednak dostęp do plików konfiguracyjnych serwera.
Po pierwsze musimy wiedzieć na czym mamy oparty NAT (maskarada MASQ), są w zasadzie 2 popularne mozliwości, ipchains lub iptables, nie istnienieje mozliwość polaczenia ich. Ipchains jest juz starym rozwiązaniem więc raczej nikt z tego nie bedzie korzystal, ale opisze i tak. Dla ipchains sprawa wyglada tak ze trzeba sobie zalatwic dodatkowy pakiet ipmasqadm, ale zakladam ze on jest juz na serwie:
ipmasqadm autofw -A -v -r udp 4662 4662 -h ipwewnetrzne
iptables -t nat -A PREROUTING -p udp lub tcp --dport ktoryPort -i interfejs(eth0 lub ppp0 zalezy od rodzaju polaczenia) -j DNAT --to ipwewnetrzne:port
-----------------------------------------------------------------------------------------------
WPROWADZENIE
Po pierwsze musimy miec uprawnienia administratora na serwerze (roota miec ), po pierwsze sprawdzamy czy dostepne sa komendy ipchains -L i iptables -L Jezeli przy ktorejs z nich wywala nam blad ze nie komatybilne polecenie znaczy ze musimy uzyc tego drugiego czyli jak wywala blad przy ipchains to uzywamy iptables, i viceversa.
Wersja dla iptables:
Dopisujemy w /etc/rc.d/rc.local (jak nie ma to tworzymy)
nastepujaca linijke
iptables -t nat -A PREROUTING -p tcp -d IPZEWNETRZNE --dport 4662 -j DNAT --to IPWEWNETRZNE:4662
i mamy juz high id
Podobnie sprawa wyglada przy IPchains, z tym ze musimy se sciagnac ipmasqadm, znajdzemy go np w rpmfind.net sciagamy najlepiej lynxem, mgetem czy czym tam chcecie.
regulke dopisujemy tez w rc.local
ipmasqadm autofw -A -v -r tcp 4662 4662 -h IPWEWNETRZNE
-----------------------------------------------------------------------------------------------
IPTABLES
Dla osób posiadajacych router pod linuxem (w moim przypadku Slackware 9.0) podaje przykladowa konfigracje firewalla, umozliwiajaca uzyskanie HIGHid, kernel 2.4.x, iptables oczywiscie:
LAN_IP_NET='192.168.0.1/24'
LAN_NIC='eth0'
WAN_NIC='ppp0'
IPTABLES='/usr/sbin/iptables'
$IPTABLES -A INPUT -p tcp --dport 4661 -j ACCEPT
$IPTABLES -A PREROUTING -t nat -p tcp -i $WAN_NIC --dport 4661 -j DNAT --to 192.168.0.200:4661
$IPTABLES -I FORWARD -p tcp -i $WAN_NIC --dport 4661 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A PREROUTING -t nat -p tcp -i $WAN_NIC --dport 4662 -j DNAT --to 192.168.0.200:4662
$IPTABLES -I FORWARD -p tcp -i $WAN_NIC --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4665 -j ACCEPT
$IPTABLES -A PREROUTING -t nat -p udp -i $WAN_NIC --dport 4665 -j DNAT --to 192.168.0.200:4665
$IPTABLES -I FORWARD -p udp -i $WAN_NIC --dport 4665 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT
$IPTABLES -A PREROUTING -t nat -p udp -i $WAN_NIC --dport 4672 -j DNAT --to 192.168.0.200:4672
$IPTABLES -I FORWARD -p udp -i $WAN_NIC --dport 4672 -j ACCEPT
jest to przykladowa konfiguracja dla routera neostrady, neostrady+, sdi, itp. (interfejs ppp0), oraz sieci lokalnej na interfejsie eth0, w przykladzie dostep do portow 4662, 4672, 4665 i 4661 posiada jedynie klient o adresie IP=192.168.0.200, rekonfiguracja dla wlasnych potrzeb jest banalna, oczywiscie zakladam ze router ma prawidlowo skonfigurowany NAT dla LAN oraz poprawnie dzialajacy firewall, sam skrypt powinno sie skopiowac do katalogu /etc/rc.d, nadac mu odpowiednia nazwe np.: rc.emule, obdarzyc odpowiednimi atrybutami i spowodowac jego uruchamianie przy starcie systemu dodajac go do pliku /etc/rc.d/rc.local
------------------------------------------------------------------------------------------------
ipchains
Podaje wzor jak skonfigurowac ipchains w celu przekierowania portow z routera do komputera w sieci LAN ( Debian z kernelem 2.2 )
WZÓR:
ipchains -A input -p TCP -d $ZEWN_IP $ZEWN_PORT -j ACCEPT
ipmasqadm portfw -a -P tcp -L $ZEWN_IP $ZEWN_PORT -R $WEW_IP $WEW_PORT
A teraz przykladzik
Zakladam ze nasz adres zewnetrzny to 212.191.160.100 a wewnetrzny to 192.168.0.100
ipchains -A input -p TCP -d 212.191.160.100 4661 -j ACCEPT
ipmasqadm portfw -a -P tcp -L 212.191.160.100 4661 -R 192.168.0.100 4661
dla protokolu udp:
ipmasqadm portfw -a -P udp -L 212.191.160.100 4672 -R 192.168.0.100 4672
Wielkos liter w protokole przy ipmasqadm jest wazna musza byc z malej litery!
Jesli wszystko zrobilismy zgodnie ze wzorem to powinnismy sie cieszyc high ID w naszym mulku bo o to wlasnie chodzilo !!
PS: ipmasqadm mozna sciagnac np z *www.debian.org
-----------------------------------------------------------------------------------------------
Router sprzętowy bazowanych na Argusie EA2104 (jak np. Asmax BR-804). Tutaj forwarding się co prawda nazywa co prawda Virtual Server, ale na jedno wychodzi.
Na początku trzeba się oczywiście zalogować do routera jako admin, czyli w przeglądarce podać h**p://192.168.2.1/ (standardowe ustawienia) i podać odpowiednie hasło, które zakładam lokalny admin zna :]. Najpierw u góry zakładka Advanced Settings, potem po lewej Virtual Server.
Wpis DMZ zostawiamy w spokoju (powinno być 0). Jeśli chcemy skonfigurować forwarding dla usera, który w sieci wewnętrznej ma numerek 192.168.2.11 i chce śmigać mułkiem na standardowych portach 4662 i 4672, to po prostu wpisujemy w pierwszej linii w kolejnych polach odpowienio 11, 4662 i 4662, a w drugiej 11, 4672 i 4672 - i oczywiście potem Submit, a na końcu Save & Restart.
I od tej pory powinno działać bez żadnych LowID .
A jeśli w sieci wewnętrznej więcej userów chce z mułka korzystać, to po prostu w analogiczny sposób dodajemy ich IP i przydzielamy im jakieś dwa kolejne wolne porty (np. 4663 i 4673 - jak kto lubi) - i po zmianie standardowych portów na te nowo przyznane w konfiguracji swojego mułku kolejny lokalny osioł może śmigać.
Postępowanie z ruterami
OGÓLNE
opcja DHCP - Dynamic Host Protocol Configuration powinna zostać wyłączona. Przydziel stałe IPs każdemu klientowi w sieci.Ustawiamy to w Connections Network Window -> Connection SIECI LAN -> Properties -> TCP / IP. Wyłączamy automatic IP assignment i wchodzimy do IP w zasięgu 192.168.xxx.xxx (w zależności od typu rutera ustawiamy różne zakresy IP).
Następnie wchodzimy do opcji IP Subnet Mask pole automatycznie zmienia na 255.255.255.0.
Ostatni krok to wejście wejście do Iyour router's IP as Standard Gateway
------------------------------------------------------------------------------------------------
przkład dla SAR7x5
np.http://192.168.7.1

wchodzimy do Advanced Configuration

wybieramy Security/NAT.

następnie

Wybieramy Advanced NAT Configuration pod ppp-0.

i

mapujemy porty przez Add Reserved Mapping
Wykonujemy je dwa razy, raz dla portu 4662 TCP i raz dla portu 4672 UDP.

Aby zweryfikować, swój IP idź do Windows Start Menu -> Settings -> Network Connection. Prawy przycisk myszy na LAN connection i kliknij w Properties. Wybierz Internet protocol (TCP/IP) I kliknij w Properties. Okno pokazuje twój aktualny adres IP
na podstawie FAQ http://www.emule-project.net/