我正在尝试通过 iperf 测试 UDP 多播吞吐量,但它似乎没有从我的开发机器发送超过 10Mbit/s:
C:\> iperf -c 224.0.166.111 -u -T 1 -t 100 -i 1 -b 1000000000
------------------------------------------------------------
Client connecting to 224.0.166.111, UDP port 5001
Sending 1470 byte datagrams
Setting multicast TTL to 1
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[156] local 192.168.1.99 port 49693 connected with 224.0.166.111 port 5001
[ ID] Interval Transfer Bandwidth
[156] 0.0- 1.0 sec 1.22 MBytes 10.2 Mbits/sec
[156] 1.0- 2.0 sec 1.14 MBytes 9.57 Mbits/sec
[156] 2.0- 3.0 sec 1.14 MBytes …Run Code Online (Sandbox Code Playgroud) 当向目标地址(例如 )发送 ICMPv4 echo 请求时224.0.0.1,接收请求的 Linux 主机会忽略该请求。使用的目标 MAC 地址是01:00:5e:00:00:01。
让这些 Linux 主机应答的唯一方法是将 Kernel 参数设置net.ipv4.icmp_echo_ignore_broadcasts为 value 0。这将指示内核响应多播和广播 ICMPv4 请求,并为广播安全威胁打开大门。
为什么组播流量通过该参数过滤?有任何攻击可以证明其合理性吗?
使用 ICMPv6 和等效目标地址(如 )ff02::1,流量不会被 Linux 主机过滤。未来是否存在被过滤的风险?ICMPv4 是否存在 ICMPv6 不存在的威胁?
Linux 主机:
我的桌面上有 2 个接口:一个在启用多播的 vlan 中,可以访问一些 udp 流,但未路由,另一个可以访问互联网,但没有多播。
如果只启用了多播接口,我就可以播放流,例如使用 VLC。如果启用第二个接口,则无法访问多播流。
据我所知,这是由于路由问题造成的。所以我需要通过正确的接口或类似的接口路由多播请求(IGMP 等)。
有谁知道如何在 Windows 7 上执行此操作?
我有两个 LAN:10.xxx 和 192.xxx 在每个 LAN 上,我都有一台 Linux 机器(10.xx5 和 192.xx5),但它们不是路由器。
我可以从 192.xx5 到 10.xx5 打开 ssh。
局域网 10.xxx 有组播 udp 通道,也就是说,我可以从 10.xx5 收听它们。
问题是:我可以为来自 LAN 192.xxx 的机器共享这些多播频道吗?任何代理、SSH 隧道等?
非常感谢,
最近工作中的整个网络都受到源自 LAN 本身的多播流量的攻击。我做了一些调查,似乎负责的服务是 ws-discovery。
我附上了一张wireshark捕获流量的截图。我已尝试关闭其来源的源计算机,但网络中似乎仍存在多播流量。

我的网络拓扑
2 个子网 - 10.10.10.0/24 和 10.20.10.0/24。Gateway是一个debian系统。我们有 3 个用于 3 层楼的开关。它们都是非托管 Dlink 24 端口交换机。
交换机级别的多播阻塞是不可能的。任何解决方案?:(
可能是一个愚蠢的问题,但我想我需要问。
如果我有四个用作 ntpd 多播服务器的 centos 机器,那么在每个机器的 ntp.conf 中配置的多播地址在所有四个机器上是否都相同(如 224.0.1.1)?
或者ntp.conf中配置的每个组播地址是否需要不同,例如:
CentOS1 multicast 224.0.1.1
CentOS2 multicast 224.0.1.2
CentOS3 multicast 224.0.1.3
CentOS4 multicast 224.0.1.4
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在 CARP/XML 配置集群中设置了一对 pfSense 防火墙/路由器。在 LAN 端,交换机还有一对运行 corosync/pacemaker/drbd 的服务器。它们位于不同的 ip 网络上,但仍会生成多播数据包。
对于我的一生,我无法让 pfSense 允许数据包。我尝试使用简单规则按钮,但失败了。我还添加了一个规则,该规则允许所有端口、所有具有多播地址目标的地址,并启用“allowopts”和“nostate”;一切都无济于事。流量仍然被默认规则阻止。知道我可能做错了什么吗?
这是规则的截图(是的,它们已经重新加载了几次:

我也试过“无状态”。标题下的规则是Easy-Rule,它为源和目标都选择了239地址;src 端口是 *,dest 端口是 5405。
以下是显示默认规则拒绝的日志:

值得注意的是,它最初显示清理规则也是阻塞的,所以我禁用了数据包碎片清理。
我想让一台服务器在同一台机器上发送广播 UDP 数据包和另外两个客户端,接收它们。我能以某种方式做到这一点吗?我会使用什么 IP 地址?
@gravyface 给了我希望,但我尝试过:
他们都没有工作!:(
OBS:我正在使用 REUSE_ADDR 和 SO_BROADCAST 选项。
我在我的网络中引入了一些 PIM 路由,以使一些多播流量跨路由器可用。
我已经阅读了一些关于 PIM、稀疏模式与密集模式的内容。阅读后,我想弄清楚,在什么情况下我要使用密集模式?
如果我有一个简单的结构:
[multicast subscriber] <-> [DR router] <-> [DR router] <-> [RP router] <-> [multicast sender]
使用这种拓扑的稀疏模式真的可以让我更有效地扩展吗?
考虑到特定的大型路由器树,稀疏模式与密集模式如何影响“收到第一个数据包的时间”?RP 是否总是订阅接收组播?
谢谢,
马特
将我们的计算机从 RHEL 6.6 升级到 RHEL 6.7 后,我们发现一个问题:30 台计算机中有 4 台仅在其两个从属接口之一上接收多播流量。目前尚不清楚升级是否相关,或者包含的重新启动是否触发了该行为 - 重新启动的情况很少见。
我们预计会在 4 个不同的端口上收到大量发往组 239.0.10.200 的多播数据包。如果我们检查ethtool其中一台有问题的机器上的统计信息,我们会看到以下输出:
健康的界面:
# ethtool -S eth0 |grep mcast
[0]: rx_mcast_packets: 294
[0]: tx_mcast_packets: 0
[1]: rx_mcast_packets: 68
[1]: tx_mcast_packets: 0
[2]: rx_mcast_packets: 2612869
[2]: tx_mcast_packets: 305
[3]: rx_mcast_packets: 0
[3]: tx_mcast_packets: 0
[4]: rx_mcast_packets: 2585571
[4]: tx_mcast_packets: 0
[5]: rx_mcast_packets: 2571341
[5]: tx_mcast_packets: 0
[6]: rx_mcast_packets: 0
[6]: tx_mcast_packets: 8
[7]: rx_mcast_packets: 9
[7]: tx_mcast_packets: 0
rx_mcast_packets: 7770152
tx_mcast_packets: 313
Run Code Online (Sandbox Code Playgroud)
损坏的接口:
# …Run Code Online (Sandbox Code Playgroud)