今回はstrongSwanでのautoパラメータによる挙動について書きたいと思います。
wikiの方にも記載がありますが、autoパラメータでは以下の4つ設定が可能となっています
auto=start/route/add/ignore
1 | start | サービス起動時にトンネルを張る。 |
2 | route | 通信が開始されたときトンネルを張る。 |
3 | add | 設定ファイルをロードする。接続は手動で行う。 |
4 | ignore | 設定ファイルを無視する。トンネルを意図的に張らないようにする設定。 |
[参考ページ]: ipsec.conf Reference
さて今回は上記4つの設定を実際に行い、どういった挙動になるのか確認してみたいと思います。
検証環境は前回、ご紹介したこちらの環境にて行いたいと思います。
strongSwanによるIPsec構築(AmazonLinux <-> Amazon Linux)
検証
start(サービス起動時にトンネルを張る)
設定ファイル
auto=start ...
設定反映/確認
# strongswan restart # strongswan status Security Associations (1 up, 0 connecting): oregon[1]: ESTABLISHED 5 seconds ago, 10.31.1.185[10.31.1.185]...x.x.x.x[10.77.1.210] oregon{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c7cf7e98_i ca49bb0c_o oregon{1}: 10.31.0.0/16 === 10.77.0.0/16
route(通信が開始されたと時にトンネルを張る)
設定ファイル
auto=route ...
設定反映/確認
# strongswan restart # strongswan status Routed Connections: oregon{1}: ROUTED, TUNNEL, reqid 1 oregon{1}: 10.31.0.0/16 === 10.77.0.0/16 Security Associations (0 up, 0 connecting): none
まだ通信をしていないので、トンネルが張れてない状態です。pingをしてみます。
ping -c 3 10.77.1.210 PING 10.77.1.210 (10.77.1.210) 56(84) bytes of data. 64 bytes from 10.77.1.210: icmp_seq=1 ttl=255 time=103 ms 64 bytes from 10.77.1.210: icmp_seq=2 ttl=255 time=103 ms 64 bytes from 10.77.1.210: icmp_seq=3 ttl=255 time=104 ms
再びトンネルの状態を確認します。
# strongswan status Routed Connections: oregon{1}: ROUTED, TUNNEL, reqid 1 oregon{1}: 10.31.0.0/16 === 10.77.0.0/16 Security Associations (1 up, 0 connecting): oregon[1]: ESTABLISHED 63 seconds ago, 10.31.1.185[10.31.1.185]...x.x.x.x[10.77.1.210] oregon{2}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cf8176b4_i c8c2e0b9_o oregon{2}: 10.31.0.0/16 === 10.77.0.0/16
pingによってICMPパケットが送信されたため、通信が開始されたことになるのでトンネルが張られています。
add(設定ファイルをロードする。接続は手動で行う)
設定ファイル
auto=add ...
設定反映/確認
# strongswan restart # strongswan status Security Associations (0 up, 0 connecting): none
手動でトンネルを張ります。
最終行に”established successfully”と表示されれば問題なくトンネルが張れています。
# strongswan up oregon initiating Main Mode IKE_SA oregon[1] to x.x.x.x generating ID_PROT request 0 [ SA V V V V ] sending packet: from 10.31.1.185[500] to x.x.x.x[500] (216 bytes) received packet: from x.x.x.x[500] to 10.31.1.185[500] (136 bytes) parsed ID_PROT response 0 [ SA V V V ] received XAuth vendor ID received DPD vendor ID received NAT-T (RFC 3947) vendor ID generating ID_PROT request 0 [ KE No NAT-D NAT-D ] sending packet: from 10.31.1.185[500] to x.x.x.x[500] (244 bytes) received packet: from x.x.x.x[500] to 10.31.1.185[500] (244 bytes) parsed ID_PROT response 0 [ KE No NAT-D NAT-D ] local host is behind NAT, sending keep alives remote host is behind NAT generating ID_PROT request 0 [ ID HASH N(INITIAL_CONTACT) ] sending packet: from 10.31.1.185[4500] to x.x.x.x[4500] (108 bytes) received packet: from x.x.x.x[4500] to 10.31.1.185[4500] (76 bytes) parsed ID_PROT response 0 [ ID HASH ] IKE_SA oregon[1] established between 10.31.1.185[10.31.1.185]...x.x.x.x[10.77.1.210] scheduling reauthentication in 27899s maximum IKE_SA lifetime 28439s generating QUICK_MODE request 2935009511 [ HASH SA No ID ID ] sending packet: from 10.31.1.185[4500] to x.x.x.x[4500] (204 bytes) received packet: from x.x.x.x[4500] to 10.31.1.185[4500] (188 bytes) parsed QUICK_MODE response 2935009511 [ HASH SA No ID ID ] connection 'oregon' established successfully
トンネル状態
# strongswan status Security Associations (1 up, 0 connecting): oregon[3]: ESTABLISHED 8 seconds ago, 10.31.1.185[10.31.1.185]...x.x.x.x[10.77.1.210] oregon{3}: INSTALLED, TUNNEL, reqid 3, ESP in UDP SPIs: c78d2a71_i cb1cc4e1_o oregon{3}: 10.31.0.0/16 === 10.77.0.0/16
ignore(設定ファイルを無視する。トンネルを意図的に張らないようにする設定。)
設定ファイル
auto=ignore ...
設定反映/確認
# strongswan restart # strongswan status Security Associations (0 up, 0 connecting): none
設定ファイルを読み込まないので、手動でトンネルを張ろうと試みるも、コンフィグが無いと怒られます。
# strongswan up oregon no config named 'oregon'
以上