16.10 ล้มเหลวในการแก้ไข DNS


34

หลังจากอัปเกรดการติดตั้ง 16.04 เป็น 16.10 ฉันมีปัญหากับ DNS

ครั้งแรกที่ฉันมีปัญหาสองสามครั้งเมื่อเชื่อมต่อกับ WiFi ในขณะที่ทำงานบนอีเธอร์เน็ต ตอนนี้ดูเหมือนว่าจะทำงานกับ WiFi ด้วย ไม่แน่ใจว่าทำไมและถ้าเป็นไปในทางที่เกี่ยวข้องกับปัญหาที่ฉันเผชิญตอนนี้:

เมื่อเชื่อมต่อไปยังโฮสต์ VPN พร้อมด้วยCisco Anyconnect VPNก็เพิ่มเส้นใน '/etc/resolv.conf' ฉันเข้าใจว่า Ubuntu กำลังใช้systemd-resolและหน้า man บอกว่ามีสามโหมดที่แตกต่างกันสำหรับการจัดการ /etc/resolv.conf /etc/resolv.conf ของฉันไม่ใช่ symlink และไม่ได้แสดงรายการ 127.0.0.53 เป็นเซิร์ฟเวอร์ DNS ดังนั้นเท่าที่ฉันเข้าใจ systemd แก้ไขควร "อ่านสำหรับข้อมูลการกำหนดค่า DNS" อย่างไรก็ตามมันดูเหมือนจะไม่สนใจ

ขุด

สิ่งที่แปลก (สำหรับฉัน) คือการdig host.customer.tldส่งคืนคำตอบที่ดีกับส่วนคำตอบที่แสดง IP ของโฮสต์ที่ร้องขอและมันหมายถึงเซิร์ฟเวอร์ DNS ที่เพิ่มไปยัง /etc/resolv.conf โดยลูกค้า VPN เป็นเซิร์ฟเวอร์ เมื่อการเชื่อมต่อ VPN ถูกปิดการใช้งานฉันไม่ได้รับคำตอบ เช่นขุดอ่าน /etc/resolv.conf

ปิง

เบราว์เซอร์ในอีกด้านหนึ่งไม่ได้รับ /etc/resolv.conf และไม่สามารถแก้ไขชื่อโฮสต์ได้ ไม่ ping / curl โดยวิธี

nmcli

ฉันพบโพสต์ที่เกี่ยวข้องและลองเรียกใช้

nmcli device show <interfacename> | grep IP4.DNS

แต่จะไม่มีรายการ dns สำหรับอุปกรณ์ cscotun0 (มันไม่ได้อยู่ใน 16.04 ทั้งๆที่) นอกจากนี้ nmcli แสดงเซิร์ฟเวอร์ dhcp ของฉัน (เราเตอร์ของฉัน) เป็นโฮสต์ IP4.DNS สำหรับการเชื่อมต่อ eth / wlan ของฉัน ใช้dig @192.168.0.1 xxxสำหรับโดเมนสาธารณะทำงานได้ดี

องค์ประกอบ

มีเซิร์ฟเวอร์ DNS อื่น ๆ อยู่ในรายการ /run/systemd/resolve/resolv.conf ของฉัน:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

สิ่งเหล่านี้ไม่ได้ให้บริการโดยเซิร์ฟเวอร์ DHCP ของฉัน ไฟล์ /etc/systemd/resolved.conf มีเฉพาะบรรทัดที่ถูกคอมเม้นต์ยกเว้นส่วนหัวของส่วน:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

man page สำหรับresol.confบอกว่า

DNS = รายการที่อยู่ IPv4 และ IPv6 ที่คั่นด้วยช่องว่างเพื่อใช้เป็นเซิร์ฟเวอร์ DNS ของระบบ ... เพื่อเหตุผลด้านความเข้ากันได้หากไม่ได้ระบุการตั้งค่านี้เซิร์ฟเวอร์ DNS ที่ระบุไว้ใน /etc/resolv.conf จะถูกใช้แทนหากไฟล์นั้นมีอยู่และเซิร์ฟเวอร์ใด ๆ การตั้งค่านี้มีค่าเริ่มต้นเป็นรายการที่ว่างเปล่า

