Ubuntu: Làm cách nào để định cấu hình máy chủ DNS trong / etc / network / giao diện chính xác cho độ phân giải?


13

Tất cả các ví dụ tôi đã thấy về cấu hình ( /etc/network/interfaces) cho thấy rằng bạn định cấu hình một giao diện và sau đó bên dưới đã đưa ra các dns-*dòng như:

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

Bây giờ tôi biết rằng giao thức DNS độc lập với cơ chế vận chuyển. Do đó, không nên sai khi thêm địa chỉ IPv6 trên dns-nameserversđường dây.

Tuy nhiên, vì dù sao tôi cũng đang định cấu hình giao diện cho IPv6, nên việc thêm dns-nameserversdòng ở đó là hợp lý:

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

... Hay đã làm điều đó? Bởi vì khi resolvconftạo /etc/resolv.confnó chỉ đơn giản là bỏ qua tất cả các máy chủ DNS IPv6. Nó dường như cũng bỏ qua dns-searchdns-domain. Dòng duy nhất mà nó có vẻ tôn vinh là dns-nameserversdòng từ cấu hình IPv4 cho eth0.

Phương pháp chính xác để cấu hình máy chủ DNS là gì?


Bằng chứng hoàn cảnh khác về lý do tại sao nó nên là một phần của mỗi khổ ifacethơ tương ứng . Trích dẫn từ man 8 resolvconf:

Các ifup(8) chương trình có thể được sử dụng để giao diện mạng cấu hình theo các thiết lập trong /etc/network/interfaces(5). Để tạo ifupthông tin máy chủ tên đẩy resolvconfkhi cấu hình giao diện, hãy thêm dns-các dòng vào khổ ifacethơ có liên quan /etc/network/interfaces. Để thêm địa chỉ máy chủ tên, thêm một dòng bắt đầu bằng dns-nameservers.


Nếu bạn vẫn gặp sự cố này, vui lòng gửi toàn bộ tệp / etc / mạng / giao diện của bạn và đầu ra của / usr / share / decvconf / dump-debug-information được bao gồm trong gói giải quyết trong Ubuntu 15.04.
jdthood

Câu trả lời:


9

Đó là chính xác để đặt các tùy chọn dns- * trong khổ iface eth0 inet staticthơ hoặc khổ iface eth0 inet6 staticthơ. Các tùy chọn trở nên hoạt động khi định nghĩa giao diện logic mà chúng thuộc về hoạt động.

Tôi vừa thử nghiệm điều này trên máy Ubuntu 15.04 của riêng tôi mà tôi thường cấu hình với DHCP. Tôi đã tắt NetworkManager và chỉnh sửa / etc / network / giao diện để nó trông như thế này:

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

Tôi đã làm

$ sudo ifup eth0

Kết quả:

$ 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

Lưu ý rằng các địa chỉ, máy chủ tên dns và tùy chọn tìm kiếm dns từ cả hai khổ thơ hiện đang hoạt động.

[Cập nhật ngày 30 tháng 5 năm 2015]


1

Trên RPi của tôi chạy Ubuntu 16.04.2 LTS, kết quả của tôi như sau:

Lưu ý: Tôi đã gỡ cài đặt NetworkManager và chỉ để lại độ phân giải để thực hiện công việc của nó. (Đây là một máy chủ cố định để mọi thứ không thay đổi nhiều mạng khôn ngoan.)

NẾU tôi có các dòng dns-search và dns-nameerver chỉ trên giao diện ONE (chính, có dây) nhưng không phải là dòng khác (wlan0), khi khởi động lại, khoảng 95% thời gian tệp /etc/resolv.conf của tôi sẽ trống.

ví dụ: Khi tệp giao diện của tôi trông như thế này:

# 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

THÌ sau khi khởi động lại, độ phân giải của tôi sẽ như thế này:

# 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

Tuy nhiên, trong một hoặc hai lần khởi động lại, tôi nhận thấy rằng DID có những gì tôi muốn, vd

# 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

Giải pháp Khi tôi đưa ra các giao diện BÓNG (có dây và wlan0) các dòng máy chủ tìm kiếm dns và tìm kiếm tên, tất cả đều hoạt động tốt trên mỗi lần khởi động lại (cho đến nay dù sao)

tức là tệp giao diện sau hoạt động với tôi:

# 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

và cung cấp cho tôi độ phân giải chính xác sau đây sau mỗi lần khởi động lại (cho đến nay)

# 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

Tôi giả sử cấu hình trùng lặp này là bình thường, nếu hơi dư thừa.

Kết luận: Nếu một giao diện (không phải lo0) thiếu thông tin dns-search và dns-nameerver, thì độ phân giải sẽ không có gì trong tệp giải quyết của bạn. (Như thể ifup đã làm giao diện wlan0 thứ hai và ifup xóa sạch độ phân giải hoặc tương tự.)

Tôi không chắc đây có phải là lỗi hay không, cảm thấy không ổn với tôi.


-1

