DirectAccess avec des VM Linux
Depuis le début du confinement se pose le problème d’accès aux ressources de l’entreprise depuis son domicile. Et pour ceux qui utilisent la solution de VPN DirectAccess de Microsoft, la configuration de VM Linux pose pas mal de problème aux développeurs. En effet, mal configurée il est impossible d’accéder aux machines de l’entreprise.
En fait sur la machine Windows les noms des machines de l’entreprise sont résolus en IPV6. ET pour rappel je ne suis pas ingé réseau :(
DirectAccess
Pour rappel, DirectAccess est une solution de connexion réseau à distance fournit par Microsoft. Elle diffère des solutions de VPN classique puisqu’elle requiert aucune action de la part de l’utilisateur distant. C’est le système d’exploitation qui se charge de tout.
Le client DirectAccess initialise des tunnels IPsec IPv6 vers la passerelle DirectAccess. Dans un monde encore majoritairement basé sur l’IPv4 le trafic IPv6 y est encapsulé dans différentes technologies de transition (6to4, Teredo, IP-HTTPS) vers IPv6. Ce mécanisme permet d’établir un canal de communication réseau entre le client et le système d’information. Une fois ce canal initialisé, le client DirectAccess accède aux ressources internes de la même manière que lorsqu’il est connecté au réseau LAN. Le seul changement concerne le mécanisme de résolution de noms DNS. Lorsque le client DirectAccess demande la résolution d’un nom DNS dépendant du réseau de l’entreprise, la résolution de nom est prise en charge par la NRPT (Name Resolution Policy Table) qui fournit une réponse IPv6 à la demande de résolution. Lorsque le client tente de joindre la ressource avec cette adresse IPv6 NAT64 assure la transition d’IPv6 vers IPv4. (source wikipedia)
WSL : Windows Subsystem for Linux
En réinstallant WSL j’ai remarqué que la première version de WSL permettait d’y accéder mais pas la seconde.
En regardant la configuration sous WSL1 j’ai vu que la configuration réseau intégrait 3 cartes réseaux et certaines possédaient des adresses IPV6.
IPv4 address for eth2: 192.168.56.1 IPv6 address for eth3: fd2a:bd1a:eb4a:1000:be24:bec2:8e9d:7f3 IPv6 address for eth3: fd2a:bd1a:eb4a:1000:5123:bac7:993d:294c IPv6 address for eth3: fd2a:bd1a:eb4a:1000:844d:1c7e:8d2e:8b46 IPv4 address for wifi0: 192.168.0.197 IPv6 address for wifi0: 2a01:e0a:848:8890:5aa0:23ff:fe56:7d36 IPv6 address for wifi0: 2a01:e0a:848:8890:24fd:4bcc:b769:8b66 IPv6 address for wifi0: 2a01:e0a:848:8890:d890:1a6c:3351:91b8
J’ai donc cherché à configurer ma VM sous hyper-v de la même manière et ce sans succès. Et je suis tombé sur cet article ↗. J’ai donc résinstaller VirtualBox !
DirectAccess et Virtualbox
Dans les paramètres de VirtualBox il est possible de nater un réseau en activant le support d’ipv6.
FIchier > Paramètres > Réseau
Ensuite il faut activer trois cartes réseau:
- une NATed avec le mode promiscuité activé à
ALLOW ALL
- une Bridged sur la carte Wifi avec aussi mode promiscuité activé à
ALLOW ALL
- une Network NAT configuré sur le réseau créé précédement.
Dans la VM Linux il suffit simplement de les activer et de laisser DHCP faire le reste.
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:74:8f:2f brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3 valid_lft 83512sec preferred_lft 83512sec inet6 fe80::4e23:ac78:4b5f:6ba5/64 scope link noprefixroute valid_lft forever preferred_lft forever3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:4a:bc:c8 brd ff:ff:ff:ff:ff:ff inet 192.168.0.167/24 brd 192.168.0.255 scope global dynamic noprefixroute enp0s8 valid_lft 40312sec preferred_lft 40312sec inet6 2a01:e0a:848:8890:cbdb:24be:9fcb:b452/64 scope global dynamic noprefixroute valid_lft 86058sec preferred_lft 86058sec inet6 fe80::fd0a:a104:ac93:32b2/64 scope link noprefixroute valid_lft forever preferred_lft forever4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:c9:33:da brd ff:ff:ff:ff:ff:ff inet 10.0.2.4/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s9 valid_lft 339sec preferred_lft 339sec inet6 fd17:625c:f037:2:90cf:d4e5:a0db:cc06/64 scope global noprefixroute valid_lft forever preferred_lft forever inet6 fe80::c509:7471:9045:1a2/64 scope link noprefixroute valid_lft forever preferred_lft forever
Si vous avez des soucis avec la résolutions de noms. Il est possible de dire
à NetworkManager de ne pas gérer le fichier resolv.conf. Il faut modifier le
fichier /etc/NetworkManager/NetworkManager.conf
en ajoutant dns=none
à la
section [main].
[main]#plugins=ifcfg-rhdns=none
Ensuite ajouter dans le fichier resolv.conf le serveur DNS ipv6 fournit par votre administateur système.
search votre_domainnameserver fd2a:bd1a:eb4a:3333::1nameserver 8.8.8.8nameserver 192.168.0.254options timeout:10
Je suis persuadé qu’il existe des moyens de l’améliorer, en changeant les metrics des gateways par exemple si vous avez des pb sur les accès sur internet.
nmcli connection modify enp0s8 ipv4.route-metric 99```