FallbackDNS = รายการที่คั่นด้วยช่องว่างของที่อยู่ IPv4 และ IPv6 เพื่อใช้เป็นเซิร์ฟเวอร์ DNS ทางเลือก เซิร์ฟเวอร์ DNS แบบต่อลิงก์ใด ๆ ที่ได้รับจาก systemd-networkd.service (8) มีความสำคัญเหนือกว่าการตั้งค่านี้เช่นเดียวกับเซิร์ฟเวอร์ใด ๆ ที่ตั้งค่าผ่าน DNS = ด้านบนหรือ /etc/resolv.conf ดังนั้นการตั้งค่านี้จะถูกใช้ก็ต่อเมื่อไม่ทราบข้อมูลเซิร์ฟเวอร์ DNS อื่น ๆ หากไม่ได้รับตัวเลือกนี้จะใช้รายการเซิร์ฟเวอร์ DNS ที่คอมไพล์แล้วแทน

ดูเหมือนว่าทางเลือกจะสิ้นสุดลงใน /run/systemd/resolve/resolv.conf ในกรณีของฉัน

แก้ไข: ฉันไม่แน่ใจว่าปัญหาคืออะไรและบอกตามตรงฉันยังไม่รู้แน่ชัดว่าทำงานอย่างไร แต่อย่างน้อยมันกลับกลายเป็นว่าวิธีแก้ปัญหาในกรณีของฉันคือปิดใช้งานsystemd-resolvedบริการ ฉันคิดว่าจำเป็นต้องใช้บริการนั่นเป็นองค์ประกอบที่ให้บริการ DNS กับแอปพลิเคชันในพื้นที่ทั้งหมด แต่ดูเหมือนจะมีสิ่งอื่นที่ทำหน้าที่นี้อยู่


คุณมีปัญหากับ DNS หรือไม่หากคุณไม่ได้ใช้ VPN
Mark Stosberg


3
เพิ่งทราบว่าฉันพบปัญหาเดียวกันกับ Anyconnect ใน 16.10 ดูเหมือนว่าการเชื่อมต่อหลายครั้งกับบริการ VPN จะแก้ไขได้ชั่วคราว แต่ในบางจุด dns จะไม่ทำงานอีกต่อไป
jmartinez

2
ฉันมีปัญหาในการแก้ไข DNS ที่คล้ายกันซึ่งไม่มีใน 16.04 คำแนะนำของฉันคือการเริ่มต้นโดยการลบ (สำรอง) / etc / resolv.conf; ถอนการติดตั้งแพคเกจ resolvconf; รีบูต; และใช้ dig, systemd- แก้ไขด้วยและไม่มี VPN เพื่อดูว่าอะไรทำงานหรือไม่
philcolbourn

1
เปรียบเทียบรายงานข้อผิดพลาดนี้: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

คำตอบ:


15

ฉันประสบปัญหาที่คล้ายคลึงกันเช่นการเพิ่ม USB wifi dongle พิเศษ ก่อนอื่นฉันปิดการใช้งาน dnsmasq ใน networkmanager ตามที่อธิบายไว้ข้างต้นและฉันหยุด dnsmasq (หยุดบริการ dnsmasq)

ฉันสังเกตเห็นว่าเมื่อแก้ไขปัญหาระหว่างการเชื่อมต่อ VPN ตารางเส้นทางจะดูแตกต่างออกไปเล็กน้อย (คำสั่งเส้นทางออก) ชื่อของเกตเวย์คือ DD-WRT ในกรณีที่มันไม่ทำงานและเพียง 'เกตเวย์' เมื่อมันทำงาน ผลลัพธ์ของสิ่งนี้ไม่เปลี่ยนแปลง:

nmcli device show wlp1s0 | grep IP4.DNS

มันแสดง IP ของเราเตอร์ของฉันต่อไป วิธีแก้ปัญหาเพื่อให้มันทำงานได้ชั่วขณะหนึ่งคือการรีสตาร์ท systemd-resolvd:

sudo service systemd-resolved restart

เนื่องจาก dnsmasq อยู่นอกสมการมันเป็น systemd-resolvd ที่เป็นสาเหตุของปัญหาหรืออะไรก็ตามที่เปลี่ยนแปลงตารางเส้นทาง

ดังนั้นนี่คือความแตกต่างเดียวที่ฉันเห็น:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

ซึ่งใช้งานได้ และสิ่งนี้เมื่อมันไม่ทำงาน:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

และความแตกต่างชื่อเดียวกันในสาย VPN:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

