задержка большой сети на локальном хосте

У меня есть ноутбук, который я хочу оптимизировать для приложений VoIP. Я испытываю проблему, состоящую в том, что приложения, подключающиеся к localhost, страдают большими задержками Обычно ничего не происходит в течение 2-3 секунд, когда одно приложение подключается к другому на том же компьютере. Похоже на "простое" время. Я задал вопрос на форуме voip, и один из ответов предполагал, что «для одного из используемых адресов нет действительного обратного DNS, и он даже не получает определенного« неизвестного »ответа от DNS-сервера»

ping localhost возвращает 0.03ms - неплохо

Теперь, когда я копаю e330 (localhost), когда компьютер подключен к сети, я получаю:

dig e330

; <<>> DiG 9.8.1-P1 <<>> e330
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46557
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;e330.              IN  A

;; AUTHORITY SECTION:
.           600 IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2015012700 1800 900 604800 86400

;; Query time: 38 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jan 27 12:35:08 2015
;; MSG SIZE  rcvd: 97

38 мсек выглядит плохо .

Затем я отключаю компьютер от сети и снова «копаю е330». На этот раз время запроса: 0 мсек. Однако не имеет значения, подключен ли мой ноутбук к сети или нет. Время простоя примерно одинаково.

Из того, что я прочитал, я вижу, что могу настроить DNS и DHCP на своем ноутбуке. Но я не хочу, чтобы он работал как сервер. Это ноутбук, и он должен подключаться к другим сетям везде, ничего не меняя.

Что можно сделать с «обратным DNS»? (Я понимаю, что это такое, но я не знал, что с этим можно что-то сделать). Можно ли сделать что-то еще с точки зрения Linux для ускорения сетевых интерфейсов для приложений VOIP?

Linux E330 3.13.11-03131111-generic # 201411111336 SMP вт 11 ноя 18:55:51 UTC 2014 i686 i686 i386 GNU / Linux

0
задан 27 January 2015 в 15:19

2 ответа

Что Вы видите, что существует на самом деле отказ. Это не получает ответ локально, тогда это ищет онлайн и наконец сдается с NXDOMAIN ошибка. Это занимает много времени, потому что это запрашивает главные корневые серверы, которые являются вне Вашей локальной сети.

Вот то, на что это должно быть похожим. Это - то, что я вижу, когда я запрашиваю свое имя узла:

oli@bert:~$ dig bert

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> bert
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25238
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bert.              IN  A

;; Query time: 2 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Jan 27 12:37:37 GMT 2015
;; MSG SIZE  rcvd: 33

Вы отметите, что нет никакого root-servers.net действие.

Это похоже на Вас, вероятно, не имеют строки в Вашем /etc/hosts, который определяет Ваше имя узла. Достаточно легкий зафиксировать, просто добавьте что-то вроде этого:

127.0.1.1    e330

Тогда попытка dig e330 снова.

0
ответ дан 27 January 2015 в 15:19

Я решил проблему. Кажется, что это - то же на каждой машине Ubuntu. По крайней мере, на 12,04.

Это - то, как я отладил проблему:

  • У меня были Звездочка, Linphone и Wireshark, уже установленный. Я выполняю всех их.
  • Я делаю Wireshark для слушания на "lo". Обычно не было ничего показывающего в Wireshark.
  • Затем я называю a hello world на localhost. Я вижу, что первая коммуникация от Linphone до звездочки происходит в 0sec, затем что-то происходит в 0,5 секунды, затем длинная пауза и следующий пакет почти 3 секунды спустя. Это было моей проблемой.

Ниже то, как я зафиксировал его. Это избавляется от задержки тех долгих 3 секунд, хотя существует все еще 0,5 секунды, от которых я не могу избавиться.

Как оказалось, dnsmasq, который идет с администратором сети, разрешал localhost путем выяснения у удаленного сервера DNS, opendns в моем случае.

В /etc/NetworkManager/NetworkManager.conf Я прокомментировал #dns=dnsmasq

затем

sudo service network-manager stop
sudo netstat -anlp | grep -w LISTEN

уничтожьте все выполнение dnsmasq процессы

sudo apt-get install dnsmasq

Затем настройте dnsmasq, удостоверьтесь в /etc/dnsmasq.conf Вы имеете

# Listen only on localhost
listen-address=127.0.0.1
bind-interfaces

И это - все. Необходимо будет перезагрузить, я думаю, выход из системы и вход в систему должны также сделать.

Видеть, использует ли Ваша система в настоящее время выполненный Dnsmasq

netstat -ulnp | grep ":53 "

Можно работать

sudo /etc/init.d/dnsmasq restart

видеть, не получаете ли Вы ошибок. Теперь "роют, localhost" берет 0sec.

Некоторые ссылки, которые помогли мне: http://sokratisg.net/2012/03/31/ubuntu-precise-dnsmasq/

1
ответ дан 27 January 2015 в 15:19

Другие вопросы по тегам:

Похожие вопросы: