[Frage] DNSMasq und "server="-Option

ChrisDP

Neuer User
Mitglied seit
2 Jan 2014
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Moinsen!

Ein paar Infos vorne weg:

Boxtyp: 7170 AVM-Firmwareversion: 04.87 Sprache:de
Kernelversion: 2.6.13.1-ohio (3964) (gcc-Version 3.4.6)
Freetz-Version: freetz-2.0-11434

Boxname: FRITZ!Box Fon WLAN 7170 ANNEX: B
HWRevision: 94.1.1.0 Flash (ROM): 8 MB RAM: 32 MB
CPU-Familie: MIPS OHIO CPU-Modell: MIPS 4KEc V4.8

Patches:
automount
> fat
freetzmount
Entfernt:
avm_vpn
dtrace
kids

Pakete:
avm_firewall
dnsmasq
> disable_dhcp
> disable_dns
haserl
inetd
iptables_is_selectable
mod
> etcservices
modcgi

CGI-Pakete:
syslogd


Problemkind (wenn man es so nennen kann): dnsmasq

cat /var/mod/etc/dnsmasq.conf

domain-needed
log-async=10
no-resolv
server=192.168.180.1
server=192.168.180.2
bogus-priv
dhcp-range=192.168.178.20,192.168.178.200,24h
domain=fritz.box
expand-hosts
read-ethers
stop-dns-rebind
### content of /tmp/flash/dnsmasq/dnsmasq.extra
server=/IrgendeineGanzBestimmteDomäne.com/*tolleDNSIP* (Anmerkung: Primary)
server=/IrgendeineGanzBestimmteDomäne.com/*tolleDNSIP* (Anmerkung: Secondary)
server=/123DomäneGibtEsNicht.de/*tolleDNSIP*

Der aufmerksame Leser wird bemerkt haben, dass es hier um die selektive Nutzung eines DNS Servers für eine bestimmte Domäne geht.

Folgende Frage drängt sich mir nun auf:

"IrgendeineGanzBestimmteDomäne.com" kann ich, dank des *tolleDNSIP* besuchen. Alles funktioniert wie beabsichtigt.

Da ich nun wissen wollte, ob bei allen anderen Domänen mein "Haus DNS" (sprich, der des ISP, in meinem Fall der rosa Riese) greift, habe ich mich eines Tricks bedient: Wenn ich im Browser eine URL anwähle, die nicht existiert, kommt der rosa Riese mit einer speziellen Webseite daher und fragt "Haben sie sich vertippt?". Ergo, wenn ich "123DomäneGibtEsNicht.de" eingebe, kommt eben jene Seite. Um das Ganze nun zu falsifizieren, habe ich (s.o.) "123DomäneGibtEsNicht.de" spaßeshalber auch einem anderen DNS zugewiesen. Und nun passiert das mir Unerklärliche: Es kommt immer noch die "Vertippt"-Seite des rosa Riesen! Sollte sich hier nicht eigentlich *tolleDNSIP* melden??

Warum mich das ganze so verunsichert: Ich bin im Netz gerne, so gut es geht, "sicher" unterwegs, ergo wüsste ich gerne, welcher DNS gerade die besuchte Seite auflöst. Ziel der obigen Übung war es, dass NUR "IrgendeineGanzBestimmteDomäne.com" über einen anderen DNS aufgelöst wird. Wie kann ich da jetzt sicher sein? Was ich bräuchte, wäre eine Art DNS-Trace...

Lange Rede, kurzer Sinn: Steuere ich mit der obigen Config wirklich nur bei dem Besuch von "IrgendeineGanzBestimmteDomäne.com" die *tolleDNSIP* an und warum greift der rosa Riesen-DNS trotzdem immer als eine Art "Fallback"??

Danke fürs lesen und freue mich auf eine Antwort,

Gruß Chris
 
Hast Du nach der Umstellung, auch die dns-caches von Router, Server, OS, Browser, etc. gelöscht?

Sicher nicht :) Wie mach ich das? Browser ist klar, aber in der Fritzbox? Keinen Schimmer. An den Server komm ich nicht ran (wüsste jetzt auch nicht genau, welchen du meinst) und OS is Win 7. Dachte nicht, dass Win 7 DNS-Einstellungen die HINTER dem Router laufen, speichert (Windows merkt sich doch höchstens die IP vom Router und die ist hier ja wurscht).
 
..., aber in der Fritzbox?
Z. B. mit multid anhalten/neustarten oder die FritzBox neustarten.
... (wüsste jetzt auch nicht genau, welchen du meinst) ...
Den dnsmasq-Server meinte ich. Ich mache das mit "kill -s USR1 $(pidof dnsmasq)".
Evtl. ist das auch mit dem reboot der FritzBox erledigt.
... OS is Win 7. Dachte nicht, dass Win 7 DNS-Einstellungen die HINTER dem Router laufen, speichert (Windows merkt sich doch höchstens die IP vom Router und die ist hier ja wurscht).
OK, ... bei Win 7 weiß ich das nicht. Bei Linux-OS mache ich das mit: "sudo sh -x /etc/init.d/dns-clean restart" oder mit "sudo sh -x /etc/init.d/nscd restart".
 
Mit nscd restart wird nicht zwangsläufig der nscd Cache gelöscht, da sich dieser in einer Datei befindet.

Wenn man schon ein Linux System hat, ist das einfachste, das host Kommando zu verwende, mit Angabe des Nameservers, der abgefragt werden soll.
Code:
host 123DomäneGibtEsNicht.de *BoxIP*
host 123DomäneGibtEsNicht.de *tolleDNSIP*
Damit sieht man, was der DNS Server auf der Box bzw. der andere Server antwortet.
Eine weitere Möglichkeit ist, dass der andere Server negativ antwortet und dnsmasq deswegen die normalen Server befragt.
 
Fritzbox hatte ich danach wirklich nicht neu gestartet. Werd ich morgen noch mal testen, Freundin macht gerade Telefonmarathon, da kommt nen Restart nicht so gut an ;).

"host" als Kommando kannte ich noch gar nicht, gibts aber unter Windows leider nicht.

Eine weitere Möglichkeit ist, dass der andere Server negativ antwortet und dnsmasq deswegen die normalen Server befragt.

Genau solche Konstellationen wollte ich verhindern! Ziel war es, dass *tolleDNSIP* wirklich NUR, also AUSSCHLIESSLICH, bei "IrgendeineGanzBestimmteDomäne.com" verwendet wird. Für alle anderen Seiten soll AUSSCHLIESSLICH der DNS von dem rosa Riesen verwendet werden. Ich möchte weder, dass DNSmasq verschiedene DNS "durchprobiert", noch dass er den "schnellsten" nimmt, oder sonst einen Unfug macht.

Wie kann ich das mit DNSMasq sicher stellen und im Anschluss überprüfen? Für letzteres, das Überprüfen, hätte ich normalerweise einfach einen nslookup gemacht, allerdings liefert mir der, wie zu erwarten, nur die interne IP vom Router als DNS.

Danke schon mal für euere Antworten :)
 
Starte eine beliebige Linux Live-CD, entweder auf einem PC oder in einer virtuellen Maschine, und verwende das Host Kommando unter Linux.
 
... und im Anschluss überprüfen?
Mit tcpdump kannst Du das überprüfen. Z. B. kann meine externe IP-Adresse von OpenDNS geliefert werden:
Code:
# dig [color=red]@8.8.8.8[/color] myip.opendns.com +short
Code:
# tcpdump -vn -i any udp dst port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:49:19.500366 IP (tos 0x0, ttl 77, id 23601, offset 0, flags [DF], proto UDP (17), length 62)
    192.168.178.21.49122 > [color=red]208.67.220.222[/color].53: 21791+ A? myip.opendns.com. (34)
Obwohl ich dig sage, es soll 8.8.8.8 verwendet werden, nimmt dnsmasq den 208.67.220.222. 8.8.8.8 könnte mit myip.opendns.com meine externe IP-Adresse nicht feststellen.
Code:
server=/myip.opendns.com/208.67.220.222

EDIT:

Anders als mit dig, wenn man mit host einen DNS-Server benutzt, dann wird der lauschende dnsmasq ignoriert:
Code:
# host myip.opendns.com [color=red]8.8.8.8[/color]
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

Host myip.opendns.com not found: 3(NXDOMAIN)
Code:
# sudo tcpdump -vn -i any udp dst port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
00:16:01.702043 IP (tos 0x0, ttl 77, id 36653, offset 0, flags [none], proto UDP (17), length 62)
    192.168.178.21.60254 > [color=red]8.8.8.8[/color].53: 24360+ A? myip.opendns.com. (34)
00:16:01.723905 IP (tos 0x0, ttl 77, id 36654, offset 0, flags [none], proto UDP (17), length 72)
    192.168.178.21.42920 > 8.8.8.8.53: 55003+ A? myip.opendns.com.fritz.box. (44)
 
Zuletzt bearbeitet:
Jetzt wird die Sache langsam spannend *hädereib*. Hoffe, ihr habt die Geduld, das mit mir noch etwas weiter zu spinnen:

# sudo tcpdump -vn -i any udp dst port 53

Nur, damit ich nichts falsch verstehe: Damit kann ich "lauschen", womit eine angesprochene Domäne (z.B. via dig) aufgelöst wird, richtig?

Habe ich getestet, habe testweise den Google-DNS aus deinem Beispiel genommen. Das Ergebnis:

"IrgendeineGanzBestimmteDomäne.com" wird durch 8.8.8.8 aufgelöst! Aber laut meiner dnsmasq-config sollte *tolleDNSIP* das übernehmen! Wie kann das sein?

Vielleicht noch mehr Infos zum Hintergrund:

Mit *tolleDNSIP* löse ich nicht nur auf, sondern biege gleich noch auf einen Proxy um. "IrgendeineGanzBestimmteDomäne.com" kann grundsätzlich von jedem DNS aufgelöst werden. Damit ist klar, warum 8.8.8.8 den Job auch auftragsgemäß ausgeführt hat. Aber genau dieses Verhalten war nicht gewollt.

Da ich mit meinem Latein ein wenig am Ende bin, drücke ich es noch einmal ganz Laienhaft aus:

Rechner -> Fritzbox mit Freetz und DNSMasq -> DNS Server (spezieller oder der vom ISP)

Mein Ziel ist, dass, wenn ich am Rechner auf "IrgendeineGanzBestimmteDomäne.com" gehe, DNSMasq sicherstellt, dass *tolleDNSIP* verwendet wird, um diese IP aufzulösen.

Was ich bisher belegen konnte: "IrgendeineGanzBestimmteDomäne.com" WIRD aktuell mit *tolleDNSIP* aufgelöst, weil mir der damit verbundene Proxy Features auf "IrgendeineGanzBestimmteDomäne.com" ermöglicht, die mit keinem anderen (oder zumindest mit dem ISP-DNS) zugänglich wären.

So, als das klappte, hab ich mich erst einmal gefreut und mir dann Sorgen gemacht, ob vielleicht auch andere Anfragen über *tolleDNSIP* laufen (was ich NICHT möchte). Daher bin ich nun auf der suche nach einer Möglichkeit, folgendes zu überprüfen bzw. anzuzeigen:

Ich gehe auf web.de (via Browser am Rechner), welcher DNS wurde genutzt um web.de für mich aufzulösen?
Ich gehe auf google.de (via Browser am Rechner), welcher DNS wurde genutzt um google.de für mich aufzulösen?
Ich gehe auf IrgendeineGanzBestimmteDomäne.com (via Browser am Rechner), welcher DNS wurde genutzt um IrgendeineGanzBestimmteDomäne.com für mich aufzulösen?

KLASSISCH würde ich das mit nslookup machen, allerdings gibt mir das nur den Router als DNS aus. Wenig hilfreich.

Hab mittlerweile übrigens Debian via Virtualbox aufgesetzt, bin nun also etwas "flexibler" ;)

Gruß und Dank, Chris

PS: Noch mal dickes Danke an alle hier!
 
Zuletzt bearbeitet:
..., ob vielleicht auch andere Anfragen über *tolleDNSIP* laufen (was ich NICHT möchte). Daher bin ich nun auf der suche nach einer Möglichkeit, folgendes zu überprüfen bzw. anzuzeigen:

Ich gehe auf web.de (via Browser am Rechner), welcher DNS wurde genutzt um web.de für mich aufzulösen?
Ich gehe auf google.de (via Browser am Rechner), welcher DNS wurde genutzt um google.de für mich aufzulösen?
Ich gehe auf IrgendeineGanzBestimmteDomäne.com (via Browser am Rechner), welcher DNS wurde genutzt um IrgendeineGanzBestimmteDomäne.com für mich aufzulösen?
Ich denke, das sollte mit tcpdump (... ohne sudo weil Du dort schon root bist) auf deiner FritzBox (Freetz) möglich sein:
Code:
tcpdump -vn -i any udp dst port 53 or udp src port 53

EDIT:

Alternativ zu tcpdump, könntest Du auch iplog auf deiner FritzBox (Freetz) verwenden. Z. B. mit:
Code:
iplog -oLVwD --tcp=false --udp=true --icmp=false --dns-cache=false -a 0.0.0.0/0
Anleitungen/Beispiele/Threads betr. compilieren bzw. integrieren in Freetz von iplog, findest Du hier in diesem Forum.

Log-Beispiel:
Code:
# iplog -oLVwD --tcp=false --udp=true --icmp=false --dns-cache=false -a 0.0.0.0/0
Jan  3 09:14:53 iplog started.
Jan  3 09:14:56 UDP: dgram to resolver4.opendns.com (208.67.220.222):domain from 192.168.178.21:49122 (34 data bytes)
Jan  3 09:14:56 UDP: dgram to 192.168.178.21:port 49122 from resolver4.opendns.com (208.67.220.222):53 (50 data bytes)

EDIT 2:

Nur, damit ich nichts falsch verstehe: Damit kann ich "lauschen", womit eine angesprochene Domäne (z.B. via dig) aufgelöst wird, richtig?
Ja, richtig.
Habe ich getestet, habe testweise den Google-DNS aus deinem Beispiel genommen. Das Ergebnis:

"IrgendeineGanzBestimmteDomäne.com" wird durch 8.8.8.8 aufgelöst! Aber laut meiner dnsmasq-config sollte *tolleDNSIP* das übernehmen! Wie kann das sein?
Das liegt an deiner DNS-Konfiguration. Wenn Du das haben willst, dann musst Du m. E. "man-in-the-middle" (d. h. dns-spoof) anwenden. Ich habe das mit dem tool dnsspoof gemacht. Z. B. wenn ich host sage es soll für facebook.com der dns-server 8.8.8.8 verwendet werden, dann wird das auch gemacht, aber dnsspoof schaltet sich dazwischen und die Anfrage landet lt. tcpdump (siehe unten) auch auf 8.8.8.8, aber der Rückgabewert (IP-Adresse) kommt aus der hostfile-Datei für dnsspoof und dort steht für facebook.com die IP-Adresse 193.169.12.12:
Code:
# host facebook.com [color=red]8.8.8.8[/color]
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

facebook.com has address [color=red]193.169.12.12[/color]
facebook.com has IPv6 address 2a03:2880:2110:df07:face:b00c:0:1
facebook.com mail is handled by 10 msgin.t.facebook.com.
Code:
# tcpdump -vn -i any udp dst port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes

10:03:29.561231 IP (tos 0x0, ttl 77, id 44193, offset 0, flags [none], proto UDP (17), length 58)
    192.168.178.21.60707 > 8.8.8.8.53: 34137+ A? facebook.com. (30)

EDIT 3:

Wenn Du willst, dass deine dns-Anfragen auf einem bestimmten dns-Server nicht "landen" sollen, dann könntest Du z. B. umleiten:
Code:
# iptables -t nat -I OUTPUT 1 -p udp -s 0/0 -d [color=red]8.8.8.8[/color] --dport 53 -j DNAT --to-destination [color=red]192.168.178.1[/color]:53
Code:
# host facebook.com [color=red]8.8.8.8[/color]
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

facebook.com has address [color=red][b]193.169.12.12[/b][/color]
facebook.com has IPv6 address 2a03:2880:2110:df07:face:b00c:0:1
facebook.com mail is handled by 10 msgin.t.facebook.com.
Code:
# tcpdump -vn -i any udp dst port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
10:21:45.346789 IP (tos 0x0, ttl 77, id 44203, offset 0, flags [none], proto UDP (17), length 58)
    192.168.178.21.40708 > [color=red]192.168.178.1[/color].53: 9726+ A? facebook.com. (30)

EDIT 4:

Ich denke dein Wunsch kann mit iptables (string-matching filter) auf deiner FritzBox (Freetz) in Erfüllung gehen. Hier ein Beispiel:
Code:
# iptables -t nat -I OUTPUT 1 -p udp -s 0/0 -d 8.8.8.8 --dport 53 [color=red]-m string --algo bm --string 'boegl'[/color] -j DNAT --to-destination 192.168.178.1:53
Code:
# host max-boegl.de [color=red]8.8.8.8[/color]
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases: 

max-boegl.de has address 213.95.148.226
max-boegl.de mail is handled by 20 gateserver.max-boegl.de.
max-boegl.de mail is handled by 10 gateserver2.max-boegl.de.
Code:
# tcpdump -vn -i any udp dst port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
14:12:05.110774 IP (tos 0x0, ttl 77, id 44189, offset 0, flags [none], proto UDP (17), length 58)
    192.168.178.21.59255 > [color=red]192.168.178.1[/color].53: 17919+ A? max-boegl.de. (30)
14:12:05.114360 IP (tos 0x0, ttl 77, id 44190, offset 0, flags [none], proto UDP (17), length 58)
    192.168.178.21.37306 > 192.168.178.1.53: 8167+ AAAA? max-boegl.de. (30)
14:12:05.133017 IP (tos 0x0, ttl 77, id 44191, offset 0, flags [none], proto UDP (17), length 58)
    192.168.178.21.37565 > 192.168.178.1.53: 23820+ MX? max-boegl.de. (30)
Code:
# iptables -nvx -L OUTPUT -t nat
Chain OUTPUT (policy ACCEPT 3 packets, 174 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       [color=red]3      174[/color] DNAT       udp  --  *      *       0.0.0.0/0            8.8.8.8              udp dpt:53 STRING match  "boegl" ALGO name bm TO 65535 to:192.168.178.1:53
D. h., mit Hilfe der iptables-Regel (DNAT) kannst Du verhindern, dass die Anwendung host, den dns-Server 8.8.8.8 verwendet. Die Anwendung host wird auch getäuscht, denn ihr ist nicht bekannt, dass die Antwort nicht von 8.8.8.8 kommt (... ist auch eine Art von "man-in-the-middle").
 
Zuletzt bearbeitet:
Daher bin ich nun auf der suche nach einer Möglichkeit, folgendes zu überprüfen bzw. anzuzeigen:

Ich gehe auf web.de (via Browser am Rechner), welcher DNS wurde genutzt um web.de für mich aufzulösen?
Ich gehe auf google.de (via Browser am Rechner), welcher DNS wurde genutzt um google.de für mich aufzulösen?
Ich gehe auf IrgendeineGanzBestimmteDomäne.com (via Browser am Rechner), welcher DNS wurde genutzt um IrgendeineGanzBestimmteDomäne.com für mich aufzulösen?

KLASSISCH würde ich das mit nslookup machen, allerdings gibt mir das nur den Router als DNS aus. Wenig hilfreich.

Dazu folgende Vorgehensweise:
- Dafür sorgen, dass der Cache von dnsmasq leer ist. Ein Neustart von dnsmasq oder der Box sollte dafür reichen.
- Auf der Box tcpdump auf Port 53 laufen lassen.
- Von einem Client die gewünschten Hostnamen abfragen. Das geht sowohl mit nslookup als auch mit host OHNE Angabe eines DNS-Servers, es soll ja der Default Server abgefragt bzw. getestet werden. Es geht auch mit jedem anderen Programm, dass einen Hostnamen anfragt (ping, telnet, ...)

Das tcpdump auf der Box sollte dann folgendes anzeigen:
- Anfrage vom Client an den DNS-Server der Box.
- Anfrage vom DNS-Server der Box an den externen DNS-Server.
- Antwort vom externen DNS-Server an die Box.
- Antwort vom DNS-Server der Box an den Client.
Wenn man die Anfrage innerhalb der TTL wiederholt, sollte der DNS-Server der Box diese aus dem Cache beantworten, dann fallen die beiden mittleren Pakete weg. Daher muss vorher der Cache geleert werden.
An den beiden mittleren Paketen siehst Du, welcher DNS-Server angesprochen wird.
Falls der DNS-Server als eigenständiger (recursive resolving) Server läuft, werden üblicherweise mehrere Anfragen/Antworten an externe Server notwendig sein, bis die Antwort an den Client geht.
 
Sorry, hat alles a weng länger gedauert, musste noch nen neues Freetz-Img basteln mit tcpdump. Is nun alles eingetütet, ABER:

Dazu folgende Vorgehensweise:
Wenn man die Anfrage innerhalb der TTL wiederholt, sollte der DNS-Server der Box diese aus dem Cache beantworten, dann fallen die beiden mittleren Pakete weg.

Genau an dieser Stelle hakts. Die mittleren Pakete werden bei mir nie angezeigt! DNSMasq als auch die ganze Box mehrmals neu gestartet, aber

tcpdump -vn -i eth0 udp dst port 53 or udp src port 53

liefert mir (auch bei Domains, die ich definitiv noch nie besucht habe) immer nur sowas:

Code:
22:20:34.723202 IP (tos 0x0, ttl 64, id 38861, offset 0, flags [none], proto UDP (17), length 61)
    192.168.178.66.55821 > 192.168.178.1.53: 10828+ A? qwzfuqfeoqwf.de. (33)
22:20:34.746572 IP (tos 0x0, ttl 64, id 3, offset 0, flags [DF], proto UDP (17), length 93)
    192.168.178.1.53 > 192.168.178.66.55821: 10828 2/0/0 qwzfuqfeoqwf.de. A 80.156.86.78, qwzfuqfeoqwf.de. A 62.157.140.133 (65)

80.156.86.78 sagt mir zwar, dass ich am Ende bei der "Vertippt-Seite" des rosa Riesens lande, was den Verdacht nahe legt, dass der rosa Riesen DNS verwendet wurde, aber SEHEN kann ich es nicht.

Irgendwo habe ich noch nen dicken Knoten...

Edit:

Ist der Konten vielleicht hierin begründet?

tcpdump -vn -i eth0 udp dst port 53 or udp src port 53

"any" ging nicht, deswegen mal eth0 angesetzt. Aber bei näherer Überlegung, is nun klar, warum er mir nur den lokalen DNS ausspuckt :). Welche Schnittstelle muss ich denn auf der Fritzbox abhören?

Wie gesagt, "-i any" geht nicht, da kommt:

tcpdump: packet printing is not supported for link type LINUX_SLL: use -w

...was dann gar nichts mehr anzeigt :(


Edit 2:

RTFM bevor man blöd fragt ;). "-w" schreibt die Info lediglich in eine Datei. Leider ist das Ergebnis ebenso aussagelos:

Code:
reading from file any, link-type EN10MB (Ethernet)
22:55:08.673338 IP 192.168.178.66.48837 > fritz.box.domain: 7162+ A? testseite.de. (30)
22:55:09.247988 IP fritz.box.domain > 192.168.178.66.48837: 7162 0/1/0 (99)
22:55:09.248808 IP 192.168.178.66.45476 > fritz.box.domain: 46815+ A? testseite.de.fritz.box. (40)
22:55:10.137932 IP fritz.box.domain > 192.168.178.66.45476: 46815 NXDomain 0/1/0 (115)
22:55:23.631382 IP 192.168.178.66.54196 > fritz.box.domain: 29771+ A? annabel.de. (28)
22:55:24.087160 IP fritz.box.domain > 192.168.178.66.54196: 29771 1/0/0 A 80.67.28.203 (44)
 
Zuletzt bearbeitet:
tcpdump -vn -i eth0 udp dst port 53 or udp src port 53
BTW: Warum benutzt Du nur eth0 auf deiner Box? Funktioniert das nicht mit "any"? Evtl. gehen dns-Daten der Box, auch durch andere Interfaces als eth0.
 
"any" ging nicht, deswegen mal eth0 angesetzt. Aber bei näherer Überlegung, is nun klar, warum er mir nur den lokalen DNS ausspuckt :). Welche Schnittstelle muss ich denn auf der Fritzbox abhören?

Wie gesagt, "-i any" geht nicht, da kommt:
Warum EDIT wenn unter deinem Beitrag schon ein weiterer Beitrag ist? Versuch mal mit dem Interface lan. Siehe auch die Ausgabe für "ifconfig -a" auf deiner Box.

EDIT:

Note that captures on the ``any'' device will not be done in promiscuous mode.
 
Zuletzt bearbeitet:
Sorry, hatte deinen Post noch nicht gesehen (vergessen, Seite neu zu laden)

Hab jetzt folgendes probiert (tcpdump will auch erst mal verstanden werden ;) ):

tcpdump -vn -w log -i lan udp dst port 53 or udp src port 53

...dann


...mit folgendem Ergenbnis:

reading from file log, link-type EN10MB (Ethernet)
23:12:00.028768 IP 192.168.178.66.36469 > fritz.box.domain: 14016+ A? oder.de. (25)
23:12:03.170339 IP fritz.box.domain > 192.168.178.66.36469: 14016 1/0/0 A 64.124.14.63 (41)

Dann noch ein Versuch mit "any":

tcpdump -vn -w log -i any udp dst port 53 or udp src port 53

Dann wieder


...mit dem definitiv nicht erwarteten Ergebnis:

reading from file log, link-type LINUX_SLL (Linux cooked)
tcpdump: packet printing is not supported for link type LINUX_SLL: use -w

tcpdump will mich echt ärgern...

EDIT:

https://dev.openwrt.org/ticket/6236

Ich benutze tcpdump mini (aus Platzgünden), kann hier der Hund begraben liegen?

As a workaround, I have found that listening to the eth0.1 interface (or whatever happens to be what you use PPPoE over) works instead.

However, this is not a full workaround as filters (e.g. udp port 53) don't work because tcpdump sees the data when wrapped in PPPoE packets, not unwrapped as with ppp0.
:(
 
Zuletzt bearbeitet:
tcpdump will mich echt ärgern...

EDIT:

https://dev.openwrt.org/ticket/6236

Ich benutze tcpdump mini (aus Platzgünden), kann hier der Hund begraben liegen?
:(
Es könnte auch am mini liegen, denn auf meiner Box funktioniert tcpdump ohne Probleme. Z. B.:
Code:
root@fritz:/var/mod/root# nslookup loc.gov
Server:    217.0.43.145
Address 1: 217.0.43.145 ul-nxr-a01.isp.t-ipnet.de

Name:      loc.gov
Address 1: 140.147.249.7 rs7.loc.gov
Code:
root@fritz:/var/mod/root# tcpdump -vn -i any udp dst port 53 or udp src port 53
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
23:28:36.161139 IP (tos 0x0, ttl 64, id 15491, offset 0, flags [DF], proto UDP (17), length 71)
    169.254.2.1.2104 > 217.0.43.145.53: 2+ PTR? 145.43.0.217.in-addr.arpa. (43)
23:28:36.205000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 110)
    217.0.43.145.53 > 169.254.2.1.2104: 2 1/0/0 145.43.0.217.in-addr.arpa. PTR ul-nxr-a01.isp.t-ipnet.de. (82)
23:28:36.230097 IP (tos 0x0, ttl 64, id 15498, offset 0, flags [DF], proto UDP (17), length 53)
    169.254.2.1.2104 > 217.0.43.145.53: 3+ AAAA? loc.gov. (25)
23:28:36.365000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 103)
    217.0.43.145.53 > 169.254.2.1.2104: 3 0/1/0 (75)
23:28:36.895000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 103)
    217.0.43.145.53 > 169.254.2.1.2104: 7 0/1/0 (75)
23:28:36.912081 IP (tos 0x0, ttl 64, id 15566, offset 0, flags [DF], proto UDP (17), length 53)
    169.254.2.1.2104 > 192.168.180.1.53: 8+ AAAA? loc.gov. (25)
23:28:37.055000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 103)
    192.168.180.1.53 > 169.254.2.1.2104: 8 0/1/0 (75)
23:28:37.068075 IP (tos 0x0, ttl 64, id 15582, offset 0, flags [DF], proto UDP (17), length 53)
    169.254.2.1.2104 > 217.0.43.145.53: 9+ A? loc.gov. (25)
23:28:37.205000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 69)
    217.0.43.145.53 > 169.254.2.1.2104: 9 1/0/0 loc.gov. A 140.147.249.7 (41)
23:28:37.226991 IP (tos 0x0, ttl 64, id 15598, offset 0, flags [DF], proto UDP (17), length 72)
    169.254.2.1.2104 > 217.0.43.145.53: 10+ PTR? 7.249.147.140.in-addr.arpa. (44)
23:28:38.995000 IP (tos 0x0, ttl 59, id 0, offset 0, flags [DF], proto UDP (17), length 97)
    217.0.43.145.53 > 169.254.2.1.2104: 10 1/0/0 7.249.147.140.in-addr.arpa. PTR rs7.loc.gov. (69)
 
Ist nen bisschen wie Sherlock Holmes spielen, nur frustrierender, aber danke, dass du noch mitspielst.

Ich werde jetzt mal versuchen, ein neues IMG zu basteln, dieses mal nicht mit der "Mini"-Version. Mir schwant jedoch schon, dass das aus Platzgründen nichts wird. Müsste also Pakete auf nen externes Medium schieben...oh mann. Ich mach mich mal an die Arbeit und melde mich wieder.

Achja, nochwas, wie hast du nslookup auf die Fritzbos bekommen? Muss man händisch machen, gibt es kein Paket für, oder?
 
Achja, nochwas, wie hast du nslookup auf die Fritzbos bekommen? Muss man händisch machen, gibt es kein Paket für, oder?
Das ist in der busybox:
Code:
root@fritz:/var/mod/root# busybox | grep -i nslookup
        more, mount, mv, nc, netstat, nice, nohup, [color=red]nslookup[/color], od, passwd, patch, pidof, ping, pivot_root, poweroff, printf, ps, pscan, pwd,
Für dig gäbe es ein extra Paket.
 
Dacht ichs mir, 80,25 kbyte muss ich noch einsparen :mad:

Wg. busybox: In "meiner" Version ist kein nslookup :(

Edit:

Da brat mir doch einer nen Storch! Das Problem war tatsächlich diese "mini"-Version von tcpdump. Etz flutscht die Sache! *JUBEL*

Eine letzte Frage, bevor ich mich in tiefster Dankbarkeit zurückziehe (und nen Bier auf mach ;)):

Code:
00:23:44.305832 IP (tos 0x0, ttl 64, id 38879, offset 0, flags [none], proto UDP (17), length 52)
    192.168.178.66.41720 > 192.168.178.1.53: 49826+ A? web.de. (24)
00:23:44.305832 IP (tos 0x0, ttl 64, id 38879, offset 0, flags [none], proto UDP (17), length 52)
    192.168.178.66.41720 > 192.168.178.1.53: 49826+ A? web.de. (24)
00:23:45.844344 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 52)
    192.168.178.1.23714 > 192.168.180.1.53: 22794+ A? web.de. (24)
00:23:45.844560 IP (tos 0x0, ttl 64, id 1, offset 0, flags [DF], proto UDP (17), length 52)
    192.168.178.1.23714 > 192.168.180.2.53: 22794+ A? web.de. (24)
00:23:47.024609 IP (tos 0x0, ttl 60, id 0, offset 0, flags [DF], proto UDP (17), length 84)
    192.168.180.2.53 > 192.168.178.1.23714: 22794 2/0/0 web.de. A 212.227.222.9, web.de. A 212.227.222.8 (56)
00:23:47.034609 IP (tos 0x0, ttl 60, id 0, offset 0, flags [DF], proto UDP (17), length 84)
    192.168.180.1.53 > 192.168.178.1.23714: 22794 2/0/0 web.de. A 212.227.222.9, web.de. A 212.227.222.8 (56)
00:23:47.049593 IP (tos 0x0, ttl 64, id 63, offset 0, flags [DF], proto UDP (17), length 84)
    192.168.178.1.53 > 192.168.178.66.41720: 49826 2/0/0 web.de. A 212.227.222.9, web.de. A 212.227.222.8 (56)
00:23:47.049691 IP (tos 0x0, ttl 64, id 63, offset 0, flags [DF], proto UDP (17), length 84)
    192.168.178.1.53 > 192.168.178.66.41720: 49826 2/0/0 web.de. A 212.227.222.9, web.de. A 212.227.222.8 (56)
00:24:26.155302 IP (tos 0x0, ttl 64, id 17754, offset 0, flags [DF], proto UDP (17), length 60)

Wo versteckt sich hier der DNS von der Telekom? 192.168.180.1 und 192.168.180.2 sind ja lokale DNS der FB, oder?
 
Zuletzt bearbeitet:
Wo versteckt sich hier der DNS von der Telekom?
Kann es sein, dass "web.de" schon im dns-cache deiner FritzBox war, zum Zeitpunkt deiner Abfrage?
192.168.180.1 und 192.168.180.2 sind ja lokale DNS der FB, oder?
Siehe u. a. auch die Beiträge in diesem Ticket: http://freetz.org/ticket/925
BTW: Beachte den Unterschied zwischen interner (... für Anfragen von Anwendunden auf der Box) und externer (... für Anfragen von Clients im W/LAN der Box) Namensauflösung mit der FritzBox. Siehe auch die Unterschiede im Inhalt der diversen *resolv*-Dateien, auf der FritzBox.
 

Statistik des Forums

Themen
246,750
Beiträge
2,256,839
Mitglieder
374,775
Neuestes Mitglied
bchrist
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.