在Linux中创build和桥接虚拟networking接口

我有一个工具来重播来自.pcap文件的stream量和解释该stream量的另一个工具。 出于testing的目的,我需要将stream量从一个界面上播放出来,然后让它进入另一个界面。 显然,我可以简单地在我的两个NIC之间连接一根交叉电缆,但是肯定有更好的办法,我可以在Linux内部做到这一点? 我已经尝试使用一个回送接口(玩stream量出口洛,解释从洛杉矶的stream量),但它没有工作。

有没有办法可以创build虚拟接口,然后桥接两个虚拟接口? 理想情况下,我可以在“virt-eth1”上播放stream量,并让我的其他工具在“virt-eth2”上进行监听。 当stream量被发送到virt-eth1时,应该被桥接并进入virt-eth2。 从那里发生什么没有结果。

我想这里你需要使用的是TUN / TAP接口。 安装tunctl(CentOS软件包),然后开始创build虚拟networking接口:

tunctl -t tap0 ifconfig tap0 up 

更多信息: http : //backreference.org/2010/03/26/tuntap-interface-tutorial/

Tun / tap接口是Linux(也可能是其他类UNIX操作系统)提供的一种function,可以执行用户空间networking,也就是允许用户空间程序查看原始networkingstream量(在以太网或IP级别)并执行任何操作像它一样。 本文档试图解释在Linux下tun / tap接口是如何工作的,以及一些示例代码来演示它们的用法。

我记得,当使用loopback接口时,在PCAP库中无法正常工作,因为它实际上并不是一个“真实”的接口(或者当然不被系统视为真正的接口)。 它甚至没有一个MAC地址,如果你运行ifconfig。 但是,TUN / TAP接口可以做到这一点,并且为了您所要做的目的,它可能只是您正在寻找的解决scheme(不需要创build额外的虚拟机等)。

我还怀疑,只需一个接口就可以完成任务(不需要桥接2个接口)。 只需将您的第一个进程绑定到虚拟接口上并写入stream量,然后让第二个进程绑定到它上面,读取stream量。