VPCルータとのサイト間VPNを設定する上でのポイント~RTX1210を例に~ – 「さくらのクラウド入門」(7)
こんにちは、さくらインターネット クラウドチームの大喜多です。
VPCルータのサイト間VPNに関するお問い合わせをよくいただくようになりました。特に多くお問い合わせをいただくのがYAMAHA製ルータ「RTXシリーズ」の設定についてです。そこで今回は実際にRTX1210のコンフィグをもとに、VPN接続できない場合のチェックポイントについて解説致します。
今回のネットワーク構成
YAMAHAルータにてVPCルータとサイト間VPNが張れないというお問い合わせをいただいた際に、まずお客様に「YAMAHAルータのconfig全体(show configコマンドで出力されたものすべて)を送ってください」とお願いします。これは、VPN設定部分のconfigだけでは問題の切り分けができないことを意味しています。チェックポイントは大きく分けて3つありますので、順に説明してまいります。
VPCルータのサイト間VPN設定
RTX1210のコンフィグ
長くなりますが、チェックポイントを明確にするために全文掲載しています(コメント部分は省略しています)
# RTX1210 Rev.14.01.09 (Tue Jun 16 00:57:37 2015) <中略> ip route default gateway 59.106.69.97 ip route 192.168.3.0/24 gateway tunnel 1 ip filter source-route on ip filter directed-broadcast on ip lan1 address 192.168.1.102/24 ip lan2 address 203.0.113.102/27 ip lan2 secure filter in 300010 300020 200000 200001 200002 200003 200020 20002 1 200022 200023 200024 200025 200030 200032 200040 200042 60000 60001 60002 600 03 60004 60005 ip lan2 secure filter out 200010 200011 200012 200013 200020 200021 200022 2000 23 200024 200025 200026 200027 200099 dynamic 200080 200081 200082 200083 20008 4 200098 200099 ip lan2 nat descriptor 1 tunnel select 1 ipsec tunnel 101 ipsec sa policy 101 1 esp aes-cbc sha-hmac ipsec ike always-on 1 on ipsec ike duration ipsec-sa 1 1800 ipsec ike duration ike-sa 1 28800 ipsec ike encryption 1 aes-cbc ipsec ike group 1 modp1024 ipsec ike hash 1 sha ipsec ike keepalive log 1 off ipsec ike keepalive use 1 on dpd 15 2 ipsec ike local address 1 192.168.1.102 ipsec ike local id 1 192.168.1.0/24 ipsec ike pfs 1 on ipsec ike pre-shared-key 1 text abcde123 ipsec ike remote address 1 198.51.100.221 ipsec ike remote id 1 192.168.3.0/24 ipsec auto refresh 1 on ip tunnel mtu 1280 ip tunnel tcp mss limit auto tunnel enable 1 ip filter 1010 reject * * udp,tcp 135 * ip filter 1011 reject * * udp,tcp * 135 ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 1014 reject * * udp,tcp 445 * ip filter 1015 reject * * udp,tcp * 445 ip filter 1020 reject 192.168.1.0/24 * ip filter 1030 pass * 192.168.1.0/24 icmp ip filter 1040 pass * * tcp telnet * ip filter 1050 pass * * tcp www * ip filter 2000 reject * * ip filter 3000 pass * * ip filter 60000 pass-log * 192.168.1.100 tcp * 60000 ip filter 60001 pass-log * 192.168.1.101 tcp * 60001 ip filter 60002 pass-log * 192.168.1.102 tcp * 60002 ip filter 60003 pass-log * 192.168.1.103 tcp * 60003 ip filter 60004 pass-log * 192.168.1.104 tcp * 60004 ip filter 60005 pass-log * 192.168.0.50 tcp * 60005 ip filter 100000 reject * * udp,tcp 135 * ip filter 100001 reject * * udp,tcp * 135 ip filter 100002 reject * * udp,tcp netbios_ns-netbios_dgm * ip filter 100003 reject * * udp,tcp * netbios_ns-netbios_dgm ip filter 100004 reject * * udp,tcp netbios_ssn * ip filter 100005 reject * * udp,tcp * netbios_ssn ip filter 100006 reject * * udp,tcp 445 * ip filter 100007 reject * * udp,tcp * 445 ip filter 100099 pass * * * * * ip filter 200000 reject 10.0.0.0/8 * * * * ip filter 200001 reject 172.16.0.0/12 * * * * ip filter 200002 reject 192.168.0.0/16 * * * * ip filter 200003 reject 192.168.1.0/24 * * * * ip filter 200010 reject * 10.0.0.0/8 * * * ip filter 200011 reject * 172.16.0.0/12 * * * ip filter 200012 reject * 192.168.0.0/16 * * * ip filter 200013 reject * 192.168.1.0/24 * * * ip filter 200020 reject * * udp,tcp 135 * ip filter 200021 reject * * udp,tcp * 135 ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 200024 reject * * udp,tcp 445 * ip filter 200025 reject * * udp,tcp * 445 ip filter 200026 restrict * * tcpfin * www,21,nntp ip filter 200027 restrict * * tcprst * www,21,nntp ip filter 200030 pass * 192.168.0.0/16 icmp * * ip filter 200031 pass * 192.168.1.0/24 established * * ip filter 200032 pass * 192.168.0.0/16 tcp * ident ip filter 200033 pass * 192.168.1.0/24 tcp ftpdata * ip filter 200034 pass * 192.168.1.0/24 tcp,udp * domain ip filter 200035 pass * 192.168.1.0/24 udp domain * ip filter 200036 pass * 192.168.1.0/24 udp * ntp ip filter 200037 pass * 192.168.1.0/24 udp ntp * ip filter 200040 pass * 192.168.1.102 tcp * telnet ip filter 200042 pass * 192.168.1.102 tcp * 22 ip filter 200099 pass * * * * * ip filter 300010 pass 198.51.100.221/32 192.168.1.0/24 udp 500 ip filter 300020 pass 198.51.100.221/32 192.168.1.0/24 esp ip filter 500000 restrict * * * * * ip filter dynamic 100 * * ftp ip filter dynamic 101 * * www ip filter dynamic 102 * * domain ip filter dynamic 103 * * smtp ip filter dynamic 104 * * pop3 ip filter dynamic 106 * * tcp ip filter dynamic 107 * * udp ip filter dynamic 200080 * * ftp ip filter dynamic 200081 * * domain ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp nat descriptor type 1 masquerade nat descriptor timer 1 600 nat descriptor timer 1 tcpfin 5 nat descriptor address outer 1 203.0.113.102 nat descriptor address inner 1 auto nat descriptor masquerade incoming 1 reject nat descriptor masquerade static 1 9 192.168.1.102 udp 500 nat descriptor masquerade static 1 10 192.168.1.102 esp nat descriptor masquerade session limit 1 1 500 dns server 8.8.8.8 dns private address spoof on dashboard accumulate traffic on
nat descriptor masquerade static
まず最初に確認するポイントですが、configの下の方、緑色の文字の部分「nat descriptor masquerade static」の確認を行います。IPsecを張るためにはUDP500番ポートとESPの通信を許可しておく必要があります。また、重要なのはIPアドレスの部分です。理由は後述します。
nat descriptor masquerade static 1 9 192.168.1.102 udp 500 nat descriptor masquerade static 1 10 192.168.1.102 esp
ipsec ike local address/ipsec ike local id
config中央部分、青色の文字の部分がIPsecの設定です。ここで確認するのは「ipsec ike local address/ipsec ike local id」の部分です。
ipsec ike local address 1 192.168.1.102 ipsec ike local id 1 192.168.1.102
IPsecで接続する相手に対して自分のアドレスとidを広告しています。
「nat descriptor masquerade static」と「ipsec ike local address/ipsec ike local id」で設定されているIPアドレスは、必ず同一である必要があります。今回のケースでは、いずれもプライベートIPアドレスである「192.168.1.102」が設定されており、VPCルータの対向IDも「192.168.1.102」となっているので、問題ありません。お問い合わせいただくケースで最も多いのは、この部分のIPアドレスが不一致になっているケースがほとんどです。この例では全てプライベートIPアドレスになっていますが、VPN設定のIPアドレスがグローバルIPアドレスになっており、正しくIPsecが張れないということが多いのです。この部分は
・いずれもRTX1210のプライベートIPアドレス
・いずれもPTX1210のグローバルIPアドレス
のいずれかで揃っている必要がありますので、うまく接続ができない場合はまずこの部分をご確認ください。
secure filterの確認
これは稀な例ですが、フィルタによってUDP500番ポートとESPの通信が遮断されているケースがあります。
今回の例では、WAN側インタフェース(LAN2)に入ってくる(in)の部分でプライベートIP宛ての通信がrejectされるようになっていたため、UDP500番ポートとESPの通信のみを明示的に許可するfilterを追加しています。
ip filter 300010 pass 198.51.100.221/32 192.168.1.0/24 udp 500 ip filter 300020 pass 198.51.100.221/32 192.168.1.0/24 esp
また、ip filterの行が大量にありますが、全てのfilterが有効になっているわけではありません。ip lan2 secure filter in および ip lan2 secure filter outの部分でフィルタ番号が記載されているものが、実際にインタフェースに適用されているフィルタになります。今回のケースでもip filterの行はあるものの適用されていないフィルタがいくつかあります。
まとめ
今回はRTX1210の実際のconfigをもとに、サイト間VPNが失敗する場合にチェックするべきポイントについて取り上げました。また、こちらのサイト間VPNのマニュアルにはVPCルータのIPsecパラメータや他機種の設定例なども記載しておりますので、併せてご確認ください。
また、2017年1月17日に「さくらのクラウド体験ハンズオン VPN編」を開催致します。当日は実際にVPCルータとRXT1210を用いてサイト間VPNを構築するデモンストレーションと、VPCルータとL2TP/IPsecによるリモートアクセスVPNを張るハンズオンを予定しています。ぜひご参加ください。