[Gelöst] Bind DNS und Outlook

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
s180
Beiträge: 8
Registriert: 28.10.2016 07:22:58

[Gelöst] Bind DNS und Outlook

Beitrag von s180 » 03.11.2016 09:10:07

Hallo,
ich hab ein ziemlich merkwürdiges Problem mit meinem Bind DNS Server.
Der DNS Server funktioniert wunderbar und löst auch alles auf, cached es. Intern sowie Extern.
Nur eine einzige Seite kann nicht aufgerufen werden:
https://outlook.live.com/owa/?bO=1

https://outlook.live.com kann aber aufgelöst werden

Code: Alles auswählen

nslookup https://outlook.live.com
Server:		192.168.xx.1
Address:	192.168.xx.1#53

Non-authoritative answer:
https://outlook.live.com	canonical name = a-0010.a-msedge.net.
Name:	a-0010.a-msedge.net
Address: 204.79.197.212
Im Chrome steht dann folgendes:

Code: Alles auswählen

 https://outlook.live.com/:1 GET https://outlook.live.com/ net::ERR_NAME_NOT_RESOLVED
Meine named.conf.options sieht durchs testen vll etwas durcheinander aus:

Code: Alles auswählen

include "/etc/bind/bind.keys";
acl "goodclients" {
    192.168.xa.0/20;
    192.168.xx.0/20;
    192.168.xb.0/20;
    192.168.xc.0/20;
    192.168.xd.0/20;
    192.168.xe.0/20;
    192.168.xx.1;
    192.168.xb.1;
    localnets;
    localhost;
};
acl blacklist {
        141.xx.yy.zza/2;
        141.xx.yy.zzb/2;
        141.xx.yy.zzc/2;
};
    options {
        directory "/var/cache/bind";
        key-directory "/etc/bind/keys";

        //=====s180 start
          //listen-on { any;};
        listen-on { "goodclients"; };
          //listen-on{ goodclients; !blacklist; };

          //blackhole { blacklist; !goodclients; };
        notify no;
        forwarders {
                8.8.8.8;
        };
        forward first;

           //allow-query { any; };
        allow-query { "goodclients"; };
          //allow-query { goodclients; !blacklist; };

          //allow-transfer { none; };
        allow-transfer { "goodclients"; };
          //allow-transfer { goodclients; !blacklist; };

          //allow-recursion { any; };
        allow-recursion { "goodclients"; };
          //allow-recursion { goodclients; !blacklist; };
        recursion yes;

        allow-query-cache { "goodclients"; };
          //allow-query-cache { goodclients; !blacklist; };

        listen-on-v6 { none; };
        //=====s180 ende

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside auto;
        auth-nxdomain no;    # conform to RFC1035
};

logging {
        channel security_file {
                file "/var/log/named/security.log" versions 3 size 30m;
                severity dynamic;
                print-time yes;
        };
        category security {
                security_file;
        };
};
Stell ich "forward first;" auf "forward only;" und kommentiere alle allow Zeilen aus, dann geht es..
Wenn ich bind neu starte, rndc flush mache und den lokalen Cache lösche geht es manchmal 1-2 mal und hört dann auf, liegt sicher an der Verzögerung.
Aber das ist nicht Sinn der Sache.
Vielleicht hat ja irgendjemand eine Idee.

Mit freundlichen Grüßen
S180
Zuletzt geändert von s180 am 04.11.2016 09:03:03, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Bind DNS und Outlook

Beitrag von MSfree » 03.11.2016 09:24:03

s180 hat geschrieben:https://outlook.live.com kann aber aufgelöst werden

Code: Alles auswählen

nslookup https://outlook.live.com...
Öhm, falsch.

bitte bei nslookup nicht https:// angeben, sondern nur den reinen Hostnamen:

Code: Alles auswählen

nslookup outlook.live.com

s180
Beiträge: 8
Registriert: 28.10.2016 07:22:58

Re: Bind DNS und Outlook

Beitrag von s180 » 03.11.2016 09:33:44

Dieses dumme copy&paste und wenn man nicht drauf achtet.

Code: Alles auswählen

;; Truncated, retrying in TCP mode.
Server:		192.168.xx.1
Address:	192.168.xx.1#53

