Impossible d'accéder à Discourse après avoir changé la carte réseau

J’ai récemment changé la carte réseau et maintenant Discourse ne fonctionne plus. J’ai essayé de reconstruire Discourse, mais il ne répond toujours pas aux requêtes HTTPS. Je peux voir que les processus Ruby sont actifs et en cours d’exécution.

Je pense que cela pourrait avoir un lien avec l’adresse MAC. Après avoir reconstruit Discourse, je vois cette ligne :

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

Cependant, aucune carte réseau ne possède une adresse MAC commençant par 02:3b. Je vois trois cartes dans le système : vethec9f10b commençant par 6e:a2, ens160 commençant par 00:0c et docker0 commençant par 02:42:eb:XX:XX:XX.

Je suppose qu’il s’agit d’une ancienne adresse MAC issue d’avant le changement de carte réseau. Si c’est le cas, comment puis-je indiquer à Discourse d’utiliser la bonne adresse MAC ? Cela ressemble à l’adresse MAC de la carte réseau Docker, mais elle semble avoir changé.

1 « J'aime »

Lorsque vous utilisez Docker, vous disposez d’un adaptateur virtuel supplémentaire qui représente l’adresse de votre serveur sur le pont virtuel 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

Tous les conteneurs Docker en cours d’exécution auront une adresse MAC sur ce pont virtuel :

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

(dans une autre fenêtre :) 
○ → 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

Ceci est totalement distinct de vos interfaces système. Cette adresse MAC devrait cependant apparaître sur le pont docker0 :

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

Qu’avez-vous exactement modifié lorsque vous avez « changé l’adaptateur réseau » ?

Obtenez-vous toujours une adresse IP et tout ce qui est nécessaire, c’est-à-dire que la mise en réseau normale fonctionne-t-elle ?

2 « J'aime »

Exécutez ip addr et assurez-vous que l’adresse reste bien celle que vous essayez d’atteindre.

Vous pouvez coller la sortie ici.

Le client se connecte-t-il au socket mais ne reçoit-il aucune réponse ?

4 « J'aime »

Merci beaucoup ! C’était exactement l’indice dont j’avais besoin. Lorsque j’ai changé la carte réseau, l’adresse IP statique de la machine est passée à une adresse IP dynamique, ce qui explique pourquoi elle ne répondait pas aux clients. J’ai réinitialisé l’adresse IP et tout a recommencé à fonctionner. Apparemment, cela n’a rien à voir avec l’adresse MAC, mais bien avec l’adresse IP.

3 « J'aime »