ใครจะรู้ว่าสิ่งใดที่อาจส่งผลต่อตารางเส้นทาง มันจะดีถ้าเราสามารถระบุสิ่งนี้เพื่อรายงานข้อผิดพลาดสามารถยื่น ฉันป่วยหนักและเบื่อที่จะไล่ตามข้อบกพร่องเหล่านี้ แต่ฉันต้องการให้พวกเขาแก้ไขเพื่อผู้ใช้ในอนาคตและพวกเราจะมีความสุข :)

[อัพเดต] ดูเหมือนว่าการหยุดระบบแก้ไขแล้วอาจแก้ไขปัญหานี้และไม่ส่งผลกระทบในทางลบต่อสิ่งอื่น ๆ คุณสามารถลองสิ่งนั้นและบอกให้รู้ว่ามันทำลายข้าวของหรือเปล่า ฉันเห็นเมื่อใช้ systemd-resolvd ในการแก้ปัญหาเมื่อมันยากจน:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

วิธีปิดใช้งาน:

sudo systemctl disable systemd-resolved.service

ฉันอัพเดตรายงาน Ubuntu ด้วยคำแนะนำ [/ อัปเดต] เพิ่ม: หมายเหตุ: รายงานข้อผิดพลาด: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 มีโปรแกรมแก้ไขสำหรับ 17.04 สำหรับปัญหาบางอย่าง กรุณาตรวจสอบรายงานข้อผิดพลาดและถ้าเป็นไปได้ทดสอบแพทช์ ขอขอบคุณ!

[อัพเดต]

กรุณาตรวจสอบรายงานข้อผิดพลาดดังกล่าวข้างต้นปัญหาดูเหมือนว่าจะได้รับการแก้ไขสำหรับ 17.10 และด้วยการรั่วไหลของคำสั่ง DNS ง่าย ๆ ก็สามารถปิดการใช้งานได้เช่นกัน

[/ อัปเดต]


ขอบคุณสำหรับการรายงานอย่างละเอียด! ฉันเห็นการเปลี่ยนแปลงในตารางเส้นทางที่แตกต่างจากคุณ - VPN ของฉันดูเหมือนจะเพิ่มเส้นทางจำนวนมากแบบไดนามิกตามที่มีการใช้งานฉันสงสัยว่า อย่างไรก็ตามการปิดใช้งานการแก้ไข systemd ทำงานได้ดีมากสำหรับปัญหาของฉันเช่นกัน!
aweibell

ฉันคิดว่าในที่สุดชื่อในตารางเส้นทางไม่สำคัญว่ามันเป็นระบบที่ได้รับการแก้ไขแล้ว messing up DNS การแก้ไขอย่างใด ฉันยังต้องปิดการใช้งานบริการ dnsmasq เพื่อป้องกันไม่ให้เริ่มทำงาน แต่ตอนนี้มันใช้งานได้แล้ว หวังว่าบางคนจะแก้ไขชุดการพึ่งพาที่เหมาะสมระหว่างแพ็คเกจที่จำเป็นเพื่อให้การทำงานทั้งหมดนั้นถูกต้อง มันเป็นข้อผิดพลาดที่น่ารำคาญที่ต้องจัดการ
Vincent Gerris

น่าสังเกตว่าฉันพยายามตลอดทั้งวันกับปัญหานี้การรีสตาร์ทบริการ systemd ที่ได้รับการแก้ไขไม่ได้ทำอะไรให้ฉัน แต่ปิดการใช้งานอย่างสมบูรณ์และไม่มีปัญหาอีกต่อไป!
fd8s0

เพียงแค่จะย้ำผมมีปัญหาเครือข่ายเป็นเวลาหลายวันนับตั้งแต่การอัพเกรด 17.04 จาก 16.10 ฉันได้พยายามตอบมากที่สุดที่นี่ส่วนใหญ่ทำงานในขณะที่และแล้วปัญหาพืชขึ้นอีกครั้งสิ่งที่ในที่สุดก็ทำงานถูกปิดใช้งาน systemd แก้ไขการใช้sudo systemctl disable systemd-resolved.service และการตั้งค่าของ DNS ถึง 8.8.8.8 ใน /etc/resolv.conf
Japheth Ongeri - inkalimeva

บรรทัดง่าย ๆ นี้แก้ไขสำหรับฉันแล้ว: บริการ sudo เริ่มการแก้ไขระบบขอบคุณ!
Sergio Abreu

