Google частично недоступен: что видим и как обойти

в 10:17, , рубрики: Песочница, метки: ,

Сегодня с утра обнаружил, что не могу войти на Gmail. В Google+ — тоже, но поиск работает нормально. С телефона при этом все работало, и приложение, и веб-интерфейс.

Решение нашлось, кому не интересна методология — оно в самом конце.

Гугление показало, что я такой не один. Сайтик оказался (не сочтите за пиар) полезен, на карте отчетливо видно, что под проблему попали в России и СНГ.

Краткое исследование дало понять некоторые интересности.

Например, что серверы гугла пингуются, но с 80-го порта ничего не отвечают.

Сперва соединялись, но молчали, затем перестали соединяться вообще.

$ curl mail.google.com
curl: (7) Failed to connect to mail.google.com port 80: Connection timed out

$ traceroute -n mail.google.com
...
 8  173.194.122.214  22.630 ms  22.444 ms  22.264 ms

«Что-то мало адресов для гугла», — подумал я и решил сравнить выдачу публичных dns-серверов провайдера, гугла (8.8.8.8) и яндекса (78.8.8.8):

$ nslookup
> mail.google.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
mail.google.com canonical name = googlemail.l.google.com.
Name:   googlemail.l.google.com
Address: 173.194.44.54
Name:   googlemail.l.google.com
Address: 173.194.44.53

Для пабликов гугла:

> mail.google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
mail.google.com canonical name = googlemail.l.google.com.
Name:   googlemail.l.google.com
Address: 173.194.122.214
Name:   googlemail.l.google.com
Address: 173.194.122.213

Для яндекса:

> mail.google.com
Server:         77.88.8.8
Address:        77.88.8.8#53

Non-authoritative answer:
mail.google.com canonical name = googlemail.l.google.com.
Name:   googlemail.l.google.com
Address: 173.194.32.182
Name:   googlemail.l.google.com
Address: 173.194.32.181

Разница очевидна. Проверяем разные адреса, и выясняется, что не работают именно те адреса, которые выдаются публичными dns-серверами гугла.
Не работают ни G+, ни календарь, ни диск, даже googleusercontent.com, что выдает юзерпики и картинки — не отвечает.

Но только стоит заменить DNS-серверы для доменов *.google.com и *.googleusercontent.com на серверы Яндекса — все начинает работать!

Сперва подозревал, что наши чебурашки что-то выдумали, но оказалось, что та же ситуация с этими адресами наблюдается из Европы.
IP расположен в Калифорнии, если мне не врет геоайпитул.

Подозрительно, что упали только те серверы, которые выдаются пабликом. Либо не справились с нагрузкой, либо кто-то успешно атаковал, что менее вероятно.
Однако, и в том, и в другом случае, полагаю, гугл бы быстро сменил DNS-запись. Проверим TTL:

$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set debug
> mail.google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

------------
    QUESTIONS:
        mail.google.com, type = A, class = IN
    ANSWERS:
    ->  mail.google.com
        canonical name = googlemail.l.google.com.
        ttl = 21599
    ->  googlemail.l.google.com
        internet address = 173.194.122.245
        ttl = 299
    ->  googlemail.l.google.com
        internet address = 173.194.122.246
        ttl = 299
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
mail.google.com canonical name = googlemail.l.google.com.
Name:   googlemail.l.google.com
Address: 173.194.122.245
Name:   googlemail.l.google.com
Address: 173.194.122.246

Заметим, что TTL всего 300 секунд, и даже адреса изменились, но соединения с ними нет всё равно.

Такие дела.
Резюме: у гугла есть проблемы.
Совет: кто столкнулся — временно укажите своей системе (роутеру, DNS-серверу) другие DNS, например, Яндекса.

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js