Configurez des adresses de serveur DNS privé sur le serveur SSL-VPN afin que les clients puissent résoudre les noms de domaine privés au sein d'un VPC.
Fonctionnement
Le DNS personnalisé pour les clients SSL-VPN s'appuie sur le mécanisme d'options DHCP d'OpenVPN. Le processus est le suivant :
Activez l'interrupteur SSL Server situé sous l'option Custom Client DNS et saisissez jusqu'à deux adresses IP de serveurs DNS privés présents dans le VPC.
Le serveur SSL-VPN transmet la configuration DNS au client.
Une fois connecté, le client reçoit automatiquement les adresses des serveurs DNS depuis le serveur.
Le système d'exploitation définit ces adresses comme serveurs DNS préférés pour la connexion active.
Les requêtes de résolution de noms de domaine ultérieures (telles que
git.internaletexample.com) sont acheminées via le tunnel VPN vers le serveur DNS du VPC, ce qui permet de résoudre les noms de domaine privés.
Limites
Deux adresses de serveur DNS au maximum (primaire et secondaire).
Le système ne vérifie pas l'accessibilité des serveurs DNS. Assurez-vous que les adresses IP spécifiées peuvent assurer le service DNS au sein du VPC.
Certains clients nécessitent une configuration supplémentaire. macOS (Tunnelblick) applique le DNS automatiquement. Windows peut requérir la modification de la métrique de l'adaptateur réseau. Linux exige une configuration basée sur des scripts.
Non pris en charge sur iPhone, iPad ou Android.
Les adresses DNS au format nom de domaine ne sont pas prises en charge.
Les mises à jour dynamiques du DNS ne sont pas prises en charge.
Les adresses DNS IPv6 ne sont pas prises en charge.
Procédure
Prérequis
Vous avez connecté le client au VPC en suivant les instructions du guide Démarrage rapide. Si vous utilisez macOS, utilisez le client Tunnelblick.
Un serveur DNS (Windows AD DNS, CoreDNS, BIND, etc.) est en cours d'exécution dans le VPC.
Le groupe de sécurité du serveur DNS autorise le trafic entrant sur le
port UDP 53en provenance du Client CIDR Block.
Étape 1 : Activer le DNS personnalisé
Console
Dans la colonne Actions du serveur SSL, cliquez sur Edit.
-
Activez l'interrupteur Custom Client DNS et configurez les éléments suivants :
DNS Server Address 1 : Saisissez l'adresse IP privée d'un serveur DNS déployé dans votre VPC.
DNS Server Address 2 : Facultatif. Saisissez l'adresse IP d'un serveur DNS secondaire.
API
Appelez l'opération API ModifySslVpnServer et utilisez le paramètre DnsServers pour définir les adresses des serveurs DNS.
Étape 2 : Configurer le client
Choisissez la méthode adaptée à votre système d'exploitation. macOS (Tunnelblick) applique automatiquement le DNS lors de la connexion. Linux nécessite des modifications du fichier .ovpn.
Windows
Cliquez avec le bouton droit sur l'icône de la barre d'état système du client OpenVPN située dans le coin inférieur droit du bureau, puis sélectionnez Reconnect.
Exécutez
nslookup example.comdans l'invite de commandes. Remplacez example.com par votre nom de domaine privé. La présence d'une adresse IP privée correcte dans la réponse confirme que la configuration DNS fonctionne.
Si le DNS ne fonctionne pas :
-
Vérifiez les métriques de l'adaptateur réseau :
netsh interface ip show configUne valeur de métrique plus faible indique une priorité plus élevée pour l'adaptateur réseau.
-
Si l'adaptateur VPN n'a pas la métrique la plus basse, définissez-la :
netsh interface ip set interface "OpenVPN TAP-Windows" metric=10L'adaptateur réseau créé par le client OpenVPN pour le tunnel VPN porte généralement un nom commençant par « OpenVPN TAP-Windows ». Remplacez « OpenVPN TAP-Windows » par le nom réel de l'adaptateur VPN sur votre système.
Mac
Dans le client Tunnelblick, déconnectez-vous, puis reconnectez-vous.
Exécutez
dig example.comdans le Terminal. Remplacez example.com par votre nom de domaine privé. La présence d'une adresse IP privée correcte dans la réponse confirme que la configuration DNS fonctionne.
CentOS/AliOS
-
Ajoutez les lignes suivantes à la fin du fichier
config.ovpnsitué dans/etc/openvpn/conf:script-security 2 up /etc/openvpn/conf/client.up down /etc/openvpn/conf/client.down down-pre -
Copiez
client.upetclient.downdepuis le répertoire contrib d'OpenVPN vers le répertoire de configuration, puis rendez-les exécutables :sudo cp /usr/share/doc/openvpn/contrib/pull-resolv-conf/client.up /etc/openvpn/conf/ sudo cp /usr/share/doc/openvpn/contrib/pull-resolv-conf/client.down /etc/openvpn/conf/ sudo chmod +x /etc/openvpn/conf/client.up sudo chmod +x /etc/openvpn/conf/client.down -
Dans les fichiers
client.upetclient.down, remplacez le code suivant parif false; then:
-
Redémarrez le processus openvpn :
sudo killall openvpn sudo openvpn --config /etc/openvpn/conf/config.ovpn --daemon -
Vérifiez la mise à jour DNS :
cat /etc/resolv.conf Exécutez
dig example.com. Remplacez example.com par votre nom de domaine privé. La présence d'une adresse IP privée correcte confirme que le DNS fonctionne.
Pour désactiver le DNS personnalisé :
-
Déconnectez-vous du SSL-VPN :
sudo killall openvpn Modifiez le fichier
config.ovpnsitué dans/etc/openvpn/conf. Mettez en commentaire les quatre lignes commençant parscript-security,up,downetdown-pre.-
Redémarrez OpenVPN pour vous reconnecter :
sudo openvpn --config /etc/openvpn/conf/config.ovpn --daemon
Ubuntu
Téléchargez à nouveau le certificat depuis la console Alibaba Cloud. Dans la colonne SSL Client correspondant aux Actions ciblées, cliquez sur Download Certificate.
Sauvegardez le certificat existant dans
/etc/openvpn/confen le déplaçant vers un autre répertoire.Placez le nouveau certificat dans
/etc/openvpn/conf.-
Modifiez le fichier config.ovpn et décommentez les quatre dernières lignes :

