OS X non richiede correttamente i nomi DNS locali

4

Nessuno dei nostri computer client OS X sul nostro posto di lavoro ha interrogato i nomi DNS locali dei nostri server dopo la connessione a VPN. Per altri computer client, inclusi Linux e Windows, funziona correttamente.

Solo alcuni contesti: i nostri server erano accessibili pubblicamente prima. Da quando abbiamo iniziato a proteggere tutto, procediamo a metterli dietro un firewall e sono accessibili solo tramite VPN. Poiché i nostri sviluppatori sono abituati ad accedere ai server tramite fqdn, abbiamo aggiunto un server DNS locale. Quindi, quando si collegano alla nostra VPN, le impostazioni DHCP + DNS vengono automaticamente passate alle loro macchine. Due IP server DNS, uno per la risoluzione locale e uno per la risoluzione pubblica. Sfortunatamente, tutti i nostri utenti di OS X stanno riscontrando questi problemi. Le macchine Linux e Windows non lo sono.

Server: riker.example.com

  • 120.x.x.x (Public IP address)
  • 10.20.1.28 (Local IP address)

Impostazioni DNS passate ai nostri utenti:

  • 10.20.1.3 (for local)
  • 8.8.8.8 (for public)

Abbiamo già controllato:

  • Impostazioni del server DNS del nostro dispositivo Fortigate - siamo sicuri al 100% che sia corretto perché i nostri client Linux e Windows funzionano.
  • Criteri firewall - ancora, sicuro al 100% perché funziona correttamente con Linux e Windows
  • Controlla i file /etc/resolv.conf delle macchine OS X - correggi le impostazioni DNS fornite dal server DNS [modifica 6 giugno 2016]
  • Cache DNS svuotata usando questo: sudo killall -HUP mDNSResponder
  • Disattivato il firewall delle macchine OS X
  • MDNSresponder riavviato

Dopo tutti questi passaggi di risoluzione dei problemi, non funziona ancora.

Se sono connesso a VPN, risolve ancora l'indirizzo IP pubblico e non l'indirizzo IP locale:

heineken:~ heineken$ ping riker.example.com
PING riker.example.com (120.x.x.x): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- riker.example.com ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
heineken:~ heineken$

Ma se faccio il ping dell'indirizzo locale:

heineken:~ heineken$ ping 10.20.1.28
PING 10.20.1.28 (10.20.1.28): 56 data bytes
64 bytes from 10.20.1.28: icmp_seq=0 ttl=63 time=62.714 ms
64 bytes from 10.20.1.28: icmp_seq=1 ttl=63 time=83.162 ms
^C
--- 10.20.1.28 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 62.714/72.938/83.162/10.224 ms

Verifica di dig e nslookup (ancora connesso a VPN):

heineken:~ heineken$ dig @10.20.1.3 riker.example.com

; <<>> DiG 9.8.3-P1 <<>> @10.20.1.3 riker.example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64601
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;riker.example.come. IN A

;; ANSWER SECTION:
riker.example.com. 3600 IN A 10.20.1.28

;; Query time: 58 msec
;; SERVER: 10.20.1.3#53(10.20.1.3)
;; WHEN: Fri Jun 10 11:33:00 2016
;; MSG SIZE  rcvd: 52

heineken:~ heineken$ nslookup riker.example.com
Server: 10.20.1.3
Address: 10.20.1.3#53

Non-authoritative answer:
Name: riker.example.com
Address: 10.20.1.28

Contenuto di /etc/resolv.conf della macchina locale (ancora connesso alla VPN):

heineken:~ heineken$ cat /etc/resolv.conf
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
nameserver 10.20.1.3
nameserver 8.8.8.8

Come puoi vedere sopra, eseguendo il ping sul dominio, l'indirizzo IP pubblico è ancora assegnato e non l'indirizzo IP locale. Ma con dig and nslookup, sta già fornendo l'indirizzo IP locale.

Poche altre cose che ho fatto:

  • Ho provato le soluzioni presentate da qui: DNS non risolvibile su Mac OS X - ancora non ha funzionato per noi.
  • Ho installato una macchina virtuale CentOS - all'interno di una macchina OS X e l'ho fatta per avere una connessione bridge. Stava risolvendo correttamente il dominio localmente.
    • Ciò significa che Forticlient può essere eliminato dall'equazione poiché OS X e CentOS VM condividono solo lo stesso adattatore.
  • Supporto L3 ricercato da Fortigate
    • Abbiamo fatto un sacco di tcpdump sul dispositivo Fortigate per controllare il traffico.
      • Abbiamo scoperto che quando un computer Linux o Windows esegue il ping di un dominio, cerca prima la richiesta DNS dal dispositivo Fortigate.
      • Sfortunatamente per la macchina OS X, non esegue alcuna richiesta DNS dal dispositivo Fortigate. Quindi, ciò che accade è che risolve ancora il dominio pubblico.
    • Mi è stato consigliato da loro che il problema è localizzato sui dispositivi OS X perché, anche dopo aver svuotato la cache, non esegue alcuna query DNS durante il ping di riker.example.com. Quindi non possono più aiutarci.

Questo è stato testato su: Versioni di OS X: Yosemite 10.10.4, El Capitan 10.11.5 Versione Firmware di Fortigate 100D: v5.2.4, build688 (GA) Versione per Forticlient: 5.4.0.493

Qualche consiglio?

    
posta Kenan Virtucio 10.06.2016 - 06:42
fonte

1 risposta

1

Penso che la chiave del tuo problema potrebbe essere che il tuo DNS interno è "non-autorevole" (vedi l'output di nslookup), suggerito nella risposta a questa domanda: DNS risolve l'IP esterno dei server invece dell'IP interno

Se esegui nslookup -type = soa riker.example.com è il server di "origine" il tuo server DNS locale o pubblico?

    
risposta data 25.05.2017 - 05:40
fonte

Leggi altre domande sui tag