2017-07-17 9 views
0

5つのUbuntu 16.04サーバーを使用して、Digital Oceanにswarmを設定しました。彼らはすべて同じDocker Engineバージョンとファイアウォールルールを使用しています。それは3人のマネージャーを使用するように設定されています。Docker Swarm Overlay - 暗号化されたネットワークとファイアウォール

Client: 
Version:  17.03.0-ce 
API version: 1.26 
Go version: go1.7.5 
Git commit: 3a232c8 
Built:  Tue Feb 28 08:01:32 2017 
OS/Arch:  linux/amd64 

Server: 
Version:  17.03.0-ce 
API version: 1.26 (minimum version 1.12) 
Go version: go1.7.5 
Git commit: 3a232c8 
Built:  Tue Feb 28 08:01:32 2017 
OS/Arch:  linux/amd64 
Experimental: false 

22       ALLOW  Anywhere     
Anywhere/esp on eth1  ALLOW  Anywhere/esp    
2377/tcp on eth1   ALLOW  Anywhere     
7946 on eth1    ALLOW  Anywhere     
4789 on eth1    ALLOW  Anywhere     
2376/tcp     ALLOW  Anywhere     
22 (v6)     ALLOW  Anywhere (v6)    
Anywhere/esp (v6) on eth1 ALLOW  Anywhere/esp (v6)   
2377/tcp (v6) on eth1  ALLOW  Anywhere (v6)    
7946 (v6) on eth1   ALLOW  Anywhere (v6)    
4789 (v6) on eth1   ALLOW  Anywhere (v6)    
2376/tcp (v6)    ALLOW  Anywhere (v6)    

app01  Ready Active   
app04  Ready Active  Reachable 
app03  Ready Active  Reachable 
app06  Ready Active  Leader 
app05  Ready Active  

私は自分のサービスに暗号化されたネットワークを使用しています。

[ 
    { 
     "Name": "jupiter", 
     "Id": "en4gdr54yw4w2xmo34fttdbvg", 
     "Created": "0001-01-01T00:00:00Z", 
     "Scope": "swarm", 
     "Driver": "overlay", 
     "EnableIPv6": false, 
     "IPAM": { 
      "Driver": "default", 
      "Options": null, 
      "Config": [] 
     }, 
     "Internal": false, 
     "Attachable": false, 
     "Containers": null, 
     "Options": { 
      "com.docker.network.driver.overlay.vxlanid_list": "4097", 
      "encrypted": "true" 
     }, 
     "Labels": null 
    } 
] 

私は群れをeth1に作成しました。例:docker swarm init --listen-addr eth1:2377 --advertise-addr eth1:2377

この設定にもかかわらず、私の3つのサービスはお互いを見ることができません。あたかもDNSが群れの内部で動かないかのように。私はthis link on githubが私に起こっていることを説明しています。

サービスの1つが、mongoサービス名:ポートを使用してmongoサービスに接続しようとしています。しかし、接続しているサービスがmongoに届かないため、失敗します。今私はhttps://hub.docker.com/r/nicolaka/netshoot/を使ってそれらの内部を接続してコンテナを撃つのに苦労しました、そして、それは容器が相互作用できることを示しました。 (しかし、私はそれが暗号化を使って接続しているとは思わない)

ファイアウォールでなければならないと思うが、ネットワーキングのセキュリティに関する専門家ではないので、何か不足していると思う。私はファイアウォールに関して26523号で書いたものと私が持っていたものを比較しようとしました。

私は暗号化されていない別のネットワークを作成し、サービスを提供することに決めました。

今モンゴは、接続を受信して​​いる:

2017-07-17T14:17:53.267+0000 I NETWORK [conn8] received client metadata from 10.0.1.7:33424 conn8: { driver: { name: "nodejs", version: "2.2.29" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "4.4.0-62-generic" }, platform: "Node.js v6.11.1, LE, mongodb-core: 2.1.13" } 
2017-07-17T14:17:53.369+0000 I NETWORK [thread1] connection accepted from 10.0.1.7:33426 #9 (3 connections now open) 
2017-07-17T14:17:53.373+0000 I NETWORK [conn9] received client metadata from 10.0.1.7:33426 conn9: { driver: { name: "nodejs", version: "2.2.29" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "4.4.0-62-generic" }, platform: 

私は暗号化されたネットワークの作業を取得する方法を見つけ出すしたいと思います。それはファイアウォールですか、それは私には、またはUbuntuのサーバーがパッケージを紛失しているようですか? ; <

答えて

0

私はこれをもう一度やり直すことにしました。時には逃げることが役立ちます。

私はそれが今働いています。私はespで追加ルールを追加することにしました。

ufw allow to <local host eth1 ip> proto esp

ufw status

Anywhere/esp on eth1  ALLOW  Anywhere/esp 
2377/tcp on eth1   ALLOW  Anywhere 
7946 on eth1    ALLOW  Anywhere 
4789 on eth1    ALLOW  Anywhere 
2375/tcp on eth1   ALLOW  Anywhere 
10.xx.xx.xx/esp   ALLOW  Anywhere 
2376/tcp on eth1   ALLOW  Anywhere 
22 (v6)     ALLOW  Anywhere (v6) 
Anywhere/esp (v6) on eth1 ALLOW  Anywhere/esp (v6) 
2377/tcp (v6) on eth1  ALLOW  Anywhere (v6) 
7946 (v6) on eth1   ALLOW  Anywhere (v6) 
4789 (v6) on eth1   ALLOW  Anywhere (v6) 
2375/tcp (v6) on eth1  ALLOW  Anywhere (v6) 
2376/tcp (v6) on eth1  ALLOW  Anywhere (v6) 
関連する問題