No se puede acceder a Discourse después de cambiar el adaptador de red

Recientemente cambié la tarjeta de red y ahora Discourse no funciona. He intentado reconstruir Discourse, pero aún así no responde a las solicitudes HTTPS. Puedo ver que los procesos de Ruby están activos y en ejecución.

Creo que podría tener algo que ver con la dirección MAC. Después de reconstruir Discourse, veo esta línea:

> /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=5 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_HOSTNAME=XXX -e DISCOURSE_DEVELOPER_EMAILS=XXX -e DISCOURSE_SMTP_ADDRESS=XXX -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=XXX -e DISCOURSE_SMTP_PASSWORD=XXX -e LETSENCRYPT_ACCOUNT_EMAIL=XXX -e DISCOURSE_MAXMIND_LICENSE_KEY=XXX -h XXX-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log -**-mac-address 02:3b:06:XX:XX:XX** local_discourse/app /sbin/boot

Sin embargo, no hay ninguna adaptador con una dirección MAC que comience con 02:3b; veo tres adaptadores en el sistema: vethec9f10b que comienza con 6e:a2, ens160 que comienza con 00:0c y docker0 que comienza con 02:42:eb:XX:XX:XX.

Supongo que se trata de una dirección MAC antigua de antes de cambiar la tarjeta de red. Si es así, ¿cómo puedo indicarle a Discourse que utilice la dirección MAC correcta? Esto parece ser la dirección MAC del adaptador de red de Docker, pero parece haber cambiado.

1 me gusta

Al usar Docker, tienes un adaptador virtual adicional que representa la dirección de tu servidor en el puente virtual docker0:

○ → ip addr show dev docker0
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:3a:ad:0b:94 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Cualquier contenedor Docker en ejecución tendrá una dirección MAC en este puente virtual:

○ → docker run --rm --name example -it debian 
root@ba1b0e1446c8:/# 

(en otra ventana:)
○ → docker inspect example | jq '.[0].NetworkSettings.IPAddress'
"172.17.0.2"

○ → docker inspect example | jq '.[0].NetworkSettings.MacAddress'
"02:42:ac:11:00:02"

○ → ping -c 1 172.17.0.2 >/dev/null; arp 172.17.0.2
Address                  HWtype  HWaddress           Flags Mask            Iface
172.17.0.2               ether   02:42:ac:11:00:02   C                     docker0

Esto es completamente independiente de las interfaces de tu sistema. Esa dirección MAC debería aparecer en el puente docker0:

○ → brctl showmacs docker0
port no	mac addr		is local?	ageing timer
  1	02:42:ac:11:00:02	no		 187.24
…

¿Qué cambiaste exactamente cuando “cambiaste el adaptador de red”?

¿Sigue obteniendo una dirección IP y todo lo que debería? Es decir, ¿el funcionamiento normal de la red está operativo?

2 Me gusta

Ejecuta ip addr y asegúrate de que aún tenga la misma dirección a la que estás intentando acceder.

Quizás puedas pegar la salida aquí.

¿El cliente se conecta al socket pero no recibe ninguna respuesta?

4 Me gusta

¡Muchas gracias! Esa fue la pista que necesitaba. Cuando cambié el adaptador de red, la dirección IP estática de la máquina cambió a una dirección IP dinámica y, por lo tanto, no respondía a los clientes. Restablecí la dirección IP y comenzó a funcionar. Aparentemente, no tiene relación con la dirección MAC, sino con la dirección IP.

3 Me gusta