romar Posted December 13, 2015 Ребята,прошу помощи со скриптом,не пойму-почему не отрабатывает до конца,пробовал думать с пивом-не помогает ))). В общем картина такая,имеется 2 микротика,на каждом из них по 2 провайдера для резевирования канала IpSec,тоесть при потере основных линков в инет скрипт отключает ненужные IpSec каналы и включает нужные. Скрипт работает,но в случае падения основного канала в инет на обоих микротиках он не включает нужный канал именно на центральном микротике,вот его настройки /ip address add address=192.168.88.1/24 comment="default configuration" interface=ether3-master-local network=192.168.88.0 add address=80.......2/30 disabled=yes interface=ether1-gateway network=80.......0 add address=80.......6/30 interface=ether2-gateway network=80.......4 /ip ipsec peer add address=80.......10/32 nat-traversal=no secret=12345 add address=80.......14/32 nat-traversal=no secret=12345 /ip ipsec policy set 0 disabled=yes add disabled=yes dst-address=192.168.89.0/24 ipsec-protocols=ah-esp sa-dst-address=80.......10 sa-src-address=80.......2 src-address=192.168.88.0/24 tunnel=\ yes add disabled=yes dst-address=192.168.89.0/24 ipsec-protocols=ah-esp sa-dst-address=80.......14 sa-src-address=80.......2 src-address=192.168.88.0/24 tunnel=\ yes add disabled=yes dst-address=192.168.89.0/24 ipsec-protocols=ah-esp sa-dst-address=80.......10 sa-src-address=80.......6 src-address=192.168.88.0/24 tunnel=\ yes add disabled=yes dst-address=192.168.89.0/24 ipsec-protocols=ah-esp sa-dst-address=80.......14 sa-src-address=80.......6 src-address=192.168.88.0/24 tunnel=\ yes вот сам скрипт :local PingCount 3 :local Center2 80.......6 :local Center1 80.......2 :local RemoteA 80.......10 :local RemoteB 80.......14 :local StatusA1 [/ping $RemoteA count=$PingCount src-address=$Center1] :local StatusA2 [/ping $RemoteA count=$PingCount src-address=$Center2] :local StatusB1 [/ping $RemoteB count=$PingCount src-address=$Center1] :local StatusB2 [/ping $RemoteB count=$PingCount src-address=$Center2] :local EnableA1 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center1 sa-dst-address=$RemoteA] disabled]=true) do={/ip ipsec policy set [find sa-src-address=$Center1 sa-dst-address=$RemoteA] disabled=no}")]; :local DisableA1 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center1 sa-dst-address=$RemoteA] disabled]=false) do={/ip ipsec policy set [find sa-src-address=$Center1 sa-dst-address=$RemoteA] disabled=yes}")]; :local EnableA2 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center2 sa-dst-address=$RemoteA] disabled]=true) do={/ip ipsec policy set [find sa-src-address=$Center2 sa-dst-address=$RemoteA] disabled=no}")]; :local DisableA2 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center2 sa-dst-address=$RemoteA] disabled]=false) do={/ip ipsec policy set [find sa-src-address=$Center2 sa-dst-address=$RemoteA] disabled=yes}")]; :local EnableB1 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center1 sa-dst-address=$RemoteB] disabled]=true) do={/ip ipsec policy set [find sa-src-address=$Center1 sa-dst-address=$RemoteB] disabled=no}")]; :local DisableB1 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center1 sa-dst-address=$RemoteB] disabled]=false) do={/ip ipsec policy set [find sa-src-address=$Center1 sa-dst-address=$RemoteB] disabled=yes}")]; :local EnableB2 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center2 sa-dst-address=6$RemoteB] disabled]=true) do={/ip ipsec policy set [find sa-src-address=$Center2 sa-dst-address=$RemoteB] disabled=no}")]; :local DisableB2 [:parse (":if ([/ip ipsec policy get [find sa-src-address=$Center2 sa-dst-address=$RemoteB] disabled]=false) do={/ip ipsec policy set [find sa-src-address=$Center2 sa-dst-address=$RemoteB] disabled=yes}")]; :if ($StatusA1>0) do={ $DisableA2; $DisableB1; $DisableB2; delay 2; :put "A1" $EnableA1; } :if (($StatusA1=0)&&($StatusA2>0)) do={ :put "A2" $DisableA1; $DisableB1; $DisableB2; delay 2; $EnableA2; :put "A2" } :if (($StatusA1=0)&&($StatusA2=0)&&($StatusB1>0)) do={ :put "B1" $DisableA1; $DisableA2; $DisableB2; delay 2; $EnableB1; :put "B1" } :if (($StatusA1=0)&&($StatusA2=0)&&($StatusB1=0)&&($StatusB2>0)) do={ $DisableA1; $DisableA2; $DisableB1; delay 2; $EnableB2; :put "B2" } тоесть когда на центральном микротике остается в работе только интерфейс 80.......6 а на удаленном 80.......14 скрипт должен включить /ip ipsec policy add disabled=yes dst-address=192.168.89.0/24 ipsec-protocols=ah-esp sa-dst-address=80.......14 sa-src-address=80.......6 src-address=192.168.88.0/24 tunnel=\ yes но он этого не делает ((( в чем может быть дело? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myst Posted December 13, 2015 Сначала ответьте, зачем отключать не нужные каналы? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 14, 2015 Сначала ответьте, зачем отключать не нужные каналы? если оставлять все включеные микротик начинает временами отправлять трафик на нерабочие каналы IpSec,да и при диагностики проблем так будет проще... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted December 14, 2015 Сначала ответьте, зачем отключать не нужные каналы? если оставлять все включеные микротик начинает временами отправлять трафик на нерабочие каналы IpSec,да и при диагностики проблем так будет проще... эээ, тунели, OSPF? что за велосипед придумали? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myst Posted December 14, 2015 Сначала ответьте, зачем отключать не нужные каналы? если оставлять все включеные микротик начинает временами отправлять трафик на нерабочие каналы IpSec,да и при диагностики проблем так будет проще... эээ, тунели, OSPF? что за велосипед придумали? ++ я о том же. Сделайте нормальный дизайн и не городите ерунды со скриптами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 14, 2015 Причем тут OSPF,я говорю о IpSec Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 14, 2015 Друзья,все,вопрос больше не актуален,разобрался в чем дело,лишний знак в скрипте ))) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myst Posted December 14, 2015 Причем тут OSPF,я говорю о IpSec Притом, что каналы отключать _НЕ НАДО_. Вообще. Это глупый костыль. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 14, 2015 Притом, что каналы отключать _НЕ НАДО_. Вообще. Это глупый костыль. Может я что то не длгоняю,или что то неправильно объяснил.... каким тогда образом микротику понять,через какой именно IpSec в данной ситуации отправлять трафик? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myst Posted December 14, 2015 Притом, что каналы отключать _НЕ НАДО_. Вообще. Это глупый костыль. Может я что то не длгоняю,или что то неправильно объяснил.... каким тогда образом микротику понять,через какой именно IpSec в данной ситуации отправлять трафик? Ответили же. IPSec в траспортном режиме, а поверх любой туннель на выбор: ipip gre eoip... А в них уже запустить ospf. Все будет красиво и _правильно_ отрабатывать само при любом падении. И не надо чудовищных костылей. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 15, 2015 Ответили же. IPSec в траспортном режиме, а поверх любой туннель на выбор: ipip gre eoip... А в них уже запустить ospf. Все будет красиво и _правильно_ отрабатывать само при любом падении. И не надо чудовищных костылей. Спасибо,идею понял,сейчас буду пережевывать и строить макет ))) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
myst Posted December 15, 2015 Ответили же. IPSec в траспортном режиме, а поверх любой туннель на выбор: ipip gre eoip... А в них уже запустить ospf. Все будет красиво и _правильно_ отрабатывать само при любом падении. И не надо чудовищных костылей. Спасибо,идею понял,сейчас буду пережевывать и строить макет ))) Да что там пережевывать, вот готовый конфиг, IP свои подставьте и все /interface gre add name="gre_1" mtu=1400 local-address=3.3.3.3 remote-address=1.1.1.1 /interface gre add name="gre_2" mtu=1400 local-address=4.4.4.4 remote-address=2.2.2.2 /ip address add address=172.16.1.2/30 interface=gre_1 /ip address add address=172.16.1.6/30 interface=gre_2 /ip route add dst-address=1.1.1.1/32 gateway=3.3.3.1 check-gateway=ping distance=1 /ip route add dst-address=2.2.2.2/32 gateway=4.4.4.1 check-gateway=ping distance=1 /ip ipsec proposal add name="AES-128" auth-algorithms=md5 enc-algorithms=aes-128-cbc lifetime=8m20s pfs-group=none /ip ipsec policy add src-address=3.3.3.3/32 src-port=any dst-address=1.1.1.1/32 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=3.3.3.3 sa-dst-address=1.1.1.1 proposal=AES-128 priority=10 /ip ipsec policy add src-address=4.4.4.4/32 src-port=any dst-address=2.2.2.2/32 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=4.4.4.4 sa-dst-address=2.2.2.2 proposal=AES-128 priority=10 /ip ipsec peer add address=1.1.1.1/32 passive=no port=500 auth-method=pre-shared-key secret="KEY" generate-policy=port-override exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp1024 lifetime=8m20s lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=10 /ip ipsec peer add address=2.2.2.2/32 passive=no port=500 auth-method=pre-shared-key secret="KEY" generate-policy=port-override exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp1024 lifetime=8m20s lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=10 routing ospf instance disable 0 /routing ospf instance add name=XXX router-id=10.0.1.1 distribute-default=never redistribute-connected=no redistribute-static=no /routing ospf area disable 0 /routing ospf area add name=XXX instance=XXX type=default area-id=10.0.0.0 routing ospf interface add interface=gre_1 cost=10 priority=0 authentication=none authentication-key="" authentication-key-id=1 network-type=point-to-point instance-id=0 retransmit-interval=5s transmit-delay=1s hello-interval=10s dead-interval=40s use-bfd=no /routing ospf interface add interface=gre_2 cost=40 priority=0 authentication=none authentication-key="" authentication-key-id=1 network-type=point-to-point instance-id=0 retransmit-interval=5s transmit-delay=1s hello-interval=10s dead-interval=40s use-bfd=no /routing ospf network add network=172.16.1.0/30 area=XXX /routing ospf network add network=172.16.1.4/30 area=XXX /routing ospf network add network=10.0.1.0/24 area=XXX Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
romar Posted December 17, 2015 в моем случае /interface gre add !keepalive local-address=3.3.3.3 mtu=1400 name=gre_1 remote-address=1.1.1.1 add !keepalive local-address=4.4.4.4 mtu=1400 name=gre_2 remote-address=1.1.1.1 add !keepalive local-address=3.3.3.3 mtu=1400 name=gre_3 remote-address=2.2.2.2 add !keepalive local-address=4.4.4.4 mtu=1400 name=gre_4 remote-address=2.2.2.2 /ip ipsec proposal add auth-algorithms=md5 lifetime=8m20s name=AES-128 pfs-group=none /routing ospf area set [ find default=yes ] disabled=yes /routing ospf instance set [ find default=yes ] disabled=yes add name=ospf1-instance router-id=192.168.100.1 /routing ospf area add area-id=192.168.0.0 instance=ospf1-instance name=area1 /ip address add address=192.168.100.1/24 interface=ether3-master-local network=192.168.100.0 add address=172.16.1.2/30 interface=gre_1 network=172.16.1.0 add address=172.16.1.6/30 interface=gre_2 network=172.16.1.4 add address=172.16.1.10/30 interface=gre_3 network=172.16.1.8 add address=172.16.1.14/30 interface=gre_4 network=172.16.1.12 /routing ospf interface add interface=gre_1 network-type=point-to-point priority=0 add cost=40 interface=gre_2 network-type=point-to-point priority=0 add cost=100 interface=gre_3 network-type=point-to-point priority=0 add cost=200 interface=gre_4 network-type=point-to-point priority=0 /routing ospf network add area=area1 network=192.168.100.0/24 add area=area1 network=172.16.1.0/30 add area=area1 network=172.16.1.4/30 add area=area1 network=172.16.1.8/30 add area=area1 network=172.16.1.12/30 Все работает,все 4 канала переключаются согласно стоймости маршрута,но как только я начинаю делаю 4 ipsec в транспортном режиме /ip ipsec peer add address=1.1.1.1 passive=no port=500 auth-method=pre-shared-key secret=12345 generate-policy=port-override exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp1024 lifetime=8m20s lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=10 /ip ipsec peer add address=2.2.2.2 passive=no port=500 auth-method=pre-shared-key secret=12345 generate-policy=port-override exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp1024 lifetime=8m20s lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=10 /ip ipsec policy add src-address=3.3.3.3 src-port=any dst-address=1.1.1.1 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=3.3.3.3 sa-dst-address=1.1.1.1 proposal=AES-128 priority=10 /ip ipsec policy add src-address=4.4.4.4 src-port=any dst-address=1.1.1.1 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=4.4.4.4 sa-dst-address=1.1.1.1 proposal=AES-128 priority=10 /ip ipsec policy add src-address=3.3.3.3 src-port=any dst-address=2.2.2.2 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=3.3.3.3 sa-dst-address=2.2.2.2 proposal=AES-128 priority=10 /ip ipsec policy add src-address=4.4.4.4 src-port=any dst-address=2.2.2.2 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=4.4.4.4 sa-dst-address=2.2.2.2 proposal=AES-128 priority=10 отрабатывают только gre_1 и gre_4..... gre_2 gre_3 никак не хотят связываться с шифрованием.... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...