LINUX.ORG.RU
ФорумAdmin

ping ip адрес быстрее чем ping имени домена.

 , ,


1

2

Здравствуйте!
Если не сложно направьте мысли в нужную сторону, потому как не знаю куда дальше смотреть. Мозг наставивает на том что проблемы в DNS записях, но провайдер и доменный регистратор отказываются это признавать.

Есть сервер с белым ip x.x.x.x, есть доменное имя example.com
Суть проблемы: при выполнении ping x.x.x.x таймауты 10-15 ms А при выполнении ping examble.com таймаут такой же, но отображение между каждой попыткой пинга req1, req2, req3 гдето 2-3 секунды.

Сервер под управлением linux ubuntu 12.04 LTS.

Это, наверное, вопрос к владельцу этого IP адреса (по whois). У него должен быть DNS-сервер, который содержит PTR записи для адресов его диапазона, и вот этот DNS, видимо, плохо работает. Если я прав, то ping -n x.x.x.x не должно отображать ответы с задержкой.

anonymous
()
Ответ на: комментарий от anonymous

Большое спасибо. Вы абсолютно правы, и моя догадка подтвердилась, буду ругаться с провайдером который предоставляет мне ip адрес.

drodman
() автор топика
Ответ на: комментарий от drodman

Вообще для таких случаев есть очень полезная утилита dig. dix -x x.x.x.x, например, должно показать NS, ответственные за хранение PTR для x.x.x.x

anonymous
()

Молодец, анон, перемешивай еще немного кашу в голове ТС'a, до придания ей равномерного бурого окраса.

ТС, а тебе в гугл, спросить что такое днс и как оно работает.

(ping examble.com - один раз обращается к твоему днсу и спрашивает у него адрес, после этой процедуры разницы между ping examble.com и ping x.x.x.x нет никакой совершенно, ибо иди помимо днса разбирай модель OSI)

А задержки, вероятно, связаны с тем, что днс отдает examble.com != x.x.x.x

Единственная хорошая мысль, прозвучавшая от анонима - не используй для диагностики пинг, используй tracert или mtr (второй вариант предпочтительнее).

irr123
()
Ответ на: комментарий от irr123

Тебе известно, что ping по дефолту при пинге домена спрашивает PTR для разрезолвленного адреса? И делает это _каждый_раз_ при отсылке icmp-request?

anonymous
()
Ответ на: комментарий от irr123

В отличии от тебя, Анон был полезен и ТС и другим с подобной проблемой.

И ты НЕ прав насчет пинга.

greek_31 ★★
()
Ответ на: комментарий от drodman

btw, Не думаю, что стоит ругаться с провайдером, если тебя устраивает отсутствие PTR и 15мс задержка. Если у тебя там web-сервер, то PRT-запись там не используется.

greek_31 ★★
()
Ответ на: комментарий от anonymous
user@host:~> dig smtp.mail.ru

;; ANSWER SECTION:
smtp.mail.ru.           60      IN      A       217.69.139.160
smtp.mail.ru.           60      IN      A       94.100.180.160

user@host:~> dig -x 217.69.139.160

;; ANSWER SECTION:
160.139.69.217.in-addr.arpa. 3519 IN    PTR     smtp.mail.ru.

user@host:~> ping 217.69.139.112
PING 217.69.139.112 (217.69.139.112) 56(84) bytes of data.
64 bytes from 94.100.180.160: icmp_seq=1 ttl=59 time=42.9 ms
64 bytes from 94.100.180.160: icmp_seq=2 ttl=59 time=42.7 ms
64 bytes from 94.100.180.160: icmp_seq=3 ttl=59 time=42.4 ms
64 bytes from 94.100.180.160: icmp_seq=4 ttl=59 time=43.0 ms
64 bytes from 94.100.180.160: icmp_seq=5 ttl=59 time=42.7 ms
64 bytes from 94.100.180.160: icmp_seq=6 ttl=59 time=42.3 ms
64 bytes from 94.100.180.160: icmp_seq=7 ttl=59 time=42.9 ms
64 bytes from 94.100.180.160: icmp_seq=8 ttl=59 time=42.6 ms
64 bytes from 94.100.180.160: icmp_seq=9 ttl=59 time=42.3 ms
64 bytes from 94.100.180.160: icmp_seq=10 ttl=59 time=42.9 ms
64 bytes from 94.100.180.160: icmp_seq=11 ttl=59 time=43.0 ms


