У меня проблемы с DNS при новой установке Ubuntu 16.04:
kqs@mycomputer:~$ nslookup localserver
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can't find localserver: NXDOMAIN
Но если я укажу DNS-сервер (или иногда, если я просто подожду некоторое время), он работает:
kqs@mycomputer:~$ nslookup localserver 192.168.0.1
Server: 192.168.0.1
Address: 192.168.0.1#53
Name: localserver.localdomain
Address: 192.168.0.24
И это тот же самый DNS-сервер, который появляется сначала в Network Manager:
kqs@mycomputer:~$ nmcli device show
IP4.ADDRESS[1]: 192.168.0.152/24
IP4.GATEWAY: 192.168.0.1
IP4.ROUTE[1]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]: 192.168.0.1
IP4.DNS[2]: 131.215.254.100
IP4.DNS[3]: 131.215.139.100
Кажется, та же проблема, что и «dnsmasq иногда решает вещи, иногда это не делает», t "и" Разрешение адресов интрасети и dnsmasq ", но в этом решении они отключают dnsmasq, комментируя строку dns=dnsmasq в /etc/NetworkManager/NetworkManager.conf.
Однако я хотел бы устранить неисправность dnsmasq, а не полностью обходить его.
Итак, мои вопросы:
Я понимаю, что dnsmasq - это легкий DNS-сервер, работающий на моем компьютере. Предположительно, настройки DNS Network Manager используются для настройки dnsmasq, но в конечном итоге это dnsmasq, который несет исключительную ответственность за обработку DNS-запросов (с помощью восходящих DNS-серверов, которые он сочтет необходимыми). Это верно? Могу ли я увидеть, как dnsmasq обрабатывает определенный DNS-поиск? то есть он отвечает на него из своего кеша? Какому серверу восходящего DNS он пересылает его? Могу ли я dnsmasq указать конкретный DNS-сервер для локального домена?Как вы можете от нескольких дней в будущем: ваше понимание правильное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
Извините, я до сих пор не знаю.
Да, опция --server в dnsmasq (справочная страница здесь) позволяет указать восходящие DNS-серверы для определенных доменов.
Вы можете передать эту опцию при вызове диспетчера сети dnsmasq. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/ с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver в вашем примере (в отличие от localserver.domain).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names), но она по-прежнему возвращает NXDOMAIN при поиске. Итак, я остановился на следующем хаке:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
Как вы можете от нескольких дней в будущем: ваше понимание правильное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
Извините, я до сих пор не знаю.
Да, опция --server в dnsmasq (справочная страница здесь) позволяет указать восходящие DNS-серверы для определенных доменов.
Вы можете передать эту опцию при вызове диспетчера сети dnsmasq. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/ с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver в вашем примере (в отличие от localserver.domain).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names), но она по-прежнему возвращает NXDOMAIN при поиске. Итак, я остановился на следующем хаке:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
Как вы можете от нескольких дней в будущем: ваше понимание правильное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
Извините, я до сих пор не знаю.
Да, опция --server в dnsmasq (справочная страница здесь) позволяет указать восходящие DNS-серверы для определенных доменов.
Вы можете передать эту опцию при вызове диспетчера сети dnsmasq. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/ с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver в вашем примере (в отличие от localserver.domain).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names), но она по-прежнему возвращает NXDOMAIN при поиске. Итак, я остановился на следующем хаке:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]
dnsmasq
и Network Manager Как вы можете от нескольких дней в будущем: ваше понимание верное.
Обратите внимание, однако, что Network Manager запускает экземпляр dnsmasq
как дочерний процесс (не отдельный демон) и сохраняет свой собственный набор настроек конфигурации dnsmasq.
dnsmasq
обрабатывает определенный поиск DNS? Извините, я до сих пор не знаю.
dnsmasq
использовать конкретный DNS-сервер для локального домена? Да, опция --server
в dnsmasq
( manpage здесь ) позволяет указать DNS-серверы верхнего уровня для определенных доменов.
Вы можете передать эту опцию при вызове Network Manager dnsmasq
. Я сделал это, создав файл в каталоге /etc/NetworkManager/dnsmasq.d/
с содержимым:
server=//192.168.0.1
Обычно эта строка будет server=/domain/<ipaddr>
; в этом случае пустая спецификация домена означает «только неквалифицированные имена», например localserver
в вашем примере (в отличие от localserver.domain
).
Вышеизложенное изменение по-прежнему не помогло. Я подтвердил, что это было загружено (service NetworkManager status
показывает запись в журнале dnsmasq[<pid>]: using nameserver 192.168.0.1#53 for unqualified names
), но она по-прежнему возвращает NXDOMAIN
при поиске. Поэтому я остановился на следующем взломе:
Локальные компьютеры, с которыми я подключаюсь ко всем, имеют статические IP-адреса, поэтому я вручную указал их в файле в /etc/NetworkManager/dnsmasq.d
с содержимым:
address=/localserver/192.168.0.13
address=/localserve2/192.168.0.14
[...and so on...]