VPN에 연결된 경우 하나의 DNS 만 사용하는 네트워크


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

우분투 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/basenameserver 127.0.1.1sudo resolveconf -u

내가 원하는 것은 회사의 DNS 서버에 의해 푸시 된 도메인이 그런 식으로 확인되고 다른 모든 도메인이 정상적으로 확인되도록 VPN에 연결할 수있는 것입니다.

편집 : dnsmasq가 실제로 설치되지 않은 것으로 나타났습니다. 기본적으로 생각합니다. 그럼에도 불구하고 설치하고 다시 활성화하고에 /etc/NetworkManager/NetworkManager.conf로컬 이름 서버 주소를 추가하고 /etc/resolvconf/resolv.conf.d/base모든 서비스를 다시 시작하고 VPN에 연결하면 회사 DNS에서 도메인을 확인할 수 있지만 다른 도메인을 해결할 수는 없습니다. 그래서 기본적으로 dnsmasq를 완전히 비활성화했을 때와 같은 상황입니다.

편집 : 내용 /etc/dnsmasq.conf: http://paste.ubuntu.com/7297231/


dnsmasq 설정을 알려주시겠습니까? Dnsmasq는 일반적으로 /etc/resolv.conf에서 업스트림 DNS 서버를 가져옵니다. 따라서 변경하지 않은 경우 VPN을 통해서만 DNS를 가져옵니다.
jkt123

확실한. 나는 나의 링크를 추가했다/etc/dnsmasq.conf
Tommy Brunn

답변:


4

구성에서 dnsmasq 설치가에서 사용할 DNS 서버 목록을 가져오고 있습니다 /etc/resolv.conf. 기본적으로 dnsmasq는 작동중인 DNS 서버를 사용하려고하지만 지정된 요청 만 단일 DNS 서버로 보냅니다. 특정 쿼리 만 제공 할 수있는 DNS 서버가 여러 개인 경우 문제가 발생할 수 있습니다.

LAN에 VPN 서버 (VPN에 연결되어 있지 않은 경우 사용) /etc/resolv.conf와 회사 네트워크의 DNS 서버를 설정하여이 문제를 해결할 수 있다고 생각합니다. VPN을 통해 사용하십시오.

그런 다음 포함 /etc/default/dnsmasqDNSMASQ_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

그러면 DNS에 대한 dnsmasq 설치를 쿼리하도록 시스템을 구성해야하며 모든 쿼리에 대해 로컬 DNS 서버와 VPN DNS 서버를 모두 사용합니다.

편집 : nmcli도구를 사용하여 현재 특정 연결에 사용중인 DNS 서버를 찾을 수 있습니다 . 무선 연결에 사용되는 DNS 서버를 찾기 위해 다음 구문을 사용했습니다.

nmcli dev list iface wlan0 | grep IP4.DNS

VPN에 연결되어 있지 않은 상태에서이 명령을 실행 한 다음 다시 연결되어 회사 주소를 확인할 수있는 경우 DNS 서버 목록을 VPN에서 가져와야합니다. 이게 도움이 되길 바란다.

편집 2 : 라우팅 테이블을 보면 VPN 관리자가 연결되어있는 동안 VPN을 통해 모든 트래픽을 라우팅하도록 설정 한 것으로 보입니다 (기본 게이트웨이는 VPN 주소로 변경됨). 두 DNS 서버는 모두 공용 주소이며 VPN을 사용하는 동안 특정 경로를 설정하지 않았으므로 VPN을 통해 정상적인 DNS 조회를 시도하고 있는데 이것이 실패입니다.

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.1VPN을 연결 한 후.

  • VPN으로 회사 네트워크를 통해 인터넷에 액세스 할 수없는 경우 VPN에 연결 한 후 컴퓨터의 기본 게이트웨이 설정을 192.168.0.1로 변경해야합니다. 이 경우 일반적인 기본 게이트웨이를 설정 한 다음 VPN 전용 장비에 액세스하기 위해 네트워크 경로를 추가해야합니다.

두 번째 pastebin에 표시된 VPN에 연결된 경우 라우팅 테이블을 다음과 같이 정리해야합니다.

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

그런 다음 회사 장비에 액세스하기 위해 필요한 경로를 추가하십시오. 위의 라우팅 테이블에서 VPN의 / 24 네트워크를 가정했는데 잘못되었을 수 있습니다. 마스크를 적절하게 설정해야합니다.


로컬 DNS 서버와 회사 네트워크의 주소를 찾으려면 어떻게해야합니까?
Tommy Brunn

이 정보를 제공하기 위해 답변을 편집했습니다.
jkt123

nmcli에 따르면 VPN에 연결되어있을 때와는 달라도 VPN 서버에 연결되어있을 때 정확히 동일한 DNS 서버를 얻습니다. m 연결.
Tommy Brunn

nmcliVPN 연결없이 실행했을 때 DNS를 올바르게 확인할 수 있었습니까? 그렇지 않은 경우 VPN 연결을 끊고 DNS가 제대로 작동하는지 확인한 다음 실행하십시오 nmcli.
jkt123

예, VPN 연결이 끊어졌을 때 DNS를 정상적으로 확인할 수있었습니다. 출력 예 : paste.ubuntu.com/7345250
Tommy Brunn

0

NetworkManager가 귀하를 위해 일을 조정하는 방법과 관련하여 내가 채울 수없는 몇 가지 격차가 있습니다. 좌표가 작동하는 방식을 명확히하려고 노력할 것입니다. 완벽한 답변은 아니지만 희망적으로 유용합니다. 실제로 이것은 오래된 질문이므로 실제로 후손을위한 것입니다.

회사 네트워크 연결을 제외하고 회사 VPN을 사용하고 싶지 않을 수 있습니다. 이 경우 VPN 설정이 적절한 네트워크 범위 만 VPN으로 라우팅하고 기본 경로를 이전과 같이 로컬 라우터를 가리 키도록 유지하는 것이 좋습니다. 회사가 트래픽이나 네트워크 만 라우팅하도록 VPN을 설정하는 것이 좋지만 불행히도 드물게 보입니다. 다행히 로컬 설정에서 경로를 구성 할 수 있습니다.

그래도 여전히 DNS 문제가 발생할 수 있습니다. dnsmasq가 DNS로 수행하는 작업에 대한 jtk123의 의견은 dnsmasq에 국한되지 않습니다. 이것이 DNS가 작동하는 방식입니다. DNS 클라이언트 또는 중개 해결 프로그램이 DNS 항목이 존재하지 않는다는 응답을 받으면 다른 DNS 서버를 요청하는 것은 정상적인 동작이 아닙니다. 즉, 요청이 회사 네트워크와 관련이 있는지 여부에 따라 원하는대로 응답 할 DNS 리졸버가 필요합니다.

회사 네트워크가 더 넓은 인터넷과 관련된 DNS 쿼리에 응답 할 수도 있습니다.이 경우에는 그냥 사용하면됩니다. 그렇지 않으면 회사와 연결된 도메인에 대한 요청을 해당 DNS 서버로 전달하고 다른 요청을 다른 곳으로 전달하는 로컬 DNS 서버가 필요합니다.

dnsmasq는 특정 도메인에 대한 요청을 특정 업스트림 DNS 서버로 전달하도록 지시 할 수 있습니다. 예를 들어 dnsmasq.conf 매뉴얼 페이지에 설명 된 --server 옵션을 참조하십시오. networkmanager가 그 점을 잘 활용하도록하는 방법은 확실하지 않습니다 (현재 내가 찾고있는 것입니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.