36

พฤติกรรม DNS ในระหว่างการเชื่อมต่อ OpenVPN ได้รับการปรับปรุงทันทีเมื่อฉันทำตามคำแนะนำใน ubuntuforums:

  1. เปิด/etc/NetworkManager/NetworkManager.confในเครื่องมือแก้ไขที่มีสิทธิ์ใช้งานรูท
  2. ลบ (หรือใส่ความคิดเห็นด้วยแฮช#) บรรทัดที่อ่านdns=dnsmasq
  3. รีสตาร์ท NetworkManager ผ่าน sudo service NetworkManager restart

ขอบคุณ พยายามตอนนี้ แต่ไม่ได้ผล ที่จริง DNS ทำงานได้ดียกเว้นเมื่อฉันเริ่มไคลเอนต์ Cisco VPN ซึ่งแทนที่ symlink /etc/resolve.conf ด้วยไฟล์ข้อความธรรมดา
aweibell

1
การแก้ไขนี้ใช้งานได้สำหรับฉันฉันมีปัญหา DNS กับ OpenVPN หลังจากการเปลี่ยนแปลงนี้ /etc/resolve.conf ของฉันมีการเปลี่ยนแปลง มันแปลกมากเพราะฉันไม่ได้ติดตั้ง dnsmasq
ทะเบียนหลัง

นี่อาจใช้งานได้กับปัญหาเกี่ยวกับ NM และ openvpn แต่อย่างน้อยก็ทำให้การเชื่อมต่อช้าลง เหมือนจะเดาได้ที่นี่
BairDev

3

วิ่งเข้าไปในปัญหาเดียวกัน ยังไงก็เถอะฉันต้องติดตั้ง DNSmasq ด้วยแอพพลิเคชั่นบางตัว เพียงแค่ลบ dnsmasq แก้ปัญหาให้ฉัน

sudo apt-get remove dnsmasq 

ตั้งแต่นั้นมาไม่มีการตัดการเชื่อมต่ออีกต่อไปหรือบางเว็บไซต์ไม่สามารถโหลดได้อีกต่อไป (ฉันมีปัญหาในการโหลด gmail นั่นคือทั้งหมดในทันทีที่มันไม่สามารถเชื่อมต่อกับ gmail ได้แม้ว่าไซต์อื่น ๆ จะทำงาน)


เมื่อพยายามที่จะลบแพคเกจฐาน dnsmasqความถนัดบอกฉันว่ามันเป็นสิ่งจำเป็นโดยnetwork-managerและubuntu-fanและการลบมันจะทำให้แพ็คเกจเพิ่มเติมจำนวนมากถูกลบออก ..
aweibell

distro และรุ่นอะไร ฉันใช้ Ubuntu 16.10 และไม่มีปัญหาในการลบ อย่างอื่นฉันจะไม่ได้โพสต์ :)
Nitai

ฉันใช้ Ubuntu 16.10 ด้วย! แปลก. apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
aweibell

กันที่นี่กับ 16.10 มันต้องการลบแพ็คเกจอื่น ๆ ทั้งหมดด้วย
Dave Kincaid

ฉันเพิ่งตัดการเชื่อมต่ออีกครั้งเมื่อวันก่อน แอปใดแอปหนึ่งต้องติดตั้ง dnsmasq อีกครั้ง ไม่ว่าในกรณีใดคราวนี้ฉันเพียงแค่ปิดการใช้งานด้วย systemd จนถึงตอนนี้มันยังไม่ทำงานอีกต่อไปและฉันก็ไม่ได้ตัดการเชื่อมต่อเช่นกัน
Nitai

1

แก้ไข/etc/nsswitch.confและเปลี่ยนแปลง

hosts:          files mdns4_minimal [NOTFOUND=return] dns

ไปยัง

hosts:          files dns mdns4_minimal [NOTFOUND=return]

แก้ไข:

ฉันมีปัญหาเดียวกันมาระยะหนึ่งแล้ว ฉันสามารถแก้ไขชื่อโดเมนจาก vpn ได้ แต่ฉันไม่สามารถ ping หรือขดชื่อโดเมนเหล่านั้นหรือใช้ในแอปพลิเคชันอื่น การเปลี่ยนแปลงที่อธิบายไว้ข้างต้นแก้ไขได้สำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.