resolvectl은 새 VPN 네트워크 어댑터를 무시합니다.

resolvectl은 새 VPN 네트워크 어댑터를 무시합니다.

Forticlient 앱을 사용하여 회사 VPN에 연결할 때 이상한 문제가 발생했습니다. 우선, 무엇이 문제인지 모르겠습니다. 시간을 좀 보낸 후에 DNS가 제대로 작동하지 않는다는 것을 발견했습니다. 안타깝게도 누구의 잘못인지는 모르겠습니다. FortiClient, systemd-resolved 또는 기타 것일 수 있습니다. 아직 공식화되지 않은 Ubuntu 22.04를 사용하고 있는데, 1~2주 뒤에 정식 출시되기 전에는 좀 더 나아질 것으로 예상됩니다.

resolvectlVPN을 설정하기 전의 출력은 다음과 같습니다 .

username@hostname:~$ resolvectl
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (enp2s0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (wlp1s0)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1 2a00:ee0:d::13 2a00:ee0:e::13
        DNS Domain: --

VPN이 설정된 후 resolvectl은 다음과 같은 사이트링크를 보고합니다 vpn.

username@hostname:~$ resolvectl
Global
       Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub

Link 2 (enp2s0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (wlp1s0)
    Current Scopes: DNS
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS 
DNSSEC=no/unsupported
Current DNS Server: 172.20.1.21
       DNS Servers: 172.20.1.16 172.20.1.21 2a00:ee0:d::13 2a00:ee0:e::13
        DNS Domain: company.com

Link 5 (vpn)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

보시다시피 추가 DNS 서버가 링크 3에 추가되어 VPN에 연결될 때 내부 이름을 확인하는 데 도움이 됩니다. 이상한 점은 글을 쓸 때

username@hostname:~$ resolvectl query name.company.com
name.company.com: resolve call failed: 'name.company.com' not found

나는 아무것도 얻지 못했습니다. 이렇게 nslookup을 사용하려고 하면

username@hostname:~$ nslookup
> server 172.20.1.16
Default server: 172.20.1.16
Address: 171.20.1.16#53
> name.company.com
Server:     172.20.1.16
Address:    172.20.1.16#53

Name:   name.company.com
Address: 172.20.38.251

나는 정답을 얻었다. nslookup이게 이상해서 네트워크 트래픽을 추적해서 resolvectl query.

nslookupDNS에 이름을 요청할 때 VPN에서 할당한 주소가 소스 IP로 사용되는 것으로 나타났습니다 . 반면, resolvectl queryVPN에서 할당한 주소를 제외한 다른 모든 주소를 소스 IP로 사용하세요. 따라서 DNS 서버에 응답을 내 컴퓨터로 다시 보낼 수 있는 올바른 경로가 없거나 DNS 쿼리가 새로 추가된 DNS 서버에 도달하지 못할 수도 있다고 추측합니다.

따라서 필요한 프로그램 중 어느 것도 이름을 올바르게 확인할 수 없습니다. 결과적으로 도메인 이름을 사용하여 VPN 내 어디든 연결할 수 없습니다.

resolvctl이 새로 할당된 VPN 주소가 있고 이를 소스 IP로 사용해야 함을 인식하게 하는 방법을 아는 사람이 있습니까? 연결을 설정할 때 FortiClient가 몇 가지 추가 구성을 수행해야 합니까? 아마도 그렇지 않을 것입니다.

VPN을 설정한 후 systemd-resolved를 다시 시작해 보았지만 도움이 되지 않았습니다. 다른 서비스를 다시 시작해야 합니까? 어느 것?


업데이트: 네트워크 설정에서 DNS가 어떻게 설정되어 있는지 확인했는데 올바르게 설정되어 있습니다. VPN이 없으면 네트워크 인터페이스 wlp1s0이 다음을 표시합니다.

username@hostname:~$ nmcli device show wlp1s0 | grep DNS
IP4.DNS[1]:                             192.168.1.1
IP6.DNS[1]:                             2a00:ee0:d::13
IP6.DNS[2]:                             2a00:ee0:e::13

VPN 연결 후:

username@hostname:~$ nmcli device show wlp1s0 | grep DNS
IP4.DNS[1]:                             172.20.1.16
IP4.DNS[2]:                             172.20.1.21
username@hostname:~$ nmcli device show vpn | grep DNS
IP4.DNS[1]:                             172.20.1.16
IP4.DNS[2]:                             172.20.1.21

답변1

저는 다양한 Forticlient 버전을 사용해 보았습니다.

  • v6.4.8
  • v7.0.0 ~ v7.0.5

불운.

당신은 그것을 사용할 수 있습니다 :

  1. FortiGui를 엽니다. https://github.com/theinvisible/openfortigui qt5 종속성을 설치하여 처음부터 빌드해야 합니다. 여기에서는 다음을 수행해야 합니다.
$ git clone https://github.com/theinvisible/openfortigui.git
$ git checkout v0.9.6
$ cd openfortigui
$ git submodule update --init
$ qmake
$ make

Make install 대상은 아무 것도 수행하지 않으므로 다음을 사용하여 실행 파일을 수동으로 복사해야 합니다.

$ sudo cp openfortigui/openfortigui /usr/bin/

sudo로 시작하세요. 그런 다음 제공된 아이콘을 기반으로 배포용 실행 프로그램을 추가할 수 있습니다.

  1. FortiClient SSLVPN 4.0.2332: https://apt.iteas.at/

두 가지 모두 작동합니다. 첫 번째는 수동으로 구축하고 설치해야 했지만 두 번째는 실행할 준비가 되어 있었습니다. 연결이 되지 않은 상태에서 터널이 닫힌 적이 있음에도 불구하고 말입니다.

Fortigate v7.2.0을 사용하여 테스트했습니다.

관련 정보