如何配置我的 ubuntu 以允许我通过 eth0 地址发送多播,并通过 eth1 地址接收?我能够通过相同的地址发送和接收,但通过 192.168.122.140 (eth0) 发送并从 192.168.122.40 (eth1) 接收时失败。
细节:
我写了两个程序:
- 一个多播发送器,通过接口 192.168.122.140 使用多播地址和端口广播消息。
- 一个多播接收器,通过接口192.168.122.40接收多播消息并指向发送方应用程序中定义的地址和端口。
我已经测试了发送方和接收方应用程序,它们都具有相同的接口 192.168.122.140 或 192.168.122.40,接收器能够从发送方应用程序接收数据包。但是当我将 192.168.122.140 设置为发送方,将 192.168.122.40 设置为接收器时,接收器什么也收不到。
这是我的路由表。如果有误,请帮忙纠正。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default hkcore.hk.abc.n 0.0.0.0 UG 100 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth1
localnet * 255.255.255.0 U 0 0 0 eth0
localnet * 255.255.255.0 U 0 0 0 eth1
224.0.0.0 * 240.0.0.0 U 0 0 0 eth0
eth0 Link encap:Ethernet HWaddr 74:d0:2b:2c:06:23
inet addr:192.168.122.140 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::76d0:2bff:fe2c:623/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:109471 errors:0 dropped:0 overruns:0 frame:0
TX packets:1513722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29824161 (29.8 MB) TX bytes:1186271256 (1.1 GB)
Interrupt:20 Memory:f7200000-f7220000
eth1 Link encap:Ethernet HWaddr 00:1b:21:25:05:13
inet addr:192.168.122.40 Bcast:192.168.122.255 Mask:255.255.255.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)
Interrupt:19 Memory:f71c0000-f71e0000
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 MTU:65536 Metric:1
RX packets:5172 errors:0 dropped:0 overruns:0 frame:0
TX packets:5172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:406555 (406.5 KB) TX bytes:406555 (406.5 KB)