네트워크 케이블을 통해 연결된 두 개의 우분투 16.04 시스템(머신 A와 B)이 있습니다. 시스템 A가 멀티캐스트를 생성 중입니다. 멀티캐스트는 컴퓨터 B에 도달할 수 없습니다. 그 이유가 무엇인지 아는 사람이 있습니까?
일부 법의학 정보는 다음과 같습니다.
두 시스템 모두 활성 방화벽이 없습니다. 예를 들어 시스템 A에는 다음이 표시됩니다.
root@linux:~# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
머신 A와 B의 연결 인터페이스는 멀티캐스트를 전송하도록 구성됩니다. 예를 들어 머신 A는 다음을 표시합니다.
enp0s31f6 Link encap:Ethernet HWaddr 90:1b:0e:c4:af:e1
inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::921b:eff:fec4:afe1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9221 errors:0 dropped:0 overruns:0 frame:0
TX packets:25793 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:890075 (890.0 KB) TX bytes:8214828 (8.2 MB)
Interrupt:16 Memory:f7100000-f7120000
enp1s0 Link encap:Ethernet HWaddr 90:1b:0e:ae:a2:fa
inet addr:169.254.1.2 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Memory:f7000000-f707ffff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MULTICAST MTU:65536 Metric:1
RX packets:106353 errors:0 dropped:0 overruns:0 frame:0
TX packets:106353 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:20525233 (20.5 MB) TX bytes:20525233 (20.5 MB)
상호 작용enp0s31f6연결됨(실행 중) A의 라우팅 테이블은 다음을 보여줍니다.
root@linux:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.1 0.0.0.0 UG 100 0 0 enp0s31f6
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 enp1s0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s31f6
머신 A의 tcpdump는 나가는 멀티캐스트 트래픽을 보여줍니다.
15:47:37.420032 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327
15:48:37.415102 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327
15:49:37.417969 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327
머신 B의 Wireshark는 멀티캐스트 트래픽을 표시하지 않습니다.
인사,
귀도
나는 더 조사했다. 우분투 시스템 A와 B 사이에 스위치가 설치되어 있고 스위치에 연결된 Mac 랩톱도 있습니다. Mac은 B 머신의 DHCP 서버로부터 IP를 받았고 B 머신도 인터넷에 연결되어 게이트웨이 역할을 했기 때문에 인터넷에 연결할 수 있었습니다.
Mac에서 Wireshark를 시작하면 멀티캐스트 패킷을 볼 수 있지만 B에서는 어떤 패킷도 감지할 수 없습니다. 또한 A에서 iperf를 시작했는데 생성된 모든 패킷을 Mac에서는 볼 수 있지만 B에서는 볼 수 없습니다.
iperf -c 239.0.0.222 -p 2222 -u -T 32 -t 3 -i 1
머신 A(멀티캐스트 패킷 생성)
root@linux:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
root@linux:~# uname -a
Linux linux 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
기계 B
root@testserver:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
root@testserver:~# uname -a
Linux testserver 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
머신 B에는 방화벽도 활성화되어 있지 않습니다.
root@testserver:~# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
머신 B에는 다음과 같은 네트워크 인터페이스가 있습니다.
eno1 Link encap:Ethernet Hardware Adresse 74:d4:35:3d:13:14
inet Adresse:192.168.199.202 Bcast:192.168.199.255 Maske:255.255.255.0
inet6-Adresse: fe80::e45b:3ea5:a1ca:2cf7/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:2541323 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:1958194 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:2907121035 (2.9 GB) TX-Bytes:1743378563 (1.7 GB)
Interrupt:20 Speicher:f0c00000-f0c20000
enp12s0 Link encap:Ethernet Hardware Adresse 00:13:3b:0f:71:2c
inet6-Adresse: fe80::213:3bff:fe0f:712c/64 Gültigkeitsbereich:Verbindung
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:22 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:2721 (2.7 KB)
enp14s0 Link encap:Ethernet Hardware Adresse 00:13:3b:0f:71:2d
inet Adresse:192.168.30.1 Bcast:192.168.30.255 Maske:255.255.255.0
inet6-Adresse: fe80::213:3bff:fe0f:712d/64 Gültigkeitsbereich:Verbindung
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:24903 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:28057 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:2617514 (2.6 MB) TX-Bytes:3973717 (3.9 MB)
enp17s0 Link encap:Ethernet Hardware Adresse 00:13:3b:0f:6d:19
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:0 (0.0 B)
enp19s0 Link encap:Ethernet Hardware Adresse 00:13:3b:0f:6d:1a
inet Adresse:192.168.40.1 Bcast:192.168.40.255 Maske:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:0 (0.0 B)
enp3s0 Link encap:Ethernet Hardware Adresse 00:0a:cd:2f:f0:cc
inet6-Adresse: fe80::20a:cdff:fe2f:f0cc/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:1308 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:120880 (120.8 KB)
enp4s0 Link encap:Ethernet Hardware Adresse 00:0a:cd:2f:f0:cd
inet Adresse:192.168.20.1 Bcast:192.168.20.255 Maske:255.255.255.0
inet6-Adresse: fe80::20a:cdff:fe2f:f0cd/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:59234 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:69110 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:6492424 (6.4 MB) TX-Bytes:9395771 (9.3 MB)
enp5s0 Link encap:Ethernet Hardware Adresse 00:0a:cd:2f:f0:ce
inet6-Adresse: fe80::20a:cdff:fe2f:f0ce/64 Gültigkeitsbereich:Verbindung
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:31 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:3536 (3.5 KB)
enp6s0 Link encap:Ethernet Hardware Adresse 00:0a:cd:2f:f0:cf
inet Adresse:192.168.10.1 Bcast:192.168.10.255 Maske:255.255.255.0
inet6-Adresse: fe80::20a:cdff:fe2f:f0cf/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX-Pakete:822669 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:1701383 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:272743664 (272.7 MB) TX-Bytes:2164337194 (2.1 GB)
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:65536 Metrik:1
RX-Pakete:7895 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
TX-Pakete:7895 Fehler:0 Verloren:0 Überläufe:0 Träger:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:1222431 (1.2 MB) TX-Bytes:1222431 (1.2 MB)
머신 B는 인터페이스를 통해 연결됩니다.enpu6s0인터넷 연결 인터페이스 제공eno1
네트워크 인터페이스 enp3s0 enp4s0 enp5s0 및 enp6s0은 4포트 네트워크 카드에 있습니다.
카드에는 RTL 8168 네트워크 카드가 포함되어 있습니다.
답변1
나는 이 문제를 "해결"했습니다. 문제는 Wireshark 인스턴스가 동시에 여러 인터페이스를 관찰하는 경우 Wireshark가 Linux 시스템에서 멀티캐스트 패킷을 표시할 수 없다는 것입니다. Wireshark를 사용하여 하나의 인터페이스만 스니핑하면 멀티캐스트 패킷을 볼 수 있습니다. 아마도 이것은 RTL 8169 네트워크 카드 Linux 드라이버의 제한 사항일 수 있습니다.
하지만 다음과 같은 문제에 직면했기 때문에 멀티캐스트 패킷을 검색하려고 합니다. 멀티캐스트 패킷이 인터페이스 X로 들어오면 나가는 인터페이스 Y에서 이를 볼 수 없습니다. 새로운 스레드를 사용하여 답변을 요청하겠습니다.
인사,
귀도
답변2
두 개의 서버 노드 구성을 보여드리겠습니다.
인용하다RFC5771
구성하는 멀티캐스트 IP 주소는 192.168.10.3/24일 수 없습니다.
일반적으로 범위 내에 있어야 합니다.224.0.0.0/4(224.0.0.0에서 239.255.255.255까지)
다음과 같이 보입니다:224.168.10.3