Android + RPi3 + OpenVPN + Unbound = Keine DNS-Auflösung

stna1981

Commander
Registriert
März 2007
Beiträge
2.487
Hallo zusammen,

ich musste vor ein paar Tagen meinen RPi3 neu aufsetzen und obwohl ich alles genau so gemacht habe wie zuvor, funktioniert seitdem die DNS-Auflösung nicht mehr, vielleicht ein aktualisiertes Paket, das Änderungen mitbringt? Ausgangslage:

- RPi3 mit Raspbian Stretch Lite, OpenVPN und Unbound
- Galaxy S7 mit OpenVPN for Android / PC mit Windows 10

Was geht:
- Wenn ich die IP des RPis in den LAN-Einstellungen von Windows 10 eintrage, funktioniert die DNS-Auflösung einwandfrei, Unbound läuft also prinzipiell erstmal
- Wenn ich mich per Handy ins VPN einwähle, kann ich lokale IP-Adressen ansprechen, aber die DNS-Auflösung funktioniert nicht. Unbound kann also keine IPs aus DNS-Anfragen ans Handy schicken.

Ich hab versucht über die Logfiles was rauszufinden, war aber nur mäßig erfolgreich. Ich weiß auch nicht, obs dan OpenVPN oder Unbound liegt. Hier mal die Config Files von OpenVPN und Unbound:

Code:
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh.pem
crl-verify crl.pem

topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 192.168.178.20"
client-to-client
keepalive 10 120
sndbuf 0
rcvbuf 0

tls-auth ta.key 0
cipher AES-256-CBC
auth SHA512
auth-nocache

comp-lzo
max-clients 3

user nobody
group nogroup

persist-key
persist-tun

status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3

Code:
include: "/etc/unbound/unbound.conf.d/*.conf"

server:
    logfile: "/var/log/unbound.log"
    use-syslog: no
    verbosity: 1

    interface: 0.0.0.0
    interface: ::0

    port: 53
    do-ip4: yes
    do-ip6: yes
    do-udp: yes
    do-tcp: yes

    access-control: 0.0.0.0/0 refuse
    access-control: 127.0.0.0/8 allow
    access-control: 10.8.0.0/24 allow
    access-control: 192.168.178.0/24 allow

    root-hints: "/etc/unbound/root.hints"

    hide-identity: yes
    hide-version: yes
    harden-glue: yes
    harden-dnssec-stripped: yes

    use-caps-for-id: yes
    cache-min-ttl: 3600
    cache-max-ttl: 86400
    prefetch: yes
    num-threads: 2
    msg-cache-slabs: 8
    rrset-cache-slabs: 8
    infra-cache-slabs: 8
    key-cache-slabs: 8
    rrset-cache-size: 50m
    msg-cache-size: 25m
    so-rcvbuf: 1m

    private-address: 10.8.0.0/24
    private-address: 192.168.178.0/24

    unwanted-reply-threshold: 10000
    do-not-query-localhost: no
    val-clean-additional: yes
    private-domain: "my."
    local-zone: "my." static

remote-control:
    control-enable: no

    forward-zone:
        name: "."
        forward-addr: 8.8.8.8
        forward-addr: 8.8.4.4

Kann jemand helfen?
 
Ja klar, das ist die IP des Raspi. Ich hab's auch testweise mal mit der 10.8.0.1 versucht, ohne Erfolg.
 
wie sieht es in deiner /etc/hosts aus?
und wie ist der Hostname deines Pi?
Ergänzung ()

1kbyte schrieb:
wie sieht es in deiner /etc/hosts aus?
und wie ist der Hostname deines Pi?

Du kannst mal in /etc/hosts folgendes eintragen:
127.0.0.1 localhost <Hostname des Pi>
::1 localhost <Hostname des Pi>
192.168.178.20 <Hostname des Pi> <<-- wichtig unbound muss sich selbst auflösen können.
 
Zuletzt bearbeitet:
Linuxfreakgraz schrieb:
Wie viele Geräte greifen auf den Raspberry zu?
Aktuell 2, ein PC und ein Smartphone...

1kbyte schrieb:
wie sieht es in deiner /etc/hosts aus?
und wie ist der Hostname deines Pi?
Der Name müsste raspberrypi sein. Die hosts sieht wie folgt aus:
Code:
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi

1kbyte schrieb:
Du kannst mal in /etc/hosts folgendes eintragen:
Hat leider nicht geholfen. Das Problem scheint auch ein minimal anderes zu sein (siehe unten).

Y-Chromosome schrieb:
schau doch mal was das Log auf dem Server sagt, wenn Dein Client verbindet ...
Normale DNS-Anfragen vom Smartphone werden offenbar korrekt beantwortet. Nur Anfragen, die sich auf die local-zone "my." beziehehen, laufen ins leere. Aber nur am Smartphone, nicht am PC. Das verstehe ich absolut nicht. Diese Anfragen tauchen auch nicht im log auf, vermutlich weil der 1.1.1.1 nicht befragt wird, sondern Unbound die Route statisch hinterlegt hat.

Aber wieso geht es am PC und nicht am Smartphone?
Ergänzung ()

Die local-zone sieht z. B. wie folgt aus (Auszug):

Code:
    # Configure a local zone
    local-zone: "my." static

    # Configure local data which is served in reply to queries for it
    local-data: "my.router     IN  A   192.168.178.1"
 
Code:
router.my.        IN    A    192.168.178.1

Ich denke die Reihenfolge in der config ist falsch herum.
Laut folgender Antwort muss du my und router tauschen
Bash:
>> host -vvvvv google.de

Trying "google.de"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64997
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.            IN    A

;; ANSWER SECTION:
google.de.        11    IN    A    172.217.22.99

Received 43 bytes from 192.168.2.116#53 in 3 ms
Trying "google.de"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62856
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.            IN    AAAA

;; ANSWER SECTION:
google.de.        0    IN    AAAA    2a00:1450:4001:825::2003

Received 55 bytes from 192.168.2.116#53 in 16 ms
Trying "google.de"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9487
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.            IN    MX

;; ANSWER SECTION:
google.de.        577    IN    MX    20 alt1.aspmx.l.google.com.
google.de.        577    IN    MX    30 alt2.aspmx.l.google.com.
google.de.        577    IN    MX    40 alt3.aspmx.l.google.com.
google.de.        577    IN    MX    50 alt4.aspmx.l.google.com.
google.de.        577    IN    MX    10 aspmx.l.google.com.

Received 145 bytes from 192.168.2.116#53 in 16 ms
 
Zuletzt bearbeitet: (fehlte noch was)
Hab ich mal ausprobiert, hat aber nix gebracht. Vom Desktop aus gehts immer noch ohne Probleme, vom Handy/VPN aus immer noch nicht. Normale DNS-Anfragen kommen am RPi3 vom Handy zwar an, die Antwort darauf aber scheinbar nicht am Handy. Scheint ein Routing-Problem zu sein, sprich vom RPi kommen keine Pakete im VPN an. Muss ich da nicht noch ne statische Route im Router hinterlegen oder sowas?
 
Du könntest im Router eine statische Route für das DHCP Netz anlegen, was dein OpenVPN austeilt.
Das könnte das Problem vielleicht lösen. Dann weiß der DHCP von deinem Router nämlich wohin er das DHCP Päckchen schicken muss.
 
Naja lokale .my Adressen sind doch aus dem DHCP Netz deines Routers, oder? Dann muss er doch wissen, an wen die Anfragen für die 10er Adressen wieder zurückgehen
 
Zurück
Oben