Ubuntu: Як правильно настроїти DNS-сервери в / etc / network / інтерфейсах правильно для resolutionvconf?


14

Усі приклади конфігурацій ( /etc/network/interfaces), які я бачив, показали, що ви налаштовуєте інтерфейс, а потім надаєте dns-*рядки, такі як:

auto eth0
iface eth0 inet static
        ...
        dns-nameservers 127.0.0.2
        dns-search example.com my.example.com

Тепер мені відомо, що протокол DNS не залежить від транспортного механізму. Тому не слід неправильно додавати адресу IPv6 у dns-nameserversрядок.

Однак, оскільки я так само налаштовую інтерфейс для IPv6, було доцільно додати dns-nameserversтуди рядок:

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... чи зробив це? Тому що при resolvconfстворенні /etc/resolv.confвін просто ігнорує всі DNS-сервери IPv6. Це також, здається, ігнорує dns-searchі dns-domain. Єдиний рядок, який, схоже, шанує - це dns-nameserversрядок з конфігурації IPv4 eth0.

Який правильний метод налаштування DNS-серверів?


Подальші непрямі докази того, чому він повинен бути частиною кожної відповідної ifaceстрофи. Цитата від man 8 resolvconf:

ifup(8) Програма може бути використана для мережевих інтерфейсів конфігураційних в відповідно до настройками /etc/network/interfaces(5). Щоб внести ifupінформацію про сервер push ім'ям, resolvconfколи він налаштовує інтерфейс, додайте dns-рядки до відповідної ifaceстрофи в /etc/network/interfaces. Щоб додати адреси серверів імен, додайте рядок, що починається з dns-nameservers.


Якщо у вас все-таки виникає ця проблема, будь ласка, опублікуйте весь / etc / network / інтерфейс файл та вихід / usr / share / resolutionvconf / dump-debug-info, який включений у пакет Resolconf в Ubuntu 15.04.
jdthood

Відповіді:


9

Правильно ставити параметри dns- * або в iface eth0 inet staticстрофу, або в iface eth0 inet6 staticстрофу. Параметри стають активними, коли стає активним визначення логічного інтерфейсу, до якого вони належать.

Я щойно перевірив це на власній машині Ubuntu 15.04, яку я зазвичай налаштовую за допомогою DHCP. Я відключив NetworkManager і відредагував / etc / network / інтерфейси, щоб він виглядав так:

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

Я тоді це зробив

$ sudo ifup eth0

Результати:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo

Зауважте, що адреси, сервери dns-імен та dns-пошуку з обох строф зараз активні.

[Оновлено 30 травня 2015 р.]


1

На моєму RPi, що працює на Ubuntu 16.04.2 LTS, мої висновки були такими:

Примітка. Я видалив NetworkManager і просто залишив резолюціюconf, щоб виконувати свої речі. (Це фіксований сервер, тому все не дуже сильно змінюється.)

Якщо б у мене були рядки dns-search та dns-nameserver лише на одному інтерфейсі (первинному, дротовому), але не на іншому (wlan0), то при перезавантаженні, приблизно в 95% часу мій файл /etc/resolv.conf буде порожній.

Наприклад, коли мій файл інтерфейсів виглядав так:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

ТІЛЬКО після перезавантаження мій resoluv.conf виглядатиме так:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

Однак, під час одного чи двох перезавантажень я помітив, що у нього DID є те, що я хотів, наприклад

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Рішення Коли я давав інтерфейси BOTH (wired and wlan0) лінії dns-search та dns-nameserver, все працювало нормально при кожному перезавантаженні (поки що все одно)

тобто для мене працює наступний файл інтерфейсів:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

і дає мені наступне правильне Reslav.conf після кожного перезавантаження (поки що)

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Я припускаю, що цей дублікат конфігурації є нормальним, якщо дещо зайвим.

Висновок: Якщо в інтерфейсі (крім lo0) не вистачає даних dns-search та dns-nameserver, тоді резолюціяconv нічого не містить у вашому файлі resoluv.conf. (Начебто, якщо інтерфейс wlan0 зробив секунду і ifup видалив разрешение.conf тощо).

Я не впевнений, що це помилка чи ні, хоч почувається зі мною неправильно.


-1

