доступ к консулу удаленно с помощью DNS

Я установил consul на AWS EC2.

У меня есть 3 сервера для consul = 11.XX.XX.1,11.XX.XX.2,11.XX.XX.3.

У меня 1 клиент для consul = 11.XX.XX.4

ниже файл конфигурации / 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"]
}

ниже вывод 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 

curl отлично работает с удаленной машины, но dig работает только на локальной машине.

; <<>> 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

но с удаленной машины копать не удается, помогите пожалуйста

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
-----------------------------
2
задан 30 December 2016 в 20:00
2 ответа

Я не специалист консула, но, как я понимаю, вы используете TCP-порт 8600. Итак, не могли бы вы подтвердить, что вы проверили, что порт 8600 открыт в настройках ваших AWS правил безопасности ?

Не работает только консул или любой другой протокол, т.е. ssh.

.
0
ответ дан 3 December 2019 в 11:30

Вы можете попробовать так:

  1. проверить сервера имен на вашей клиентской машине (например: cat /etc/resolv.conf - это зависит от конфигурации вашей машины)

  2. изменить конфигурацию серверов consul на:

    {  
        "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  
        }  
    }

где рекурсорами являются IP-адреса DNS-серверов из пункта 1.

  1. перезагрузить или перезапустить сервис consul на всех серверах consul - теперь consul прослушивает на 53 порту как dns сервер

  2. поменять сервера имен на вашей клиентской машине на IP-адреса серверов consul. Убедитесь, что ваша клиентская машина использует новые адреса (вы можете просто перезагрузить клиентскую машину)

Теперь на клиентской машине вы можете использовать все доменные имена, включая, например, консулы: dig web.service.Consul dig google.com

Для аналогичного поведения на серверах консулов вы должны поменять сервера имён на консулы IP.

2
ответ дан 3 December 2019 в 11:30

Теги

Похожие вопросы