ping может разрешить имя хоста, а dig не может разрешить то же самое имя хоста?

Существует несколько хороших источников информации о том, как ввести задержку для входящих и исходящих пакетов. На этой вики-странице NetEm много информации. См. раздел «1.1 Эмуляция задержек глобальной сети» для получения информации о задержке исходящих пакетов и «2.3 Как я могу использовать netem для входящего трафика?» для входящих пакетов. Я попробовал их на своей установке, и у меня не было проблем с их работой.

Базовая задержка:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
21.800

Задержка 100 мс только на стороне клиента (B):

# tc qdisc add dev $my_interface root netem delay 100ms

Результат:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
102184.355

Задержка 100 мс только на стороне клиента (A):

Во-первых, создайте псевдо промежуточный функциональный блок -устройство IFB (Ethernet-мост также будет работать):

# modprobe ifb
# ip link set dev ifb0 up

Затем перенаправьте весь входящий трафик, чтобы сначала пройти через устройство IFB:

# tc qdisc add dev $my_interface ingress
# tc filter add dev $my_interface parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0

Теперь просто добавьте задержку для исходящего трафика устройства IFB, который теперь является входящим трафиком для моего _интерфейса:

# tc qdisc add dev ifb0 root netem delay 100ms

Результат:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
154442.238

Применяя оба результата из:

# netperf -H $my_ip -t TCP_RR -P 0 -- -r 64 -o RT_LATENCY
333803.282

Как видите, задержка больше, чем добавленные 100 мс (или 200 мс в последнем примере )+ базовая задержка. NetEm вызывает задержку в определенном месте канала, поэтому более длительная, чем ожидалось, задержка может быть побочным эффектом, если задержка.

0
24.03.2020, 14:20
1 ответ

Ping и dig используют разные механизмы для разрешения IP-адресов. В то время как pingполучает конфигурацию из строки, похожей на hosts: files dnsв файле /etc/nsswitch.conf, а digиспользует сервер имен, настроенный в /etc/resolv.conf, потому что dig запрашивает только DNS-сервер. Таким образом, ваша проблема может быть связана с DNS-серверами, которые определены в файле /etc/hosts.

Есть еще одно уточнение

0
28.04.2021, 23:19

Теги

Похожие вопросы