** server can't find outlook.live.com: REFUSED
Dann gibts auch eine Fehlermeldung.
Trotzdem nur bei dieser Sub-Domain.
Stell ich den Rechner direkt auf 8.8.8.8 geht es auch, es liegt also definitiv an meinem Bind Server.

Code: Alles auswählen

bash-3.2$ nslookup live.com
Server:		192.168.xx.1
Address:	192.168.xx.1#53

Non-authoritative answer:
Name:	live.com
Address: 65.55.206.154

Hier noch der dig trace

Code: Alles auswählen

 
dig outlook.live.com +trace

; <<>> DiG 9.8.3-P1 <<>> outlook.live.com +trace
;; global options: +cmd
.			794	IN	NS	g.root-servers.net.
.			794	IN	NS	e.root-servers.net.
.			794	IN	NS	c.root-servers.net.
.			794	IN	NS	d.root-servers.net.
.			794	IN	NS	l.root-servers.net.
.			794	IN	NS	a.root-servers.net.
.			794	IN	NS	j.root-servers.net.
.			794	IN	NS	b.root-servers.net.
.			794	IN	NS	f.root-servers.net.
.			794	IN	NS	m.root-servers.net.
.			794	IN	NS	i.root-servers.net.
.			794	IN	NS	h.root-servers.net.
.			794	IN	NS	k.root-servers.net.
;; Received 228 bytes from 192.168.xx.1#53(192.168.xx.1) in 684 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
;; Received 494 bytes from 198.97.190.53#53(198.97.190.53) in 818 ms

live.com.		172800	IN	NS	ns3.msft.net.
live.com.		172800	IN	NS	ns1.msft.net.
live.com.		172800	IN	NS	ns2.msft.net.
live.com.		172800	IN	NS	ns4.msft.net.
;; Received 290 bytes from 192.12.94.30#53(192.12.94.30) in 258 ms

outlook.live.com.	3600	IN	CNAME	edge-live.outlook.office.com.
edge-live.outlook.office.com. 300 IN	CNAME	outlook-live-com.a-0010.a-msedge.net.
;; Received 123 bytes from 208.76.45.53#53(208.76.45.53) in 48 ms



dig outlook.live.com

;; Truncated, retrying in TCP mode.

; <<>> DiG 9.8.3-P1 <<>> outlook.live.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 39578
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;outlook.live.com.		IN	A

;; Query time: 0 msec
;; SERVER: 192.168.xx.1#53(192.168.xx.1)
;; WHEN: Thu Nov  3 09:39:37 2016
;; MSG SIZE  rcvd: 34

Ich glaube, dass meine iptables den Port blocken wenn er über TCP geht.
Interessant, dass es eine der wenigen Seiten ist, wo das UDP zu lang ist und abgeschnitten wird.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Bind DNS und Outlook

Beitrag von MSfree » 03.11.2016 10:34:34

s180 hat geschrieben:Ich glaube, dass meine iptables den Port blocken wenn er über TCP geht.
Es sollte ja kein Porblem sein, Port 53/TCP zusätzlich zu Port 53/UDP zuzulassen. :wink:
Interessant, dass es eine der wenigen Seiten ist, wo das UDP zu lang ist und abgeschnitten wird.
Da kommt eine längere Liste mit Hostnamen zurück. Wahrscheinlich paßt dann dann nicht mehr in ein UDP-Paket. Eine Truncation-Meldung bekomme ich bei mir allerdings nicht.

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Bind DNS und Outlook

Beitrag von dufty2 » 03.11.2016 13:56:24

s180 hat geschrieben: Ich glaube, dass meine iptables den Port blocken wenn er über TCP geht.
Interessant, dass es eine der wenigen Seiten ist, wo das UDP zu lang ist und abgeschnitten wird.
Eine Alternative wäre ja noch, die IP(s) in /etc/hosts einzutragen, wenn Du TCP nicht freischalten willst.

s180
Beiträge: 8
Registriert: 28.10.2016 07:22:58

Re: Bind DNS und Outlook

Beitrag von s180 » 03.11.2016 14:02:25

Mh ist gar nicht so einfach, wenn das Linux Gateway auch DNS, DHCP und Firewall ist.
Ich versuch das mal aufzudrösseln:

