web-dev-qa-db-ja.com

IPv6 IPSec(strongswan)ゲートウェイを介してトラフィックをリダイレクトする方法は?

ゲートウェイへのIPSecで保護された接続を設定しようとしています。 3つのホストがあります:

A:
eth1 - fec0:1::1/64

B:
eth1 - fec0:1::2/64
eth2 - fec0:2::2/64
which is gateway between A and C; forwarding is set to 1 in sysctl

C:
eth1 - fec0:2:3/64

AとBの間にIPsec接続を構築したいのですが、BとCの間で安全に転送されません。

ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 1"

ca strongswan
    cacert=ca.crt
    auto=add

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    mobike=no
    keyexchange=ikev2

conn Host-host
    left=fec0:1::1
    leftcert=hostA.crt
    leftid=@hostA
    right=fec0:1::2
    rightid=%any
    type=transport
    auto=add

Bの構成は似ています。 auto = routeを設定しようとしましたが、接続を初期化できません。

このような構成を使用すると、B宛てのトラフィックのみが保護されます。 AからCに何かを送信しようとすると、パス全体が保護されません。

それを解決する方法はありますか?

1
Daniel

このような構成を使用すると、B宛てのトラフィックのみが保護されます。 AからCに何かを送信しようとすると、パス全体が保護されません。

まさにそうあるべきです。 AとBの間にトランスポートモードIPsec SAを確立しました。これは、これら2つのホスト間のトラフィックにのみ適用されるIPsecポリシーがあることを意味します。AとCの間のトラフィックを保護する場合( AとBの間のパス)トンネルモードを使用し、適切なトラフィックセレクタ/ポリシーを設定する必要があります。

接続を追加するか、次のようにします。

conn Host-c
  also=Host-host
  rightsubnet=fec0:2:3/128
  type=tunnel

または、既存の接続を変更します。

conn Host-host # or Host-hosts
  left=fec0:1::1
  leftcert=hostA.crt
  leftid=@hostA
  right=fec0:1::2
  rightid=%any
  rightsubnet=fec0:1::2/128,fec0:2:3/128
  type=tunnel
  auto=add

Bの構成はそれに応じて変更する必要があります。

0
ecdsa