Настройка MikroTik для удаленной игры на PS5

Обсуждение ПО и его настройки
Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

Доброго дня, уважаемые форумчане.
Расскажу суть проблемы, уже замучался биться...
1) Есть Микротик -RBD52G , получает динамический IP от провайдера Ростелеком, т.к. он не всегда реальный, настроен скрипт, который проверяет его на серость и если нужно перезапускает сессию.

2) Есть PS5, которая подключена к Микротику по WiFi 5Ghz.
С помощью PS Remote Play, либо Chiaki(чаще всего) с удаленного ПК подключаюсь через Chiaki по серийныйномер.sn.mynetname.net к PS5.
Для правильной работы и подключения нужны открытые порты на Микротике, что собственно и сделано.
Порты:
80 - TCP
443 - TCP
987 - TCP/UDP - WoL
1935 - TCP
3478,3479 - TCP/UDP
3480 - TCP
9295 - TCP/UDP
9296, 9297 - UDP
9303 - UDP
UPnP включено.


Все работало хорошо, без задержек, картинка не сыпалась. Долгое время потом не подключался и однажды не смог...
Выяснилось, консоль не получала магические пакеты по 987 порту, стала получать их по 9302 - ок, пробросил по примеру 987.
Но теперь удаленно играть невозможно, отклик на кнопки 1-2 секунды, иногда вообще не срабатывает нажатие, картинка сыпется на пиксели.
Пытался все правила двигать по приоритету, ставил в самый верх, перед маскарадингом, после него и т.п. не помогает. Во вкладке Connections смотрел на какие порты происходит подключение по IP - адресу PS5, пробовал их пробрасывать, но их столько, да еще и меняются каждый раз... тоже не сработало.

В тоже время имею роутер Mi 3G, прошивка Padavan, проброшены вышеуказанные порты, включено UpNP и IP-адрес PS5 добавлен в DMZ. Все работает четко, отклик и картинка в порядке.

