Java Aeron-跨交换机的多播问题

Java Aeron-跨交换机的多播问题,java,multicast,aeron,reliable-multicast,Java,Multicast,Aeron,Reliable Multicast,我正在尝试在同一个多播/端口上运行基本的发布者/订阅者对。当主机连接到同一个交换机时,它可以正常工作,但如果订户位于不同的交换机上,则不能正常工作 出版商 java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.sa

我正在尝试在同一个多播/端口上运行基本的发布者/订阅者对。当主机连接到同一个交换机时,它可以正常工作,但如果订户位于不同的交换机上,则不能正常工作

出版商

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
订户

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
由于主机有多个接口,我已明确尝试将发布服务器/订阅服务器绑定到特定接口,方法是将接口参数定义为通道配置的一部分


已使用
iperf

验证了两个盒子之间的多播路由,我能够通过添加ttl配置选项使其工作

出版商

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
订户

java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.1.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicPublisher
java '-Daeron.sample.channel=aeron:udp?endpoint=224.0.1.1:40123|interface=192.168.9.0/24|ttl=16' -Daeron.sample.embeddedMediaDriver=true -cp ./lib/aeron-all-1.29.0.jar io.aeron.samples.BasicSubscriber

您是否已尝试使用
iperf
设置多播流量的TTL:
aeron.socket.multicast.TTL
()是否已测试控制消息在偶数地址上的返回方向?数据和控件(224.0.1.2)多播双向工作,并通过iperf进行验证。谢谢@Martin Thompsonlooks喜欢设置ttl工作-谢谢@MichaelBarker