Une plage n’est pas une route : transformez 200-255 en trois préfixes
Une ligne de route prend un réseau et un masque, jamais une adresse de début et de fin. Additionnez la plage en préfixes alignés avant qu’OpenVPN ne l’installe.
Les règles de pare-feu acceptent une première et une dernière adresse, par exemple 192.168.0.200 à 192.168.0.255, alors que les routes non. Une entrée de route n’a de place que pour un réseau et un masque, ce qui signifie qu’une plage contiguë doit devenir un ou plusieurs préfixes alignés avant que OpenVPN ne l’installe. Un profil qui associe route-nopull à un intervalle non aligné est l’endroit où l’échec se cache d’habitude, parce que le fichier s’analyse et qu’aucune route ne correspond. Corrigez les blocs et l’échec devient visible en une seule commande.
Le mythe : une plage est une route
Les tables de routage stockent des paires réseau et masque et choisissent la correspondance la plus longue, donc un intervalle avec un début et une fin n’a nulle part où loger. Un préfixe couvrant 256 adresses couvre .0 à .255, la moitié de cette taille couvre .0 à .127, et seule une plage alignée sur ces bords se mappe en une étape. Tout le reste doit être découpé en blocs. Une route plus petite signifie toujours l’intervalle d’origine.
Une plage qui n’est pas alignée sur un préfixe n’est pas une route compressée. C’est un autre type d’objet, et la traiter comme une route est l’endroit où l’échec silencieux commence.
L’alignement est de l’arithmétique, pas du style
Les tailles de bloc sont fixées par la longueur du préfixe. Un /29 ne peut commencer qu’à une adresse divisible par 8, un /28 à une adresse divisible par 16, un /27 à une adresse divisible par 32. Déplacez un bloc hors de sa frontière et le masque couvrira un ensemble d’adresses différent de celui que vous visiez.
Additionnez depuis le bas. À chaque étape, prenez le plus grand bloc aligné qui ne dépasse pas la fin de la plage, puis continuez à la première adresse après lui. Les blocs ne peuvent pas se chevaucher, parce que chacun commence là où le précédent s’est arrêté.
Deux personnes faisant cela à la main devraient arriver au même résultat. Un désaccord signifie que quelqu’un a autorisé un début qui n’était pas aligné.
Parcourez 200 à 255
| Step | Start | Block that fits | Line for the profile |
|---|---|---|---|
| 1 | .200, multiple of 8 | /29, 8 addresses | 192.168.0.200 255.255.255.248 |
| 2 | .208, multiple of 16 | /28, 16 addresses | 192.168.0.208 255.255.255.240 |
| 3 | .224, multiple of 32 | /27, 32 addresses | 192.168.0.224 255.255.255.224 |
La plage commence à .200, qui est un multiple de 8, donc le premier bloc est un /29 de .200 à .207. Après ces huit adresses, la première valeur libre est .208, qui se divise par 16, donc un /28 prend .208 à .223. Ce qui reste est .224 à .255, trente-deux adresses commençant sur un multiple de 32, donc un /27. Ces trois lignes sont toute la décomposition.
Écrivez-les comme des lignes de route plutôt que comme de la prose. Un profil qui ne contient que la première ligne couvre huit adresses et laisse le reste hors du tunnel.
route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224
Le dernier bloc a besoin d’une vérification de frontière. Dans 192.168.0.224/27, .224 est l’adresse réseau et .255 est l’adresse de diffusion, donc un hôte qui doit répondre sur .255 est couvert par le préfixe et reste injoignable. Déplacez cet hôte ou découpez la plage autrement au lieu de router le bloc en espérant.
Ce que route-nopull fait à l’image
N’ajoutez route-nopull que lorsque les routes poussées par le serveur ne sont pas voulues. Sans la directive, les routes poussées et ces lignes coexistent, et le préfixe le plus spécifique gagne. Avec elle, les options DNS et DHCP poussées disparaissent aussi, donc la résolution de noms interne a besoin de sa propre configuration. Cet effet de bord surprend ceux qui ont ajouté la directive pour corriger un problème de route.
Ajoutez-la pour la bonne raison, pas par réflexe automatique. Retirer les routes poussées est une décision de politique avec une conséquence sur le DNS. Si le serveur peut pousser les mêmes trois préfixes, laissez-le faire, et supprimez les copies côté client pour qu’un seul propriétaire contrôle la liste.
Des contrôles qui attrapent les erreurs habituelles
Vérifiez que chaque masque est une suite contiguë de uns. La valeur 255.255.255.248 passe et 255.255.255.200 échoue, et un masque qui n’est pas contigu est rejeté ou mal lu. Confirmez ensuite le chemin pour une adresse de chaque bloc.
ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240
Chaque réponse devrait nommer l’interface du tunnel. Un résultat qui nomme l’adaptateur physique signifie que la ligne n’a jamais été installée, ce qui arrive souvent quand un gestionnaire de réseau de bureau réécrit la table après la connexion du profil.
Choisissez un seul propriétaire pour la liste. Quand le serveur peut pousser les mêmes préfixes, poussez-les et supprimez les modifications côté client. Un seul propriétaire signifie qu’une faute de frappe a un seul endroit où vivre, et le client et le serveur ne peuvent pas être en désaccord sur les adresses qui se trouvent dans le tunnel.