IPの管理が面倒なので我が家のサーバーはmDNSで名前解決をするようにしています。
そういうわけで、Proxmox VEのゲストからもmDNSで名前解決しようとしたのですが名前解決に時間がかかりました。
調べていくとIPv4では名前解決できるのにIPv6では名前解決に失敗しており、名前解決に時間がかかっていたのはタイムアウトまで待っているということがわかりました。
解決策 🔗
multicast snoopingを無効化する。
パケットを追っていくとホストまでは届いていたため、forwarding等の設定が悪いのだろうと思い調べてみると以下の記事に行き着きました。
ブリッジを併用したIPv6のルータ広告がうまくいかない現象を回避する
Linuxのブリッジは不要と思われるマルチキャストを捨ててしまう
multicast snoopingを無効化したところIPv6でもmDNSによる名前解決が出来たため、ホストに以下の設定ファイルを追加して起動時にmulticast snoopingを無効化するようにして解決しました。
echo '#!/bin/sh
VDEV=/sys/devices/virtual/net/$IFACE/bridge/multicast_snooping
test -f $VDEV || exit 0
echo 0 > $VDEV' | tee /etc/network/if-up.d/mcsnoop
chmod +x /etc/network/if-up.d/mcsnoop