데비안은 두 번째 멀티캐스트 패킷을 무시합니다

데비안은 두 번째 멀티캐스트 패킷을 무시합니다

여러 장치가 있는 홈 로컬 네트워크가 있습니다. 장치 중 하나가 일부 이벤트(스마트 홈)에 대한 정보가 포함된 멀티캐스트 패킷을 보내고 있습니다. 잘 작동합니다. Android 휴대폰에서 멀티캐스트 테스터 앱을 실행해 보았는데 스마트 홈 장치에서 전송된 모든 패킷을 확인했습니다.

또한 Gnu/Linux가 설치된 서버도 있습니다. 삼성 NC10을 기반으로 제작되었습니다. 멀티캐스트에는 작은 문제가 있습니다. 스마트 홈 장치가 두 개의 멀티캐스트 패킷을 빠르게 보낼 때 Gnu/Linux 서버는 첫 번째 패킷만 수신하고 두 번째 패킷은 무시합니다. 이를 확인하기 위해 를 사용하고 있는데 tcpdump dst port 9898 -XAndroid에서는 두 개의 패킷이 보이고 Gnu/Linux에서는 첫 번째 패킷만 보입니다.

라우터도 확인했는데 이 서버나 멀티캐스트에 대한 특정 설정이 없습니다. Gnu/Linux 설정에 문제가 있는 것 같습니다.

나는 또한 다음을 통해 확인을 시도했습니다 watch -d "cat /proc/net/snmp | grep -w Udp".

# watch -d "cat /proc/net/snmp | grep -w Udp"

Every 2,0s: cat /proc/net/snmp | grep -w Udp                                                                                                                                                                                         BArtWell-Server: Tue Jan  7 15:36:38 2020

Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti
Udp: 252376 567 385 163222 0 0 385 9288

숫자가 헷갈리는데 IgnoredMulti정말 멋있네요.

패킷 예:

IP 192.168.0.9.4321 > 224.0.0.50.9898: UDP: {"cmd":"report","model":"sensor_motion.aq2","sid":"158d0002b5d0ba","short_id":9406,"data":"{\"lux\":\"168\"}"}
IP 192.168.0.9.4321 > 224.0.0.50.9898: UDP: {"cmd":"report","model":"sensor_motion.aq2","sid":"158d0002b5d0ba","short_id":9406,"data":"{\"status\":\"motion\"}"}

구성된 경우:

# ifconfig wlp2s0
wlp2s0: flags=4675<UP,BROADCAST,RUNNING,ALLMULTI,MULTICAST>  mtu 1500
        inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::225:56ff:fe26:2379  prefixlen 64  scopeid 0x20<link>
        ether 00:25:56:26:23:79  txqueuelen 1000  (Ethernet)
        RX packets 634427  bytes 210441311 (200.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 394252  bytes 113622848 (108.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

이 문제를 어떻게 해결할 수 있나요? Gnu/Linux가 두 번째 멀티캐스트 패킷이 빠르게 전송될 때 이를 무시하지 않도록 강제하는 방법은 무엇입니까?

관련 정보