私のシナリオでは、ホストには複数の IP アドレスを持つネットワーク インターフェイスがあります。すべての IP アドレスのトラフィックを取得したいと考えています。受信および送信されたパケットとバイト、およびエラー パケットを取得したいと考えています。インターフェイスは次のとおりです。
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
答え1
必要な情報を取得することはできません。IPは同じ単一のインターフェースの一部であるため、物理レベルでのみカウントされます。「ifconfig」は不十分で時代遅れこのip
コマンドは物理レベルの概要を表示します。
% 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
追跡したいものを追跡するには、を使用するiptables
か、を使用する必要があります。nftables
# 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
他にも役立つ補助ソフトウェアはいくつかあります。まず思い浮かぶのは ですvnstat
。ただし、効果は人によって異なる可能性があります。