Linuxでは、複数のIPアドレスを持つ単一のインターフェイスから各IPアドレスのトラフィックを取得する方法は?

Linuxでは、複数のIPアドレスを持つ単一のインターフェイスから各IPアドレスのトラフィックを取得する方法は?

私のシナリオでは、ホストに複数の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。ただし、マイレージは異なる場合があります。

おすすめ記事