access consul from remote usando DNS

2

Eu instalei o consul no EC2 aws.

eu tenho 3 servidores para consul = 11.XX.XX.1,11.XX.XX.2,11.XX.XX.3.

eu tenho 1 cliente para cônsul = 11.XX.XX.4

abaixo é o arquivo de configuração /etc/consul.d/server/config.json

{
    "bootstrap": false,
    "server": true,
    "datacenter": "abc",
    "advertise_addr": "11.XX.XX.1",
    "data_dir": "/var/consul",
    "log_level": "INFO",
    "enable_syslog": true,
    "addresses": {
    "http": "0.0.0.0"
    },
    "start_join": ["11.XX.XX.2", "11.XX.XX.3"]
}

abaixo é a saída netstat

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8400          0.0.0.0:*               LISTEN      29720/consul    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1006/sshd       
tcp        0      0 127.0.0.1:8600          0.0.0.0:*               LISTEN      29720/consul    
tcp6       0      0 :::8301                 :::*                    LISTEN      29720/consul    
tcp6       0      0 :::8302                 :::*                    LISTEN      29720/consul    
tcp6       0      0 :::8500                 :::*                    LISTEN      29720/consul    
tcp6       0      0 :::22                   :::*                    LISTEN      1006/sshd       
tcp6       0      0 :::8300                 :::*                    LISTEN      29720/consul 
A curva

está funcionando bem a partir da máquina remota, mas só funciona na máquina local.

; <<>> DiG 9.9.5-3ubuntu0.6-Ubuntu <<>> @127.0.0.1 -p 8600 web.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40873
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;web.service.consul.        IN  A

;; ANSWER SECTION:
web.service.consul. 0   IN  A   11.XX.XX.4

;; Query time: 0 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Fri Dec 30 08:21:41 UTC 2016
;; MSG SIZE  rcvd: 52

mas a partir da escavação remota da máquina não funciona, por favor ajude

dig @11.XX.XX.1 -p 8600 web.service.consul

; <<>> DiG 9.9.5-3ubuntu0.6-Ubuntu <<>> @11.XX.XX.1 -p 8600 web.service.consul
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
-----------------------------
    
por Gagan Sidhu 30.12.2016 / 19:00

2 respostas

2

Você pode tentar desta maneira:

  1. verifique os servidores de nomes em sua máquina cliente (por exemplo: cat /etc/resolv.conf - isso depende da configuração da sua máquina)

  2. altere a configuração dos servidores consulares para:

    {  
        "bootstrap": false,  
        "server": true,  
        "datacenter": "abc",  
        "advertise_addr": "11.XX.XX.1",  
        "data_dir": "/var/consul",  
        "log_level": "INFO",  
        "enable_syslog": true,  
        "addresses": {  
        "http": "0.0.0.0"  
        },  
        "start_join": ["11.XX.XX.2", "11.XX.XX.3"],  
        "recursors": ["xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx"],  
        "ports": {  
            "dns": 53  
        }  
    }

em que os recursores são IPs de servidores DNS do ponto 1.

  1. recarregue ou reinicie o serviço consul em todos os servidores consul - agora o cônsul está escutando na porta 53 como servidor dns

  2. altere os servidores de nomes em sua máquina cliente para consular os IPs dos servidores. Certifique-se de que a máquina do cliente youR usa novos endereços (você pode apenas reiniciar a máquina cliente)

Agora, na máquina do cliente, você pode usar todos os nomes de domínio, incluindo os cônsules, por exemplo: cavar web.service.consul cavar google.com

Para o mesmo comportamento em servidores consul, você também precisa alterar os servidores de nomes para consular IPs.

    
por 03.01.2017 / 09:49
0

Eu não sou um especialista em cônsul, mas entendo que você está usando a porta TCP 8600. Você pode confirmar que verificou se a porta 8600 está aberta na configuração das regras de segurança da AWS?

Somente falha do cônsul ou qualquer outro protocolo está falhando, isto é, ssh.

    
por 30.12.2016 / 19:46