최근에 라우터를 바꿨더니 문제가 생겼습니다. 바꾸자마자 문제가 생긴 게 아니어서 원인 추적에 많은 시행착오를 겪게 됐고요.
핵심 요약:
- 라우터 방화벽으로 포트만 뚫어준다고 되는 게 아니라 mDNS 리플렉터(예를 들어 avahi-daemon)가 필요하다
- intra-BSS 트래픽을 위해 multicast_to_unicast 설정을 해줘야 한다
이게 뭔소린지는 저도 사실 잘 모릅니다. 종류별 인공지능한테 돌아가면서 상담해 봤더니 클로드 선생이 유일하게 정답을 찾아냈는데, 그 내용이 요 밑에 나오니 참고해 주세요. 리눅스 관련 기초 지식이 필요합니다만, 네트워크 관련 지식이 결국 리눅스 지식으로 수렴하기도 하지요.

(컴수리계의 허준, '클로드' 선생)
참고로 제가 이걸로 상담해 본 '인공의원'님들은 클로드 외에 챗GPT, 제미나이, grok, manus 등입니다. 에이전트 같은 거 아니고 무료 계정 프롬프트만 사용했고요. 저는 개발자 같은 게 아니라서 무료 계정으로 충분합니다...
제가 삽질한 3단계를 요약하면 이렇습니다.
1. 라우터 방화벽이 의심된다
이건 각종 인공지능한테 물어보면 대답이 거기서 거기입니다. mDNS와 멀티캐스트를 위해 포트를 열어주고 포워딩 설정을 하고.. 결국 방화벽 설정에는 문제가 없다는 결론을 삽질 끝에 내리게 됐습니다.
2. 그렇다면 애플 계정 쪽 설정이 꼬였나보다
실제로 검색해 보니 요런 민간요법(?)들이 있기도 하던데요:
홈팟 1세대 새제품인데 설치가 완료되지 않고 계속 구성중에 머물러 있습니다
https://www.clien.net/service/board/cm_iphonien/18718591CLIEN
여기에 나온 비법(?)들 하나씩 다 해봤습니다. 결국 헛수고였다고 결론을 내렸습니다만, 그 과정에서 애플 워치부터 애플 비전 프로까지 동일한 애플 계정을 사용하는 기기 6종, 홈팟 2대까지 하면 총 8개를 하나씩 '홈 앱' 설정에 들어가 보거나, 애플 계정 로그아웃하거나, 기기를 초기화하거나 하는 대삽질을 단행했습니다. 홈팟 초기화는 도대체 몇 번을 했는지 기억도 안 납니다. (어휴...)
3. 라우터 방화벽 설정에는 문제가 없지만, 어쨌거나 라우터 문제가 맞았다
애초에 문제가 생긴 계기가, 라우터에 에어플레이 지원하는 가상 오디오 장치를 설치해서 홈팟 연결하겠답시고 설치다가 이 지경이 된 거였거든요.
그 과정에서 설치한 것이 avahi-daemon이었는데, 이미 설정이 된 홈팟 등을 운용하는 데는 아마도 이게 필수는 아닌 듯합니다만, 문제가 생겨서 새로 설정하려면 이게 필수인 듯합니다.
컴수리계의 허준 클로드 선생의 진단에 따르면 그렇습니다. 아래 내용이 그 진단 내용인데, 영어이기는 하지만 참고하세요:
1. The core issue: intra-BSS (same-AP) traffic is being forwarded through the Linux kernel
Your HomePods are all on wlan0, but when two Wi-Fi clients communicate, the traffic goes: HomePod A → wlan0 → Linux routing → wlan0 → HomePod B. This works for unicast with your iifname "wlan0" oifname "wlan0" accept forward rule, but multicast behaves differently — the kernel doesn't automatically bridge/forward multicast between Wi-Fi clients the same way.
Fix: Enable ap_isolate=0 is already the default, but you need to explicitly enable multicast-to-unicast conversion in hostapd:
# Add to hostapd.conf
multicast_to_unicast=1
ap_isolate=0
2. Missing hostapd BSS multicast support
Add to hostapd.conf:
multicast_to_unicast=1
multicast_to_unicast_all=1 (요 마지막 항목은 무시하세요. 와이파이 어댑터에 따라 다를 수 있는지 몰라도, 저의 경우 이것 때문에 hostapd 실행이 안 돼서 이 항목을 삭제한 다음에 성공했습니다.)
3. Your nftables mDNS rules have a redundancy but missing the crucial bit
Your input chain accepts mDNS, but the forward chain doesn't explicitly handle mDNS multicast between wlan0 clients. The ip daddr 224.0.0.0/4 accept in forward should cover it, but combined with the kernel not naturally forwarding intra-BSS multicast, it may not fire at all.
Install and run avahi-daemon as an mDNS proxy/reflector:
apk add avahi avahi-daemon
/etc/avahi/avahi-daemon.conf:
[server]
use-ipv4=yes
use-ipv6=no
allow-interfaces=wlan0,eth1
[wide-area]
enable-wide-area=yes
[reflector]
enable-reflector=yes # ← this is the key line
reflect-ipv=no
( enable-reflector=yes 부분은 다른 인공지능도 지적했던 건데, reflect-ipv=no 이거랑 enable-wide-area=yes 요건 클로드 선생만 알려주더군요. 뭔지는 모르겠지만 아무튼 시키는 대로 다 해주고 한 방에 성공했습니다.)
This makes avahi act as an mDNS reflector between your interfaces, and also between clients on the same wlan0 that aren't seeing each other's multicast.
4. AWDL / Wi-Fi Direct for AirDrop specifically
If the complaint is specifically about AirDrop, that uses AWDL which is a direct device-to-device 802.11 mechanism operating on channels outside your AP's control. Your router can't help or hinder it — it's negotiated at the 802.11 layer directly. AirPlay and HomeKit discovery however go through mDNS (Bonjour), so fixing #3 should resolve those.
어, 그런데 avahi-daemon을 설치하네 마네 하는 건 완제품으로 판매되는 라우터 종류에는 아마도 해당사항이 없는 얘기겠죠. 저는 구형 컴에 리눅스 설치해서 라우터로 사용중이라 나온 얘기였습니다. 이걸 제외하고 일반적인 원리만 참고하셔도 되겠습니다.
핵심 원리를 다시 강조하면:
- 라우터 방화벽으로 포트만 뚫어준다고 되는 게 아니라 mDNS 리플렉터(이 경우에는 avahi-daemon)가 필요하다
- intra-BSS 트래픽을 위해 multicast_to_unicast 설정을 해줘야 한다
마지막으로 제가 사용한 라우터용 OS 관련해 참고:
VyOS - 리눅스 기반 라우터 OS 사용기 (텍스트 위주)
https://www.clien.net/service/board/use/19045413CLIEN
라우터용으로 VyOS 쓰다가 알파인 리눅스로 갈아탄 사연
https://www.clien.net/service/board/cm_linux/19173178CLIEN
mDNS는 본 것 같아요.
전에 쓰던 라우터 고장났을 때 제가 우선 생각했던 게 openwrt였습니다.
그런데 너무 구형 라우터라서 지원이 안 되더라고요. ㅎㅎㅎ
암튼 openwrt 쓰실 때도 제 삽질기가 참고가 될 듯합니다.
mDNS 포트만 뚫어주는 게 아니라 '리플렉트'도 시켜줘야 한다는 거요.
애플 티비로 티비까지 보고 싶어서 btv 인터넷 했는데
거실에 공유기 있고
방은 무선이라
안되는게 많아서
공유기 3개로 어렵게 어렵게 쓰다가
최신 공유기 교체로 전부 해결 되어 마음의 평화를 찾았습니다
완제품 라우터 쓰다가 직접 설치해서 쓰면 좋은 점은, 방화벽 설정을 쉽고 편리하게, 마음대로 할 수 있다는 겁니다. 저는 보안을 위해 꼭 필요한 것만 빼고 다 틀어막아 버리길 원하거든요. mDNS 뚫어놓은 것도 개별 기기의 IP와 연결된 인터페이스 이름을 일일이 지정해서 허용하고 나머지는 다 틀어막아 놨어요. 완제품 라우터로는 이렇게 하는 게 불가능하거나 방법이 매우 어렵고 귀찮죠.