Routing 如何在特定NIC上接收IPv6多播数据报,特别是如何设置路由表以便在所需NIC上接收?

Routing 如何在特定NIC上接收IPv6多播数据报,特别是如何设置路由表以便在所需NIC上接收?,routing,udp,ipv6,multicast,rhel6,Routing,Udp,Ipv6,Multicast,Rhel6,我相信Linux(RHEL6)内核会根据配置文件生成路由表?现在我有一个多主机linux机箱(两个NIC,一个10Gb,一个1Gb)。我正在尝试仅使用10Gb NIC发送多播数据报。我的多播代码在工作时是正确的,但我目前只在1Gb NIC上接收多播数据报,并在10Gb NIC上发送(发送工作,因为我设置了IPV6\u多播\u是否要退出该NIC)。我不想以编程的方式来做这件事。我的默认网关设置为1Gb NIC,DEFROUTE=yes。路由表中也没有多播路由 问题1 我是否可以更改到其他NIC的默

我相信Linux(RHEL6)内核会根据配置文件生成路由表?现在我有一个多主机linux机箱(两个NIC,一个10Gb,一个1Gb)。我正在尝试仅使用10Gb NIC发送多播数据报。我的多播代码在工作时是正确的,但我目前只在1Gb NIC上接收多播数据报,并在10Gb NIC上发送(发送工作,因为我设置了IPV6\u多播\u是否要退出该NIC)。我不想以编程的方式来做这件事。我的默认网关设置为1Gb NIC,DEFROUTE=yes。路由表中也没有多播路由

问题1

我是否可以更改到其他NIC的默认网关和默认路由,它将执行我想要的操作

问题2

路由表中是否应该有多播路由(是否应该是IPv6路由)?现在没有,我假设内核查看多播目的地,并意识到它不在路由表中,所以它使用默认路由

问题3

如果路由表中需要多播地址,如何永久添加它?我使用route命令将其放入表中,但在重新启动或使NIC上下移动时,它会消失。另外,当添加多播路由时,它似乎无法工作,或者无法按我想要的方式路由数据包?我仍然通过1Gb NIC接收数据


我不熟悉Linux和网络编程,对我的术语一窍不通。请纠正我的错误。非常感谢您的帮助

您能否更详细地描述您的测试场景。每个NIC都应该有dedault多播组地址。因此,无需手动设置它“我的多播代码在工作时是正确的”-您能否提供系统调用的详细信息,尤其是
setsockopt
调用。通过编辑Linux内核的本地路由表,这个问题似乎得到了解决。有一个转发路径覆盖了所有其他路由,导致我的应用程序在特定NIC上发送和接收。您能更详细地描述一下您的测试场景吗。每个NIC都应该有dedault多播组地址。因此,无需手动设置它“我的多播代码在工作时是正确的”-您能否提供系统调用的详细信息,尤其是
setsockopt
调用。通过编辑Linux内核的本地路由表,这个问题似乎得到了解决。有一个转发路径覆盖了所有其他路由,导致我的应用程序在特定NIC上发送和接收。