user@host:~> ping smtp.mail.ru
PING smtp.mail.ru (94.100.180.160) 56(84) bytes of data.
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=1 ttl=59 time=42.8 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=2 ttl=59 time=42.8 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=3 ttl=59 time=42.5 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=4 ttl=59 time=42.2 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=5 ttl=59 time=42.8 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=6 ttl=59 time=42.4 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=7 ttl=59 time=42.1 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=8 ttl=59 time=42.6 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=9 ttl=59 time=42.4 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=10 ttl=59 time=43.1 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=11 ttl=59 time=42.7 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=12 ttl=59 time=42.4 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=13 ttl=59 time=43.0 ms
64 bytes from smtp.mail.ru (94.100.180.160): icmp_seq=14 ttl=59 time=42.6 ms

а это задержка до моего днса:
64 bytes from n.n.n.n: icmp_seq=1 ttl=64 time=0.496 ms
64 bytes from n.n.n.n: icmp_seq=2 ttl=64 time=1.14 ms
64 bytes from n.n.n.n: icmp_seq=3 ttl=64 time=0.632 ms
64 bytes from n.n.n.n: icmp_seq=4 ttl=64 time=1.12 ms
64 bytes from n.n.n.n: icmp_seq=5 ttl=64 time=0.626 ms
64 bytes from n.n.n.n: icmp_seq=6 ttl=64 time=1.11 ms

Вот здесь я не уверен, но быть может все таки _один_раз_?

irr123
()
Ответ на: комментарий от drodman

PTR записи

наличие обратной записи для домена проверяется утилитой - host

host 93.158.134.3
3.134.158.93.in-addr.arpa domain name pointer www.yandex.ru.
axelroot
()
Ответ на: комментарий от irr123
$ ping ya.ru
PING ya.ru (93.158.134.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=1 ttl=53 time=25.4 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=2 ttl=53 time=25.1 ms
64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=3 ttl=53 time=25.0 ms
^C
--- ya.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 25.039/25.210/25.486/0.197 ms
# tcpdump -i tun0 -np 'icmp or udp or (tcp and port 53)'
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
13:53:50.334280 IP 192.168.200.22.42218 > 8.8.8.8.53: 42450+ A? ya.ru. (23)
13:53:50.359650 IP 8.8.8.8.53 > 192.168.200.22.42218: 42450 3/0/0 A 93.158.134.3, A 213.180.204.3, A 213.180.193.3 (71)
13:53:50.359942 IP 192.168.200.22 > 93.158.134.3: ICMP echo request, id 23604, seq 1, length 64
13:53:50.385396 IP 93.158.134.3 > 192.168.200.22: ICMP echo reply, id 23604, seq 1, length 64
13:53:50.385606 IP 192.168.200.22.44907 > 8.8.8.8.53: 45219+ PTR? 3.134.158.93.in-addr.arpa. (43)
13:53:50.410568 IP 8.8.8.8.53 > 192.168.200.22.44907: 45219 1/0/0 PTR www.yandex.ru. (70)
13:53:51.361724 IP 192.168.200.22 > 93.158.134.3: ICMP echo request, id 23604, seq 2, length 64
13:53:51.386807 IP 93.158.134.3 > 192.168.200.22: ICMP echo reply, id 23604, seq 2, length 64
13:53:51.386929 IP 192.168.200.22.35425 > 8.8.8.8.53: 13587+ PTR? 3.134.158.93.in-addr.arpa. (43)
13:53:51.412049 IP 8.8.8.8.53 > 192.168.200.22.35425: 13587 1/0/0 PTR www.yandex.ru. (70)
13:53:52.363187 IP 192.168.200.22 > 93.158.134.3: ICMP echo request, id 23604, seq 3, length 64
13:53:52.388200 IP 93.158.134.3 > 192.168.200.22: ICMP echo reply, id 23604, seq 3, length 64
13:53:52.388336 IP 192.168.200.22.44738 > 8.8.8.8.53: 33860+ PTR? 3.134.158.93.in-addr.arpa. (43)
13:53:52.413281 IP 8.8.8.8.53 > 192.168.200.22.44738: 33860 1/0/0 PTR www.yandex.ru. (70)
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel

PTR спрашивает каждый раз. Я там неточно написал, он спрашивает после получения Echo Reply, после получения ответа от DNS выводит в консоль результат, не прибавляя при этом время ожидания DNS. Вот так :)

