Назад | Перейти на главную страницу

Добавление некоторой задержки к определенному порту на локальном хосте с использованием tc и netem

Я собираюсь смоделировать сетевую задержку на трех разных портах локального хоста с помощью команд tc (управление трафиком для Linux). Я запускаю следующий код:

!/bin/bash
tc qdisc add dev lo root handle 1: htb 
tc class add dev lo parent 1: classid 1:1 htb rate 1000Mbps
#1:
tc class add dev lo parent 1:1 classid 1:2 htb rate 1000Mbps
tc qdisc add dev lo handle 2: parent 1:2 netem delay 500ms
tc filter add dev lo pref 2 protocol ip u32 match ip dport 7011 0xffff flowid 1:2
#2:
tc class add dev lo parent 1:1 classid 1:3 htb rate 1000Mbps
tc qdisc add dev lo handle 3: parent 1:3 netem delay 1000ms
tc filter add dev lo pref 3 protocol ip u32 match ip dport 7011 0xffff flowid 1:3
#3:
tc class add dev lo parent 1:1 classid 1:4 htb rate 1000Mbps
tc qdisc add dev lo handle 4: parent 1:4 netem delay 100ms
tc filter add dev lo pref 4 protocol ip u32 match ip dport 7012 0xffff flowid 1:4

Однако, похоже, эти фильтры не вызывают какой-либо задержки. Я даже пробовал заниматься спортом, но тоже ничего не вышло. Кстати, я могу добавить задержку на локальный хост (127.0.0.1) без фильтров. Но когда я добавляю фильтры для портов, это не работает.

Я не мог понять, где я ошибаюсь.