маршрутизация сетей
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
маршрутизация сетей
Необходимо выпусить 192.168.3.0/24 через gateway=3.3.3.3,но так чтобы был доступ в другие локальные сети 192.168.1.0/24 и 192.168.2.0/24
/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=\
ISP1_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP1_in \
new-routing-mark=ISP1_rout passthrough=no
add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=\
ISP2_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2_in \
new-routing-mark=ISP2_rout passthrough=no
add action=mark-connection chain=input in-interface=ISP3 new-connection-mark=\
ISP3_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3_in \
new-routing-mark=ISP3_rout passthrough=no
add action=mark-connection chain=forward in-interface=ISP1 \
new-connection-mark=ISP1_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1_for \
new-routing-mark=ISP1_rout passthrough=yes src-address-list=LocalNet
add action=mark-connection chain=forward in-interface=ISP2 \
new-connection-mark=ISP2_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP2_for \
new-routing-mark=ISP2_rout passthrough=yes src-address-list=LocalNet
add action=mark-connection chain=forward in-interface=ISP3 \
new-connection-mark=ISP3_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP3_for \
new-routing-mark=ISP3_rout passthrough=yes src-address-list=LocalNet
/ip route
add comment=ISP1_rout distance=1 gateway=1.1.1.1 routing-mark=ISP1_rout
add comment=ISP2_rout distance=1 gateway=2.2.2.2 routing-mark=ISP2_rout
add comment=ISP3_rout distance=1 gateway=3.3.3.3 routing-mark=ISP3_rout
add comment=GW1 distance=1 gateway=1.1.1.1
add comment=GW2 distance=2 gateway=2.2.2.2
add comment=GW3 distance=3 gateway=3.3.3.3
/ip firewall address-list
add address=192.168.1.0/24 disabled=yes list=LocalNet
add address=192.168.2.0/24 disabled=yes list=LocalNet
add address=192.168.3.0/24 disabled=yes list=LocalNet
/ip route rule
add action=lookup-only-in-table routing-mark=ISP1_rout table=ISP1_rout
add action=lookup-only-in-table routing-mark=ISP2_rout table=ISP2_rout
add action=lookup-only-in-table routing-mark=ISP3_rout table=ISP3_rout
add action=lookup-only-in-table src-address=192.168.3.0/24 table=ISP3_rout
/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=\
ISP1_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP1_in \
new-routing-mark=ISP1_rout passthrough=no
add action=mark-connection chain=input in-interface=ISP2 new-connection-mark=\
ISP2_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2_in \
new-routing-mark=ISP2_rout passthrough=no
add action=mark-connection chain=input in-interface=ISP3 new-connection-mark=\
ISP3_in passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3_in \
new-routing-mark=ISP3_rout passthrough=no
add action=mark-connection chain=forward in-interface=ISP1 \
new-connection-mark=ISP1_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1_for \
new-routing-mark=ISP1_rout passthrough=yes src-address-list=LocalNet
add action=mark-connection chain=forward in-interface=ISP2 \
new-connection-mark=ISP2_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP2_for \
new-routing-mark=ISP2_rout passthrough=yes src-address-list=LocalNet
add action=mark-connection chain=forward in-interface=ISP3 \
new-connection-mark=ISP3_for passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP3_for \
new-routing-mark=ISP3_rout passthrough=yes src-address-list=LocalNet
/ip route
add comment=ISP1_rout distance=1 gateway=1.1.1.1 routing-mark=ISP1_rout
add comment=ISP2_rout distance=1 gateway=2.2.2.2 routing-mark=ISP2_rout
add comment=ISP3_rout distance=1 gateway=3.3.3.3 routing-mark=ISP3_rout
add comment=GW1 distance=1 gateway=1.1.1.1
add comment=GW2 distance=2 gateway=2.2.2.2
add comment=GW3 distance=3 gateway=3.3.3.3
/ip firewall address-list
add address=192.168.1.0/24 disabled=yes list=LocalNet
add address=192.168.2.0/24 disabled=yes list=LocalNet
add address=192.168.3.0/24 disabled=yes list=LocalNet
/ip route rule
add action=lookup-only-in-table routing-mark=ISP1_rout table=ISP1_rout
add action=lookup-only-in-table routing-mark=ISP2_rout table=ISP2_rout
add action=lookup-only-in-table routing-mark=ISP3_rout table=ISP3_rout
add action=lookup-only-in-table src-address=192.168.3.0/24 table=ISP3_rout
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
Ну, если хочется через Route Rules делать - тогда просто добавить выше правило
Код: Выделить всё
add action=lookup src-address=192.168.3.0/24 dst-address=192.168.0.0/22 table=main
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
а как сделать через mangl
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
Аналогично:
Код: Выделить всё
/ip firewall mangle
add chain=prerouting src-address=192.168.3.0/24 dst-address=!192.168.0.0/22 \
action=mark-routing new-routing-mark=ISP3_rout passthrough=no
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
Спасибо
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
еще вопрос при последней маркировки Hairpin NAT неработает как поправить спасибо
/ip firewall nat
add chain=srcnat src-address=192.168.3.0/24 dst-address=192.168.3.2 protocol=tcp dst-port=80 out-interface=LAN3 action=masquerade
/ip firewall nat
add chain=srcnat src-address=192.168.3.0/24 dst-address=192.168.3.2 protocol=tcp dst-port=80 out-interface=LAN3 action=masquerade
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
https://wiki.mikrotik.com/wiki/Manual:Packet_Flow
Правила Mangle отрабатывают до Dst-NAT, поэтому пакеты от 192.168.3.0/24 ко внешнему адресу роутера маркируются ISP3_rout. После этого Dst-NAT меняет dst-address, но пакеты уже помечены - и улетают в Интернет, а не обратно в локалку.
Можно в правило Mangle добавить больше исключений:
Правила Mangle отрабатывают до Dst-NAT, поэтому пакеты от 192.168.3.0/24 ко внешнему адресу роутера маркируются ISP3_rout. После этого Dst-NAT меняет dst-address, но пакеты уже помечены - и улетают в Интернет, а не обратно в локалку.
Можно в правило Mangle добавить больше исключений:
Код: Выделить всё
/ip firewall address-list
add list=local-addresses address=192.168.0.0/16
add list=local-addresses address=ВНЕШНИЙ_АДРЕС
/ip firewall mangle
add chain=prerouting src-address=192.168.3.0/24 dst-address-list=!local-addresses \
action=mark-routing new-routing-mark=ISP3_rout passthrough=no
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
спасибо все получилось
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
Еще вопрос при переключении на резервного ISP у меня скрипт отключает постоянный не маркированный маршрут и последнее правило маркировки нужно ли сбрасывать маркированные соединения ?
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
У вас, похоже, много знаков препинания потерялось... В чём именно вопрос?
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
нужно ли сбрасывать маркированные соединения ? при переключении на другого прова
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
Что значит "сбрасывать"? Размаркировывать? Удалять из ConnTrack?
В принципе, если соединение не сможет продолжить работать через нового прова - оно будет сброшено клиентом
В принципе, если соединение не сможет продолжить работать через нового прова - оно будет сброшено клиентом
-
- Сообщения: 58
- Зарегистрирован: 19 май 2016, 14:52
Re: маршрутизация сетей
foreach i in=[/ip firewall connection find] do={/ip firewall connection remove $i}
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: маршрутизация сетей
Проще, наверное,
После этого все пакеты уже установленных tcp-соединений будут иметь connection-state=invalid. Их обычно просто drop'ают, поэтому сильно ли оно поможет...
Другой момент, что если соединение инициировано роутером (например, DNS-запросы, если они идут через DNS-сервер роутера), то оно может "залипнуть" со старым src-адресом. Тогда провайдер может заблокировать это — а пользователи на какое-то время останутся без DNS. В таком случае лучше "почистить" Connection Tracking
Код: Выделить всё
/ip firewall connection remove [find]
Другой момент, что если соединение инициировано роутером (например, DNS-запросы, если они идут через DNS-сервер роутера), то оно может "залипнуть" со старым src-адресом. Тогда провайдер может заблокировать это — а пользователи на какое-то время останутся без DNS. В таком случае лучше "почистить" Connection Tracking