Newsgroup: it.comp.os.linux.sys
Titolo: Ping lento sul nome, veloce sull'ip

Ciao a tutti,
sono una Debian wheezy con bind9; la macchina è in VPN con una LAN
in Monaco, a Monaco ci sono due DNS server che risolvono i nomi di alcune 
macchine collocate in quella LAN.
Nella mia configurazione di bind ho un blocco fatto come questo:
 
zone "
panzer.de
" {
         type forward;
         forwarders { 192.168.100.100; 192.168.100.101; };
};
 
I due indirizzi IP qui sopra sono ovviamente i due server DNS in Monaco.
Se chiedo di risolvere il nome di una macchina collocata in Monaco, il mio
bind risponde bene:
 
root@wheezy:~$ dig 
passchange.panzer.de
 
 
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> 
passchange.panzer.de
 
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8995
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 3
 
;; QUESTION SECTION:
;
passchange.panzer.de
.            IN      A
 
;; ANSWER SECTION:
passchange.panzer.de
.     3600    IN      A       192.168.15.105
 
<zac>
 
;; Query time: 76 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Sep 22 18:19:32 2015
;; MSG SIZE  rcvd: 311
 
Questi risultati sopra, alla prima richiesta, alla seconda cambia il
Query time che diventa: 0 msec
Ciò mi fa presupporre che la cache di bind funzioni.
Ora, se faccio un ping diretto all'ip di quella macchina:
 
root@wheezy:~$ ping -c10 192.168.15.105
PING 192.168.15.105 (192.168.15.105) 56(84) bytes of data.
64 bytes from 
192.168.15.105
: icmp_req=1 ttl=128 time=74.4 ms
64 bytes from 
192.168.15.105
: icmp_req=2 ttl=128 time=73.2 ms
64 bytes from 
192.168.15.105
: icmp_req=3 ttl=128 time=76.4 ms
64 bytes from 
192.168.15.105
: icmp_req=4 ttl=128 time=74.4 ms
64 bytes from 
192.168.15.105
: icmp_req=5 ttl=128 time=72.9 ms
64 bytes from 
192.168.15.105
: icmp_req=6 ttl=128 time=76.8 ms
64 bytes from 
192.168.15.105
: icmp_req=7 ttl=128 time=75.4 ms
64 bytes from 
192.168.15.105
: icmp_req=8 ttl=128 time=73.2 ms
64 bytes from 
192.168.15.105
: icmp_req=9 ttl=128 time=72.5 ms
64 bytes from 
192.168.15.105
: icmp_req=10 ttl=128 time=76.3 ms
 
--- 192.168.15.105 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 72.546/74.600/76.895/1.561 ms
 
Ottengo 10 risposte in circa 9 secondi.
 
Se faccio un ping utilizzando il nome:
 
root@wheezy:~# ping -c10 
passchange.panzer.de
 
PING 
passchange.panzer.de
 (192.168.15.105) 56(84) bytes of data.
64 bytes from 
192.168.15.105
: icmp_req=1 ttl=128 time=73.5 ms
64 bytes from 
192.168.15.105
: icmp_req=2 ttl=128 time=73.7 ms
64 bytes from 
192.168.15.105
: icmp_req=3 ttl=128 time=73.2 ms
64 bytes from 
192.168.15.105
: icmp_req=4 ttl=128 time=86.0 ms
64 bytes from 
192.168.15.105
: icmp_req=5 ttl=128 time=77.3 ms
64 bytes from 
192.168.15.105
: icmp_req=6 ttl=128 time=74.2 ms
64 bytes from 
192.168.15.105
: icmp_req=7 ttl=128 time=73.7 ms
64 bytes from 
192.168.15.105
: icmp_req=8 ttl=128 time=74.3 ms
64 bytes from 
192.168.15.105
: icmp_req=9 ttl=128 time=73.4 ms
64 bytes from 
192.168.15.105
: icmp_req=10 ttl=128 time=73.9 ms
 
--- 
passchange.panzer.de
 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 45733ms
rtt min/avg/max/mdev = 73.264/75.373/86.020/3.712 ms
 
Ottengo 10 risposte in 45 (!!) secondi
 
Dove sbaglio ?
Cosa devo controllare ?
 
Grazie a tutti
fulvio
 
 
 
 


 
 
