Два провайдера, две белых подсети и куча обычных подсеток
Добавлено: 07 сен 2020, 20:09
Помогите советом, как лучше реализовать.
Есть два прова с белыми адресами, допустим ISP1 1.1.1.2/30 и ISP2 2.2.2.2/30, каждый из которых в свою очередь мне даёт белую подсеть 11.11.11.0/26 и 22.22.22.0/26 ну ко всему этому есть кучка локальных подсетей, которым тоже нужен инет. Все локальные подсети, включая две белых подсети реализованы VLANами, два внешних интерфейса в WAN листе, все локалки в LAN листе.
Задачка - как лучше сделать так, чтобы локальные подсети (кроме белых) пользовались инетом за NAT, а белые просто форвардились на своих провайдеров, но в случае проблем со своим провом, могли тоже сидеть за NAT на другом провайдере?
Ну с выходом в инет из обычных локальных подсетей всё в принципе понятно, включаем NAT
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
Включаем маркирование, на примере первого прова
/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=fromISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=fromISP1 new-routing-mark=toISP1 passthrough=no
add action=mark-connection chain=forward in-interface=ISP1 new-connection-mark=ISP1forward passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1forward in-interface-list=LAN new-routing-mark=toISP1 passthrough=yes
ну и маршрутизация, рекурсивная для того чтобы локальные подседки в основном сидели на первом провайдере и лезли на второго только при отвале первого
/ip route
add distance=1 gateway=1.1.1.1 routing-mark=toISP1
add distance=1 gateway=2.2.2.1 routing-mark=toISP2
add check-gateway=ping distance=1 gateway=8.8.8.8
add distance=2 gateway=8.8.4.4
add distance=1 dst-address=8.8.4.4/32 gateway=2.2.2.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=1.1.1.1 scope=10
но как понятно, возникает проблема с белыми адресами, ибо они тоже попадают под правило NAT. собственно как лучше сделать так, чтобы NAT для белых адресов был лишь в случае отвала их провайдера?
Есть два прова с белыми адресами, допустим ISP1 1.1.1.2/30 и ISP2 2.2.2.2/30, каждый из которых в свою очередь мне даёт белую подсеть 11.11.11.0/26 и 22.22.22.0/26 ну ко всему этому есть кучка локальных подсетей, которым тоже нужен инет. Все локальные подсети, включая две белых подсети реализованы VLANами, два внешних интерфейса в WAN листе, все локалки в LAN листе.
Задачка - как лучше сделать так, чтобы локальные подсети (кроме белых) пользовались инетом за NAT, а белые просто форвардились на своих провайдеров, но в случае проблем со своим провом, могли тоже сидеть за NAT на другом провайдере?
Ну с выходом в инет из обычных локальных подсетей всё в принципе понятно, включаем NAT
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
Включаем маркирование, на примере первого прова
/ip firewall mangle
add action=mark-connection chain=input in-interface=ISP1 new-connection-mark=fromISP1 passthrough=yes
add action=mark-routing chain=output connection-mark=fromISP1 new-routing-mark=toISP1 passthrough=no
add action=mark-connection chain=forward in-interface=ISP1 new-connection-mark=ISP1forward passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP1forward in-interface-list=LAN new-routing-mark=toISP1 passthrough=yes
ну и маршрутизация, рекурсивная для того чтобы локальные подседки в основном сидели на первом провайдере и лезли на второго только при отвале первого
/ip route
add distance=1 gateway=1.1.1.1 routing-mark=toISP1
add distance=1 gateway=2.2.2.1 routing-mark=toISP2
add check-gateway=ping distance=1 gateway=8.8.8.8
add distance=2 gateway=8.8.4.4
add distance=1 dst-address=8.8.4.4/32 gateway=2.2.2.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=1.1.1.1 scope=10
но как понятно, возникает проблема с белыми адресами, ибо они тоже попадают под правило NAT. собственно как лучше сделать так, чтобы NAT для белых адресов был лишь в случае отвала их провайдера?