เครือข่ายใช้ DNS เดียวเท่านั้นเมื่อเชื่อมต่อกับ VPN


9

บริษัท ของฉันมี VPN ที่ฉันต้องเชื่อมต่อ ใน OSX ฉันทำสิ่งนี้โดยใช้openvpnกับการกำหนดค่าต่อไปนี้:

client
dev tun
proto udp
remote <GATEWAY_ADDRESS> <PORT>
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /Users/Tommy/.openvpn/dev/ca-dev.crt
cert /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.crt
key /Users/Tommy/.openvpn/dev/tommy.brunn-20131122-dev.key
ns-cert-type server
tls-auth /Users/Tommy/.openvpn/dev/ta-dev.key 1
cipher BF-CBC
comp-lzo
verb 3
auth-nocache
;daemon
;writepid openvpn.pid

ใน Ubuntu ฉันได้ติดตั้งnetwork-manager-openvpnและเพิ่มการเชื่อมต่อ VPN ใหม่ (พยายามนำเข้าไฟล์กำหนดค่าที่ทำให้เกิดความผิดพลาด) ด้วยชุดตัวเลือกการกำหนดค่าเดียวกัน: ภาพหน้าจอของการตั้งค่าของฉัน

เมื่อฉันเชื่อมต่อกับ VPN ฉันไม่สามารถแก้ไขโดเมนใด ๆ ได้

หากฉันแก้ไข/etc/NetworkManager/NetworkManager.confแสดงความคิดเห็นในบรรทัดdns=dnsmasqและเริ่มต้นใหม่network-managerฉันสามารถแก้ไขโดเมนภายในจาก บริษัท ของฉันได้ แต่โดเมนอื่น ๆ เช่น google.com จะไม่สามารถแก้ไขได้เลย ฉันแน่ใจว่าได้ตั้งค่า "วิธีการ" เป็น "อัตโนมัติ (VPN) ที่อยู่เท่านั้น" ในแท็บ IPv4 และ IPv6 ของตัวจัดการเครือข่ายสำหรับการเชื่อมต่อ VPN ของฉัน แต่ดูเหมือนจะไม่แตกต่างกัน

ฉันได้ลองเปิดใช้งานอีกครั้งdnsmasqและแก้ไข/etc/resolvconf/resolv.conf.d/base เพื่อให้มีอยู่nameserver 127.0.1.1แล้วทำงานsudo resolveconf -uแต่ไม่มีโดเมนใดจะแก้ไขได้อีก

สิ่งที่ฉันต้องการคือสามารถเชื่อมต่อกับ VPN ของฉันเพื่อให้โดเมนที่ผลักดันโดยเซิร์ฟเวอร์ DNS ของ บริษัท ของฉันได้รับการแก้ไขด้วยวิธีนั้นและโดเมนอื่น ๆ ทั้งหมดจะได้รับการแก้ไขตามปกติ

แก้ไข: ปรากฎว่าไม่ได้ติดตั้ง dnsmasq ซึ่งฉันคิดว่ามันจะเป็นค่าเริ่มต้น อย่างไรก็ตามหากฉันติดตั้งให้เปิดใช้งานอีกครั้ง/etc/NetworkManager/NetworkManager.confเพิ่มที่อยู่ชื่อเซิร์ฟเวอร์ใน/etc/resolvconf/resolv.conf.d/baseเครื่องรีสตาร์ทบริการทั้งหมดและเชื่อมต่อกับ VPN ฉันสามารถแก้ไขโดเมนจาก DNS ของ บริษัท ได้ แต่ฉันไม่สามารถแก้ไขโดเมนอื่นใดได้ โดยทั่วไปแล้วสถานการณ์เดียวกับเมื่อฉันปิดการใช้งาน dnsmasq โดยสิ้นเชิง

แก้ไข: เนื้อหาของ/etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/


คุณช่วยแสดงการตั้งค่า dnsmasq ของคุณให้เราดูได้ไหม? Dnsmasq มักจะได้รับเซิร์ฟเวอร์ DNS อัปสตรีมจาก /etc/resolv.conf ดังนั้นหากคุณไม่ได้เปลี่ยนว่าคุณอาจดึง DNS ผ่าน VPN เท่านั้น
jkt123

แน่ใจ ฉันเพิ่มลิงค์ไปยังของฉัน/etc/dnsmasq.conf
Tommy Brunn

คำตอบ:


4

จากการกำหนดค่าของคุณติดตั้ง dnsmasq ของคุณจะได้รับรายชื่อของเซิร์ฟเวอร์ DNS /etc/resolv.confจะใช้จาก โดยค่าเริ่มต้น dnsmasq พยายามสนับสนุนการใช้เซิร์ฟเวอร์ DNS ที่อัพ แต่จะส่งการร้องขอที่กำหนดไปยังเซิร์ฟเวอร์ DNS เดียวเท่านั้น สิ่งนี้อาจทำให้เกิดปัญหาได้หากคุณมีเซิร์ฟเวอร์ DNS หลายตัวที่สามารถ / จะให้บริการการค้นหาบางอย่างเท่านั้น

ฉันเชื่อว่าคุณสามารถแก้ปัญหานี้ได้ด้วยการทำให้แน่ใจว่าคุณมีเซิร์ฟเวอร์ DNS บน LAN ของคุณ (เซิร์ฟเวอร์ที่คุณใช้เมื่อคุณไม่ได้เชื่อมต่อกับ VPN) ตั้งค่าไว้/etc/resolv.confรวมทั้งเซิร์ฟเวอร์ DNS บนเครือข่ายองค์กรที่คุณต้องการ ใช้ผ่าน VPN