Помогите разобраться, почему на Микротике не работает как надо? :ne_vi_del:
А вот почему перестало, мое мнение - что-то япошки обновили в ПО плойки (поменяли порты/протоколы/еще что-то там...) и теперь такая котовасия... :-(
Прикладываю конфиг Микротика и скрин с Mi 3G. Спасибо заранее.

Код: Выделить всё

# dec/15/2022 14:09:53 by RouterOS 6.47.9
# software id = ------
#
# model = RBD52G-5HacD2HnD
# serial number = ------
/interface bridge
add admin-mac=--------- auto-mac=no comment=defconf name=bridge
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-g/n channel-width=20/40mhz-XX \
    country=russia disabled=no distance=indoors frequency=auto installation=\
    indoor mode=ap-bridge ssid=WiFi-2.4 wireless-protocol=802.11
set [ find default-name=wlan2 ] band=5ghz-n/ac channel-width=20/40/80mhz-XXXX \
    country=russia disabled=no distance=indoors frequency=auto \
    frequency-mode=superchannel installation=indoor mode=ap-bridge ssid=\
    WiFi-5 wireless-protocol=802.11
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa2-psk mode=dynamic-keys \
    supplicant-identity=MikroTik wpa-pre-shared-key=12345678 \
    wpa2-pre-shared-key=12345678
/ip hotspot profile
set [ find default=yes ] html-directory=flash/hotspot
/ip pool
add name=dhcp ranges=192.168.100.10-192.168.100.254
add name=123 ranges=192.168.9.2-192.168.9.12
/ip dhcp-server
add address-pool=dhcp disabled=no interface=bridge name=defconf
/ppp profile
add name=check_grey_ip_RT on-up=\
    "/system script run pppoe_rostelecom_check_grey_ip"
add name=profile-antizapret on-down="/ip dns cache flush;\r\
    \n/ip firewall nat remove [find comment=\93For Antizapret\94];\r\
    \n/ip dns set servers=\"1.1.1.1,9.9.9.9\"" on-up="/ip dns cache flush;\r\
    \n/ip firewall nat add action=redirect chain=dstnat comment=\93For Antizap\
    ret\94 dst-port=53,5353,1253 protocol=udp;\r\
    \n/ip firewall nat add action=redirect chain=dstnat comment=\93For Antizap\
    ret\94 dst-port=53,5353,1253 protocol=tcp;\r\
    \n/ip dns set servers=\"\""
set *FFFFFFFE local-address=192.168.9.1 remote-address=123
/interface ovpn-client
add certificate=antizapret.crt_0 cipher=aes128 connect-to=\
    vpn.antizapret.prostovpn.org mac-address=02:9B:3F:63:B5:3A name=\
    ovpn-antizapret profile=profile-antizapret use-peer-dns=exclusively user=\
    user
/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 name=pppoe-out1 \
    password=Password profile=check_grey_ip_RT service-name=RT use-peer-dns=yes \
    user=Rostelecom
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=wlan1
add bridge=bridge comment=defconf interface=wlan2
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface detect-internet
set detect-interface-list=all
/interface l2tp-server server
set authentication=mschap1,mschap2 enabled=yes ipsec-secret=Password \
    use-ipsec=yes
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/interface pptp-server server
set enabled=yes
/interface sstp-server server
set default-profile=default-encryption enabled=yes
/ip address
add address=192.168.100.1/24 comment=defconf interface=bridge network=\
    192.168.100.0
/ip arp
add address=192.168.100.4 interface=bridge mac-address=---------
/ip cloud
set ddns-enabled=yes ddns-update-interval=1m update-time=no
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server network
add address=192.168.100.0/24 comment=defconf gateway=192.168.100.1 netmask=24 \
    ntp-server=192.168.100.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.100.1 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=accept chain=input comment="allow IPsec NAT" dst-port=4500 \
    protocol=udp
add action=accept chain=input comment="allow IKE" dst-port=500 protocol=udp
add action=accept chain=input comment="allow l2tp" dst-port=1701 protocol=udp
add action=accept chain=input comment="allow NTP" dst-port=123 in-interface=\
    bridge protocol=udp
add action=accept chain=input comment="allow pptp for VPN" dst-port=1723 \
    protocol=tcp
add action=accept chain=input comment="GRE for VPN" protocol=gre
add action=accept chain=input comment="allow sstp" dst-port=443 protocol=tcp
add action=accept chain=input comment=\
    "\E4\EE\F1\F2\F3\EF \EA MikroTik \F7\E5\F0\E5\E7 Winbox, \E8\E7 VPN" \
    in-interface=all-ppp
add action=accept chain=input comment="\E4\EE\F1\F2\F3\EF \EA MikroTik \F7\E5\
    \F0\E5\E7 \E1\F0\E0\F3\E7\E5\F0, \E8\E7 VPN" dst-port=80 protocol=tcp
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
    ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
    ipsec-policy=out,ipsec
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN
/ip firewall mangle
add action=change-mss chain=forward comment=\
    "\CD\E5 \F1\EA\E0\F7\E8\E2\E0\EB \F1 4pda" new-mss=1440 out-interface=\
    all-ppp passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1300-65535
add action=change-mss chain=forward comment=\
    "\CD\E5 \F1\EA\E0\F7\E8\E2\E0\EB \F1 4pda" in-interface=all-ppp new-mss=\
    1440 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1300-65535
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN
add action=masquerade chain=srcnat comment="masq. vpn traffic"
add action=masquerade chain=srcnat comment="masquerade ANTIZAPRET" \
    ipsec-policy=out,none out-interface=ovpn-antizapret
add action=redirect chain=dstnat comment="For Antizapret" dst-port=\
    53,5353,1253 protocol=udp
add action=redirect chain=dstnat comment="For Antizapret" dst-port=\
    53,5353,1253 protocol=tcp
add action=dst-nat chain=dstnat comment="XBOX NAT" dst-port=3074 \
    in-interface=pppoe-out1 protocol=tcp to-addresses=192.168.100.5 to-ports=\
    3074
add action=dst-nat chain=dstnat comment="XBOX NAT" dst-port=3074 \
    in-interface=pppoe-out1 protocol=udp to-addresses=192.168.100.5 to-ports=\
    3074
add action=dst-nat chain=dstnat comment="WoL PS5" dst-port=9302 in-interface=\
    pppoe-out1 protocol=udp to-addresses=192.168.100.4 to-ports=9302
add action=dst-nat chain=dstnat comment="WoL PS5" dst-port=987 in-interface=\
    pppoe-out1 protocol=tcp to-addresses=192.168.100.4 to-ports=987
add action=dst-nat chain=dstnat comment="WoL PS5" dst-port=987 in-interface=\
    pppoe-out1 protocol=udp to-addresses=192.168.100.4 to-ports=987
add action=dst-nat chain=dstnat dst-port=80 in-interface=pppoe-out1 protocol=\
    tcp to-addresses=192.168.100.4 to-ports=80
add action=dst-nat chain=dstnat dst-port=443 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=0
add action=dst-nat chain=dstnat dst-port=1935 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=1935
add action=dst-nat chain=dstnat dst-port=3478 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=3478
add action=dst-nat chain=dstnat dst-port=3478 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=3478
add action=dst-nat chain=dstnat dst-port=3479 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=3479
add action=dst-nat chain=dstnat dst-port=3479 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=3479
add action=dst-nat chain=dstnat dst-port=3480 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=3480
add action=dst-nat chain=dstnat dst-port=9295 in-interface=pppoe-out1 \
    protocol=tcp to-addresses=192.168.100.4 to-ports=9295
add action=dst-nat chain=dstnat dst-port=9295 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=9295
add action=dst-nat chain=dstnat dst-port=9296 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=9296
add action=dst-nat chain=dstnat dst-port=9297 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=9297
add action=dst-nat chain=dstnat dst-port=9303 in-interface=pppoe-out1 \
    protocol=udp to-addresses=192.168.100.4 to-ports=9303
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www address=192.168.100.0/24,192.168.9.0/24
set ssh address=192.168.100.0/24,192.168.9.0/24
set api disabled=yes
set winbox address=192.168.100.0/24,192.168.9.0/24
set api-ssl disabled=yes
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=bridge type=internal
add interface=pppoe-out1 type=external
/ppp secret
add name=123 password=Password
/system clock
set time-zone-name=Europe/Samara
/system ntp client
set enabled=yes primary-ntp=80.249.145.122 secondary-ntp=188.227.94.15
/system ntp server
set enabled=yes multicast=yes
/system scheduler
add interval=5m name=check_grey_ip on-event=\
    "/system script run pppoe_rostelecom_check_grey_ip" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-time=startup
/system script
add dont-require-permissions=no name=pppoe_rostelecom_check_grey_ip owner=\
    name policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\
    local WANInter \"pppoe-out1\"\r\
    \n\r\
    \n# get the current IP address from the internet (in case of double-nat)\r\
    \n/tool fetch mode=http address=\"checkip.dyndns.org\" src-path=\"/\" dst-\
    path=\"/dyndns.checkip.html\";\r\
    \n:local result [/file get dyndns.checkip.html contents];\r\
    \n\r\
    \n# parse the current IP result\r\
    \n:local resultLen [:len \$result];\r\
    \n:local startLoc [:find \$result \": \" -1];\r\
    \n:set startLoc (\$startLoc + 2);\r\
    \n:local endLoc [:find \$result \"</body>\" -1];\r\
    \n:local currentIP [:pick \$result \$startLoc \$endLoc];\r\
    \n:log info \"On checkip.dyndns.org Current IP is \$currentIP\";\r\
    \n\r\
    \n#get WAN IP on interface\r\
    \n:local IpInterfaceCurrent [/ip address get [find interface=\$WANInter] a\
    ddress];\r\
    \n:for i from=( [:len \$IpInterfaceCurrent] - 1) to=0 do={\r\
    \n  :if ( [:pick \$IpInterfaceCurrent \$i] = \"/\") do={\r\
    \n    :local NewIP [:pick \$IpInterfaceCurrent 0 \$i];\r\
    \n    :log info \"WAN IP is \$NewIP\";\r\
    \n\r\
    \n    #Compare IP\r\
    \n    :if (\$currentIP = \$NewIP) do={\r\
    \n      #its normal\r\
    \n      /log info \"Connect OK\";      \r\
    \n    } else={\r\
    \n      #Gray IP. Do restart\r\
    \n      /log info \"Connected to gray IP\";\r\
    \n      /system script run pppoe_rostelecom_restart;\r\
    \n    }\r\
    \n \r\
    \n   }\r\
    \n}"
add dont-require-permissions=no name=pppoe_rostelecom_restart owner=name \
    policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    source="/interface pppoe-client disable pppoe-out1;\r\
    \n:delay 10;\r\
    \n/interface pppoe-client enable pppoe-out1;"
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

Изображение


gmx
Модератор
Сообщения: 3323
Зарегистрирован: 01 окт 2012, 14:48

Если на Xiaomi все работает через DMZ, так сделайте на микротике аналог DMZ. Тупо пробросьте ВСЕ порты на PS5 и дело с концом.


Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

gmx писал(а): 16 дек 2022, 08:33 Если на Xiaomi все работает через DMZ, так сделайте на микротике аналог DMZ. Тупо пробросьте ВСЕ порты на PS5 и дело с концом.
Хорошо, подскажите, каким образом это сделать правильно?

Спрашиваю вот почему, если создаю правило chain=dst-nat в action=dst-nat to ps5 он обязательно требует указать протокол и порт, иначе не создается.
А если перенаправляю все порты, по принципу Xiaomi 80-65535, то пропадает доступ к Микротику, по его серийныйномер.sn.mynetname.net.

При этом, подключиться к PS5 могу, но все также сыпется картинка и лаги.

Что делаю не так, понять не могу...


gmx
Модератор
Сообщения: 3323
Зарегистрирован: 01 окт 2012, 14:48

Если уж совсем все правильно делать, надо бы точный список портов и протоколов.
А так, это только методом тыка.

Чтобы не терять доступ, не прокидывайте порты 80 (если используете веб интерфейс микротика) и 8291 (стандартный порт Winbox, у вас он может быть другой, если меняли). Ну или перенесите эти порты на более удобные, например 65535 и 64534.
Чаще всего нужно, чтобы проброс работал по протоколам TCP и UDP. Вот вы и создаете, соответственно два правила для каждого протокола c одинаковым набором портов.

Да и еще, что там у вас с фаерволлом??? Временно выключите ВСЕ правила. Когда добьетесь нормальной работы, тогда уже можно разбираться с фаерволлом.


Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

gmx писал(а): 16 дек 2022, 10:12 Если уж совсем все правильно делать, надо бы точный список портов и протоколов.
Ну точный список портов указал в посте, но япошки могли изменить в этой модели....
Чтобы не терять доступ, не прокидывайте порты 80 (если используете веб интерфейс микротика) и 8291 (стандартный порт Winbox, у вас он может быть другой, если меняли). Ну или перенесите эти порты на более удобные, например 65535 и 64534.
Использую стандартный. Хорошо, попробую исключить.
Правильно я понимаю, будет 4 правила (tcp/udp), 81-8290, 8292-65535? И можно ли указывать таким образом диапазон портов, через тире?

Firewall отключал, изменений никаких. Но я попробую еще раз это сделать... Отпишусь.


Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

gmx писал(а): 16 дек 2022, 10:12 Чаще всего нужно, чтобы проброс работал по протоколам TCP и UDP. Вот вы и создаете, соответственно два правила для каждого протокола c одинаковым набором портов.
Итак, сделал 4 правила вида:

Код: Выделить всё

add action=dst-nat chain=dstnat comment="test PS5" dst-port=81-8290 in-interface=\
    pppoe-out1 protocol=tcp to-addresses=192.168.100.4 to-ports=81-8290
    add action=dst-nat chain=dstnat comment="test PS5" dst-port=81-8290 in-interface=\
    pppoe-out1 protocol=udp to-addresses=192.168.100.4 to-ports=81-8290
    add action=dst-nat chain=dstnat comment="test PS5" dst-port=8292-65535 in-interface=\
    pppoe-out1 protocol=tcp to-addresses=192.168.100.4 to-ports=8292-65535
    add action=dst-nat chain=dstnat comment="test PS5" dst-port=8292-65535 in-interface=\
    pppoe-out1 protocol=udp to-addresses=192.168.100.4 to-ports=8292-65535
    
Теперь на устройствах локальной сети нет интернета :-) .
На PS 5 картинка стала стабильнее, почти не сыпется, но отклик на нажатие кнопок ужасный, вместо 2-х нажатий 1, либо вообще нет.
Отключение правил Firewall ничего не дало.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Сделайте два правила в цепочку dstnat:
1) Верхнее chain=dstnat in-interface-list=WAN protocol=tcp port=80,8291 action=accept
2) Ниже chain=dstnat in-interface-list=WAN action=dst-nat to-addresses=адрес_PS5

