Como no Linux posso obter tráfego de todos os endereços IP em uma única interface, com vários endereços IP?

Como no Linux posso obter tráfego de todos os endereços IP em uma única interface, com vários endereços IP?

No meu cenário, meu host possui uma interface de rede com vários endereços IP. Quero obter o tráfego de cada endereço IP. Quero receber pacotes e bytes recebidos e enviados e pacotes de erro. Minha interface é:

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

Responder1

Você não conseguirá obter as informações que deseja. Os IPs fazem parte da mesma interface única e, como tal, são contabilizados apenas no nível físico. Devo observar que "ifconfig" éinsuficiente e obsoleto. O ipcomando mostrará o resumo no nível 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

Você precisaria usar iptablesou nftablesrastrear o que deseja 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

Existem outros softwares complementares que também podem ajudá-lo – o primeiro que vem à mente é o vnstat. Mas sua milhagem pode variar.

informação relacionada