LINUX.ORG.RU
ФорумAdmin

Как узнать было ли у счётчика байт у сетевого интерфейса переполнение?


0

0

Как известно, счётчик байтов у сетевых интерфейсов 32битного Линукса - unsigned 32bit int число, т.е. после 4Gb переполняется в ноль.

Существует ли возможность узнать переполнялся этот счётчик или нет?

anonymous

Да нет, на счетчик выделяется unsigned 64bit int число, т.е. max его значение - 18446744073709551615.
Можете проверить:
iptables -A FORWARD --set-counters 10 18446744073709551615
iptables -A FORWARD --set-counters 10 18446744073709551616
iptables -A FORWARD --set-counters 10 1844674407370955161000

# iptables -L FORWARD -nvx
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination
      10 18446744073709551615            all  --  *      *       0.0.0.0/0            0.0.0.0/0    
      10 18446744073709551615            all  --  *      *       0.0.0.0/0            0.0.0.0/0    
      10 18446744073709551615            all  --  *      *       0.0.0.0/0            0.0.0.0/0    

spirit ★★★★★
()
Ответ на: комментарий от sdio

Точно, sorry, слегка перепутал...
Если залезть в исходники ifconfig (lib/interface.c), то там для счетчика используется "unsigned long long" (A long long integer - 64 bits long on most GNU systems). А вот то, откуда ifconfig получает значения, похоже действительно 32bit-ное. Т.е. ifconfig может показывать большие числа, чем получает.

А как узнать было ли переполнение - хз, наверное только если самому периодически отслеживать.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Мне кажется что ifconfig берет значения с /proc/net/dev

iron ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.