Замедление Twitter в России

Как пояснил РБК источник в одном из крупных интернет-провайдеров, Роскомнадзор может самостоятельно ограничить скорость доступа к Twitter через оборудование, установленное на сетях операторов в рамках так называемого закона «о суверенном Рунете».

Провайдер «ЭР-Телеком Холдинг» сообщил, что ограничение скорости работы Twitter в России технически реализуемо. В компании подтвердили, что это может быть осуществлено независимо от операторов связи. «К сожалению, это влияет на качество предоставляемых пользователям услуг. В случае с Twitter могут незагружаться изображения или видеоконтент», — пояснили в «ЭР-Телеком Холдинг».

Может, какие-нибудь хитрости, что “шейпим все, если обращался на abs, шейпим 50%, если нет”?
Ну и с учетом того, что это РКН, можно ожидать, что 50% - это “есть два стула, мы пошейпили один”.

Алсо, МГТС, Москва, твиттер работает как работал и через приложение на мобилках, и через сайт на десктопе.

Ртк, Смоленск, магистральный — 128 кбит/с.

Итак, ограничение скорости осуществляется по именам доменов, через DPI. Причем не только доменов twitter непосредственно, но и CNAME-имен Akamai.
В частности, замедление видеоконтента наблюдается на video.twimg.com, eip-ntt.video.twimg.com.akahost.net, video.twimg.com.eip.akadns.net, но не на более технических доменах, таких как cs531.wpc.edgecastcdn.net.

При обращении к IP-адресу напрямую, без SNI, скорость высокая.

Пассивный обход DPI помогает обходить замедление (использую nfqws).

Также шейпят релизы Github (домен github-releases.githubusercontent.com). По домену. Это не техническая ошибка.
https://habr.com/ru/news/t/546280/#comment_22785976

Подтверждаю: низкая скорость вызвана этим новым ограничением Роскомнадзора. Это не ошибка, это намеренное ограничение конкретно домена github (github-releases.githubusercontent.com).
Как удостовериться:

1.Добавьте в hosts

   185.199.108.154 govno.com
   185.199.108.154 github-releases.githubusercontent.com

(это один из оригинальных IP-адресов github-releases.githubusercontent.com)

  1. Через curl выплоните:
    curl -o /dev/null -v -L https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 — низкая скорость

В консоли увидите перенаправление на домен github-releases.githubusercontent.com по длинной ссылке. У меня она следующая:
https://github-releases.githubusercontent.com/15045751/63484f00-781d-11eb-826a-890a00f7d1e5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210310%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210310T091425Z&X-Amz-Expires=300&X-Amz-Signature=18d355b70d3eb3ce2daf66bd357dd5074afa215dd48686f17142ff30cf4efbd0&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=15045751&response-content-disposition=attachment%3B%20filename%3Ddocker-compose-Linux-x86_64&response-content-type=application%2Foctet-stream

Попробуйте её скачать — качается медленно.
Теперь замените в ссылке github-releases.githubusercontent.com на govno.com — качается быстро.

curl -o /dev/null -H “Host: github-releases.githubusercontent.com” -k -vL ‘https://govno.com/15045751/63484f00-781d-11eb-826a-890a00f7d1e5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210310%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210310T091425Z&X-Amz-Expires=300&X-Amz-Signature=18d355b70d3eb3ce2daf66bd357dd5074afa215dd48686f17142ff30cf4efbd0&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=15045751&response-content-disposition=attachment%3B%20filename%3Ddocker-compose-Linux-x86_64&response-content-type=application%2Foctet-stream

Ограничение по конкретному домену. Это не ошибка.

Похоже, отключили шейпер вообще. И гитхаб быстро грузит, и видео с твиттера на полной скорости грузится.

Пока еще ограничение было, успел засечь такую картинку.

тестировал на
https://video.twimg.com/ext_tw_video/1241417690197131264/pu/vid/12000/15000/640x360/X4VMbImfbf7u-drH.ts
https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64

sknt - суверенного DPI нет - все быстро
RT - туда еще не успели поставить суверенный - все быстро
tiera - суверенный DPI - твиттер быстро, гитхаб от 2 до 10 кб/с

nfqws проверить не успел. вскоре шейпер выключили

У меня abs.twimg.com все еще режут:

