Я тестирую реализацию протокола, который говорит между двумя компьютерами с помощью Ethernet (не IP). Чтобы к не на самом деле должны иметь два физических компьютера, я хочу создать два виртуальных интерфейса Ethernet. Они только смогли бы говорить друг с другом, таким образом, одна программа конечной точки свяжет с одним интерфейсом, и другая конечная точка связала бы с другим.
Действительно ли это возможно и как я делаю это?
Вы можете использовать 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
Тип на одной стороне, он появится на другом.
Вы можете использовать драйвер «TAP» Virtual Ethernet, который позволяет программу пользователя, притворяющейся интерфейсом Ethernet Отказ Это стандартная функция ядра в течение некоторого времени (она может быть не включена в вашем ядре).
Вы можете использовать NS3 для эмуляции сложной сети между двумя устройствами Tap Tap, если вам это нужно: http://www.nsnam.org/
У меня были его эмуляция двух коммутаторов, беспроводной клиент и AP, между двумя экземплярами виртуальной коробки.