Wenn ich DNS-Anfragen von Clients (auf einem OpenWrt 10.04-Router) tcpdumpen möchte, dann habe ich
root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2>&1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br-lan, link-type EN10MB (Ethernet), capture size 96 bytes
22:29:38.989412 IP 192.168.1.200.55919 > 192.168.1.1.53: 5697+ A? foo.org. (25)
22:29:39.538981 IP 192.168.1.200.60071 > 192.168.1.1.53: 17481+ PTR? 150.33.87.208.in-addr.arpa. (44)
^C
2 packets captured
3 packets received by filter
0 packets dropped by kernel
Das ist völlig in Ordnung. Aber. Warum kann ich die Ausgabe von tcpdumps nicht in Echtzeit leiten?
root@ROUTER:/etc# tcpdump -n -i br-lan dst port 53 2>&1 | awk '/\?/ {print $3}'
^C
root@ROUTER:/etc#
Wenn ich nach tcpdump etwas achte, bekomme ich KEINE Ausgabe. Warum das? Warum kann ich die Ausgabe von tcpdump nicht in Echtzeit mit Pipelining verarbeiten? (so dass zB im Beispiel in nur die 3. Spalte ausgegeben wird)
Gibt es dafür irgendwelche Lösungen?