Sur mon réseau domestique (10.0.1.0/24), j'ai mes Macs et mes appareils iOS (les autres n'ont pas d'importance). Les clients du réseau local ont un accès IPv4 et IPv6 (natif) via un Airport Extreme (AEBS) connecté à un modem câble sur Comcast (je n'ai pas de meilleur choix). J'ai besoin d'un VPN pour accéder à certaines ressources professionnelles et il serait pratique que le VPN "fonctionne" sur l'écran que j'ai sous la main. Pour éviter de gérer un client VPN sur chaque appareil, j'exécute OpenVPN sur mon serveur (10.0.1.252).
Lors de la connexion au VPN, le serveur reçoit les routes statiques typiques ajoutées et j'ai activé la redirection et le NAT pour que le trafic de $private_lan -> <vpn_netblocks>
est correctement acheminé par NAT dans le tunnel VPN (tun0). Mon récurseur DNS fonctionne sur ce serveur et sait qu'il doit transmettre certaines requêtes DNS aux serveurs DNS internes. Tout fonctionne.
La dernière étape consiste à faire connaître le VPN aux clients du réseau local. Leur route par défaut est l'AEBS (10.0.1.1). C'est idéal parce que l'AEBS et le modem câble ont leur propre batterie et que le réseau reste opérationnel plusieurs heures après une coupure de courant. Pour que les clients du réseau local puissent accéder au VPN, ils doivent connaître les routes plus spécifiques disponibles sur le serveur. Sous Mac OS, l'ajout manuel de routes statiques comme celle-ci fonctionne :
route add 10.7.0.0/16 10.0.1.252
La question est de savoir comment informer automatiquement les appareils Mac et iOS de la disponibilité de ces routes. Je ne peux pas ajouter de routes statiques à l'AEBS (je serais ravi qu'on me prouve le contraire !). Modifier la route IPv4 par défaut pour qu'elle pointe vers le serveur est mon dernier recours.
J'ai essayé d'ajouter les routes à dhcpd.conf comme routes statiques (code d'option dhcp 121), comme documenté dans RFC 3442 . Voici les parties pertinentes de mon dhcpd.conf :
# options for static routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
subnet 10.0.1.0 netmask 255.255.255.0 {
option rfc3442-classless-static-routes 16, 10,7, 10,0,1,252;
option ms-classless-static-routes 16, 10,7, 10,0,1,252;
# needed b/c this overrides option routers
option rfc3442-classless-static-routes 0, 10,0,1,1;
option ms-classless-static-routes 0, 10,0,1,1;
}
Les options sont servies par dhcpd mais elles sont ignorés par Mac OS X . Est-ce qu'il y a :
- Une autre option DHCP qui fonctionne ?
- Si je configure OSPF ou RIP, cela fonctionnera-t-il pour les appareils Mac et iOS ?
- Quelque chose comme le protocole de découverte des voisins pour IPv4 ?
Les pointeurs vers une documentation connue pour fonctionner sont très appréciés.
Update
- Ajouté dhcpd.conf montrant ma configuration
- Ajout d'un lien vers la discussion Apple citant l'absence de support pour le RFC 3442