time_connect: 0.230977s
time_namelookup: 0.130364s
time_pretransfer: 0.441102
time_starttransfer: 0.543505s
time_redirect: 0.000000s
time_total: 80.341080s

pbs - аналогично

▲ ~ curl -Lo /dev/null -skw "\ntime_connect: %{time_connect}s\ntime_namelookup: %{time_namelookup}s\ntime_pretransfer: %{time_pretransfer}\ntime_starttransfer: %{time_starttransfer}s\ntime_redirect: %{time_redirect}s\ntime_total: %{time_total}s\n\n" https://pbs.twimg.com/media/EwHAmncXIAMgPJy\?format\=jpg\&name\=small

time_connect: 0.097993s
time_namelookup: 0.024220s
time_pretransfer: 0.253719
time_starttransfer: 0.329501s
time_redirect: 0.000000s
time_total: 3.947705s

Еще снова режутся релизы гитхаба, 117 кбит/с

pbs

time_connect: 0.042448s
time_namelookup: 0.022455s
time_pretransfer: 0.101030
time_starttransfer: 0.122412s
time_redirect: 0.000000s
time_total: 7.648320s

видео качаются на скорости 8kb/s

Ага, включили заново. Github опять замедляется.

Записываю наглядное видео.

У меня помимо github-releases.githubusercontent.com судя по всему режется ВЕСЬ *.githubusercontent.com, включая картинки, аватарки и файлы из гистов.

▲ ~ curl -Lo /dev/null -skw "\ntime_connect: %{time_connect}s\ntime_namelookup: %{time_namelookup}s\ntime_pretransfer: %{time_pretransfer}\ntime_starttransfer: %{time_starttransfer}s\ntime_redirect: %{time_redirect}s\ntime_total: %{time_total}s\n\n" https://gist.githubusercontent.com/brettlangdon/85942af486eb79118467/raw/2a7409cd3c26a90b2e82bdc40dc7db18b92b3517/01151_inthedeep_2560x1600.jpg

time_connect: 0.109184s
time_namelookup: 0.017873s
time_pretransfer: 0.295267
time_starttransfer: 0.492951s
time_redirect: 0.000000s
time_total: 58.627166s
time_connect: 0.082141s
time_namelookup: 0.041076s
time_pretransfer: 0.175151
time_starttransfer: 0.448990s
time_redirect: 0.000000s
time_total: 63.107377s

Действительно.
nfqws с --dpi-desync=fake помогает от суверенной блокировки сайтов, но не помогает от шейпинга
зато
nfqws с --dpi-desync=fake,split2 помогает и от того, и от другого

провайдер tiera

Подтверждаю: на моём провайдере zapret и GoodbyeDPI не могут обойти блокировки сайтов, но обходят ограничение скорости.
С определенной долей уверенности это говоорит о наличии разного оборудования DPI на пути пакетов.

На заметку: TTL быстрых и замедленных пакетов одинаков.

Ещё потенциально может быть интересно проверить, что будет если послать тот же SNI на свой сервер (т.е. на сервер не в подсетях Twitter, а других). На сервере можно поднять NAT в сторону твиттера или socat’ом проксю. Если трафик будет троттлиться - можно будет увидеть, что происходит в pcap на другой стороне соединения и, возможно, что-то из этого понять. А если не будет - то Твиттер получает тривиальную конструкцию для убегания всем миром :slight_smile:

Валдик совершенно прав. Блокировка идет по SNI
Прописал в hosts github-releases.githubusercontent.com на IP своего VPS
Создал там файл на 100 mb. Дернул по https через curl -k (игнорировать сертификат)
Медленно. С разбиением запроса через nfqws - быстро

Прикольный артефакт. Запишешь pcap с обоих сторон “хорошей” и “плохой” сессии? Ну не 100 MiB, наверное, поменьше… Хватит ли мегабайта-двух для наблюдения эффекта?

Красноярск, Orion Telecom через магистальщика ertelecom аналогично режет gist.githubusercontent.com

Я провёл больше тестов. Сообщаю вам первым. Сравнение доменов происходит по подстроке, и блокируется строка “t.co” (короткий домен твиттера)

Любой домен, содержащий в каком-либо месте в названии домена строку t.co, замедляется.

У Github домен, на котором видно замедление — http://githubusercontent.com

githubusercontent.com