web-dev-qa-db-ja.com

2つのIPsecトンネル間でトラフィックを転送するStrongswan

外部静的IPを使用したStrongSwan IKEv2セットアップを備えたリモート(集中型)VPNサーバーがあるとします。

  • 集中型サーバーの内部IP192.168.1.65、ネットワーク192.168.1.64/27

そして、内部ネットワークに対してNATを実行する2つのゲートウェイ:

  • 最初のゲートウェイ内部IP192.168.1.33、ネットワーク:192.168.1.32/27;
  • 2番目のゲートウェイの内部IP 192.168.1.1、ネットワーク:192.168.1.0/27;

ゲートウェイは、StrongSwanを使用して集中サーバーに接続されます。

接続はゲートウェイからサーバーへ、およびサーバーからゲートウェイへ完全に機能します。pingは機能し、サーバー/ゲートウェイ上のサービスにアクセスします。ゲートウェイの背後にあるデバイスも問題なくサーバーにアクセスできます。

別のゲートウェイ間でコンピュータにアクセスしようとすると、問題が始まります。

構成:

一元化:

conn base
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    left = centralized
    leftid = @centralized
    leftauth = pubkey
    leftca = "..."
    leftcert = centralized.crt
    leftupdown = Sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.65

    right = %any
    rightauth = pubkey
    rightauth2 = psk
    rightca = %same

conn gateway-first
    auto = add
    rightid = @gateway-first
    rightcert = gateway-first.crt
    rightsubnet = 192.168.1.32/27
    rightsourceip = 192.168.1.66
    also = base

conn gateway-second
    auto = add
    rightid = @gateway-second
    rightcert = gateway-second.crt
    rightsubnet = 192.168.1.0/27
    rightsourceip = 192.168.1.67
    also = base

ゲートウェイ優先:

conn gateway-first
    auto = route
    dpdaction = restart
    closeaction = restart
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    rightid = @centralized
    right = centralized
    rightauth = pubkey
    rightca = "..."
    rightcert = centralized.crt
    rightsubnet = 192.168.1.65,192.168.1.0/27

    leftid = @gateway-first
    left = %defaultroute
    leftauth = pubkey
    leftauth2 = psk
    leftca = %same
    leftcert = gateway-first.crt
    leftupdown = Sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.32/27
    leftsourceip = %config4

ゲートウェイ秒:

conn gateway-second
    auto = route
    dpdaction = restart
    closeaction = restart
    keyexchange = ikev2
    keyingtries = %forever
    forceencaps = yes
    compress = no

    rightid = @centralized
    right = centralized
    rightauth = pubkey
    rightca = "..."
    rightcert = centralized.crt
    rightsubnet = 192.168.1.65,192.168.1.32/27

    leftid = @gateway-second
    left = %defaultroute
    leftauth = pubkey
    leftauth2 = psk
    leftca = %same
    leftcert = gateway-second.crt
    leftupdown = Sudo -E ipsec _updown iptables
    leftsubnet = 192.168.1.1/27
    leftsourceip = %config4

Pingを実行しようとするとgateway-second背後のコンピューターからgateway-first(ソースコンピューターのIPは192.168.1.40)を実行してtcpdumpcentralizedサーバー上で同時に表示:

tcpdump -i eth0 Host 192.168.1.1 -n
error : ret -1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:27:49.030650 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 35, length 64
21:27:50.026652 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 36, length 64
21:27:51.031805 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 37, length 64
21:27:52.041165 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 38, length 64
21:27:53.029530 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 39, length 64

したがって、このログによると、パケットはcentralizedサーバーに到着しますが、192.168.1.1に転送されることはありません。

集中サーバーと両方のゲートウェイで、転送を有効にしました。

net.ipv4.ip_forward = 1

集中サーバー上のルーティングテーブル:

# ip route
default via yy.yy.yy.yy dev eth0  proto static 
zz.zz.zz.zz dev eth0  proto kernel  scope link  src xx.xx.xx.xx
192.168.1.64/27 via 192.168.1.65 dev eth1  proto static

また、ルートテーブル#220(VPN):

# ip route show table 220
192.168.1.0/27 via 5.189.141.1 dev eth0  proto static  src 192.168.1.65 
192.168.1.32/27 via 5.189.141.1 dev eth0  proto static  src 192.168.1.65 

2つの異なるトンネル間の転送を有効にする方法はありますか?

2
GeekMagus

2つのゲートウェイのサブネットを中央サーバーのleftsubnetに追加してみてください。各ゲートウェイのrightsubnetにはそれぞれ反対のサブネットが含まれますが、トラフィックセレクターは、中央サーバーでleftsubnetとして構成されているもの(つまり、192.168.1.65)に絞り込まれます。 ipsec statusallの出力にそれが表示されます。中央サーバーでleftsubnet=0.0.0.0/0を構成することもできます。そうすると、ゲートウェイはrightsubnetとして提案するanythingを受け入れます。

4
ecdsa