Mac OS X Mountain Lion - การแก้ไข DNS ใช้ลำดับที่ไม่ถูกต้องบน VPN ผ่านการเชื่อมต่อผ่านสายโทรศัพท์


23

ฉันใช้ MacBook กับ Mac OS X 10.8.2 และเชื่อมต่อกับเครือข่าย บริษัท ของฉันผ่าน VPN ทุกอย่างใช้งานได้ดีเมื่อสร้างการเชื่อมต่อ VPN ผ่าน LAN หรือ WLAN อย่างไรก็ตามเมื่อฉันใช้ชื่อโฮสต์ (USB HSDPA USB Stick) ชื่อการเชื่อมต่อผ่านสายโทรศัพท์ไม่ได้รับการแก้ไขอย่างถูกต้องในแอปพลิเคชัน (เช่นเว็บเบราว์เซอร์) เครื่องมือบรรทัดคำสั่งเช่นhost nameจะแก้ไขที่อยู่ IP อย่างถูกต้องping nameจะไม่สามารถแก้ไขได้

ใช้scutil --dnsฉันทิ้งการกำหนดค่า DNS เมื่อเชื่อมต่อผ่าน WLAN เทียบกับ dial-up มีความแตกต่างที่น่าสังเกตในลำดับการค้นหา:

connecting using WLAN:

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #3
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #4
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #5
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #6
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #7
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #8
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.1.1
  if_index : 4 (en0)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

การเชื่อมต่อ ppp0 เป็นการเชื่อมต่อ VPN อย่างที่คุณเห็นเซิร์ฟเวอร์สองเครื่องเชื่อมต่อกันและพวกเขาจะตอบถูกต้องในบรรทัดคำสั่งและในแอปพลิเคชัน

Connecting via UMTS:

resolver #1
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #2
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 100000

resolver #3
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  reach    : Reachable,Transient Connection
  order    : 200000

resolver #4
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #5
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #6
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #7
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #8
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #9
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  nameserver[0] : 192.168.80.10
  nameserver[1] : 192.168.80.24
  if_index : 7 (ppp1)
  flags    : Scoped
  reach    : Reachable,Transient Connection

resolver #2
  nameserver[0] : 139.7.30.126
  nameserver[1] : 139.7.30.125
  if_index : 6 (ppp0)
  flags    : Scoped
  reach    : Reachable,Transient Connection

เวลานี้ ppp1 เป็นการเชื่อมต่อ VPN และ ppp0 เป็นการเชื่อมต่อ UMTS จากเวลาตอบสนองของคำสั่ง (โดยใช้ชื่อโฮสต์ที่ไม่ได้มีอยู่foo.bar.local) ฉันอนุมานว่าpingใช้โซ่ตัวแก้ปัญหาแรกโดยที่hostใช้การกำหนดค่าแบบสอบถามแบบ จำกัด ขอบเขต pingใช้เวลา 5 วินาทีในการส่งคืน "โฮสต์ที่ไม่รู้จัก" hostกลับมาทันที ฉันถือว่า ping ทำงานในการหมดเวลา 5 วินาทีของตัวแก้ไข mdns

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

ความคิดใด ๆ ยินดีต้อนรับ

คำตอบ:


7

ฉันมีปัญหาเดียวกันบน Mac ของฉันและหลังจากแก้ไขแล้วฉันพบว่าเกิดจากFortiClient (ไคลเอนต์ VPN) แม้ว่า FortiClient จะถูกตัดการเชื่อมต่อ แต่ DNS ก็ยังปรากฏอยู่ใน scutil

ทางออกสำหรับฉันคือ:

scutil
> list ".*DNS"

นี่จะแสดงรายการการกำหนดค่า DNS ทั้งหมดซึ่งจะมีลักษณะดังนี้:

