2016-05-05 7 views
0

arbeitet ich ein Master-Token mit dem folgenden Befehl erstellt:Gossip Verschlüsselung nicht fein

$ consul keygen 
G74SM8N9NUc4meaHfA7CFg== 

Dann Bootstrap ich den Server mit den folgenden config.json:

{ 
    "server": true, 
    "datacenter": "consul", 
    "data_dir": "/var/consul", 
    "log_level": "INFO", 
    "enable_syslog": true, 
    "disable_update_check": true, 
    "client_addr": "0.0.0.0", 
    "bootstrap": true, 
    "leave_on_terminate": true, 
    "encrypt": "G74SM8N9NUc4meaHfA7CFg==" 
} 

Den Ausgang des Bootstrap-Servers ist wie folgt:

 Node name: 'abcd' 
    Datacenter: 'consul' 
     Server: true (bootstrap: true) 
    Client Addr: 0.0.0.0 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400) 
    Cluster Addr: x.x.x.x (LAN: 8301, WAN: 8302) 
Gossip encrypt: true, RPC-TLS: false, TLS-Incoming: false 
     Atlas: <disabled> 

Dann habe ich einen neuen Server als regelmäßige Nachteile hinzugefügt ul-Server, der die folgende config.json hat:

{ 
     "server": true, 
     "datacenter": "consul", 
     "data_dir": "/var/consul", 
     "log_level": "INFO", 
     "enable_syslog": true, 
     "disable_update_check": true, 
     "client_addr": "0.0.0.0", 
     "bootstrap": false, 
     "leave_on_terminate": true, 
     "ui_dir": "/usr/local/bin/consul_ui", 
     "check_update_interval": "0s", 
     "ports": { 
     "dns": 8600, 
     "http": 8500, 
     "https": 8700, 
     "rpc": 8400, 
     "serf_lan": 8301, 
     "serf_wan": 8302, 
     "server": 8300 
     }, 
     "dns_config": { 
     "allow_stale": true, 
     "enable_truncate": true, 
     "only_passing": true, 
     "max_stale": "02s", 
     "node_ttl": "30s", 
     "service_ttl": { 
      "*": "10s" 
     } 
     }, 
     "advertise_addr": "y.y.y.y", 
     "encrypt": "G74SM8N9NUc4meaHfA7CFg==", 
     "retry_join": [ 
     "x.x.x.x", 
     "y.y.y.y" 
     ] 
    } 

Hinweis: Adresse des Bootstrap-Servers Hier x.x.x.x IP ist, y.y.y.y ist die IP-Adresse des regulären Server.

Zu Testzwecken habe ich den Verschlüsselungsschlüssel auf einem der Server geändert. Und wenn ich consul members mache, kann ich immer noch alle IPs sehen, was bedeutet, dass die Server immer noch in der Lage sind, sogar mit dem anderen Verschlüsselungsschlüssel zu kommunizieren. Es scheint, dass die Klatsch-Verschlüsselung nicht gut funktioniert.

Antwort

1

Eine Consul-Instanz speichert den ursprünglichen Schlüssel und verwendet ihn erneut. Sie befindet sich im Ordner serf in der Datei local.keyring.

Dies ist kontraintuitiv, aber es ist documented at least in one place together with the encrypt option.

Sie müssen diese Datei löschen und Consul neu starten, um das erwartete Verhalten zu erhalten.

Verwandte Themen