Chỉnh sửa giao diện mạng để thêm sử dụng DNS tùy chỉnh của bạn là một cách ... nhưng để sửa đổi vĩnh viễn độ phân giải trên toàn hệ thống với máy chủ dnsnames tùy chỉnh của bạn, bạn cần cài đặt gói độ phân giải (nếu nó chưa được cài đặt theo mặc định) và điền vào cơ sở của nó tập tin cấu hình với các giá trị máy chủ tên DNS tùy chỉnh của bạn. Hy vọng hướng dẫn ngắn này sẽ giúp bạn có thêm các cấu hình liên quan đến các mục nhập DNS phân giải http://www.vtelinux.com/make-permanent-changes-to-resolv-conf-file-on-ub Ubuntu /


2
Chào mừng bạn đến với Unix & Linux! Trong khi điều này về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm nhiều phần thiết yếu hơn của hướng dẫn này ở đây và cung cấp liên kết để tham khảo.
Anthon 2/2/2015

@MateiCezar: bạn có thể giải thích rõ hơn không? Tôi không chắc bạn thậm chí đã đọc câu hỏi của tôi đến cuối cùng. Gói resolvconf được cài đặt. Tôi muốn /etc/network/interfacesđịnh cấu hình máy chủ DNS của mình cho IPv4 IPv6 tương ứng.
0xC0000022L

-1

Bạn muốn sử dụng các máy chủ DNS IPv6 trên /etc/network/interfaces...just đặt các mục nhập tên DNS DNS của bạn trên giao diện mạng cụ thể như sau:

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

Để thêm dnsnamesers IPv6 vĩnh viễn vào decv.conf, hãy sử dụng cùng một liên kết tôi đã thêm bên dưới và chỉnh sửa tệp cơ sở phân giải bằng cách điền vào các tên DNS IPv6 của riêng bạn:

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

Để định cấu hình / etc / mạng / giao diện với IPv6, hãy sử dụng hướng dẫn này http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-basing-systems/ và thay thế IPv4 bằng IPv6 như nó theo sau: 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 

Đã sửa định dạng của bạn. Một lần nữa, câu hỏi của tôi nói rõ rằng điều này không dẫn đến các máy chủ DNS cho IPv6 được thêm vào /etc/resolv.conf. Nếu điều này bằng cách nào đó làm việc cho bạn, sẽ hữu ích khi biết phiên bản hệ thống chính xác.
0xC0000022L

hãy để tôi nói thẳng điều này ... bạn muốn sử dụng trình phân giải DNS IPv6 từ / etc / mạng / giao diện và bằng cách nào đó thêm chúng vào tệp đó không phù hợp với bạn?
Matei Cezar

Tôi có thể thêm chúng vào /etc/network/interfacestốt. Điều không xảy ra là họ được chuyển vào /etc/resolv.confnhư họ nên. Và tôi đang cố gắng tìm ra những gì tôi đang làm sai, vâng.
0xC0000022L

Vẫn không có được nó? Những mục DNS từ / etc / network / interface có được chuyển sang /etc/resolv.conf hay không? Sử dụng các mục nhập máy chủ tên từ các giao diện không bao giờ được chuyển hoặc ghi vào /etc/resolv.com, chúng tự hoạt động từ NIC đó và không được triển khai trên toàn hệ thống. Chỉ DNS /etc/resolv.conf được sử dụng bởi các giao diện thiếu các mục nhập dnsnameservers.
Matei Cezar

Xin lỗi ... nhưng tôi vẫn không hiểu những gì bạn cố gắng đạt được với các mục nhập máy chủ tên DNS này.
Matei Cezar

-1

Tại sao bạn không triển khai các máy chủ tên IPv6 IPv6 trực tiếp trên /etc/resolv.conf tệp toàn hệ thống bằng cách chỉnh sửa tệp cơ sở độ phân giải như được đề xuất trong câu trả lời trước của tôi với liên kết và vẫn tiếp tục sử dụng tệp giao diện mạng? Bạn có thể thêm một bộ máy chủ tên DNS IPv6 trong /etc/resolv.conf và nếu bạn muốn sử dụng các máy chủ tên IPv6 khác cho một NIC cụ thể, chỉ sử dụng chúng trên / etc / network / giao diện.


những gì bạn đề cập trong câu cuối cùng của bạn chính xác là lý do tại sao tôi không muốn sử dụng cấu hình cơ sở độ phân giải và đó chính xác là những gì tôi đang cố gắng. Hơn nữa, nó chính xác là những gì đang thất bại.
0xC0000022L

ok..tôi hiểu rồi Nhưng tại sao bạn muốn triển khai mọi thứ theo cách này? Dù theo cách nào bạn chỉ cần những máy chủ tên DNS đó có thể truy cập được trên toàn hệ thống, có lý do nào để chuyển chúng từ mạng / giao diện sang decv.conf, khi bạn chỉ có thể viết chúng bằng cả hai tập tin và bạn đã hoàn tất!?
bytelinux com

Không chắc có bao nhiêu máy bạn quản trị, nhưng đối với tôi nó đủ để thử và làm cho cuộc sống của tôi dễ dàng hơn. Vì /etc/network/interfacesđược cho là để thực hiện công việc, tôi đang cố gắng tìm ra những gì tôi đang làm sai.
0xC0000022L
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.