CorralPeltzer / newTrackon

newTrackon, a public open BitTorrent trackers monitoring tool
https://newtrackon.com
MIT License
599 stars 58 forks source link

Falsos IPv6 #31

Closed OscarReyesLeon closed 5 years ago

OscarReyesLeon commented 6 years ago

Miguel.

Como condición para que un tracker pueda tomar como online es que responda en IPv4.

Si el tracker es IPv4 es lo normal, si el tracker es Dual Stack se necesita recibir una respuesta en IPv4 y la respuesta en IPv6 se omite o no se toma en cuenta.

El problema sucede que un "servidor" puede tener una conexion en IPv6 o en IPv4/IPv6 y el software del tracker puede solo comprender el IPv4, por lo tanto solo responderá en IPv4.

Causa confución por que los los usuarios creemos que tiene soporte para IPv6. Esa situación se da cuando lo tracker usan OpenTracker en modo IPv4 o XBTT entre otros software.

Como ejemplo de tracker con conexión IPv6 y que solo pueden comprender el IPv4 esta: udp://tracker.torrent.eu.org:451/announce http://torrentsmd.eu:8080/

A diferencia de trackers que trabajan el DualStack correctamente tanto en conexion como en software son: http://0d.kebhana.mx:443/announce http://alpha.torrenttracker.nl:443/announce

Para evitar tener esa confución seria recomendable verificar que tambien sean capas de responder peer6

CorralPeltzer commented 6 years ago

Hola, Oscar. Comprobar que cada tracker responda correctamente en absolutamente todas las IPs a las que resuelve sería bastante complejo de hacer respetando el intervalo mínimo que ponen los trackers. Ahora que hay soporte completo para IPv6, y ya que Linux da preferencia a IPv6 sobre IPv4, voy a implementar el que en https://newtrackon.com/raw se pueda ver la IP contactada. Por lo tanto, si un tracker resuelve tanto a IPv6 como a IPv4 pero en https://newtrackon.com/raw aparece la IPv4, se puede dar por hecho que la IPv6 no funciona correctamente. Además de eso, marcaré en la tabla principal en negrita u otro color la última IP contactada para ofrecer una información más visual.

OscarReyesLeon commented 6 years ago

Hola Miguel, me da mucho gusto que estes al pendiente de tu proyecto.

A lo que me refiero es que hay tracker que tienen disponible una conexión IPv6 pero no manejan el campo peers6, por lo tanto solo pueden procesar IPv4 como es el caso de estos dos trackers.

17:26:52 UTC udp://ipv6.tracker.harry.lu:80/announce 2001:bc8:4700:2300::2:30b Working {'interval': 1800, 'leechers': 0, 'peers': [{'IP': '32.1.25.240', 'port': 5}, {'IP': '74.231.84.0', 'port': 511}, {'IP': '254.126.50.7', 'port': 30461}], 'seeds': 1}

17:24:59 UTC udp://ipv6.open-internet.nl:6969/announce 2001:9a8:0:e8::4 Working {'interval': 1975, 'leechers': 0, 'peers': [{'IP': '32.1.25.240', 'port': 5}, {'IP': '74.231.84.0', 'port': 511}, {'IP': '254.126.50.7', 'port': 30461}], 'seeds': 1}

eso es por que usan el software de OpenTracker en modo IPv4 (default) (Se podria decir que la conexión se establece en IPv6 pero en realidad nos engañan por que las ip que reciben y responden solo son en IPv4, o sea, el campo peers)

--

Por ejemplo, en estos dos tracker usan el campo peers y peers6 por lo que son completamente compatibles de responder en IPv6 y no solo se limitan a tener una conexión (estos usan Chihaya)

17:30:59 UTC http://0d.kebhana.mx:443/announce 51.254.142.9 Working {'complete': 1, 'incomplete': 0, 'interval': 1800, 'min interval': 900, 'peers': '', 'peers6': ' \x01\x19ğ\x00\x05JçT\x00\x01ÿş~2\x07\x1aá'}

7:30:14 UTC http://t.nyaatracker.com:80/announce 51.38.230.101 Working {'complete': 1, 'incomplete': 0, 'interval': 1800, 'min interval': 1800, 'peers': '', 'peers6': ' \x01\x19ğ\x00\x05JçT\x00\x01ÿş~2\x07\x1aá'}


Por otro lado; si el tracker ocupa el software de OpenTracker en modo IPv6 este recibe y responde el campo "peers6" pero omite el campo "peers", El programador explico que el no ve útil que un cliente IPv4 reciba peers6 entonces programo su software para manejar dos nubes independientes (ipv4 e ipv6) (a diferencia de chihaya que puede responder ambos campos en una sola respuesta).

NewTrackon solicitabá el campo "peers" como obligatorio, aun lo seguirá solicitando? Ó en caso que sea un Tracker solo IPv6, solo con el campo peers6 es suficiente?.

Gracias Miguel. Oscar Reyes León.

CorralPeltzer commented 6 years ago

Vale, ahora entiendo mejor. La mejor solución que veo para esta ambigüedad sería crear una nueva columna en la tabla principal llamada "IPv6 peers" donde se especifica si el tracker devuelve pares IPv6 o no. Lo implementaré a lo largo de agosto.

OscarReyesLeon commented 6 years ago

Miguel, me comuniqué con Harry y creo que me hizo ver lo siguiente. La version 1.x de chihaya siempre responde el campo peers y el campo peers6.

Pero la versión 2.x solo responder el campo que se le pregunta, si recibe una IPv6 responde el campo peers6 y omite el campo peers y viceversa; al menos que se le este mandando las dos IP (dualStack)

http://bittorrent.org/beps/bep_0007.html

Entonces creo que NewTrackon en su solicitud no esta incluyendo el campo peers6 por lo tanto los tracker omiten el campo peers6.

Saludos. ORL

CorralPeltzer commented 6 years ago

Muchas gracias por el aviso, esta semana añado el parámetro a la petición.

CorralPeltzer commented 5 years ago

Después de mejorar el procesado de respuestas, https://newtrackon.com/raw, veo que solo hay 3 trackers que responden con el campo 'peers6':

http://t.nyaatracker.com:80/announce https://tracker6.lelux.fi:443/announce http://torrent.nwps.ws:80/announce

Los trackers UDP responden de acuerdo con el protocolo en el que son contactados. Siendo tan pocos los trackers HTTP que responden con 'peers6', no creo que merezca la pena crear una columna en la tabla con esta información.