McMerphy Posted August 15, 2014 · Report post Здравствуйте. Сразу же скажу, я не являюсь специалистом по сетям, и, возможно, вопрос глуп и реализовано всё неправильно. Имеется два Mikrotik RB951G-2HnD, с RouterOS v6.18. Роутеры подключены к одной локальной сети 192.168.10.0/24 и имеют адреса 192.168.10.1 и 192.168.10.5. Роутер c ip 192.168.10.1 подключен к провайдеру "TTK", а роутер с ip 192.168.10.5 подключен к провайдеру "OKBPM". Для смены провайдера изменяется маршрут по умолчанию скриптом. Роутер 192.168.10.1: [admin@MikroTik] > ip route print detail Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 0 A S dst-address=0.0.0.0/0 gateway=10.192.96.1 gateway-status=10.192.96.1 reachable via ether2 distance=1 scope=30 target-scope=10 routing-mark=viaTTK 1 A S dst-address=0.0.0.0/0 gateway=192.168.10.5 gateway-status=192.168.10.5 reachable via bridge1 distance=1 scope=30 target-scope=10 routing-mark=viaOKBPM 2 A S ;;; defaultRoute dst-address=0.0.0.0/0 gateway=10.192.96.1 gateway-status=10.192.96.1 reachable via ether2 distance=1 scope=30 target-scope=10 3 ADC dst-address=10.192.96.0/21 pref-src=10.192.97.25 gateway=ether2 gateway-status=ether2 reachable distance=0 scope=10 ... 7 ADC dst-address=192.168.10.0/24 pref-src=192.168.10.1 gateway=bridge1 gateway-status=bridge1 reachable distance=0 scope=10 [admin@MikroTik] > ip firewall mangle print Flags: X - disabled, I - invalid, D - dynamic ... 5 chain=prerouting action=mark-routing new-routing-mark=viaTTK passthrough=yes src-address=192.168.10.5 dst-address-list=!PrivateIPs [admin@MikroTik] > /ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=masquerade out-interface=ether2 Скрипт для использования провайдера "OKBPM": :local defaultRoute [/ip route find comment="defaultRoute"]; :if ($defaultRoute != "") do={ /ip route set gateway=192.168.10.5 $defaultRoute; } Скрипт для использования провайдера "TTK": :local TTKInterface "ether2"; :local gateway [/ip dhcp-client get [/ip dhcp-client find interface=$TTKInterface] gateway]; :if ($gateway != "") do={ :local defaultRoute [/ip route find comment="defaultRoute"]; :if ($defaultRoute != "") do={ /ip route set gateway=$gateway $defaultRoute; } } Роутер 192.168.10.5: [admin@MikroTik] > ip route print detail Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit 0 A S dst-address=0.0.0.0/0 gateway=192.168.10.1 gateway-status=192.168.10.1 reachable via bridge1 distance=1 scope=30 target-scope=10 routing-mark=viaTTK 1 A S dst-address=0.0.0.0/0 gateway=10.40.100.1 gateway-status=10.40.100.1 reachable via ether2 distance=1 scope=30 target-scope=10 routing-mark=viaOKBPM 2 A S ;;; defaultRoute dst-address=0.0.0.0/0 gateway=192.168.10.1 gateway-status=192.168.10.1 reachable via bridge1 distance=10 scope=30 target-scope=10 3 ADC dst-address=10.40.100.0/24 pref-src=10.40.100.32 gateway=ether2 gateway-status=ether2 reachable distance=0 scope=10 4 ADC dst-address=192.168.10.0/24 pref-src=192.168.10.5 gateway=bridge1 gateway-status=bridge1 reachable distance=0 scope=10 [admin@MikroTik] > ip firewall mangle print Flags: X - disabled, I - invalid, D - dynamic 0 chain=prerouting action=mark-routing new-routing-mark=viaOKBPM passthrough=yes src-address=192.168.10.1 dst-address-list=!PrivateIPs [admin@MikroTik] > /ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=masquerade out-interface=ether2 Скрипт для использования провайдера "OKBPM": :local OKBPMInterface "ether2"; :local gateway [/ip dhcp-client get [/ip dhcp-client find interface=$OKBPMInterface] gateway]; :if ($gateway != "") do={ :local defaultRoute [/ip route find comment="defaultRoute"]; :if ($defaultRoute != "") do={ /ip route set gateway=$gateway $defaultRoute; } } Скрипт для использования провайдера "TTK": :local defaultRoute [/ip route find comment="defaultRoute"]; :if ($defaultRoute != "") do={ /ip route set gateway=192.168.10.1 $defaultRoute; } Так вот, если пинговать 8.8.8.8 через winbox с роутера, то при смене провайдера пинг не прерывается и всё работает. Но если пинговать 8.8.8.8 с компьютера c windows, то при смене провайдера пинг не проходит. При этом после ipconfig /release, ipconfig /renew всё начинает работать как и задумывалось. Как временное решение, я отключаю интерфейс моста, затем включаю его через 10 секунд. При этом компьютер, видимо, переподключается и всё опять начинает работать как и задумывалось. Очень хотелось бы узнать в чём причина такого поведения и как это исправить? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
danilbal Posted August 15, 2014 · Report post А на винде-то что настроено? Какой из микротов роутером для нее? Кто и что отдает по DHCP? Какой из мостов вы отключаете? Мне кажется что проблема в том что оба шлюза в одной и той же сети, и меж собой маршрутизируют через ту же сеть. Я бы сделал вообще не так:) вариант 1 - завел бы оба канала на один микротик и второй выкинул, смысла в нем мало. вариант 2 - добавил бы на микротике еще одну сеть, и маршрутизировал бы через нее, а не через сеть с компьютерами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
McMerphy Posted August 15, 2014 · Report post На винде ничего не настроено - получает по DHCP настройки. DHCP для 192.168.10.1: IP pool: 192.168.10.10-192.168.10.99 Gateway: 192.168.10.1 Network: 192.168.10.0/24 DHCP для 192.168.10.5: IP pool: 192.168.10.100-192.168.10.254 Gateway: 192.168.10.5 Network: 192.168.10.0/24 Все интерфейсы, кроме провайдера(которые на обоих роутерах подключены к ether2), на каждом из роутеров объединены в свой bridge(bridge1). Вот этот мост я и отключаю, затем включаю чтобы сеть заработала при смене провайдере. Кстати, это не всегда срабатывает. Не могу завести оба канала на один и тот же микротик, так как они территориально друг от друга отдалены на пару километров, а связь между ними беспроводная через SXT Lite5. Можно поподробнее про "вариант 2 - добавил бы на микротике еще одну сеть, и маршрутизировал бы через нее, а не через сеть с компьютерами."? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
eugenesch Posted August 18, 2014 · Report post На микротике маршрут кешируется в conntrack. Поэтому и не идут пинги. можно после переключения чистить эту таблицу ip- firewall - connection - удалить все... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...