
ネットワークネームスペース内のネットワークインターフェイスからトラフィックを具体的にキャプチャする方法はtshark
?私の場合、ネットワークインターフェースはtun0
という名前の名前空間に移動されましたvpn
。
通常、これを実行すると、tshark -f "port 53"
ネットワーク名前空間が最終的に使用するプライマリインターフェイスのDNSクエリが含まれているため、出力が複雑になります。
私のネットワークネームスペースの設定は次のとおりです(価値あるものはここのopenvpn netns-upスクリプトです)。http://www.naju.se/articles/openvpn-netns.html)
$ ip netns add vpn
$ ip netns exec vpn ip link set dev lo up
$ ip link set dev tun0 up netns vpn mtu 1500
$ ip netns exec vpn ip addr add dev tun0 "10.14.0.3/16"
$ ip netns exec vpn ip addr add dev tun0 "$ifconfig_ipv6_local"/112
$ ip netns exec vpn ip route add default via 10.14.0.1
$ ip netns exec vpn ip route add default via "$ifconfig_ipv6_remote"
答え1
以下を使用して作成されたネットワーク名前空間内でコマンドを実行するときに使用するのと同じ短縮されていない構文を引き続き使用できますip netns add
。
ip netns exec vpn <command-for-capture>
良い:
ip netns exec vpn tshark -i tun0 -n -f 'port 53'
DNSトラフィックをキャプチャするときは、DNS検証トリガを防ぐtshark
オプションに注意することが-n
特に重要です。そうしないと、tshark
カスケードDNS検証とキャプチャ自体が元のトラフィックを汚染します。
ちなみに、コマンド自体には、にip
置き換えることができるショートカットがありますが、もちろん他のコマンドと一緒に使用することはできません。多くのOP設定が。ip netns exec FOO ip BAR ...
ip -n FOO BAR ...
ip -n vpn ...
ip netns exec vpn ip ...