Я заметил "странное" поведение счетчика пакетов для цепочки POSTROUTING
(правило MASQUERADE
) в моем "маршрутизаторе" (CentOS
7), что когда я ping
снаружи из NATed LAN,поля pkts
увеличиваются не так сильно, как отправленные мной запросы ping.
Например, если я отправляю 10 ICMP
эхо-запросов, используя ping <dest-ip> -c 10
, поле pkts
в цепочке POSTROUTING
увеличивается только на 1. Если я пропингую один пакет одним пакетом (т. е. выдаю несколько команд ping -c 1 <dest-ip>
), поле pkts
обычно увеличивается, как и ожидалось (если промежуток времени между последовательными командами пинга достаточно длинный).
Chain POSTROUTING (policy ACCEPT 50 packets, 3302 bytes)
pkts bytes target prot opt in out source destination
63 4696 MASQUERADE all -- * eth0 172.16.1.0/24 0.0.0.0/0
Для одного и того же теста пинга я наблюдал поле pkts
в цепочке PREROUTING
и FORWARD
.Поведение счетчика одинаково для цепей PREROUTING
и POSTROUTING
, но цепочка FORWARD
имеет "нормальное" поведение, при котором счетчик будет увеличиваться точно так же, как и количество отправленных ICMP-пакетов.
Использование Wireshark для захвата пакетов ICMP как на клиенте, так и на «маршрутизаторе» показывает, что обмен запросами / ответами ICMP соответствует команде ping.
Полагаю, я упустил некоторые знания об этом конкретномповедение счетчика пакетов ... не могли бы вы указать источник информации об этом?
Большое спасибо.