Чтобы протестировать сетевое приложение контролируемым образом, я хочу создать виртуальную сеть на одной машине, в которой я могу контролировать задержки. (Я использую Ubuntu 14.04 x64). Я немного исследовал и получил следующее:
Использование интерфейсов касания: vde_switch для создания виртуального коммутатора, например, так:
sudo vde_switch -tap tap0 -tap tap1
sudo ip addr add 10.0.0.100 dev tap0
sudo ip addr add 10.0.0.101 dev tap1
Альтернативный способ создания интерфейсов крана, который я пробовал:
sudo ip tuntap add dev tap0 mode tap
sudo ip link set dev tap0 up
sudo ip addr add 10.0.0.100 dev tap0
[repeat for tap1 and any further interfaces]
Все идет нормально. Теперь моя проблема заключается в введении искусственной задержки в этих интерфейсах. Мне удалось сделать это, используя следующее для реальных интерфейсов, таких как lo и eth0:
sudo tc qdisc add dev eth0 root netem delay 15ms
Однако приведенная выше команда не работает с интерфейсами крана. После того, как я выполнил его для одного из интерфейсов крана, кажется, ничего не изменилось. Комментарий не дает никакого вывода, поэтому, похоже, интерфейс найден в порядке и успешно завершен. Однако пинг, например, 10.0.0.100, не показывает изменения в задержке.
Есть ли что-то очевидное, чего мне не хватает? (Или я подхожу к этому совершенно неправильно?) Спасибо!