Qualcosa non torna, tanto per iniziare non perdi pacchetti, gli icmp 
request hanno ordine crescente in entrambi i casi, senza buchi.
 
In secondo luogo, la query DNS dovrebbe avvenire una sola volta, non ad 
ogni ping (va detto però che il comportamento che si osserva è tipico di 
una query dns antecedente ad ogni ping, anche perchè con quei tempi 
avresti visto dei timeout).
 
Giusto per toglierci il dubbio, se in un'altra shell dai
tcpdump -ni eth0 port 53 or host 192.168.15.105
 
e poi subito dopo dai lo stesso ping sull'hostname, cosa vedi?
- una query dns, un request ed un reply x10
oppure
- una sola query dns (se la vedi, ma potresti averlo già in cache) e 10 
request e 10 reply alternati?
 


 
Grazie per la risposta,
ho fatto quello che dicevi qui sopra, aggiungendo un ulteriore filtro 
altrimenti nel report avrei avuto anche tutte le query dns provenienti dai 
client in rete. Qui sotto il risultato, quindi non vedo nessuna query dns 
fatta da localhost.
Ci sono solo gli icmp request/reply alternati, ma con intervalli di 5 secondi 
tra le coppie, se guardi i tempi vedi (nei secondi) 18 - 23 - 28 - 33 - 38 - 
43 .......
come se io avessi chiesto un ping -i5
Anzi, ho provato a fare un ping -i5 -c10 nome_host e il risultato è identico 
ad un ping senza -i5
 
root@wheezy:~# tcpdump -ni eth0 'port 53 and host localhost' or host 
192.168.15.105
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 
09:51:18.153570 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 1, length 64
09:51:18.227862 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 1, length 64
09:51:23.231206 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 2, length 64
09:51:23.307799 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 2, length 64
09:51:28.312507 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 3, length 64
09:51:28.389674 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 3, length 64
09:51:33.391205 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 4, length 64
09:51:33.466866 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 4, length 64
09:51:38.472776 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 5, length 64
09:51:38.607396 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 5, length 64
09:51:43.613479 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 6, length 64
09:51:43.689726 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 6, length 64
09:51:48.694866 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 7, length 64
09:51:48.771580 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 7, length 64
09:51:53.777102 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 8, length 64
09:51:53.852748 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 8, length 64
09:51:58.858689 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 9, length 64
09:51:58.932163 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 9, length 64
09:52:03.938261 IP 192.168.20.30 > 
192.168.15.105
: ICMP echo request, id 
19034, seq 10, length 64
09:52:04.011519 IP 192.168.15.105 > 
192.168.20.30
: ICMP echo reply, id 19034, 
seq 10, length 64
 

 query dns fatta da localhost.
 
davvero molto, molto strano. perchè l'icmp parte e arriva corretto e in 
tempi buoni. Il problema qui non è che ci mette tanto nel tragitto, ma 
che ci mette tanto a partire. Sei proprio certo non faccia una query dns 
ogni volta?
 
E se metti in /etc/hosts pippo mappato sull'ip e poi pinghi pippo? 
Quanto ci mette?

 mette?
 
Se metto pippo in /etc/hosts con mappato il suo ip (192.168.15.105), e poi 
pingo pippo, ci mette 9 secondi a fare 10 richieste/risposte.
Durante il giorno non posso fare troppi pastrugni, gli uffici sono pieni di 
gente e quel server deve funzionare senza intoppi. Questa notte provo a fare
indagini e manovre e vediamo se trovo qualcosa.
A presto.
 
 
 
 

 mette?
 


 105.15.168.192.in-addr.arpa. (45)
 
Eccolo lì! In effetti quella pausa mi dava proprio di query ad ogni ping!
 
Per le impostazioni di Bind, lascio la parola ai più esperti, 
francamente lo uso poco. In genere strutturo i DNS di AD.
 
Ciao!
 
 
 

 Per le impostazioni di Bind...........
 
Trovato:
 
zone "15.168.192.in-addr.arpa" {
        type forward;
        forwarders { 192.168.100.100; 192.168.100.101; };
};
 
Era anche piuttosto semplice!
Ma senza i tuoi consigli su dove indagare, sarei stato ancora qui a impazzire.
 
Grazie e
Ciao!
 
 


 
tutto è bene quel che finisce bene!! ;)