Тройное дно PlayStation 5

Кейс: «Как я победил ошибку WS-116521-6, NAT Type 3 в тусовках и троттлинг загрузок на Keenetic»

За годы прак­ти­ки настрой­ки марш­ру­ти­за­то­ров Keenetic для кли­ен­тов я при­вык, что 95% про­блем с игро­вы­ми кон­со­ля­ми в РФ реша­ют­ся базо­вым сплит-тун­не­ли­ро­ва­ни­ем: завер­нул доме­ны авто­ри­за­ции в VLESS/WireGuard до зару­беж­но­го VPS – и PlayStation Store сно­ва оживает.

Но недав­но ко мне обра­тил­ся кли­ент с топо­вым тари­фом 500 Мбит/с, у кото­ро­го стан­дарт­ная схе­ма пре­вра­ти­ла PS5 за 90 тысяч руб­лей в «кир­пич с лагами».

В этом кей­се я подроб­но рас­ска­жу, как мне уда­лось рас­пу­тать клу­бок из двой­но­го NAT про­вай­де­ра, некор­рект­ной резо­лю­ции CDN-сер­ве­ров Akamai, DPI-тро­тт­лин­га и фраг­мен­та­ции паке­тов, а так­же как физи­че­ски реа­ли­зо­вать трой­ную марш­ру­ти­за­цию для одно­го устрой­ства.


1. Исходные данные и симптомы

Кли­ент: IT-спе­ци­а­лист, рабо­та­ет из дома в заго­род­ном кот­те­дж­ном поселке.
Канал: Опти­че­ский про­вай­дер (GPON), заяв­лен­ная ско­рость – 500 Мбит/с.
Обо­ру­до­ва­ние: GPON-тер­ми­нал (ONT) от про­вай­де­ра + Keenetic Ultra (KN-1811) + PS5 по кабе­лю Cat 6.

С чем пришел клиент:

  1. Без VPN: Ошиб­ки под­клю­че­ния к PlayStation Network (WS-116521-6, CE-109502-7), PS Store не загру­жа­ет­ся, про­филь не авторизуется.
  2. При пус­ке всей PS5 через VPN (WireGuard):
    • Store ожи­ва­ет, но ско­рость ска­чи­ва­ния игр пада­ет с 500 Мбит/с до 12 – 18 Мбит/с (игра на 100 ГБ кача­ет­ся сутками).
    • В онлайн-играх (EA FC, Call of Duty) ста­тус NAT сме­ня­ет­ся на NAT Type 3 (Strict).
    • Голо­со­вые тусов­ки (Party Chat) лома­ют­ся: кли­ент слы­шит дру­зей через раз, а при попыт­ке зай­ти в тусов­ку выле­та­ет ошиб­ка подключения.

2. Мое расследование: В чем было «тройное дно»?

Сняв дам­пы тра­фи­ка с помо­щью Wireshark и про­ана­ли­зи­ро­вав логи Keenetic, я обна­ру­жил три скры­тых барьера:

  1. Двой­ной NAT + CGNAT от про­вай­де­ра: GPON-тер­ми­нал рабо­тал в режи­ме роу­те­ра (192.168.1.2), а сам про­вай­дер пря­тал кли­ен­та за «серым» IP (диа­па­зон 100.64.0.0/10). UPnP на Keenetic откры­вал пор­ты толь­ко на роу­те­ре, но не у про­вай­де­ра. Резуль­тат – бло­ки­ров­ка P2P и NAT Type 3.
  2. Ловуш­ка Akamai CDN: Когда PS5 запра­ши­ва­ет DNS через зару­беж­ный VPS, CDN-сеть Akamai опре­де­ля­ет гео­ло­ка­цию DNS-сер­ве­ра и отда­ёт IP-адре­са загру­зоч­ных сер­ве­ров в Евро­пе. В ито­ге кон­соль кача­ла 100 ГБ через VLESS-тун­нель, заби­вая про­цес­сор VPS и меж­ду­на­род­ный канал.
  3. DPI-тро­тт­линг и фраг­мен­та­ция UDP: При про­хож­де­нии голо­со­во­го тра­фи­ка тусо­вок (UDP 3478 – 3480) через тун­нель вырас­тал раз­мер паке­та. Про­вай­дер­ский ТСПУ на маги­стра­ли из-за пре­вы­ше­ния MTU про­сто «выбра­сы­вал» неза­фраг­мен­ти­ро­ван­ные паке­ты (Silent Drop).

