我正在测试使用以太网(而不是IP)在两台计算机之间进行通信的协议的实现。为了不需要实际拥有两台物理计算机,我想创建两个虚拟以太网接口。它们只能相互通信,因此一个端点程序将绑定到一个接口,而另一个端点将绑定到另一个端点。
这是可能的吗?我该怎么做?
发布于 2010-01-18 06:16:08
您可以使用虚拟交换机VDE2。
例如(您需要几个术语):
# Install vde2 (assumes Debian/Ubuntu)
sudo aptitude install vde2
# Create the switch and two tap interfaces attached to it
sudo vde_switch -tap tap0 -tap tap1
# Configure the interfaces
sudo ip addr add 10.0.31.10 dev tap0
sudo ip addr add 10.0.31.11 dev tap1
# Start a server
socat - TCP-LISTEN:4234,bind=10.0.31.10
# Alternatively, an echo server:
#socat PIPE TCP-LISTEN:4234,bind=10.0.31.10
# Start a client
socat - TCP:10.0.31.10:4234,bind=10.0.31.11在一边输入,它会出现在另一边。
发布于 2010-01-18 05:44:35
您可以使用“分路器”虚拟以太网驱动程序,它可以让用户空间程序伪装成以太网接口。这是一段时间以来的标准内核特性(虽然在您的内核中可能没有启用它)。
发布于 2010-01-18 06:26:31
如果需要,可以使用ns3模拟两个tap设备之间的复杂网络:http://www.nsnam.org/
我让它在两个virtualbox实例之间模拟两个交换机、一个无线客户端和一个AP。
https://stackoverflow.com/questions/2082722
复制相似问题