У меня есть ноутбук, который я хочу оптимизировать для приложений 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
Что Вы видите, что существует на самом деле отказ. Это не получает ответ локально, тогда это ищет онлайн и наконец сдается с 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
снова.
Я решил проблему. Кажется, что это - то же на каждой машине Ubuntu. По крайней мере, на 12,04.
Это - то, как я отладил проблему:
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/