3. Как на самом деле работает тройной маршрут с одного IP?

На пер­вый взгляд кажет­ся непо­сти­жи­мым: как роу­тер может брать тра­фик с одно­го и того же IP-адре­са PS5 (напри­мер, 192.168.1.50) и раз­де­лять его на три раз­ных пути?

Ответ кро­ет­ся в рабо­те L7-прок­си­ро­ва­ния (Layer 7) через сре­ду Entware и модуль XKeen (sing-box / xray).

Технический механизм разделения трафика:

  1. Все IP-паке­ты от PS5 (192.168.1.50) пере­хва­ты­ва­ют­ся на роу­те­ре через iptables/nftables (TPROXY или REDIRECT) и направ­ля­ют­ся в локаль­ный сокет sing-box.
  2. sing-box «рас­па­ко­вы­ва­ет» паке­ты и ана­ли­зи­ру­ет их не про­сто по IP, а по доме­нам (SNI / DNS) и про­то­ко­лам (TCP/UDP).
  3. Внут­ри config.json сра­ба­ты­ва­ет дви­жок пра­вил (routing rules), кото­рый мгно­вен­но рас­кла­ды­ва­ет тра­фик по трем «выхо­дам» (outbounds):
                                  ┌───> Rule 1 (Домены PSN Auth) ───> Outbound: "vless-out" ───> VPS (Европа)
                                  │
[ PS5: 192.168.1.50 ] ──> sing-box ┼───> Rule 2 (Домены CDN dl.playstation) ──> Outbound: "direct" ───> Провайдер (500 Мбит)
                                  │
                                  └───> Rule 3 (Игровой UDP/P2P / Игрушки) ──> Outbound: "direct" + UPnP ──> Провайдер (NAT2)

Реальная конфигурация правил в sing-box (route.rules):

{
  "route": {
    "rules": [
      {
        "type": "field",
        "domain_suffix": [
          "dl.playstation.net",
          "sno.playstation.net"
        ],
        "outbound": "direct"
      },
      {
        "type": "field",
        "domain_suffix": [
          "playstation.com",
          "playstation.net",
          "sonyentertainmentnetwork.com",
          "auth.api.sonyentertainmentnetwork.com"
        ],
        "outbound": "vless-out"
      },
      {
        "type": "field",
        "network": "udp",
        "outbound": "direct"
      },
      {
        "outbound": "direct"
      }
    ]
  }
}

Как это решает проблему NAT Type 2?

Когда тра­фик игро­вой сес­сии или голо­со­вой тусов­ки идет в outbound: direct, он поки­да­ет Keenetic под его реаль­ным внеш­ним IP-адресом.
Служ­ба miniupnpd на Keenetic пере­хва­ты­ва­ет запро­сы PS5 на откры­тие пор­тов и про­бра­сы­ва­ет их на WAN-интер­фей­се. Кон­соль полу­ча­ет пря­мой P2P-доступ к дру­гим игро­кам, и ста­тус NAT мгно­вен­но сме­ня­ет­ся на NAT Type 2!


