Страница 1 из 1

Вопрос про firewall mark-routing

Добавлено: 06 фев 2019, 08:15
atbizz
Приветствую

Есть обычный gre-tunnel между mikrotik и сервером вне россии, нужно траффик например к заблокированному rutracker.org направить через этот туннель, а остальной по умолчанию.

Если сделать routing таким образом (ниже) то все работает:

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

/ip firewall mangle 
add out-interface=gre-tunnel action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360
add in-interface=gre-tunnel action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360

/ip route add distance=1 dst-address=195.82.146.0/24 gateway=gre-tunnel comment=rutracker.org

Если сделать при помощи firewall mark-routing (ниже) то постоянно tcp-retransmission, сайт открывается через раз и оч. медленно

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

/ip firewall address-list add address=195.82.146.0/24 list=forbidden comment=rutracker.org

/ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 dst-address-list=forbidden action=mark-routing new-routing-mark=forbidden

/ip firewall mangle 
add out-interface=gre-tunnel action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360
add in-interface=gre-tunnel action=change-mss chain=forward new-mss=1360 passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1360

/ip route add distance=1 routing-mark=forbidden gateway=gre-tunnel

В общем заворачивание траффика с помощью mark-routing работает как то плохо - почему так может быть, куда смотреть, что проверить? (при этом видно что правила для изменения mss срабатывают как и в первом случае).

Re: Вопрос про firewall mark-routing

Добавлено: 06 фев 2019, 17:10
Chupaka
Доброго.

Ну, в целом, должно работать идентично (за исключением "src-address=192.168.1.0/24").

У вас точно нет других правил, которые могут мешать этому? Перемаркировывать некоторые пакеты, например...

По поводу Change-MSS: а если просто галку на GRE выставить Clamp TCP MSS - не работает без этих правил?

Re: Вопрос про firewall mark-routing

Добавлено: 06 фев 2019, 22:42
atbizz
Отальные правила только те что были по умолчанию.

По поводу Change-MSS тут немного интересней, галка "Clamp TCP MSS" установлена (по умолчанию), но без правил Change-MSS именно rutracker.org перестает нормально работать, в то время как например Linkedin.com и некоторые другие работают (внес нескольтко сайтов в таблицу маршрутов)

Re: Вопрос про firewall mark-routing

Добавлено: 06 фев 2019, 23:38
Chupaka
Ну, "те, что были" — так себе описание. /export hide-sensitive=yes хотя бы приведите...

Re: Вопрос про firewall mark-routing

Добавлено: 07 фев 2019, 09:41
atbizz
Вот все что есть

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

/ip firewall filter
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept established,related" connection-state=established,related
add action=drop chain=input comment="defconf: drop all from WAN" in-interface=ether1
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related" connection-state=established,related
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=ether1
/ip firewall mangle
add action=mark-routing chain=prerouting comment="Mark packets to forbidden addresses as forbidden" disabled=yes dst-address-list=forbidden new-routing-mark=forbidden \
    passthrough=yes src-address=192.168.1.0/24 tcp-flags=""
add action=change-mss chain=forward in-interface=gre-tunnel new-mss=1360 passthrough=no protocol=tcp tcp-flags=syn tcp-mss=!0-1360
add action=change-mss chain=forward new-mss=1360 out-interface=gre-tunnel passthrough=no protocol=tcp tcp-flags=syn tcp-mss=!0-1360
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1
add action=netmap chain=dstnat comment=torrent dst-port=29173 in-interface=ether1 protocol=tcp to-addresses=192.168.1.2 to-ports=29173
add action=netmap chain=dstnat comment=torrent dst-port=29173 in-interface=ether1 protocol=udp to-addresses=192.168.1.2 to-ports=29173
add action=netmap chain=dstnat comment="ssh on box" disabled=yes dst-port=1424 in-interface=ether1 protocol=tcp to-addresses=192.168.1.5 to-ports=22
add action=netmap chain=dstnat comment="openvpn on box" disabled=yes dst-port=443 in-interface=ether1 protocol=tcp to-addresses=192.168.1.5 to-ports=1194
add action=netmap chain=dstnat comment=http disabled=yes dst-port=1480 in-interface=ether1 protocol=tcp to-addresses=192.168.1.6 to-ports=80
add action=netmap chain=dstnat disabled=yes dst-port=1425 in-interface=ether1 protocol=udp to-addresses=192.168.1.2 to-ports=1400
/

Re: Вопрос про firewall mark-routing

Добавлено: 07 фев 2019, 10:33
Chupaka
Меня немного смущает tcp-flags="", я бы его совсем убрал, но оно, наверное, не должно влиять конкретно в этой ситуации.

А попробуйте fasttrack отключить.

Re: Вопрос про firewall mark-routing

Добавлено: 09 фев 2019, 12:57
atbizz
Приветствую,

отключение fast path на тунеле не давало результата, но потом нашел причину, все стало резко хорошо после выключения IP->Settings->Route Cache, (это как написанов документации - will also disable fast path )

Re: Вопрос про firewall mark-routing

Добавлено: 09 фев 2019, 13:48
Chupaka
Я имел в виду именно FastTrack, а не FastPath. Это правило у вас с action=fasttrack.

Re: Вопрос про firewall mark-routing

Добавлено: 09 фев 2019, 14:50
atbizz
Да тут я перепутал fasttrack с fastpath,

а какое правило вы имеете ввиду, c fasttrack только одно, "стандартное"

add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related

его отключить?

(C отключением route cache все идеально, вот только что загрузка cpu заметно выросла...)

Re: Вопрос про firewall mark-routing

Добавлено: 09 фев 2019, 14:53
Chupaka
Да, его отключить.

Re: Вопрос про firewall mark-routing

Добавлено: 09 фев 2019, 15:15
atbizz
Да, отключение помогает!

притом модификация (dst-address-list=!forbidden)

add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related dst-address-list=!forbidden

не помагает.
я не совсем в курсе что этот fasttrack делает, такое вот поведение это баг или фича?

Re: Вопрос про firewall mark-routing

Добавлено: 10 фев 2019, 01:13
Chupaka
FastTrack исключает некоторые процессы из обработки пакета (типа queues и прочего).
Исключение ваше может не работать потому, что правило ловит и обратные пакеты (от сервера к клиенту, src-address-list=forbidden) и помечает их как FastTrack-соединения, и следующий пакет к серверу пойдёт уже по FastTrack

Re: Вопрос про firewall mark-routing

Добавлено: 10 фев 2019, 15:10
atbizz
Спасибо, добавление src-address-list=!forbidden помогло!
нагрузка на cpu заметно упала, ну и тонель остался работоспособным