スタンドアロンのDockerHost、ipsec、およびDockerコンテナーネットワークの特定の状況で問題が発生しています。
スタンドアロンのDockerホストがあり、その中にlibreswan 3ipsecサービスとDocker環境がインストールされています。
情報:
私のDockerネットワークは、IP範囲が172.81.238.0/24のブリッジです。
Docker環境の外にIPSeclibreswanがありますが、同じホストにあり、仮想インターフェイス(eth0:3-> 10.120.0.38)を使用し、他のipsec側(10.120.0.36/30)との接続をサイト間で閉じます。 )。
Ipsecvpnの反対側で通信するCIDRは172.36.0.0/22です。
問題
重要なのは、ホストでSSH(またはsshトンネル)を介して直接接続すると、172.36.0.0/22ネットワーク(クライアントのネットワーク)上の他のサーバーと簡単に通信できるということです。
しかし、Dockerコンテナー(ネットワーク172.81.238.0/24)に接続すると、CIDR 172.36.0.0/22と通信できなくなります。 Dockerコンテナでは、Dockerホストのeth0:3(10.120.0.38)インターフェイスを「ping」できますが、ipsecvpnの反対側と通信できません。
私のルートはスタンドアロンホストでは機能していますが、コンテナ(この同じホストによってドッキングされている)では機能していません。何か、いくつかのbypaなどが不足しているようです。
誰か助けてくれませんか?
[〜#〜]編集[〜#〜]
アントンの出力:
# ip x s ls
# ip x p ls
src 10.120.0.36/30 dst 172.36.0.0/22
dir out priority 1040873 ptype main
tmpl src 0.0.0.0 dst 0.0.0.0
proto esp reqid 0 mode transport
src ::/0 dst ::/0
socket out priority 0 ptype main
src ::/0 dst ::/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0 ptype main
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 135
dir out priority 1 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 135
dir fwd priority 1 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 135
dir in priority 1 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 136
dir out priority 1 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 136
dir fwd priority 1 ptype main
src ::/0 dst ::/0 proto ipv6-icmp type 136
dir in priority 1 ptype main
Libreswan構成:
# basic configuration
config setup
strictcrlpolicy=no
uniqueids= yes
# Add connections here.
conn %default
type= tunnel
authby= secret
keyexchange=ike
ikelifetime= 86400s
aggressive= no
# Outras configurações
compress= no
forceencaps= yes
# IPSEC Fase 1
ike= aes256-sha1-modp1536,aes256gcm16-sha256-ecp521,aes256-sha256-ecp384,aes256gcm16-sha256-ecp256!
# IPSEC Fase 2
esp= aes256-sha1-modp1024,aes256gcm16-sha256,aes256-sha256!
conn vpnipsec-myclient
keyexchange=ike
leftprotoport= %any
ikev2=insist
# IPSEC Fase 1
ike= aes256-sha256-modp2048
# IPSEC Fase 2
esp= aes256-sha256-modp2048
# Left security
left= 173.X.X.X
leftid= 173.X.X.X
leftsubnet= 10.120.0.36/30
leftauth= secret
# Right security
right= 177.X.X.X
rightid= 177.X.X.X
rightauth= secret
rightsubnet= 172.36.0.0/22
auto= start
これはかなり古いですが、それに遭遇するかもしれない他の人のためにここにいくつかの情報を残しておきます。
デフォルトのブリッジネットワーク構成でDockerコンテナーをデプロイすると、アプリケーションがホストと同じリソースにアクセスする必要があると想定されるため、コンテナーからのトラフィックが偽装されます。
それについては2つの方法があります。
Iptablesルールを削除すると、新しいデプロイメントによってルールがすぐに書き戻されるため、リスクが伴います。
NAT)を防ぐと、インターネットへのアクセスもできなくなります。これは、ほとんどのゲストアプリケーションで必要になります。
それが役に立てば幸い。