subKey [0] = State:/Network/Global/DNS <br>
subKey [1] = State:/Network/MulticastDNS<br>
subKey [2] = State:/Network/OpenVPN/DNS<br>
subKey [3] = State:/Network/OpenVPN/OldDNS<br>
subKey [4] = State:/Network/PrivateDNS<br>
subKey [5] = State:/Network/Service/forticlientsslvpn/DNS <br>

หากต้องการตรวจสอบแต่ละรายการให้เรียกใช้: (จนกว่าคุณจะพบรายการที่มีปัญหา)

> get key_name
> d.show

... และเพื่อแก้ไขมันทำงาน:

> get key_name
> d.remove ServerAddresses
> set key_name

นี่คือลักษณะที่ปรากฏบนเครื่องของฉัน:

> get State:/Network/Service/forticlientsslvpn/DNS 
> d.show
<dictionary> {
  ServerAddresses : <array> {
    0 : 192.168.30.6
    1 : 192.168.30.15
  }
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> d.remove ServerAddresses
> d.show
<dictionary> {
  SupplementalMatchDomains : <array> {
    0 :
  }
  SupplementalMatchOrders : <array> {
    0 : 100000
  }
}
> set State:/Network/Service/forticlientsslvpn/DNS
> exit

3

ลองเปลี่ยนลำดับของรายการ DNS ในบานหน้าต่างการตั้งค่าเครือข่าย:

  1. เปิดการตั้งค่าระบบ → เครือข่าย

  2. เลือกบริการเครือข่ายของคุณในรายการด้านซ้าย

  3. ปลดล็อกบานหน้าต่างการตั้งค่าโดยใช้การล็อกที่มุมล่างซ้าย

  4. คลิกขั้นสูง ...และเลือกแท็บDNS

  5. เปลี่ยนลำดับของเซิร์ฟเวอร์ DNS โดยการลากขึ้น / ลง


2
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม จะวิจารณ์หรือการร้องขอคำชี้แจงจากผู้เขียนแสดงความคิดเห็นด้านล่างโพสต์ของพวกเขา - คุณสามารถแสดงความคิดเห็นในโพสต์ของคุณเองและเมื่อคุณมีชื่อเสียงเพียงพอที่คุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด
grg

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

2
ตามที่มีคำพูดจะถูกเขียนเป็นคำขอให้ชี้แจง - คำตอบควรเขียนเป็นคำตอบ; ความคิดเห็นเป็นสถานที่ที่เหมาะสมที่สุดในการขอคำชี้แจง คำตอบนี้อยู่ในคิวการตรวจสอบคุณภาพต่ำโพสต์และในความคิดของฉันที่แสดงความคิดเห็นหุ้นที่เหมาะสมที่สุด อันที่จริงการเขียนคำนี้ซ้ำเป็นคำตอบ (และการเพิ่มรายละเอียดเช่นภาพหน้าจอและรายการคำสั่งที่จัดรูปแบบอย่างเหมาะสม) จะทำให้คำตอบนี้ครบถ้วนและถูกต้องตามกฎหมาย
grg

นี่มันไร้สาระ คุณเป็น Rainman หรือเปล่า มันเป็นคำตอบที่แสดงออกในแบบที่ไม่โต้ตอบและถ่อมตน (เนื่องจากเห็นได้ชัดว่าบุคคลที่ถามคำถาม - ซึ่งดูเหมือนว่ามีทักษะพอสมควร - อาจลองดู แต่ลืมบอกไว้ในคำถาม) และหากคุณลองทำตามคำแนะนำของฉันด้วยตัวเองคุณจะสังเกตได้ว่าไม่มีขั้นตอนใดที่มากไปกว่าขั้นตอนอื่น ๆ (การตั้งค่าระบบ -> เครือข่าย) เป็นสิ่งจำเป็นสำหรับบางคนที่มีความเชี่ยวชาญเทียบเท่า OP
db

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

2

ฉันพบวิธีแก้ปัญหา: DNS DNS ของคุณจะยังคงถูกเพิกเฉยและจะใช้ 3G-dongle DNS เท่านั้น แต่เพียงเพิ่ม VPN DNS ของคุณไปยังรายการภายใต้อินเทอร์เฟซ 3G ทำได้ยาก ... ปัญหาหลักคือตัวจัดการการเชื่อมต่อ 3G จะเขียนทับการกำหนดค่าทุกครั้ง คุณคลิกที่การเชื่อมต่อและคุณต้องการเครื่องมือจัดการการเชื่อมต่อเพื่อเปิดใช้งานวิทยุบนดองเกิล 3G ... ดังนั้นฉันจึงผสมผสานทั้งสองวิธีเข้าด้วยกัน:

  1. เชื่อมต่อกับ VPN ของคุณและจด DNS ของคุณ (ฉันมี 2 รายการ) คุณสามารถตรวจสอบได้ในการตั้งค่าเครือข่าย→ขั้นสูง→แท็บ DNS ตัดการเชื่อมต่อ VPN คุณต้องเชื่อมต่อกับ VPN เพราะ DNS ถูกกำหนดแบบไดนามิกเมื่อเชื่อมต่อ ...

  2. เชื่อมต่อ 3G ของคุณแล้วทำเช่นเดียวกัน: เขียน DNS ลงในกระดาษ จากนั้นปลดการเชื่อมต่อ 3G

  3. ไปที่การตั้งค่าเครือข่าย→คลิกที่อินเทอร์เฟซ 3G →ขั้นสูง→แท็บ DNS และภายใต้ตาราง DNS (ซึ่งโดยทั่วไปจะว่างเปล่าเนื่องจากคุณไม่ได้เชื่อมต่อ) คลิกที่ '+' เพิ่มเซิร์ฟเวอร์ DNS ทั้งหมด (จาก 3G ก่อนแล้วจึงเพิ่ม VPN ในภายหลัง) คลิกตกลงและนำไปใช้

  4. จากนี้ไปการเชื่อมต่อ 3G เพียงแค่เสียบ USB ของคุณและรอจนกว่าคุณจะมีพื้นที่ให้บริการ 3G (คุณจะต้องเปิดตัวจัดการการเชื่อมต่อ 3G) แต่อย่าใช้ตัวจัดการการเชื่อมต่อที่ให้มาเพื่อเชื่อมต่อ และถ้ามันเชื่อมต่อโดยอัตโนมัติไปที่การตั้งค่าและยกเลิกการทำเครื่องหมายที่ คุณต้องว่าผู้จัดการเท่านั้นที่จะเปิดวิทยุบนใน USB Dongle ไม่มีอะไรอื่น

    หากคุณคลิกที่ "เชื่อมต่อ" ในตัวจัดการ 3G ของคุณมันจะเขียนทับการกำหนดค่าบนอินเทอร์เฟซ 3G ของคุณและคุณต้องทำซ้ำขั้นตอนที่ 3 อีกครั้ง

  5. ไปที่เครือข่าย→ค่ากำหนดและคลิกที่อินเทอร์เฟซ 3G จากนั้นคลิกเชื่อมต่อ มันจะเชื่อมต่อกับ 3G ของคุณโดยใช้เซิร์ฟเวอร์ DNS ที่กำหนดค่า (แทนที่จะได้รับแบบไดนามิก) ซึ่งรวมทั้ง DNS "สาธารณะ" และ DNS DNS ของคุณ

  6. เชื่อมต่อกับ VPN ของคุณ มันจะทำงานได้ตามที่คาดไว้

เพิ่งทราบว่า:

  • หาก VPN DNS ของคุณมีการเปลี่ยนแปลงคุณต้องเปลี่ยนด้วยตนเอง สามารถตรวจสอบได้อย่างง่ายดายภายใต้เครือข่าย→อินเทอร์เฟซ VPN พร้อมแท็บขั้นสูง→ DNS เนื่องจาก VPN DNS ของคุณยังคงถูกกำหนดให้กับอินเทอร์เฟซแบบไดนามิก (แม้ว่า OS X จะไม่สนใจก็ตาม)

  • หาก DNS 3G ของคุณมีการเปลี่ยนแปลง (ไม่น่าเป็นไปได้) คุณต้องเปลี่ยนด้วยตนเองเช่นกัน หากมีข้อผิดพลาดและคุณไม่สามารถนำทางคุณต้องผ่านตัวจัดการการเชื่อมต่อ 3G ของคุณคลิก "เชื่อมต่อ" และดูว่า DNS ใดที่ได้รับการกำหนดแบบไดนามิก ... ซึ่งจะทำให้คุณต้องกลับไปที่ขั้นตอนที่ 3 และกำหนดค่าใหม่


2

ฉันมีปัญหาเดียวกันมาเป็นเวลานาน แต่ตอนนี้ฉันมีเวลาหาวิธีแก้ปัญหาที่เหมาะกับฉัน ฉันไม่ได้เปลี่ยนลำดับของเซิร์ฟเวอร์ DNS แต่ฉันใช้เซิร์ฟเวอร์ DNS ด้านหลัง VPN อย่างถาวร

  1. เชื่อมต่อผ่านสายโทรศัพท์

  2. เชื่อมต่อการเชื่อมต่อ VPN และคัดลอก IP เซิร์ฟเวอร์ DNS และโดเมนการค้นหาจากการเชื่อมต่อ VPN →ขั้นสูง→ DNS

  3. ยกเลิกการเชื่อมต่อ VPN

  4. Ping <name>หรือ<hostname>เซิร์ฟเวอร์ VPN ของคุณแล้วจดบันทึก IP

  5. ปลดการเชื่อมต่อผ่านสายโทรศัพท์

  6. ทำซ้ำการเชื่อมต่อผ่านสายโทรศัพท์ (เช่นชื่อ "3G สำหรับ VPN")

  7. ป้อน IP และโดเมนการค้นหาลงในแท็บ DNS ของการเชื่อมต่อผ่านสายโทรศัพท์ พวกเขาจะถูกเก็บไว้และใช้อย่างถาวร

  8. เชื่อมต่อผ่านการเชื่อมต่อผ่านสายโทรศัพท์ใหม่

  9. ตอนนี้คุณไม่สามารถเข้าถึงเนมเซิร์ฟเวอร์ (เพราะปลอดภัยด้วย VPN) - คุณต้องแก้ไขที่อยู่เซิร์ฟเวอร์ของการเชื่อมต่อ VPN แทนที่โฮสต์ด้วย IP

  10. เชื่อมต่อผ่านการเชื่อมต่อ VPN และคุณควรใช้งานได้

หมายเหตุ: ในชื่อโฮสต์ทั่วไปจะไม่เปลี่ยนแปลง แต่ IP สามารถ ดังนั้นถ้ามันไม่ทำงานสักวันทำตามขั้นตอนอีกครั้ง ...


สวัสดีอเล็กซานเดอร์ฟังดูเหมือนเป็นแนวทางที่ดี อย่างไรก็ตามฉันไม่มีโชคแม้ว่าคำสั่งของตัวแก้ไข DNS ดูดีมาก ต้องตรวจสอบอีกครั้งด้วยไอทีของเรา
user1248552

1

สิ่งที่คุณพูดให้คำแนะนำแก่ฉันดังนั้นฉันจึงเพิ่ม dns ip ในการเชื่อมต่อ VPN ไปยังรายการ dns ในการเชื่อมต่อหลัก (ไม่มีอะไรแฟนซีเพียงใช้อินเทอร์เฟซแบบกราฟิกสำหรับการตั้งค่าเครือข่าย) ฉันไม่แน่ใจว่าสิ่งที่คุณ มีการจัดการกับที่แตกต่างกัน แต่มันทำงานกับฉัน


1

สิ่งนี้ยังคงเกิดขึ้นใน 10.13.0

ฉันเปิดรายงานบั๊กกับ Apple แล้ว ไม่ใช่เรื่องปกติที่ "ping internalhostname" ใช้งานได้ แต่ "host internalhostname" หรือ "nslookup internalhostname" ล้มเหลวด้วยการแยกช่องสัญญาณ VPN (Cisco IPSec หรือ IKEv2)

นอกจากนี้ยังมีบางคนสังเกตเห็นว่าการเชื่อมต่อ Cisco IPsec และการเชื่อมต่อ IKEv2 ไม่สามารถจัดลำดับความสำคัญด้วย "Set service order" ซึ่งแตกต่างจาก L2TP / IPsec ซึ่งสามารถ

อีกจุดที่ฉันต้องการนำมาใช้คือการแยกอุโมงค์ Cisco IPSec หรือ IKEv2 VPN ไม่แสดงเซิร์ฟเวอร์ DNS หรือโดเมนการค้นหาในการตั้งค่าขั้นสูงแม้ว่าข้อมูลนี้จะแสดงขึ้นด้วย "scutil --dns" L2TP / IPsec VPNs แสดงข้อมูลนี้ได้ดี

มีบางอย่างที่จะให้และ Apple จำเป็นต้องให้คำอธิบาย / แก้ไข


ฉันพบว่านี่เป็นสถานการณ์ตอนนี้ด้วย macOS ณ สิ้นปี 2560 DNS ที่แยกที่กำหนดค่าบนโดเมนไม่ได้รับเกียรติ ฉันเรียกใช้scutil --dnsคำสั่งด้านบนและดูเหมือนว่า DNS จาก VPN นั้นจะอยู่ได้ตลอดและไม่ได้ใช้สำหรับโดเมนการค้นหาแม้ว่าจะได้รับการตั้งค่าอย่างถูกต้องก็ตาม
mcdado

0

ไม่ทำงานใน Lion / Mountain Lion เนื่องจากมีข้อบกพร่องซึ่งทำให้เซิร์ฟเวอร์ DNS ในเครื่องใช้งานเสมอใช้แทนเซิร์ฟเวอร์ DNS ของเครือข่ายระยะไกลแม้ว่าจะทำการแยก DNS DNS อย่างถูกต้องในเราเตอร์ VPN

อย่างไรก็ตามหากคุณใช้เราเตอร์ Cisco ASA IPSEC คุณสามารถบังคับให้เซิร์ฟเวอร์ DNS ระยะไกลถูกใช้เมื่อใดก็ตามที่คุณสร้างการเชื่อมต่อ VPN:

หากใช้ Cisco ASDM ให้ไปที่การกำหนดค่า> การเข้าถึงเครือข่าย (ไคลเอ็นต์)> นโยบายกลุ่ม> (กลุ่ม vpn ของคุณสำหรับ OSX / iPhones)> ขั้นสูง> การแยกอุโมงค์

มีชุด: ชื่อ DNS (ยกเลิกการเลือก "สืบทอด" และกำหนดชื่อโดเมน DNS ภายในเช่น myoffice.local) ส่งการค้นหา DNS ทั้งหมดผ่านอุโมงค์: ตั้งค่าเป็น YES (นี่คือการตั้งค่าที่สำคัญ)

บันทึกและอย่าลืมเก็บไว้ในแฟลชเพื่อใช้ในอนาคต

หากคุณใช้บรรทัดคำสั่ง IOS ให้ตั้งค่า:

group-policy <your-tunnel-group-name> attributes
 split-dns value myoffice.local
 split-tunnel-all-dns enable`

-2

คุณสามารถแก้ไขได้โดยปรับใบสั่งบริการของการเชื่อมต่อเครือข่าย ย้าย VPN ไปที่ด้านบนสุดของรายการและลำดับตัวแก้ไขจะตามมา

http://support.apple.com/kb/PH14006


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