Giter Club home page Giter Club logo

Comments (11)

ValdikSS avatar ValdikSS commented on August 26, 2024

Задумывался о таком. Нужно еще отключать IPv6, если обнаружен Teredo (2001::/32) и 6to4 (2002::/16)

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

К внешним зависимостям как относитесь? Было бы конечно проще вытянуть https://pypi.python.org/pypi/ipwhois чтобы не писать свой RDAP парсер для того чтобы вытягивать принадлежность сети к ASN потом. И заодно использовать более свежие данные из RIR для других частей кода где это ввиде хака

from blockcheck.

ValdikSS avatar ValdikSS commented on August 26, 2024

Не знаю, насколько надежно проверять AS. Могут быть у провайдера разные AS для IPv4 и IPv6? Может, лучше проверять страну, или вовсе ограничиться проверкой на Teredo и 6to4?
На сервер редко приходят отчеты с не-провайдерским и не-Teredo IPv6. Думаю, люди запускают программу с --no-report или отключают туннель.

IPv6 поддерживают только тесты DNS и HTTP. Проверка сертификата HTTPS и обхода DPI работает только по IPv4 (см. #52)

К внешним зависимостям как относитесь?

Нормально, если они pure python.

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

Не знаю, насколько надежно проверять AS. Могут быть у провайдера разные AS для IPv4 и IPv6?

Надежно 100%, разные ASN для разных address family не дает никаких фич. Тем кому нужны разные ASN в пределах оператора все равно используют IPv4/IPv6 локальной AS, это банально удобное и проще.

Может, лучше проверять страну, или вовсе ограничиться проверкой на Teredo и 6to4?
На сервер редко приходят отчеты с не-провайдерским и не-Teredo IPv6. Думаю, люди запускают программу с --no-report или отключают туннель.

Teredo и 6to4 и не выбирает адреса в браузерах chrome/firefox, только если удаленный сервер находиться в той же подсети, ввиду приоритетов выбора source адреса
https://tools.ietf.org/html/rfc6724#section-2.1

      Prefix        Precedence Label
      ::1/128               50     0
      ::/0                  40     1
      ::ffff:0:0/96         35     4
      2002::/16             30     2
      2001::/32              5     5
      fc00::/7               3    13
      ::/96                  1     3
      fec0::/10              1    11
      3ffe::/16              1    12

В любом случае их легко определять и отключать при необходимости

from blockcheck.

ValdikSS avatar ValdikSS commented on August 26, 2024

Надежно 100%

Нашел тест, где у человека разные ASN для IPv4 и IPv6, но IPv6, с большой долей вероятности, провайдерский.

IP: 109.167.200.0/24, IPv6: 2a02:2510:2:2:a617::/48, провайдер: WestCall Ltd./ ВестКолл Домашние сети

109.167.192.0/18 AS25408
2a02:2510::/32 AS44068

Teredo и 6to4 и не выбирает адреса в браузерах chrome/firefox

Blockcheck не полагается на getaddrinfo, а получает A и AAAA-записи через Google DNS-over-HTTPS API, затем тестирует IPv4 и IPv6 отдельно, открывая сокет на IP-адрес. Мне приходят результаты тестирования с Teredo-адресами, и сейчас программа их воспринимает, будто это обычный рабочий IPv6-адрес.

from blockcheck.

ValdikSS avatar ValdikSS commented on August 26, 2024

В догонку:
IP: 95.28.188.xxx, IPv6: 2001:67c:2b8c:xxxx:xxxx:xxxx:xxxx:xxxx, провайдер: JSC Beeline-Samara/ Билайн

2001:67c:2b8c::/48 AS33842
95.28.188.0/24 AS8402

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

Нашел тест, где у человека разные ASN для IPv4 и IPv6, но IPv6, с большой долей вероятности, провайдерский.

IP: 109.167.200.0/24, IPv6: 2a02:2510:2:2:a617::/48, провайдер: WestCall Ltd./ ВестКолл Домашние сети

Две разные автономки никак не связанные с друг с другом, у них даже взаимоотношений нет судя по транзиту. Разные ASN имеет смысл когда у тебя есть sub-ASN (купил сеть допустим) и ты ей даешь IPv6 адреса из своей ASN (или наоборот) основной, но тогда бы это было видно в bgp (анонсы были бы за первой AS). И я точно знаю что у ВестКолл IPv6 даже близко не в продакшене для конечных юзеров.

Можно PTMU проверять, но это только зря время тратить

Второй приведенный пример, это тунель, я знаю 100% потому что мой.

Blockcheck не полагается на getaddrinfo, а получает A и AAAA-записи через Google DNS-over-HTTPS API, затем тестирует IPv4 и IPv6 отдельно, открывая сокет на IP-адрес. Мне приходят результаты тестирования с Teredo-адресами, и сейчас программа их воспринимает, будто это обычный рабочий IPv6-адрес.

Да я в этом контексте не подумал, надо конечно добавить список игнорируемых сетей

from blockcheck.

ValdikSS avatar ValdikSS commented on August 26, 2024

В таком случае, могу только предположить, что у человека два провайдера: IPv4 от одного, IPv6 от другого.

Делайте, если хотите. Только сделайте опцию --force-ipv6.

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

Как я уже выше сказал у него может быть обычный IPv6inIPv4 туннель. Попробую сделать

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

ASN будем печатать текстом? юзеру может быть и не к чему, а для статистики удобно наврное было бы чтобы сравнить

from blockcheck.

nshopik avatar nshopik commented on August 26, 2024

28c7b12

from blockcheck.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.