はじめに
IDCFクラウドと事業所間で拠点間VPN(Site-to-Site VPN)を構築すると、社内LANをクラウド化することができます。
社内LANのクラウド化というのは、昨今においては珍しいことではないと思いますが、IDCFクラウドの場合は500円から仮想マシンが構築できることと、データ転送量は3,240GB/月まで無料という点で、かなりリーズナブルに社内LANのクラウド化を実現することができます。そして、国内第一位の回線総量(バックボーン)を保有しているという点でも安心感があります。
そこで、IDCFクラウド上で拠点間VPNを構築する手順について簡単にまとめました。 なお、拠点側のルータはYAMAHAのRT(X)シリーズを利用するものとします。
拠点間VPN(Site-to-Site VPN)
IDCFクラウドにはAWSのVPCやさくらのクラウドのVPCルータのような仮想アプライアンスのようなものはありません。その代わり、VyOSテンプレートが用意されており、VyOSテンプレートから仮想マシンを構築し、その仮想マシン上で動作するVyOSをVPNルータとして利用します。VyOSテンプレートは無償で利用可能です。
拠点間VPN(IDCFクラウド) http://www.idcf.jp/cloud/spec/vyos-vpn.html
IDCFクラウドでは、「VyOS での IPsecサイト間 VPN 接続ガイド」という設定ガイドがPDFで公開されていますので、そちらを参考に進めていくことで、非常に簡単に拠点間VPNを構築することができます。
VyOS での IPsecサイト間 VPN 接続ガイド http://www.idcf.jp/pdf/cloud/self/vyos_self.pdf
クラウド側のVPN設定
前述の通り、VyOSテンプレートより仮想マシンを構築してから、その仮想マシン上で動作するVyOSの設定を進めます。
なお、IDCFクラウドではS2以上のマシンタイプを推奨していますが、S1でも全く問題ありません。S1からS2へのスケールアップは後からでも可能ですので、まずはS1で運用してみて、S1でパフォーマンスが出ないと感じた時にS2にしてみると良いでしょう。ちなみに、私の場合はS1のままで十分動作していて、S2に変更したことは一度もありません。
VyOSの設定は、「VyOS での IPsecサイト間 VPN 接続ガイド」の「YAMAHA RTX1200 の場合」の『クラウド側VyOSの設定』を参考に設定を行えば問題なく接続できるはずです。
なお、拠点の先にさらに別セグメントのローカルネットワークが存在している場合や、拠点からさらに別の拠点への拠点間VPNが構築されている場合、それらのネットワークへのルーティングが通りません。対応方法については、下記の内容にまとめてありますので、ご参照ください。
VyOSのIPSec site-to-site VPNでVPN対向先の別セグメントに対してルーティングする方法 http://qiita.com/tabimoba/items/e3c9457fe21ec29136f5
拠点側のVPN設定
基本的な設定は「VyOS での IPsecサイト間 VPN 接続ガイド」の「YAMAHA RTX1200 の場合」の『YAMAHA RTX1200 の設定』を参考に設定を行えば問題なく接続できるはずです。
スタティックルーティング設定
拠点側においては拠点側ルータがデフォルトルータである場合は、拠点側ルータに対してスタティックルーティングの設定を行っていれば、それ以外の設定は特に必要ありませんが、クラウド側においては仮想マシンごとに拠点側ネットワークへのスタティックルーティング設定が必要となります。
こちらは、「VyOS での IPsecサイト間 VPN 接続ガイド」の『スタティックルートの設定』を参考に、各OSで設定を行います。
なお、CentOSの場合は以下の通り設定します。
CentOS6の場合
/etc/sysconfig/network-scripts/route-eth0 へ以下の行を追加します。(対向側LANのセグメントが192.168.11.0/24の場合)
192.168.11.0/24 via 10.5.0.2
CentOS7の場合
nmtuiを起動し、ルーティングに対向側LANセグメントのIPアドレスと、VyOSのプライベートIPアドレスを追加します。
設定例
※VPN接続に関連する設定のみ記載しています。必要に応じて適宜調整が必要です。
VyOS
firewall { all-ping enable broadcast-ping disable config-trap disable ipv6-receive-redirects disable ipv6-src-route disable ip-src-route disable log-martians enable name FW_RULE { default-action drop rule 100 { action accept source { address 10.5.0.0/22 ※クラウド側のネットワークセグメント } } rule 110 { action accept source { address 192.168.11.0/24 ※拠点側のLAN側ネットワークセグメント } } } receive-redirects disable send-redirects enable source-validation disable syn-cookies enable twa-hazards-protection disable } interfaces { ethernet eth0 { address dhcp duplex auto smp_affinity auto speed auto } tunnel tun0 { address 192.168.123.1/24 ※拠点側VPNルーターのIPIP接続用アドレス encapsulation ipip local-ip 10.5.0.2 ※クラウド側のVyOSのプライベートIPアドレス mtu 1422 multicast disable remote-ip 172.16.0.1 ※拠点側VPNルーターのグローバルIPアドレス } vti vti0 { } } protocols { static { interface-route 192.168.11.0/24 { ※拠点側のLAN側ネットワークセグメント next-hop-interface vti0 { } } } } vpn { ipsec { esp-group ESP-G { compression disable lifetime 1800 mode tunnel pfs enable proposal 1 { encryption 3des hash md5 } } ike-group IKE-G { ikev2-reauth no key-exchange ikev1 lifetime 3600 proposal 1 { encryption 3des hash md5 } } ipsec-interfaces { interface eth0 } nat-traversal enable site-to-site { peer 192.168.123.2 { ※クラウド側VyOSのIPIP接続用IPアドレス authentication { mode pre-shared-secret pre-shared-secret VPN(IPSec)事前共有鍵 } connection-type initiate default-esp-group ESP-G ike-group IKE-G ikev2-reauth inherit local-address 192.168.123.1 ※拠点側VPNルーターのIPIP接続用アドレス vti { bind vti0 } } } } }
RTX810
※以下は固定IPをlan2インターフェースへ割り当てた場合の設定となります。PPPoE接続の場合は、調整が必要となります。
ip route default gateway lan2 ip route 10.5.0.0/22 gateway tunnel 2 ※クラウド側のLAN側ネットワークセグメント ip route 172.16.0.2 gateway 172.16.0.1 ※172.16.0.1:本機のグローバルIPアドレス,172.16.0.2:クラウド側VyOSのグローバルIPアドレス ip keepalive 1 icmp-echo 10 5 172.16.0.1 ※本機のグローバルIPアドレス ip lan1 address 192.168.11.1/24 ※LAN側のネットワークセグメント ip lan2 address 172.16.0.1/24 ※WAN側のネットワークセグメント ip lan2 secure filter in 101003 101004 101020 101021 101022 101023 101024 101025 101030 101032 ip lan2 secure filter out 101004 101013 101020 101021 101022 101023 101024 101025 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099 ip lan2 nat descriptor 200 provider lan1 name LAN: provider lan2 name PRV/0/1/5/0/0/0:devel tunnel select 1 tunnel encapsulation ipip tunnel endpoint address 172.16.0.1 172.16.0.2 ※172.16.0.1:本機のグローバルIPアドレス,172.16.0.2:クラウド側VyOSのグローバルIPアドレス ip tunnel address 192.168.123.2/24 ※クラウド側VyOSのIPIP接続用IPアドレス tunnel enable 1 tunnel select 2 ipsec tunnel 2 ipsec sa policy 2 2 esp 3des-cbc md5-hmac ipsec ike duration ipsec-sa 2 1800 ipsec ike encryption 2 3des-cbc ipsec ike group 2 modp1024 ipsec ike hash 2 md5 ipsec ike keepalive use 2 on icmp-echo 10.5.0.2 ※クラウド側VyOSのプライベートIPアドレス ipsec ike local address 2 192.168.123.2 ※クラウド側VyOSのIPIP接続用IPアドレス ipsec ike pre-shared-key 2 text VPN(IPSec)事前共有鍵 ipsec ike remote address 2 192.168.123.1 ※本機のIPIP接続用IPアドレス tunnel enable 2 ip filter 101000 reject 10.0.0.0/8 * * * * ip filter 101001 reject 172.16.0.0/12 * * * * ip filter 101002 reject 192.168.0.0/16 * * * * ip filter 101003 reject 192.168.11.0/24 * * * * ※本機のLAN側ネットワークセグメント ip filter 101004 pass 172.16.0.2 * * * * ※クラウド側VyOSのグローバルIPアドレス ip filter 101010 reject * 10.0.0.0/8 * * * ip filter 101011 reject * 172.16.0.0/12 * * * ※クラウド側VyOSのグローバルIPアドレス ip filter 101012 reject * 192.168.0.0/16 * * * ip filter 101013 reject * 192.168.11.0/24 * * * ※本機のLAN側ネットワークセグメント ip filter 101020 reject * * udp,tcp 135 * ip filter 101021 reject * * udp,tcp * 135 ip filter 101022 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 101023 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 101024 reject * * udp,tcp 445 * ip filter 101025 reject * * udp,tcp * 445 ip filter 101030 pass * * icmp * * ip filter 101031 pass * * established * * ip filter 101032 pass * * tcp * ident ip filter 101033 pass * * tcp ftpdata * ip filter 101034 pass * * tcp,udp * domain ip filter 101035 pass * * udp domain * ip filter 101036 pass * * udp * ntp ip filter 101037 pass * * udp ntp * ip filter 101098 reject-nolog * * established ip filter 101099 pass * * * * * ip filter 500000 restrict * * * * * ip filter dynamic 101080 * * ftp ip filter dynamic 101081 * * domain ip filter dynamic 101082 * * www ip filter dynamic 101083 * * smtp ip filter dynamic 101084 * * pop3 ip filter dynamic 101085 * * submission ip filter dynamic 101098 * * tcp ip filter dynamic 101099 * * udp nat descriptor type 200 masquerade nat descriptor address outer 200 primary ipsec auto refresh on