我正在进行一项网络挑战(用于学习和实用),其中涉及OpenWRT路由器ebtables安装后,我想用来自 LAN 的另一个 RTP 流替换来自互联网 (IPTV) 的 RTP 流。我一直在阅读有关 ebtables 的文章,对它有一个总体的了解,我认为它可以工作,但让它工作起来很麻烦。
我认为最好的解决方案是丢弃所有具有原始流的源/目标 IP/MAC 地址的数据包,并将来自我的 LAN 内部的流更改为具有原始流的源/目标 IP/MAC/端口,这样我的 IPTV 解码器就会认为它正在播放原始流(我不感兴趣的电视频道)并且它会播放我的流。
我的主要目标是虚拟化一个系统科迪(我有一台可以使用 Qemu 虚拟化的 Ubuntu 服务器)并以可视化驱动程序的形式将 RTP 流发送到我的 OpenWRT,OpenWRT 会替换该流,然后我就可以在 IPTV 解码器上看到 Kodi。现在,Ubuntu 服务器是目前我没有尝试的挑战的一部分(我曾经研究过它),因为首先我想确保我可以处理 RTP 流替换部分。
注意:互联网和 IPTV 解码器之间的路径(名为棱) 正在通过 OpenWRT 路由器。OpenWRT 设置为交换机 - 它配置为桥接模式(它不执行任何路由操作),但它可以通过使用 ebtables 对 IPTV 流进行操作。
让我告诉你我的设置的技术细节。
设置:
- Windows 10 主机名为塔森斯带有 IP192.168.1.5/24(起源流2)
- OpenWRT路由器名为梅迪亚托德科带有 IP192.168.1.10/24。
- IPTV解码器名为棱带有 IP192.168.1.12/24。
- 这流1是来自互联网的多播流(我认为是 RTP)。源 IP:172.26.45.226. 目的IP:239.0.5.63。 港口8208 UDP。
- 这流2是来自塔森斯. 源 IP:192.168.1.5/24. 目的IP:192.168.1.10/24。 港口8208(我可以使用 VLC 设置任意内容)。
我想用 SREAM2 替代 STREAM1。
STREAM1 来自互联网,通过 MEDIATODECO 到达 ARRIS。它进入 MEDIATODECO 的端口 1,然后转发到 MEDIATODECO 的端口 2,并在那里与 ARRIS 连接。
STREAM2 指向 MEDIATODECO,不进行转发;从 MEDIATODECO 的 1 端口进入。
我应该如何配置 MEDIATODECO 中的 ebtables 以删除来自 STREAM1 的所有帧并将 STREAM2 的 IP/MAC/端口更改为与原始 STREAM1 相同的 IP/MAC/端口?
这是一个可行的解决方案吗?如果不是,有人知道我应该如何设置我的 MEDIATODECO 来做到这一点吗?
如果需要在 MEDIATODECO 中捕获数据包,我有tcpdump安装;事实上,我已经用Wireshark捕获数据包来查看STREAM1的信息。