Я хочу перенаправить все пакеты TCP на один интерфейс (выделенное подключение к Интернету только для загрузки) и все пакеты UDP на другой (выделенное подключение к Интернету только для потоковой передачи и видеоигр). Как я могу это сделать? Мой роутер - Mikrotik RB750.
Если вы хотите разделить входящий сетевой трафик между двумя локальными подключениями, предполагая, что каждый из ваших интерфейсов имеет другой адрес, вы можете сделать это с помощью dst-nat:
/ip firewall nat
add in-interface=[incoming interface] action=dst-nat protocol=tcp dst-address=[TCP address]
add in-interface=[incoming interface] action=dst-nat protocol=udp dst-address=[UDP address]
В случае, если вы имели в виду разделить исходящий трафик между двумя внешними соединениями, и каждое из соединений имеет другой адрес, вы можете сделать это следующим образом:
/ip firewall nat
add chain=srcnat protocol=tcp action=src-nat to-address=[TCP connection address] out-interface=[TCP interface]
add chain=srcnat protocol=udp action=src-nat to-address=[UDP connection address] out-interface=[UDP interface]
Хотя оба других ответа верны, я должен указать, что это почти наверняка не сработает. Игры и потоковая передача используют TCP, а также UDP, и, вероятно, не будут работать, если он получает пакеты TCP с одного адреса и UDP с другого. Я бы посоветовал определить, какие хосты являются игровыми и потоковыми, и определить отдельные правила src-nat для каждого.
Лучший вопрос: почему? Какая польза от этой модели?
Ты можешь использовать /ip route rule
и routing-mark
в /ip firewall mangle
для принудительной маршрутизации пути. Он работает примерно так же, как ip rule
под Linux.
/ip route rule
это заставит использовать таблицу маршрутизации R2 или R1 для выбранной группы пакетов.Вот мой пример конфигурации, используемой для маршрутизации пакетов, адресованных от маршрутизатора через один шлюз, и пересылаемых через другой:
[lapsio@CCR1009SWAG] > /ip firewall mangle export
/ip firewall mangle
add action=jump chain=prerouting jump-target=check-standard
add action=accept chain=check-standard in-interface=ether1-gateway #<- all incoming packets need to use "main" table in order to "see" local links
add action=accept chain=check-standard src-address-list=networkSERVICE #<-this is just example match
...
#some matching criteria of packets to NOT mark here with action=accept
...
add action=jump chain=check-standard jump-target=mark-standard
add action=mark-routing chain=mark-standard new-routing-mark=standard passthrough=no
[lapsio@CCR1009SWAG] > /ip route export
/ip route
add distance=1 gateway=192.168.0.6 routing-mark=standard
add distance=1 gateway=192.168.10.1
/ip route rule
add routing-mark=standard src-address=0.0.0.0/0 table=standard
Здесь я использовал только эквивалент «R2», который является «стандартным» - пакеты пересылаются через .0.6
. Пакеты без пометки будут пересылаться через .10.1
.