Редагування мережевих інтерфейсів для того, щоб додати використання власного користувальницького DNS - це спосіб ... але для постійного зміни системної резолюції.conf для вашого власного dnsnameserver вам потрібно встановити пакет Reslavconf (якщо він ще не встановлений за замовчуванням) та заповнити його базу файл конфігурації зі спеціальними значеннями серверів імен DNS. Сподіваємось, цей короткий посібник допоможе вам для подальшої конфігурації записів DNS-адреси reslav.conf http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
Ласкаво просимо до Unix & Linux! Хоча це теоретично може дати відповідь на питання, бажано було б включити сюди більше суттєвих частин цього посібника та надати посилання для довідки.
Антон

@MateiCezar: ви можете, будь ласка, докладно? Я не впевнений, що ви навіть прочитали моє запитання до кінця. Пакет resolvconf буде встановлений. Я хотів би /etc/network/interfacesналаштувати свої DNS-сервери для IPv4 та IPv6 відповідно.
0xC0000022L

-1

Ви хочете використовувати IPv6 DNS-сервери на /etc/network/interfaces...установлюйте свої записи DNS-імен IPv6 у конкретний мережевий інтерфейс, наприклад:

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

Для постійного додавання dnsnamesers IPv6 до resolutionv.conf використовуйте те саме посилання, яке я додав нижче, та відредагуйте базовий файл reslvconf, заповнивши ваші власні DNS-імена DNS IPv6:

nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888 

Для налаштування / etc / network / interfaces з IPv6 використовуйте цей посібник http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ та замініть IPv4 на IPv6 як випливає: auto eth0

iface eth0 inet6 static
        address 2800:210:0:1::3
        netmask 64
        gateway 2800:210:0:1::1
        dns-nameservers 2001:4860:4860::8844 

Виправлено форматування. Знову ж таки, в моєму питанні чітко сказано, що це не призводить до того, що ці DNS-сервери для IPv6 додаються /etc/resolv.conf. Якщо це якимось чином працює для вас, було б корисно знати точну версію системи.
0xC0000022L

дозвольте мені зрозуміти це ... ви хочете використовувати IPv6 DNS-роздільники з / etc / network / інтерфейсів і якось додавати їх у цей файл для вас не працює?
Матей Цезар

Я можу додати їх до /etc/network/interfacesштрафу. Що не трапляється, це те, що вони переводяться /etc/resolv.confяк слід. І я намагаюся зрозуміти, що я роблю неправильно, так.
0xC0000022L

Ще не зрозуміли? Ці записи DNS з / etc / network / інтерфейсів переносяться на /etc/resolv.conf чи ні? Usullay ці записи назерваторів з інтерфейсів ніколи не переносяться і не записуються на /etc/resolv.com, вони працюють самостійно з цього NIC і не реалізуються на всій системі. Просто DNS-файл /etc/resolv.conf використовується інтерфейсами, у яких відсутні записи dnsnameservers.
Матей Цезар

Вибачте ... але все одно я не розумію, чого ви намагаєтеся досягти за допомогою цих записів серверів імен DNS.
Матей Цезар

-1

Чому ви не реалізуєте ці сервери імен IPv6 DNS безпосередньо в системному файлі /etc/resolv.conf, відредагувавши базовий файл reslvconf, як було запропоновано в моїй попередній відповіді за посиланням, і все ще продовжуєте використовувати файл мережевих інтерфейсів? Ви можете додати набір серверів імен DNS IPv6 в /etc/resolv.conf, а якщо ви хочете використовувати інші сервери імен IPv6 для конкретного NIC, використовуйте їх лише в / etc / network / інтерфейсах.


то , що ви згадуєте в своєму останньому реченні саме причина , чому я не хочу використовувати Resolvconf базовий конфиг , і це саме те , що я маю в спробі. Крім того, саме те, що не вдається.
0xC0000022L

добре. Я зрозумів! Але чому ви хочете реалізувати речі таким чином? Або в будь-якому випадку вам потрібні лише ті сервери імен DNS, щоб вони були доступні в усьому світі, чи є якісь причини перенести їх з мережі / інтерфейсів на resolutionv.conf, коли ви можете просто написати їх в обох файли і все готово !?
bytelinux com

Не впевнений, скільки машин ви керуєте, але для мене достатньо, щоб спробувати полегшити своє життя. Оскільки я /etc/network/interfacesповинен робити цю роботу, я намагаюся зрозуміти, що я роблю неправильно.
0xC0000022L
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.