anonymous
()
Ответ на: комментарий от anonymous

Этого действительно не знал, спасибо анонимус.

irr123
()
Ответ на: комментарий от drodman

Ради ясности стоит добавить, что проблема - в отсутствии реакции/слишком медленной реакции NS, т.к. если бы просто возвращалось NXDOMAIN, то ping бы нормально это обработал.

anonymous
()
Ответ на: комментарий от anonymous

Кто бы мог подумать !
Потестил свою бубунту: tcpdump -np icmp or port 53
Она дергает ДНС один раз (прямой и обратный) на первый пинг. Потом вижу только ECHO запрос-ответ.
Что не так ?

Vasily22
()
Ответ на: комментарий от anonymous

Да, dnsmasq,
только на другом хосте -)
Ubuntu 14.04,
#ping -V
ping utility, iputils-s20121221

Vasily22
()
Ответ на: комментарий от Vasily22

tcpdump -np icmp or port 53

Посмотри tcpdump -n -i any port 53.

У меня на ping google.com при каждом запросе пытается резолвить

anonymous
()
Ответ на: комментарий от anonymous

Да, пустая моя башка, забыл,
что и у меня кэширующий dnsmasq есть, но:

tcpdump -n -i any icmp or port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
21:54:47.423136 IP 127.0.0.1.38330 > 127.0.1.1.53: 22047+ A? ya.ru. (23)
21:54:47.423390 IP 192.168.12.96.8466 > 192.168.12.8.53: 10951+ A? ya.ru. (23)
21:54:47.423831 IP 192.168.12.8.53 > 192.168.12.96.8466: 10951 3/0/0 A 93.158.134.3, A 213.180.193.3, A 213.180.204.3 (71)
21:54:47.424081 IP 127.0.1.1.53 > 127.0.0.1.38330: 22047 3/0/0 A 93.158.134.3, A 213.180.193.3, A 213.180.204.3 (71)
21:54:47.424607 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 1, length 64
21:54:47.466874 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 1, length 64
21:54:47.467374 IP 127.0.0.1.45440 > 127.0.1.1.53: 21506+ PTR? 3.134.158.93.in-addr.arpa. (43)
21:54:47.467594 IP 192.168.12.96.18751 > 192.168.12.8.53: 16766+ PTR? 3.134.158.93.in-addr.arpa. (43)
21:54:47.474727 IP 192.168.12.8.53 > 192.168.12.96.18751: 16766 1/2/0 PTR www.yandex.ru. (106)
21:54:47.474996 IP 127.0.1.1.53 > 127.0.0.1.45440: 21506 1/2/0 PTR www.yandex.ru. (106)
21:54:48.426370 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 2, length 64
21:54:48.468973 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 2, length 64
21:54:49.428380 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 3, length 64
21:54:49.470642 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 3, length 64
21:54:50.429982 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 4, length 64
21:54:50.472341 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 4, length 64
21:54:51.431683 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 5, length 64
21:54:51.474180 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 5, length 64
21:54:52.433515 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 6, length 64
21:54:52.475888 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 6, length 64
21:54:53.435223 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 7, length 64
21:54:53.477660 IP 93.158.134.3 > 192.168.12.96: ICMP echo reply, id 10836, seq 7, length 64
21:54:54.436996 IP 192.168.12.96 > 93.158.134.3: ICMP echo request, id 10836, seq 8, length 64

Vasily22
()
Ответ на: комментарий от Vasily22

Раньше пинг в Убунту точно делал DNS запрос на каждый пакет. Точнее дёргал библиотчную функцию gethostbyaddr(). Так работал «ванильный» ping. В RHEL, Fedora, Suse пинг патченый, гуглить по ″ping.c.addrcache″.

Похоже, теперь и в Убунту этот пачт появился, не знаю включили ли его в разработчики ip-utils или убунтовские майнтенеры подтянули, смотрите сами, если интерестно.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.