-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Throttling→blocking of YouTube in Russia, 2024-07-12 #382
Comments
Thanks for the excellent summary. The question is: how can one bypass the interference? |
It seems that GoodbyeDPI defaults are sufficient. But you likely also have to disable Kyber key exchange in the browser, because Kyber may push the SNI into a second TCP segment, where TSPU will find it but GoodbyeDPI currently does not. https://ntc.party/t/8074/41 2024-07-15
EDIT: Although I'm not sure, this post from 2024-08-02 says that TSPU had started blocking connections to googlevideo.com IP addresses from which it is not able to extract an SNI.
|
@wkrp, great summary, you're doing the work I have no time for. Let me add and correct you just a bit:
|
SUBDOMAIN.googlevideo.com seems to be mirrored at SUBDOMAIN.c.drive.google.com |
Nah, unfortunately GGCs don't have certificate for this domain.
|
@ValdikSS I'm getting that as well now, which is quite strange. It seems like some subdomains are using a different certificate to others I assume more of the domains listed in your message work, but I don't have time to test them right now Side note: the mn= parameter lists a fallback subdomain after the EDIT: SUBDOMAIN.c.2mdn.net also works, although that domain may trigger some adblockers |
Today there is news and user reports that YouTube is no longer just throttled but blocked, with at least the following domain names now being blocked by SNI:
The posts at NTC that report the blocking start at around 2024-08-08 07:00.
Meduza has stories in Russian and English, with user testimonials and workarounds. YouTube перестал открываться в России (archive)
«Он мертв, не грузит вообще» Читатели «Медузы» — о замедлении (а может, и блокировке) ютьюба. И о том, какими методами они с этим справляются (есть полезные советы) (archive)
YouTube has suddenly stopped working in Russia. Meduza’s readers describe how they’re handling the loss of the world’s most popular video streaming service. (archive)
|
I ran some measurements. Blocking seems to happen on residential ISPs only. Here are the results: Data: results_direct.csv This was done measuring successful TLS handshakes over TCP only. QUIC was not tested. IPs were pre-resolved, DNS was not tested. |
Upon further investigation, I believe the inconsistent results for some domains on the residential networks are the effect of throttling, not blocking. Below we look at 4 measurements of The JSON files show network actions, like read and write, during the TLS handshake. Field In this case, they all successfully completed the TLS handshake. The timeout happened in the data transfer part ot the connection. However, notice how the the first read took way longer on examples #3 and #4. On #4, the first read took over 1.4s, and the third read took 2s! This is an indication that the handshake is being throttled. Likely packets are being dropped or held. The total times to complete the TLS handshakes were 0.43s, .65s, 1.32s and 5s. Besides the long time to complete reads, the failure cases are also reading less data in each read than in the success cases. This aligns with TCP typical behavior in reaction to packet drops. Measurements:
You can see |
Some context from a Russian YouTuber: https://www.youtube.com/watch?v=DK16f-WEpRQ |
说起来,中国并没有封死 Cloudflare,而是仅阻断部分 SNI,以及有时会阻断 WSS 等有代理特征的连接,对它的 QUIC 似乎没有明显封锁,那么我有个大胆的想法是手动 ECH:针对被代理的 QUIC 连接只代理握手,剩下的可以直连 Cloudflare 同一 IP Speaking of which, China doesn't block Cloudflare, but only blocks some SNIs, and sometimes WSS and other proxy-characterized connections, and there doesn't seem to be any significant blocking of its QUIC, so I've got a bold idea for a manual ECH: Proxy only the handshake for proxied QUIC connections, and then the rest can be directly connected to the same IP as Cloudflare. |
This is from Copilot: To connect to an HTTPS resource using a SAN (Subject Alternative Name) certificate with curl, you can specify the IP address for the connection and set the Host header to match the domain name in the SAN certificate. Here's how you can do it: Step-by-Step Guide
Example Command Using this approach in my experimental YouTube player with modified PyTube, everything works as expected, but there are no SNI values. |
Roscomnadzor has blocked other SNI to GGC, apparently to prevent GoodbyeDPI/zapret from working with default configuration. Some points got the entire TLS traffic blocked, regardless of SNI. |
There are two long threads at NTC about throttling of YouTube video playback in Russia since 2024-07-12.
Technical thread: Замедление YouTube в России YouTube slowdown in Russia
Discussion thread: Обсуждение: Замедление YouTube в России Discussion: YouTube slowdown in Russia
From what I can gather, the throttling is triggered by an SNI match of
*.googlevideo.com
in TLS or QUIC. (Which indicates it is targeted at video download/playback, not the web UI of youtube.com.) You can use a different SNI with a Google server and avoid throttling, or use agooglevideo.com
with a non-Google server and still get throttled. The prevalence of throttling isnot uniform(see clarification) throughout the country, and has apparently been expanding progressively. The throttling is being done on TSPU devices by packet dropping, perhaps of client→server ACK packets. The effect on performance is variable and depends on a number of technical and configuration factors: web browser, curl, or yt-dlp; HTTP/1.1, HTTP/2, or HTTP/3 (QUIC); and specifics of the browser or TLS stack. At first, starting 2024-07-12, only TCP-based transfers were affected (HTTP/1.1 and HTTP/2) and QUIC was not affected. On 2024-07-18, QUIC started to be affected.The slowdown of YouTube was acknowledged from the beginning, but at first the government and ISPs claimed that the cause was high demand and inadequate maintenance of Google infrastructure, such as Google Global Cache. See, for example, this 2024-07-12 Meduza article (archive) and this Rostelecom statement (archive):
But just today, authorities acknowledged that the throttling was intentional, with a target transfer rate of 128 kbit/s.
Российские власти уведомили провайдеров о замедлении ютьюба до 128 килобит в секунду (archive) Russian authorities notified providers about the slowdown of YouTube to 128 kilobits per second
Russian authorities inform local Internet service providers that most YouTube access is now capped at a piddling 128 kbps (archive)
Past documentation on throttling of twitter.com and other sites in Russia in 2021 and 2022:
The text was updated successfully, but these errors were encountered: