Использование подготовленных кем-то IP-листов - плохая идея #50
Replies: 3 comments
-
Автор видимо сам не понял что хотел сказать.
А как иначе я должен достучаться до домена с CDN? |
Beta Was this translation helpful? Give feedback.
-
@Sarabanga
Так и получится если зарезолвить домены c домашней машины и кинуть их в статические маршруты перенаправив к ним трафик через "Нидерланды". Совершенно правильно отмечено, что резолвить домены нужно понимая, что ты делаешь. IP условного
К слову CDN это не только геораспределенная сеть и трафик не всегда идет именно к ближайшему для хоста узлу. Есть еще факторы влияющие на возвращаемый IP-адрес DNS имени к которому CDN отправит клиента в т.ч. например нагрузка на сервер в данный момент времени , настройки безопасности и другие. PS |
Beta Was this translation helpful? Give feedback.
-
Посмотрите в сторону реализации обхода через ip-зоны: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Сказанное ниже относится как к готовым IP-листам, так и к файлам с готовыми маршрутами.
CDN
Многие сервисы и веб-хостинги на которых размещены сайты используют CDN - сеть доставки контента. Таким наиболее распространенным хостером является Cloudflare. Некоторые сервисы используют свои собственные CDN.
В случае использования сайтом/сервисом CDN его IP-адрес будет отличаться для разных устройств (хостов) в зависимости от их геопозиции, текущей нагрузки на сервера, времени суток и еще ряда факторов.
Кроме того, IP-адреса для одного и того же списка доменов, сформированные на одном и том же хосте в разное время, даже спустя всего минуту, так же будут различаться.
Использование разных DNS серверов
Вы не знаете какой DNS сервер использовал тот, кто сделал IP-лист (маршруты).
Для условного
site.com
GoogleDNS вернёт100.20.20.10
, Quad9DNS вернёт30.44.33.77
, CloudflareDNS вернет66.77.22.45
и т.д. (Это пример, не нужно воспринимать его буквально!)Для
site.com
составителю вернулся IP-адрес от GoogleDNS, а когдаsite.com
открывает другой человек, с установленным провайдерским или другим публичным DNS, ему возвращается совершенно другой IP-адрес, маршрута к которому нет.Бывают ситуации, когда на хосте указано несколько DNS, причем от разных сервисов. В этом случае при открытии
site.com
ответ может вернуться от CloudflareDNS с IP-адресом которого нет в маршрутах, а при повторном обращении кsite.com
от GoogleDNS с другим «правильным» и тогда все Ок, а может и от Quad9DNS и тогда снова мимо.Получается такая ситуация: Маршруты добавлены для одного IP, а DNS вернул другой, часть трафика пошла через туннель, часть напрямую, что-то работает, а что-то нет.
Пример для "Antifilter community edition":
Первый список доменов обработан на локальной машине в России, второй на VPS в Нидерландах:
List1.txt
List2.txt
Результаты сравнения двух списков IP-адресов:
В первом списке есть 1099 IP-адресов, которых нет во втором.
Во втором списке есть 993 IP-адреса, которых нет в первом.
1276 IP-адресов присутствуют в обоих списках.
Различие между двумя списками составляет около 63%.
Списки отличаются более чем на половину!!
Т.е. 63% или больше половины IP-адресов, полученных на одной машине окажутся полностью бесполезны на другой. Они будут просто висеть в таблице маршрутизации мертвым грузом, увеличивая время ее обработки роутером и задержки маршрутизации (незначительно, но все же).
Итого:
Резолвить домены в IP-адреса на одной машине с целью использования этого списка на другой не всегда приведет к желаемому результату - не на всех хостах будет работать полноценно проще говоря.
Да это хоть как-то работает и вполне устраивает большинство, но такой подход в купе с его простотой несет в себе и множество минусов.
Варианты решения проблемы:
При наличии роутера с Linux ядром лучше использовать раздельную маршрутизацию на основе доменных списков, разделяя их трафик между тоннелями. Главное преимущество такой схемы в том, что домен резолвится в IP-адрес на конкретном устройстве и удаленный хост 100% будет ему (IP-адресу) соответствовать и обмениваться трафиком через указанного пользователем провайдера или VPN тоннель.
Есть готовые решения для Роутеров на OpenWRT, KeeneticOS, RouterOS и других.
Еще вариант:
Если роутер простой, но к нему можно подключиться по SSH и у вас арендован VPS можно попробовать DNS-RouteSync-Navigator. Но это опять же компромисс, соответствующий ситуации.
Beta Was this translation helpful? Give feedback.
All reactions