ネットワークアダプターを変更後、Discourse にアクセスできない

最近、ネットワークアダプターを変更したところ、Discourse が動作しなくなりました。Discourse の再構築を試みましたが、https リクエストに応答しません。Ruby プロセスは起動していることは確認できます。

これは MAC アドレスに関連しているのではないかと思っています。Discourse を再構築した際、以下の行が表示されました。

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

しかし、02:3b で始まる MAC アドレスを持つアダプターは存在しません。システムには以下の 3 つのアダプターがあります:vethec9f10b6e:a2 で始まる)、ens16000:0c で始まる)、docker002:42:eb:XX:XX:XX で始まる)。

これはネットワークアダプター変更前の古い MAC アドレスではないかと推測しています。もしそうなら、Discourse に正しい MAC アドレスを使用させるにはどうすればよいでしょうか?これは Docker ネットワークアダプターの MAC アドレスのようですが、変更されたようです。

「いいね!」 1

Docker を使用すると、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

実行中の Docker コンテナは、この仮想ブリッジ上に MAC アドレスを持ちます。

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

(別のウィンドウで:)
○ → 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

これはシステムインターフェースとは完全に独立しています。ただし、その MAC アドレスは docker0 ブリッジに表示されるはずです。

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

「ネットワークアダプタを変更した」とおっしゃった際、具体的に何を変更されたのでしょうか?

IP アドレスやその他の必要な設定は正常に取得できていますか?つまり、通常のネットワーク機能は正常に動作していますか?

「いいね!」 2

ip addrを実行し、アクセスしようとしているアドレスと同じアドレスが設定されているか確認してください。

出力結果をここに貼り付けてみてください。

クライアントはソケットに接続できるが、応答が返ってこないことはありますか?

「いいね!」 4

本当にありがとうございます!それが私が探していたヒントでした。ネットワークアダプターを変更したところ、マシンの静的IPアドレスが動的IPアドレスに変わってしまい、クライアントに応答しなくなっていたのです。IPアドレスをリセットしたところ、動作し始めました。どうやらMACアドレスではなく、IPアドレスが原因だったようです。

「いいね!」 3