LoginSignup
6
2

More than 5 years have passed since last update.

IPsecでIDir 'XXX' does not match to 'YYY'のエラーが出た場合

Last updated at Posted at 2017-06-20

概要

sudo ipsec up VPN1 とかすると connection 'VPN1' established successfully って言われてるのに全然繋がってなくてハマりました。
ipsecは問題ないなーと思って意識から消してましたが、実際はipsecが確立できてませんでした。
結論から言うとrightidの設定などの問題でした。

環境

  • Linux Mint 18.1
  • strongSwan 5.3.5-1ubuntu3.3

参考

詳細

以下に書いた問題などを解消して無事に繋がったように見えましたが、activeな接続を見ると0になっていました。
http://qiita.com/knqyf263/items/c619036ad2fa6b0d7c8f

# ipsec up VPN1
...
connection 'VPN1' established successfully
# ipsec status
Security Associations (0 up, 0 connecting):
  none

upした際のメッセージにはsuccessfullyって出てるし問題なさそうなので、0 upになっていても繋がっているのかと思ってVPNの設定をしたのですがxl2tpdの設定をどう直してもうまくいきませんでした。
仕方ないのでsyslogを眺めていたら以下のエラーが出ていました。

$ grep -i IDir /var/log/syslog
Jun 20 13:07:02 XXX charon: 15[IKE] IDir '172.0.0.1' does not match to '10.0.0.1'

他にそれらしきエラーもないので、これが関係しているだろうと調べていくと、どうやらrightidの設定に関するエラーのようでした。
特にrightidなどを指定しない場合、デフォルトだと設定ファイルでrightに指定されている値をrightidとみなすらしいです。
right側のサーバで特に指定していない場合、実装にもよると思われるがIPアドレスがidに指定される?っぽい。
VPNサーバがグローバルIPアドレスを持っていて繋ぐ場合は問題ないが、NAT配下にあるなどしてIPアドレスが異なる場合はきちんと指定しないと動かないということらしいです。
IPアドレスは環境によって異なるので、ログを見つつ正しいidを指定すれば動くと思われます。
もちろんサーバ側できちんとidを指定してそのidを指定しても良いはず。

最終的には以下のような設定になりました。
設定の意味を全ては理解していないので無駄はありそうですが、とりあえずrightidを指定したら動くようになりました。
rightid=%anyなどはエラーが出てしまって、どう使うと良いのかはまだ分かっていないです。

$ sudo vim /etc/ipsec.conf
conn VPN1
      keyexchange=ikev1
      authby=secret
      ike=3des-sha1-modp1024!
      esp=3des-sha1-modp1024!
      leftfirewall=yes
      keyingtries=3
      dpddelay=30
      dpdtimeout=120
      dpdaction=clear
      rekey=yes
      auto=start
      left=%defaultroute
      leftprotoport=17/1701
      right=X.X.X.X
      rightprotoport=17/1701
      rightid=172.0.0.1
      type=transport
$ sudo ipsec restart
$ sudo ipsec status
Security Associations (1 up, 0 connecting):
      VPN1[1]: ESTABLISHED 2 seconds ago, 192.168.1.18[192.168.1.18]...10.0.0.1[172.0.0.1]
      VPN1{1}:  INSTALLED, TRANSPORT, reqid 1, ESP in UDP SPIs: cd29336f_i dd95abb5_o
      VPN1{1}:   192.168.1.18/32[udp/l2f] === 10.0.0.1/32[udp/l2f]

上記のように ipsec status をしたら無事に繋がっていることが確認できました。

まとめ

Macで普段VPN張るときには意識していませんでしたが、久しぶりにLinuxからやろうとしたら大ハマリしました。
前もハマった気がするので次はスムーズにできるように書いておきました。
rightidの指定は大事。実は自動でやってくれる設定とかもあるのかもしれないので、もしあったら知りたいです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2