LINUX.ORG.RU

Недоступен порт MySQL между серверами в одной подсети

 , , ,


1

2

Доброго времени суток.

Есть два сервера: 1). 192.168.202.5 netmask 255.255.255.0 2). 192.168.202.32 netmask 255.255.255.0

На втором (192.168.202.32) поднят докер контейнер с MySQL через docker-compose:

docker ps
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                   PORTS                                                   NAMES
    dec33e6c66fe        mysql/mysql-cluster   "/entrypoint.sh mysq…"   2 hours ago         Up 2 hours (healthy)     1186/tcp, 2202/tcp, 33060/tcp, 0.0.0.0:3306->3306/tcp   ndb_ndb_mysqld_1
    56ccfd399288        mysql/mysql-cluster   "/entrypoint.sh ndbd"    2 hours ago         Up 2 hours (unhealthy)   1186/tcp, 2202/tcp, 3306/tcp, 33060/tcp                 ndb_ndb_data_node_1_1
    1f6a2f2db72c        mysql/mysql-cluster   "/entrypoint.sh ndb_…"   2 hours ago         Up 2 hours (unhealthy)   2202/tcp, 3306/tcp, 0.0.0.0:1186->1186/tcp, 33060/tcp   ndb_ndb_mgmd_1

netstat -nta:

netstat -nta
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 192.168.202.32:22       10.40.20.156:34458      ESTABLISHED
    tcp        0     36 192.168.202.32:22       10.40.20.156:35210      ESTABLISHED
    tcp6       0      0 :::3306                 :::*                    LISTEN     
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 :::1186                 :::*                    LISTEN

Порт 3306 слушается. На втором сервере (192.168.202.32) я пробую:

telnet 192.168.202.32 3306
Trying 192.168.202.32...
Connected to 192.168.202.32.
Escape character is '^]'.
`
5.7.25-ndb-7.6.9-cluster-gpl

Порт доступен и все ок. Но почему-то с первого сервера (192.168.202.5) это не работает:

telnet 192.168.202.32 3306
Trying 192.168.202.32...
telnet: connect to address 192.168.202.32: Connection timed out
[oracle@host-192-168-202-5 ~]$ 

Я не могу понять почему это происходит. При этом с первого на второй 22 порт доступен и все ОК. Было сделано:

  1. sudo iptables -F на обоих серверах. Не помогло
  2. В my.cnf прописано bind-adresses=0.0.0.0

Подскажите куда копать дальше, какие логи смотреть, не понимаю кто блокирует соединения?

Я использую OracleLinux7 на обоих серверах.

uname -a
Linux host-192-168-202-5 3.8.13-118.6.1.el7uek.x86_64

Ответ на: комментарий от Shulman

Я сейчас выяснил, что это проблема из-за сети докера. В моем докер композе файле создается подсеть:

networks:
  cluster:
    ipam:
      driver: default
      config:
	- subnet: "192.168.0.0/16"

Она почему-то блочит все удаленные соединения.

romask ()
Ответ на: комментарий от Shulman

С первого хоста подсеть видна:

oracle@host-192-168-202-5 ~]$ ping 192.168.0.10
PING 192.168.0.10 (192.168.0.10) 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=242 time=2.61 ms
64 bytes from 192.168.0.10: icmp_seq=2 ttl=242 time=2.42 ms
64 bytes from 192.168.0.10: icmp_seq=3 ttl=242 time=2.54 ms
romask ()