Расследование. Не воспроизводится музыка вконтакте. Одна из причин |
Так уж сложилось, что для крупных заказчиков оборудования Микротик мы не только производили первоначальную настройку роутеров, но и сопровождали их эксплуатацию, в ходе которой всплыли изумительные факты, о которых мы вкратце расскажем - факт интересный и стоит внимания.
В последний месяц 2012 года пользователи социальной сети Вконтакте стали сообщать о том, что не воспроизводится музыка вконтакте, а на вопрос "почему вконтакте не воспроизводится музыка" техническая поддержка самого "вконтакта" первое время не старалась отвечать объективно, "сливая" подобные обращения (как именно - чуть ниже).
На моей памяти подобный всплеск проблем с музыкой уже имел место ранее, поэтому имелась некоторая статистика для сопоставления. К слову сказать, тот факт, что наши заказчики и покупатели использовали в основном маршрутизаторы mikrotik (751 серия: rb751g, rb751u (2hnd)) с поддержкой IPv6 (а именно оборудование с поддержкой dual stack рекомендуется использовать в нашу эпоху перехода с IPv4 на IPv6) вероятнее всего и послужил той причиной, по которой клубок проблем был нами распутан, а истина отделена от плевел.
Примерно в середине июля 2012г. на протяжении пары недель наблюдались проблемы вконтакта с музыкой. В тот момент обращения по вопросу "в вконтакте не проигрывается музыка" увеличились примерно на 2/3, а через полторы-две недели также резко спали - скорее всего проблема была внутри сети ВКонтакте, к тому же на тот период приходился перенос серверов на другой домен, наблюдалось увеличение задержек при доступе к ресурсам, которые скорее всего появились в следствии переноса серверов в другой датацентр, возможно наложились еще какие-то манипуляции, которые не были нами замечены.
Летние проблемы вскоре исчезли, хотя периодически и повторялись, но тем не менее позабылись и отошли на второй план. Кстати, статистику подпортила еще и проблема "тормозов музыки вконтакте" - она менее изучена, часто порождена проблемами провайдеров и недостаточной скоростью подключения. Мы же разбираем именно проблему "почему не проигрывается музыка вконтакте", т.е. когда музыка совсем не работает (не проигрываются некоторые треки).
А вот уже в декабре проблемы повторились (точнее к декабрю они эскалировались и о них стало явно известно, а обращений в этот раз было уже 3/4 вместо прошлых 2/3, т.е. проблема затронуло большее кол-во пользователей). На этот раз картина выглядела совсем новой - сервера ВКонтакта просто не отдавали контент. Сложилось впечатление, что на некоторых серверах нужные треки попросту отсутствовали, что объясняло периодическую доступность одних и тех же треков. На этот раз была привлечена поддержка ВКонтакта. В первые недели января было установлено, что проблема возникает среди тех, кто имеет подключение к интернету по обоим IP-протоколам. Дефолтная рекомендация отключить IPv6 нами не была поддержана и разбирательство продолжилось. В последнюю неделю января уже было собрано достаточно данных для того, чтобы заявить о том, что проблема вполне закономерна, является постоянной, не поддается устранению без кастраций протоколов, а на момент написания этого материала не является решенной.
В чем же сама суть проблемы.
Подключение к Интернету по двум протоколам позволяет "общаться" с серверами как по IPv4 так и по IPv6, а ВКонтакт устроен таким образом, что корректно может работать с пользователем только по одному протоколу (либо тот, либо другой), а в данном случае ситуация складывалась таким образом, что некоторые запросы уходили по одному протоколу, а другие - по другому. Как пояснила далее тех. поддержка ВКонтакта, механизм авторизации не позволял обращаться за контентом с адреса, с которого не была авторизована сессия. Т.е. если в момент авторизации запрос уходил по IPv6, то только обращаясь с IPv6 адреса получится получить контент (это правило применяется к музыкальному контенту, очевидно для усложнения "стягивания" музыки и распарсивания чудо-программистами-пиратами). Почему возникла проблема? Наличие двух протоколов не должно было стать проблемой, так как IPv6 должен иметь приоритет, но судя по наблюдениям, Google Chrome и Firefox доработали механизмы обратного переключения на IPv4, что должно было избавить пользователей от проблем связности, когда IPv6 был недоступен, а IPv4 продолжал работать - в этом случае обмен продолжился бы по IPv4, а пользователь не заметил бы большой проблемы, разве что пришлось бы перезагрузить страницу в крайнем случае. Об аналогичном явлении сообщает и ресурс www.test-ipv6.com
Таким образом, проблема заключается в том, что периодически браузер решает переключиться на IPv4 и честно пытается получить контент, а система защиты этого контента с такой же честностью выполняет процедуру проверки пользователя на наличие прав обращаться со второго адреса, таковые права не подтверждает и запрос отклоняет. Со стороны ВКонтакта решения проблемы на текущий момент нет, но разработчики обещали что-нибудь придумать. НА данные момент однозначным решением остается выключение IPv6 протокола. И это печально, так как подрывает переход от IPv4 к IPv6 :( |