Это и будет аналог DMZ, но с сохранением доступа снаружи на сам микрот.
Это если не касаться того, что 80 и 8291 порты хорошо бы поменять.


Telegram: @thexvo
Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

xvo писал(а): 16 дек 2022, 11:33 Сделайте два правила в цепочку dstnat:
1) Верхнее chain=dstnat in-interface-list=WAN protocol=tcp port=80,8291 action=accept
2) Ниже chain=dstnat in-interface-list=WAN action=dst-nat to-addresses=адрес_PS5

Это и будет аналог DMZ, но с сохранением доступа снаружи на сам микрот.
Это если не касаться того, что 80 и 8291 порты хорошо бы поменять.
Да, конечно, порты поменяю, сейчас хотя бы добиться нормальной работы....

Сделал оба правила, не смог к PS5 подключиться. Оба правила выше маскарадинга.

Потом включил правила проброса портов, которые указывал в 1 посте, смог подключиться.
Картинка почти не сыпется, отклик через раз пропадает.... Чего-то не хватает, не пойму.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

У вас ваш pppoe точно добавлен в список WAN?
Судя по конфигу в первом посте - нет.


Telegram: @thexvo
Аватара пользователя
seva150785
Сообщения: 19
Зарегистрирован: 09 июн 2022, 08:29
Откуда: Тольятти

xvo писал(а): 16 дек 2022, 12:03 У вас ваш pppoe точно добавлен в список WAN?
Судя по конфигу в первом посте - нет.
Там указан 1 порт - ether1
Должна быть еще одна запись?
Так:

Код: Выделить всё

/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=pppoe-out1 list=WAN


Ответить