-
Installez resolvectl (l'outil en ligne de commande pour systemd-resolved)
apt install systemd-resolved -
Définissez le DNS de tun0 comme priorité globale (~. signifie la correspondance avec tous les noms de domaine)
resolvectl domain tun0 "~." -
Redémarrez le processus openvpn :
sudo killall openvpn sudo openvpn --config /etc/openvpn/conf/config.ovpn --daemon -
Vérifiez la mise à jour DNS :
resolvectl status tun0 Exécutez
dig example.com. Remplacez example.com par votre nom de domaine privé. La présence d'une adresse IP privée correcte confirme que le DNS fonctionne.
Pour désactiver le DNS personnalisé :
-
Déconnectez-vous du SSL-VPN :
sudo killall openvpn Modifiez le fichier
config.ovpnsitué dans/etc/openvpn/conf. Mettez en commentaire les quatre lignes commençant parscript-security,up,downetdown-pre.-
Redémarrez OpenVPN pour vous reconnecter :
sudo openvpn --config /etc/openvpn/conf/config.ovpn --daemon
FAQ
Les paramètres DNS ne prennent pas effet
Assurez-vous que le sous-réseau du serveur DNS est inclus dans le Local CIDR Block configuré pour le SSL Server. Si ce n'est pas le cas, ajoutez-le au Local CIDR Block.
Vérifiez que le serveur DNS accepte les requêtes provenant du Client CIDR Block (le pool d'adresses IP alloué aux clients SSL-VPN).
Assurez-vous que le groupe de sécurité du serveur DNS autorise le trafic sur le port UDP 53.
Vérifiez si d'autres VPN ou logiciels réseau ne remplacent pas les paramètres DNS.
-
Pour les clients Windows, vérifiez également les points suivants :
Assurez-vous que l'adaptateur VPN possède la métrique la plus faible. Voir l'Étape 2 : Configurer le client.
Exécutez
ipconfig /flushdnspour vider le cache DNS, puis réessayez.
-
Pour les clients CentOS/AliOS, vérifiez également les points suivants :
Assurez-vous que les lignes
script-security 2et les scriptsup/downfigurent bien dans le fichier.ovpn.Vérifiez que
client.upetclient.downexistent dans/etc/openvpn/conf/.Consultez le fichier
/etc/resolv.confpour vérifier l'adresse DNS configurée.
-
Pour les clients Ubuntu, vérifiez également les points suivants :
Assurez-vous d'avoir retéléchargé le certificat et que les quatre dernières lignes du fichier
.ovpnne sont pas commentées.Vérifiez que les scripts de mise à jour DNS (
update-resolv-confouupdate-systemd-resolved) existent sur le système.Exécutez
resolvectl statuspour vérifier que l'adresse DNS configurée apparaît bien.
Retéléchargement du certificat client
Le retéléchargement du certificat n'est nécessaire que pour les clients Ubuntu.
Prise en charge des adresses IPv6
Non. Seuls les serveurs DNS dotés d'adresses IPv4 sont pris en charge.
Serveurs DNS inaccessibles
Le système ne vérifie pas l'accessibilité des serveurs DNS. Si les serveurs configurés sont injoignables, les clients ne pourront pas résoudre les noms de domaine après la connexion. Assurez-vous que les serveurs DNS sont opérationnels et que leurs sous-réseaux sont inclus dans la configuration de routage SSL-VPN.
Utilisation d'un serveur DNS hors VPC
Oui. Par exemple, vous pouvez définir les adresses des serveurs DNS sur le serveur SSL pour pointer vers un serveur DNS situé dans votre centre de données local.