ローカルとリモートのサブネット一覧から IPsec のトラフィックセレクタを計算し、strongSwan の swanctl.conf (local_ts / remote_ts) と従来の ipsec.conf (leftsubnet / rightsubnet) の両方で出力します。
両側とも先に集約します。隣接または内包する指定はより短い 1 つのプレフィックスとまったく同じアドレス範囲を表すため、まとめても意味は変わらず、トラフィックセレクタの組み合わせ数を減らせます。IKEv1 ではこの削減がそのまま SA 本数の削減になります。1 つの SA が 1 組のサブネットしか扱えないためです。IKEv2 では CHILD_SA の本数が同じだけ減るとは限らないため、このツールは本数を断定しません。
ポリシーベースでは local × remote の組み合わせを列挙します。カーネルがポリシーとして登録するのはこの直積です。この数は CHILD_SA の本数ではなく、トラフィックセレクタの組み合わせ数として表示します。この違いは重要です。IKEv1 では両者は一致します。1 つの SA が 1 組のサブネットしか扱えないため、各側が数個のサブネットでも SA が数十になります。IKEv2 では 1 つの CHILD_SA が複数のトラフィックセレクタを扱えるため、SA の本数は相手側の提案内容と、ネゴシエーション時の narrowing の挙動に依存します。1 組ずつに分割する実装もあれば、しない実装もあります。このツールからはどちらか判断できないため、組み合わせ数のみを表示し、SA 本数は相手側との確認に委ねます。
ルートベースでは意図的に 0.0.0.0/0 と ::/0 を使用し、アドレスファミリごとに 1 組になります。SA はすべてを収容し、XFRM / VTI インターフェースの経路がトンネルへ流す範囲を決めます。入力したサブネットは、経路設定の参考として一覧に残します。
ローカルとリモートが重なっている場合は指摘します。セレクタの書き方では解決できず、片側を NAT する必要があるためです。アドレスファミリをまたぐ組み合わせは作らず、片側にしか存在しないファミリは黙って捨てずに指摘します。
このツールは IKE を話さず、ゲートウェイへ接続せず、既存設定の読み込みも行いません。出力する 2 つの strongSwan 構文以外のベンダー互換性も主張しません。