Два провайдера. Необычный глюк. Ткните носом.
Добавлено: 05 окт 2017, 07:57
Имеется микротик RB1100AHx2 с прошивкой 6.34.3
Имеется задача подключить в него 2 провайдера. Не обязательно чтобы они работали одновременно, хотя было бы неплохо.
На данный момент внутри микротика работает один провайдер обозначенный в конфиге как ISP2
Я подготавливаю правила и настройки, чтобы в нужный момент просто воткнуть провода от перового провайдера и все бы заработало.
Проблема в том, что как только я просто включаю (делаю Enabled) в разделе ip addresses адреса первого провайдера у меня начинаются глюки в работе:
- чаще всего полностью пропадает интернет и доступ к микротику, только по MAC могу к нему подключиться.
- иногда интернет не пропадает, но при работе с конфигурацией микротика, возникают странные глюки, например выборочно работает правило доступа к RDP от каких-то провайдеров пропускает от каких-то нет. И глюк исчезает если выключить адреса первого провайдера.
Поскольку я полный чайник, я чувствую что-то как-то не так промаркировал траффик и как-то не так его разруливаю механизмом манглов.
А также возможно не уточнил правила в фильтре.
Очень буду рад, если кто-то укажет мои ошибки в конфигурации.
Конфигурацию прилагаю. В каждом правиле я пояснил, что я делаю или что я считаю, что делаю.
/interface ethernet
set [ find default-name=ether2 ] name=LAN_ether2
set [ find default-name=ether1 ] name=WAN_ether1
/ip address
add address=90.90.90.94/27 interface=WAN_ether1 network=90.90.90.94
add address=192.168.0.11/21 interface=LAN_ether2 network=192.168.0.0
add address=80.80.80.84 disabled=yes interface=3ISP1_WAN network=80.80.80.1
add address=192.168.0.1/21 disabled=yes interface=4ISP1_LAN network=192.168.0.0
/ip firewall filter
блокирую свой прокси снаружи для двух провайдеров
add action=drop chain=input comment=proxy dst-port=8080 in-interface=WAN_ether1 protocol=tcp
add action=drop chain=input comment=proxy_ISP1 dst-port=8080 in-interface=3ISP1_WAN protocol=tcp
разрешаю пинги
add chain=input comment=ping in-interface=WAN_ether1 protocol=icmp
add chain=input comment=ping in-interface=3ISP1_WAN protocol=icmp
разрешаю winbox
add chain=input comment=winbox dst-port=8291 protocol=tcp
разрешаю установленные соединения
add chain=input comment=Established_input connection-state=established
разрешаю родственные соединения
add chain=input comment=Allow_related connection-state=related
разрешаю UDP
add chain=input comment="Allow udp" protocol=udp
add chain=forward comment="Allow udp" protocol=udp
разрешаю траффик из локальной сети к микротик (наверное)
add chain=input comment=from_LAN in-interface=LAN_ether2 src-address=192.168.0.0/24
add chain=input comment=from_LAN in-interface=4ISP1_LAN src-address=192.168.0.0/24
разрешаю родственные и установленные соединения через микротик
add chain=forward comment=Allow_established_con connection-state=established
add chain=forward comment=Allow_related_con connection-state=related
запрещаю неправильные соединения на вход и через микротик
add action=drop chain=input comment=drop_invalid_con in-interface=WAN_ether1
add action=drop chain=forward comment=Drop_invalid_con connection-state=invalid
/ip firewall mangle
(создаю маркировку до таблицы маршрутизации для провайдера и помечаю ее как cin_ISP2)
add action=mark-connection chain=prerouting comment=ISP2 in-interface=WAN_ether1 new-connection-mark=cin_ISP2
(создаю маркировку для дальнейшего использование в разделе маршрутов, или я так думаю)
add action=mark-routing chain=prerouting connection-mark=cin_ISP2 in-interface=LAN_ether2 new-routing-mark=rout_ISP2 passthrough=no
(возможно не нужное правило маркировки входящих соединений с пометкой cin_ISP2)
add action=mark-connection chain=input dst-address=90.90.90.94 in-interface=WAN_ether1 new-connection-mark=cin_ISP2 passthrough=no
(маркировка траффика через микротик, или я так думаю)
add action=mark-connection chain=forward in-interface=WAN_ether1 new-connection-mark=cin_ISP2
(пометка исходящего трффика, для того чтобы отправить его туда, откуда он пришел, или я так думаю)
add action=mark-routing chain=output connection-mark=cin_ISP2 new-routing-mark=rout_ISP2 passthrough=no
---------------------
Это группа манглов для первого провайдера, который сейчас отключен физически, нет проводов в портах
и сделано по аналогии со вторым
add action=mark-connection chain=prerouting comment=ISP1 in-interface=3ISP1_WAN new-connection-mark=cin_ISP1
add action=mark-routing chain=prerouting connection-mark=cin_ISP1 in-interface=4ISP1_LAN new-routing-mark=rout_ISP1 passthrough=no
add action=mark-connection chain=input dst-address=80.80.80.84 in-interface=3ISP1_WAN new-connection-mark=cin_ISP1 passthrough=no
add action=mark-connection chain=forward in-interface=3ISP1_WAN new-connection-mark=cin_ISP1
add action=mark-routing chain=output connection-mark=cin_ISP1 new-routing-mark=rout_ISP1 passthrough=no
/ip firewall nat
делаю NAT только для избранных адресов, остальные пользуют прокси
add action=masquerade chain=srcnat comment=NAT_for_only_NAT_users out-interface=WAN_ether1 src-address=192.168.0.0/24 src-address-list=NAT
разрешаю NAT для каждой подсети
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.1.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.2.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.3.0/24 src-address-list=NAT
тоже самое для первого провайдера на потом
add action=masquerade chain=srcnat comment=NAT_for_only_NAT_users_ISP1 out-interface=3ISP1_WAN src-address=192.168.0.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.1.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.2.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.4.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.3.0/24 src-address-list=NAT
разрешаю траффик между подсетями для будущих установленных тоннелей (или я так думаю)
add chain=srcnat dst-address=192.168.1.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.2.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.3.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.4.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.33.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.30.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.9.0/24 src-address=192.168.0.0/24 src-address-list=NAT
это проброс RDP (я его в лог, искал проблему)
add action=netmap chain=dstnat comment=RDP_adm dst-address=90.90.90.94 dst-port=xxxx in-interface=WAN_ether1 log=yes log-prefix=6666 protocol=\
tcp to-addresses=192.168.x.xxx to-ports=3389
отправляю пользователей на прокси из каждой подсети отдельно для двух провайдеров
add action=redirect chain=dstnat comment=proxy dst-port=80 in-interface=\
LAN_ether2 protocol=tcp src-address=192.168.0.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.1.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.2.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.4.0/24 to-ports=8080
add action=redirect chain=dstnat comment=proxy_ISP1 dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.0.0/24 src-address-list=!test \
to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.1.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.4.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.3.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.2.0/24 src-address-list=!test to-ports=8080
/ip route
тут указаны только созданные в ручную маршруты, дефолтные тоже присутствуют вида:
0.0.0.0/0 на шлюз 90.90.90.91
add check-gateway=ping distance=1 gateway=90.90.90.91 routing-mark=rout_ISP2
add check-gateway=ping disabled=yes distance=2 gateway=80.80.80.1 routing-mark=rout_ISP1
add disabled=yes distance=1 dst-address=192.168.0.0/21 gateway=LAN_ether2 pref-src=192.168.0.11
Имеется задача подключить в него 2 провайдера. Не обязательно чтобы они работали одновременно, хотя было бы неплохо.
На данный момент внутри микротика работает один провайдер обозначенный в конфиге как ISP2
Я подготавливаю правила и настройки, чтобы в нужный момент просто воткнуть провода от перового провайдера и все бы заработало.
Проблема в том, что как только я просто включаю (делаю Enabled) в разделе ip addresses адреса первого провайдера у меня начинаются глюки в работе:
- чаще всего полностью пропадает интернет и доступ к микротику, только по MAC могу к нему подключиться.
- иногда интернет не пропадает, но при работе с конфигурацией микротика, возникают странные глюки, например выборочно работает правило доступа к RDP от каких-то провайдеров пропускает от каких-то нет. И глюк исчезает если выключить адреса первого провайдера.
Поскольку я полный чайник, я чувствую что-то как-то не так промаркировал траффик и как-то не так его разруливаю механизмом манглов.
А также возможно не уточнил правила в фильтре.
Очень буду рад, если кто-то укажет мои ошибки в конфигурации.
Конфигурацию прилагаю. В каждом правиле я пояснил, что я делаю или что я считаю, что делаю.
/interface ethernet
set [ find default-name=ether2 ] name=LAN_ether2
set [ find default-name=ether1 ] name=WAN_ether1
/ip address
add address=90.90.90.94/27 interface=WAN_ether1 network=90.90.90.94
add address=192.168.0.11/21 interface=LAN_ether2 network=192.168.0.0
add address=80.80.80.84 disabled=yes interface=3ISP1_WAN network=80.80.80.1
add address=192.168.0.1/21 disabled=yes interface=4ISP1_LAN network=192.168.0.0
/ip firewall filter
блокирую свой прокси снаружи для двух провайдеров
add action=drop chain=input comment=proxy dst-port=8080 in-interface=WAN_ether1 protocol=tcp
add action=drop chain=input comment=proxy_ISP1 dst-port=8080 in-interface=3ISP1_WAN protocol=tcp
разрешаю пинги
add chain=input comment=ping in-interface=WAN_ether1 protocol=icmp
add chain=input comment=ping in-interface=3ISP1_WAN protocol=icmp
разрешаю winbox
add chain=input comment=winbox dst-port=8291 protocol=tcp
разрешаю установленные соединения
add chain=input comment=Established_input connection-state=established
разрешаю родственные соединения
add chain=input comment=Allow_related connection-state=related
разрешаю UDP
add chain=input comment="Allow udp" protocol=udp
add chain=forward comment="Allow udp" protocol=udp
разрешаю траффик из локальной сети к микротик (наверное)
add chain=input comment=from_LAN in-interface=LAN_ether2 src-address=192.168.0.0/24
add chain=input comment=from_LAN in-interface=4ISP1_LAN src-address=192.168.0.0/24
разрешаю родственные и установленные соединения через микротик
add chain=forward comment=Allow_established_con connection-state=established
add chain=forward comment=Allow_related_con connection-state=related
запрещаю неправильные соединения на вход и через микротик
add action=drop chain=input comment=drop_invalid_con in-interface=WAN_ether1
add action=drop chain=forward comment=Drop_invalid_con connection-state=invalid
/ip firewall mangle
(создаю маркировку до таблицы маршрутизации для провайдера и помечаю ее как cin_ISP2)
add action=mark-connection chain=prerouting comment=ISP2 in-interface=WAN_ether1 new-connection-mark=cin_ISP2
(создаю маркировку для дальнейшего использование в разделе маршрутов, или я так думаю)
add action=mark-routing chain=prerouting connection-mark=cin_ISP2 in-interface=LAN_ether2 new-routing-mark=rout_ISP2 passthrough=no
(возможно не нужное правило маркировки входящих соединений с пометкой cin_ISP2)
add action=mark-connection chain=input dst-address=90.90.90.94 in-interface=WAN_ether1 new-connection-mark=cin_ISP2 passthrough=no
(маркировка траффика через микротик, или я так думаю)
add action=mark-connection chain=forward in-interface=WAN_ether1 new-connection-mark=cin_ISP2
(пометка исходящего трффика, для того чтобы отправить его туда, откуда он пришел, или я так думаю)
add action=mark-routing chain=output connection-mark=cin_ISP2 new-routing-mark=rout_ISP2 passthrough=no
---------------------
Это группа манглов для первого провайдера, который сейчас отключен физически, нет проводов в портах
и сделано по аналогии со вторым
add action=mark-connection chain=prerouting comment=ISP1 in-interface=3ISP1_WAN new-connection-mark=cin_ISP1
add action=mark-routing chain=prerouting connection-mark=cin_ISP1 in-interface=4ISP1_LAN new-routing-mark=rout_ISP1 passthrough=no
add action=mark-connection chain=input dst-address=80.80.80.84 in-interface=3ISP1_WAN new-connection-mark=cin_ISP1 passthrough=no
add action=mark-connection chain=forward in-interface=3ISP1_WAN new-connection-mark=cin_ISP1
add action=mark-routing chain=output connection-mark=cin_ISP1 new-routing-mark=rout_ISP1 passthrough=no
/ip firewall nat
делаю NAT только для избранных адресов, остальные пользуют прокси
add action=masquerade chain=srcnat comment=NAT_for_only_NAT_users out-interface=WAN_ether1 src-address=192.168.0.0/24 src-address-list=NAT
разрешаю NAT для каждой подсети
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.1.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.2.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=WAN_ether1 src-address=192.168.3.0/24 src-address-list=NAT
тоже самое для первого провайдера на потом
add action=masquerade chain=srcnat comment=NAT_for_only_NAT_users_ISP1 out-interface=3ISP1_WAN src-address=192.168.0.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.1.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.2.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.4.0/24 src-address-list=NAT
add action=masquerade chain=srcnat out-interface=3ISP1_WAN src-address=192.168.3.0/24 src-address-list=NAT
разрешаю траффик между подсетями для будущих установленных тоннелей (или я так думаю)
add chain=srcnat dst-address=192.168.1.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.2.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.3.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.4.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.33.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.30.0/24 src-address=192.168.0.0/24 src-address-list=NAT
add chain=srcnat dst-address=192.168.9.0/24 src-address=192.168.0.0/24 src-address-list=NAT
это проброс RDP (я его в лог, искал проблему)
add action=netmap chain=dstnat comment=RDP_adm dst-address=90.90.90.94 dst-port=xxxx in-interface=WAN_ether1 log=yes log-prefix=6666 protocol=\
tcp to-addresses=192.168.x.xxx to-ports=3389
отправляю пользователей на прокси из каждой подсети отдельно для двух провайдеров
add action=redirect chain=dstnat comment=proxy dst-port=80 in-interface=\
LAN_ether2 protocol=tcp src-address=192.168.0.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.1.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.2.0/24 to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=LAN_ether2 protocol=tcp src-address=192.168.4.0/24 to-ports=8080
add action=redirect chain=dstnat comment=proxy_ISP1 dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.0.0/24 src-address-list=!test \
to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.1.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.4.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.3.0/24 src-address-list=!test to-ports=8080
add action=redirect chain=dstnat dst-port=80 in-interface=4ISP1_LAN protocol=tcp src-address=192.168.2.0/24 src-address-list=!test to-ports=8080
/ip route
тут указаны только созданные в ручную маршруты, дефолтные тоже присутствуют вида:
0.0.0.0/0 на шлюз 90.90.90.91
add check-gateway=ping distance=1 gateway=90.90.90.91 routing-mark=rout_ISP2
add check-gateway=ping disabled=yes distance=2 gateway=80.80.80.1 routing-mark=rout_ISP1
add disabled=yes distance=1 dst-address=192.168.0.0/21 gateway=LAN_ether2 pref-src=192.168.0.11