Code: Alles auswählen

Host A                             --> internes Router Interface       --> iptables (PREROUTING, INPUT)      --> bind
bind                               --> iptables (OUTPUT, POSTROUTING)  --> externes Router Interface  -- :53 --> ext. DNS Server (8.8.8.8)
ext. DNS Server (8.8.8.8)   -- :53 --> externes Router Interface       --> iptables (PREROUTING, INPUT)      --> bind
bind                               --> iptables (OUTPUT, POSTROUTING)  --> internes Router Interface         --> Host A
Ich sehe auch, dass der Verkehr durch die OUTPUT und INPUT Regeln läuft:

Code: Alles auswählen

Chain INPUT (policy ACCEPT 259 packets, 32714 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       24  1440 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53

Chain OUTPUT (policy ACCEPT 220 packets, 73364 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       16  1008 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp spt:53
Probleme hab ich nur etwas mit dem Prerouting denke ich, dass krieg ich im Kopf nicht hin gerade, was extern intern ist und wo was hin geht.
sudo iptables -t nat -A PREROUTING -p tcp -d Externes Router Interface IP --dport 53 -j DNAT --to Internes Router Interface IP:53

Vorhin hatte es komischerweise einmal kurz funktioniert und ohne etwas zu ändern danach gleich wieder nicht.

Code: Alles auswählen

nslookup outlook.live.com 
Server:		192.168.xx.1
Address:	192.168.xx.1#53

Non-authoritative answer:
outlook.live.com	canonical name = edge-live.outlook.office.com.
edge-live.outlook.office.com	canonical name = outlook-live-com.a-0010.a-msedge.net.
outlook-live-com.a-0010.a-msedge.net	canonical name = l-0002.l-msedge.net.
Name:	l-0002.l-msedge.net
Address: 13.107.42.11
Kann ich nicht einfach den UDP Buffer erhöhen?
Das folgende hat nicht geholfen.

Code: Alles auswählen

    options {
        edns-udp-size 4096;
        max-udp-size 4096;

Edit:
Ich hatte gerade die Regel
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
erneut eingefügt und dann ging es, bis ich den Cache (rndc flush) geleert habe. Jetzt geht es wieder nicht, selbst wenn ich das gleiche mache wie eben.
Irgendwas scheint da noch zusätzlich Probleme zu machen. Gibt es vielleicht Logs, die mir irgendwie Details geben könnten?

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Bind DNS und Outlook

Beitrag von MSfree » 03.11.2016 16:16:45

s180 hat geschrieben:Gibt es vielleicht Logs, die mir irgendwie Details geben könnten?
Jein. Normalerweise wird bind nicht im Verbose- oder Debugmodus gestartet.

Hilft dir das weiter?
http://www.zytrax.com/books/dns/ch7/logging.html

s180
Beiträge: 8
Registriert: 28.10.2016 07:22:58

Re: Bind DNS und Outlook

Beitrag von s180 » 04.11.2016 09:02:48

Danke, hatte es probiert, aber sinnvoll waren diese Logs nicht. Da sah alles ok aus.
Die Firewall war übrigens auch ok, das Problem lag ganz woanders.

Der TCP Port :53 wurde von einer alten dnsmasq installation blockiert. Ich hab das durch Zufall gesehen, als ich geguckt hab ob überhaupt auf dem Port gehört wird.
Ich hab sonst immer netstat -Wa genutzt und da sah natürlich alles gut aus. Hab dann in einen der hunderten Beiträge sudo netstat -antup | grep ":53" gefunden und dann den dnsmasq gesehen.
Den muss mein Vorgänger mal testweise drauf gemacht haben.

Hab dnsmasq deinstalliert und schon sahen die Fehler anders aus:

Code: Alles auswählen

nslookup outlook.live.com 
;; Truncated, retrying in TCP mode.
;; Connection to 192.168.xx.1#53(192.168.xx.1) for outlook.live.com failed: connection refused.
Dann musste ich noch das listen-on auf
listen-on port 53 { any;};
setzen und bind neu starten und dann geht es auch mit DNSSEC. Wunderbar.

Danke für die Gedankenstütze, manchmal sieht man das eigentliche Problem nicht.

Antworten