¿Cómo puedo obtener tráfico de cada dirección IP en Linux en una sola interfaz, con múltiples direcciones IP?

¿Cómo puedo obtener tráfico de cada dirección IP en Linux en una sola interfaz, con múltiples direcciones IP?

En mi escenario, mi host tiene una interfaz de red con múltiples direcciones IP. Quiero obtener el tráfico de cada dirección IP. Quiero recibir paquetes, bytes y paquetes de error recibidos y enviados. Mi interfaz es:

qg-6108c4a2-94@if209: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fa:16:3e:9e:58:d2 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 173.20.12.8/24 brd 173.20.12.255 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.7/32 brd 173.20.12.7 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.11/32 brd 173.20.12.11 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet 173.20.12.13/32 brd 173.20.12.13 scope global qg-6108c4a2-94
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe9e:58d2/64 scope link
       valid_lft forever preferred_lft forever

Respuesta1

No podrá obtener la información que desea. Las IP forman parte de una misma interfaz única y, como tal, sólo se cuentan a nivel físico. Debo tener en cuenta que "ifconfig" esinsuficiente y obsoleto. El ipcomando te mostrará el resumen a nivel físico.

% ip -s link show br1000
10: br1000: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:10:18:aa:a8:20 brd ff:ff:ff:ff:ff:ff
RX: bytes  packets  errors  dropped overrun mcast
15661372003 108647365 0       0       0       0
TX: bytes  packets  errors  dropped carrier collsns
278081828962 149463091 0       0       0       0

Necesitaría usar iptableso nftablesrastrear lo que desea rastrear.

# iptables example - probably incorrect, I don't have a dev machine to test this.
iptables -A INPUT -i br1000 -d 10.100.0.1/24 -j LOG
iptables -A OUTPUT -i br1000 -s 10.100.0.1/24 -j LOG

# nftables example - probably incorrect, I don't have a dev machine to test this.
nft add rule ip filter INPUT iifname "br1000" ip daddr 10.100.0.1 counter log
nft add rule ip filter OUTPUT iiname "br1000" ip saddr 10.100.0.1 counter log

Hay otro software complementario que también puede ayudarte; el primero que te viene a la mente es vnstat. Pero tu kilometraje puede variar.

información relacionada