我一直在使用https://github.com/ottomata/multicast-tester来配置一台主机来监听多播流量,这样我就可以用 tcpdump 捕获它。这是最简单的部分:
ip route add 224.0.0.0/4 dev eth0
multicast-receiver -g 239.255.0.2 -p 5568
tcpdump -A -X -veni wlan0 dst host 239.255.0.2
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:50:12.879565 10:dd:b1:99:16:45 > 12:42:99:5a:b9:c1, ethertype IPv4 (0x0800), length 680: (tos 0x0, ttl 32, id 7747, offset 0, flags [none], proto UDP (17), length 666)
192.168.1.71.60230 > 239.255.0.2.5568: UDP, length 638
0x0000: 4500 029a 1e43 0000 2011 c81f c0a8 0147 E....C.........G
0x0010: efff 0002 eb46 15c0 0286 de35 0010 0000 .....F.....5....
0x0020: 4153 432d 4531 2e31 3700 0000 726e 0000 ASC-E1.17...rn..
0x0030: 0004 9ecf d3c6 1b01 7547 a506 37c0 6c96 ........uG..7.l.
0x0040: 7e12 7258 0000 0002 4d2d 5365 7269 6573 ~.rX....M-Series
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0080: 0000 0000 0000 0000 6400 00a1 0000 0272 ........d......r
0x0090: 0b02 a100 0000 0102 0100 0000 0000 0000 ................
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0230: 0000 0000 0000 0000 0000 0000 0000 000e ................
0x0240: ff00 000e ff00 0000 0000 0000 0000 0000 ................
0x0250: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0290: 0000 0000 0000 0000 0000
现在,我想永远循环播放这一帧。我知道我需要将主机重新配置为多播源;但这应该这样做:
multicast-sender -g 239.255.0.2 -p 5568
那么现在,我该如何重播我的帧?
我不认为多播发送者将能够处理大量的空字符;但是 nc 应该可以做到。在修复帧头中有关 src 和 dst 字段的一些细节之后。
对于好奇的人:这是以太网 DMX 的 ASC-E1.17 协议;最新的设备使用 E1.31 或 E1.37。这个 IP 是宇宙 2。端口 5568 似乎是由规范固定的,我相信 DMX 插槽是在框架内内联发送的(这里我在 0x0240 附近的插槽 421-425 上发送旋转颜色)。我的目的是检查是否容易污染 ACN 规范,并研究是否有人可以访问我的网络可能会扰乱我的工作......以及我应该如何保护我的网络免受问题的影响。但是,购买第二个 ACN 源会比用 nc 锻造一个框架更广泛,更不灵活......
我在网络中有另一台计算机来检查寄生虫帧是否已正确注入(并由交换机传输)。
如果此测试失败,我将需要购买其他 ACN 源。