ミクロティック。 動的IPクライアントを使用したVPN ipsecトンネルの構築

彼は、DリンクDV 804 HV機器からMikrotikへのVPNトンネルネットワークの転送に従事していました。 翻訳中に問題が発生しました。その解決策をご紹介します。



しかし、最初に、いくつかの入力。



192.168.0.0/21のローカルネットワークがある場合、 192.168.112.0/24リモートオフィスのLAN。 yyyyは私の白いIPで、xxxxはリモートオフィスの白いIP(動的)です。



Mikrotikサーバー設定:



/ip ipsec peer address.0.0.0/0 port=500 auth-methodre-shared-key secret="12345678" generate-policy=no exchange-mode=main send-initial-contact=yes nat-traversal=no my-id-user-fqdn="" proposal-checkbey hash-algorithm=sha1 enc-algorithm=3des dh-group=modp768 lifetime=1d lifebytes dpd-interval=2m dpd-maximum-failures=5
      
      





ポリシー:



 /ip ipsec policy src-address=192.168.0.0/21 src-port=any dst-address=192.168.112.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=yyyy sa-dst-address=0.0.0.0 comment=pobug </code>          3 installed-sa: <source> 0 E spi src-address=yyyy dst-address=0.0.0.0 auth-algorithm=none enc-algorithm=none replay state=larval add-lifetimes/30s 1 E spi=0x2010010 src-address=yyyy dst-address=zzzz auth-algorithm=sha1 enc-algorithm=3des replay=4 state=mature auth-key="sss" enc-key="fff" addtime=jun/10/2013 12:42:47 expires-in=7h41m33s add-lifetime=6h24m/8h current-bytes=240 2 E spixDBEA2D2 src-address=zzzz dst-address=yyyy auth-algorithm=sha1 enc-algorithm=3des replay=4 state=mature auth-key="sss" enc-key="fff" addtime=jun/10/2013 12:42:47 expires-in=7h41m33s add-lifetime=6h24m/8h current-bytes=3376
      
      





その結果、反対方向のトラフィックは、クライアントが接続するときに動的に作成されるのではなく、番号0のトンネルを通過します。 リモートクライアントでddnsレコードを使用し、対応するポリシーでIPを置換で定義することで、この問題を自分で解決しました。 リモートルーターのDDNSは既に構成されています。



次に、リモートピアのリモートピア名からIPアドレスを取得し、それを目的のポリシーに挿入するスクリプトを示します。 さまざまなネットワークのポリシーはそれほど多くないため、各ポリシーにコメントを追加し、必要なポリシーを決定します。



 :local nname pobug; :log info "start $nname"; :local newip [:resolve "lanlan69.zapto.org"]; :local curip [/ip ipsec policy get [/ip ipsec policy find comment=$nname] sa-dst-address]; :log info "newip = $newip"; :log info "currentip = $curip"; :if ($newip != $curip) do={ :log info "ip $nname is $curip not $newip"; /ip ipsec policy set [/ip ipsec policy find comment=$nname] sa-dst-address=$newip; :log info "end $nname"; }
      
      





そして、このスクリプトの実行をスケジューラに追加します。



  /system scheduler add disabled=no interval=7m name=pobug on-event=lan112 policy=\ read,write,policy,test,sensitivei start-date=jun/12/2013 start-time=08:11:19
      
      





Mikrotikiをリモートオフィスのルーターとして使用する場合、いくつかのスクリプトが役立ちます。



現在のIPをリモート側のポリシーに置き換えるスクリプト:

 :global lastip :local wanip :local wanif "pppoe-out1" :if ([ :typeof $lastip ] = nil ) do={ :global lastip "0" } :local wanip [ /ip address get [/ip address find interface=$wanif ] address ] :if ([ :typeof $wanip ] = nil ) do={ :log info ("WANIP: no ip address on $wanif .") } else= { :for i from=( [:len $wanip] - 1) to=0 do={ :if ( [:pick $wanip $i] = "/") do={ :set wanip [:pick $wanip 0 $i]; :log info ("wan ip now is $wanip") } } :if ($wanip != $lastip) do={ :log info ("Renew ipsec Policy: $wanif -> $wanip") #   ipsec /ip ipsec policy set 0 sa-src-address=$wanip :global lastip $wanip } }
      
      





MikrotikでNo-ip.comサービスを更新する方法については、wiki.mikrotik.com / wiki / Dynamic_DNS_Update_Script_for_No-IP_DNSで説明しています。



All Articles