จากนั้นคุณจะต้องแก้ไข/etc/default/dnsmasqและเพิ่มหรือแก้ไขบรรทัดที่จะรวมDNSMASQ_OPTS=--all-servers

หากคุณยังไม่สามารถที่จะได้รับการสอบถาม DNS กับการตั้งค่านี้ให้คัดลอกไฟล์ resolv.conf ที่คุณสร้างขึ้นในระหว่างขั้นตอนข้างต้นไปยังตำแหน่งอื่นเช่น~/resolv.confตั้ง/etc/resolv.confขึ้นมาด้วยnameserver 127.0.0.1และการตั้งค่าตัวเลือกต่อไปนี้ใน/etc/dnsmasq.conf:

resolv-file=/home/your_username/resolv.conf

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

แก้ไข : คุณสามารถค้นหาเซิร์ฟเวอร์ DNS ที่คุณกำลังใช้สำหรับการเชื่อมต่อโดยใช้nmcliเครื่องมือ สำหรับการค้นหาเซิร์ฟเวอร์ DNS ที่ใช้โดยการเชื่อมต่อไร้สายของฉันฉันใช้ไวยากรณ์ต่อไปนี้:

nmcli dev list iface wlan0 | grep IP4.DNS

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

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

คุณอาจมีหลายวิธีในการทำงานนี้ขึ้นอยู่กับการตั้งค่า VPN ของคุณ:

  • หาก VPN จะช่วยให้คุณสามารถเข้าถึงอินเทอร์เน็ตผ่านเครือข่ายขององค์กร แต่ไม่ทำการสืบค้น DNS ไปยังเซิร์ฟเวอร์บนอินเทอร์เน็ตให้เพิ่มเส้นทางไปยังเซิร์ฟเวอร์ DNS ของคุณเช่น: sudo route add -host 83.255.245.11 gw 192.168.0.1และsudo route add -host 193.150.193.150 gw 192.168.0.1หลังจากเชื่อมต่อกับ VPN

  • หาก VPN จะไม่อนุญาตให้คุณเข้าถึงอินเทอร์เน็ตผ่านเครือข่ายขององค์กรคุณจะต้องเปลี่ยนการตั้งค่าเกตเวย์เริ่มต้นบนคอมพิวเตอร์ของคุณให้อยู่ที่ 192.168.0.1 หลังจากที่คุณเชื่อมต่อกับ VPN ในกรณีนี้คุณจะต้องตั้งค่าเกตเวย์เริ่มต้นตามปกติแล้วเพิ่มเส้นทางเครือข่ายเพื่อเข้าถึงอุปกรณ์ VPN เท่านั้น

คุณอาจต้องลดตารางการเราต์ลงในเคสที่เชื่อมต่อกับ VPN ที่แสดงใน pastebin ตัวที่สองของคุณต่อไปนี้:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
10.100.0.0      10.100.0.105    255.255.255.0   UGH   0      0        0 tun0
10.100.0.105    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

จากนั้นเพิ่มเส้นทางตามที่คุณต้องการเพื่อเข้าถึงอุปกรณ์ขององค์กร ในตารางเส้นทางที่แสดงด้านบนฉันได้สันนิษฐานว่าเครือข่าย / 24 บน VPN ซึ่งอาจไม่ถูกต้อง คุณจะต้องตั้งค่าหน้ากากให้เหมาะสม


ฉันจะค้นหาที่อยู่ไปยังเซิร์ฟเวอร์ DNS ในพื้นที่ของฉันและที่อยู่ในเครือข่ายขององค์กรได้อย่างไร
Tommy Brunn

ฉันได้แก้ไขคำตอบของฉันเพื่อให้ข้อมูลนี้
jkt123

ตาม nmcli ฉันได้รับ DNS- เซิร์ฟเวอร์ที่แน่นอนเหมือนกันเมื่อฉันเชื่อมต่อกับ VPN เหมือนเมื่อฉันไม่แม้ว่าจะไม่ชัดเจนเพราะฉันสามารถแก้ไขโดเมนภายในบนเครือข่าย บริษัท เมื่อฉัน ' ม. เชื่อมต่อแล้ว
Tommy Brunn

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

ใช่ฉันสามารถแก้ไข DNS ได้ตามปกติเมื่อถูกตัดการเชื่อมต่อจาก VPN ตัวอย่างผลลัพธ์: paste.ubuntu.com/7345250
Tommy Brunn

0

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

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

ที่ยังคงทำให้คุณมีปัญหา DNS ที่อาจเกิดขึ้น ความคิดเห็นของ jtk123 เกี่ยวกับสิ่งที่ dnsmasq ทำกับ DNS นั้นไม่ใช่ dnsmasq เจาะจง - นั่นคือวิธีที่ DNS ใช้งานได้ หากไคลเอนต์ DNS หรือตัวแก้ไขตัวกลางได้รับการตอบกลับว่าไม่มีรายการ DNS แสดงว่าเป็นเรื่องปกติที่จะต้องถามเซิร์ฟเวอร์ DNS อื่น นั่นหมายความว่าคุณต้องการตัวแก้ไข dns ที่จะตอบตามที่คุณต้องการไม่ว่าคำขอจะเกี่ยวข้องกับเครือข่ายของ บริษัท หรือไม่

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

สามารถแจ้งให้ dnsmasq ส่งต่อคำขอสำหรับโดเมนเฉพาะไปยังเซิร์ฟเวอร์ DNS อัปสตรีมเฉพาะ เช่นดูตัวเลือก - เซิร์ฟเวอร์ตามที่ระบุไว้ในหน้า man dnsmasq.conf ฉันไม่ชัดเจนว่าจะทำให้ผู้จัดการเครือข่ายเล่นได้ดีอย่างไร (ซึ่งเป็นสิ่งที่ฉันกำลังมองหาอยู่)

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