4. Пошаговый план настройки

  1. Устра­не­ние про­вай­дер­ско­го барьера:
    • Пере­вел GPON-тер­ми­нал кли­ен­та в режим Bridge (Мост).
    • Под­клю­чил услу­гу «Ста­ти­че­ский пуб­лич­ный IP» у провайдера.
  2. Раз­вер­ты­ва­ние туннеля:
    • На Keenetic Ultra под­нял Entware и модуль XKeen.
    • Настро­ил про­то­кол VLESS + XTLS-Reality до узла в Европе.
  3. Настрой­ка сплит-маршрутизации:
    • Про­пи­сал выше­ука­зан­ный кон­фиг раз­де­ле­ния доменов.
    • Выде­лил для PS5 ста­ти­че­ский IP в локал­ке (192.168.1.50).
  4. Опти­ми­за­ция MTU / MSS:
    • На тун­нель­ном интер­фей­се уста­но­вил MTU = 1380.
    • В KeeneticOS вклю­чил TCP MSS Clamping = Auto.

5. Безопасность удаленной настройки

Так как я настра­и­ваю роу­те­ры кли­ен­там дистан­ци­он­но, отказ свя­зи недо­пу­стим, при настрой­ке часто исполь­зую встро­ен­ный Режим без­опас­ной настрой­ки (Safe Configure).

  • Если адми­ни­стра­тор при­ме­нит оши­боч­ное пра­ви­ло меж­се­те­во­го экра­на, кото­рое забло­ки­ру­ет его соб­ствен­ный VPN-порт, сес­сия обо­рвет­ся. Обыч­но это озна­ча­ет поте­рю свя­зи до момен­та физи­че­ско­го выез­да на объект.
  • В KeeneticOS, если изме­не­ния не под­твер­жде­ны повтор­ным нажа­ти­ем кноп­ки сохра­не­ния в тече­ние вре­мен­но­го тайм-аута (обыч­но 3 мину­ты), роу­тер счи­та­ет, что адми­ни­стра­тор поте­рял доступ. Устрой­ство авто­ма­ти­че­ски ухо­дит в пере­за­груз­ку и отка­ты­ва­ет кон­фи­гу­ра­цию к послед­ней ста­биль­ной точ­ке. Это поз­во­ли­ло сме­ло экс­пе­ри­мен­ти­ро­вать с марш­ру­та­ми, зная, что роу­тер вер­нет­ся в сеть в любом случае.

6. Результаты работы

Пара­метр До моей настройки Пря­мой VPN на весь трафик Ито­го­вое реше­ние (RootRouter)
Доступ к PS Store / Профилю ❌ Ошиб­ка WS-116521-6 ✅ Рабо­та­ет ✅ Рабо­та­ет идеально
Ско­рость ска­чи­ва­ния игр ❌ Не качает 🐌 12 – 18 Мбит/с ⚡ 470 – 490 Мбит/с (пол­ный канал)
Тип NAT на PS5 ❌ Failed ⚠️ NAT Type 3 (Strict) ✅ NAT Type 2 (Moderate)
Голо­со­вой чат (Party Chat) ❌ Ошиб­ка подключения ❌ Поте­ри пакетов ✅ Чистый звук без обрывов
Пинг в мультиплеере — 🔴 110 – 140 мс 🟢 32 – 38 мс

Заключение

Настрой­ка PS5 в РФ сего­дня – это не про­сто кноп­ка «Вклю­чить VPN». Это тон­кая рабо­та на сты­ке сете­вых про­то­ко­лов L4/L7 и воз­мож­но­стей KeeneticOS. Бла­го­да­ря гиб­ко­сти Entware и мощ­но­сти Keenetic Ultra уда­лось выжать мак­си­мум из 500-мега­бит­но­го кана­ла кли­ен­та, сохра­нив низ­кий пинг и доступ ко всем сер­ви­сам Sony.

Нуж­на про­фес­си­о­наль­ная настрой­ка Keenetic под PlayStation, Xbox или рабо­чее место?
Я настра­и­ваю роу­те­ры «под ключ» уда­лен­но по всей Рос­сии. Вы про­сто под­клю­ча­е­те роу­тер к сети, а всю слож­ную марш­ру­ти­за­цию я беру на себя.