0 votes

Comment accéder simultanément à des périphériques IPv4 sur 2 réseaux 10/24 différents en utilisant 2 connexions VPN actives ?

Après la vente d'une entreprise à différentes parties, vous pouvez vous retrouver dans une situation où l'ancien réseau 10.0.0.0/8 est divisé en deux ou plusieurs réseaux différents, comme 10.0.0.0/24 et 10.0.1.0/24.

Maintenant je souhaite accéder aux deux réseaux en même temps en utilisant Mavericks client VPN intégré. Un réseau VPN est en L2TP, l'autre en PPTP.

Cependant, seuls les appareils de la première connexion VPN établie peuvent être atteints, et non les ordinateurs du second réseau. La seule exception est l'IP distante (passerelle) de la connexion VPN n°2.

Comment puis-je réparer cela ? fixer et oublier ?

Note : Avec fixer et oublier Je veux dire que je ne veux pas avoir d'étapes supplémentaires pour "composer" un profil de connexion VPN déjà existant.

0voto

Pro Backup Points 3456

Problème de routage

Le problème ici est que les deux profils de connexion VPN sont dans un réseau 10, qui est officiellement livré avec un /8 alias. 255.0.0.0 alias. 0xff000000 masque de réseau. Ainsi, lorsque vous établissez les deux connexions VPN en même temps, vous n'avez qu'une seule destination dans la table de routage de la connexion 10-réseau . Et cette entrée de routage acheminera tous les 10.x.x.x le trafic vers la première connexion ppp établie, à l'exception des adresses IP locales et distantes dans la deuxième connexion ppp.

$ netstat -nr -f inet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.1        UGSc           10        0     en0
default            10.0.1.1           UGScI           0        0    ppp0
default            10.0.0.1           UGScI           0        0    ppp1
10                 ppp0               USc             1        0    ppp0
10.0.0.1           10.0.0.12          UHr             2        0    ppp1
10.0.1.1           10.0.1.200         UHr             1        0    ppp0

Solution de routage

La solution consiste à ajouter manuellement les entrées souhaitées dans la table de routage. Il n'est pas nécessaire de supprimer l'entrée 10, il suffit d'ajouter de nouvelles entrées de route. Tant que les nouvelles entrées de route ajoutées adressent un sous-réseau plus petit, l'entrée aura la préférence. En d'autres termes, lorsque le sous-réseau a une valeur plus élevée, l'entrée sera préférée. /X numéro. Par exemple /24 est plus élevé que /8 donc un 10/24 aura la préférence sur une entrée 10/8 entrée de routage. En fait, ajoutez une nouvelle entrée de routage après avoir établi la deuxième connexion VPN, comme : $ sudo /sbin/route -n add -net 10.0.2.0/24 -interface ppp1

Solution d'automatisation

C'est lourd et peut introduire des erreurs lorsqu'il faut entrer la route manuellement après avoir établi la connexion VPN secondaire. Heureusement, il existe une solution intégrée dans le démon ppp qui utilise if-up comme vous pouvez le lire dans $ man pppd . Chaque fois qu'une connexion ppp (VPN) est établie qui utilise un adressage IPv4, un script ( /etc/ppp/if-up ) est appelé, où vous pouvez exécuter vos règles/commandes personnalisées, c'est-à-dire des crochets.

Le script ci-dessous est abondamment commenté et devrait être explicite.

Votre Mac ne dispose peut-être pas de ce script ( $ ls /etc/ppp ). Dans ce cas, créez-le ( $ sudo touch /etc/ppp/ip-up ) avec e x les permissions imputables ( $ sudo chmod +x /etc/ppp/ip-up ).

#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It should be used to add routes, set IP address, etc.
#
# Tested with Mavericks (Mac OS X 10.9)
#
# This script is called with the following arguments:
# Arg   Name            Example
# $0    Script full location    /etc/ppp/ip-up
# $1    Interface name      ppp0
# $2    TTY device      <blank>
# $3    Speed           0
# $4    Local IP address    10.0.0.200
# $5    Remote IP address   10.0.0.1
# $6    LAN gateway     192.168.0.1
# source for $1-$6 is $ man -P 'less -p "    /etc/ppp/ip-up"' pppd

# ppp.log for non english systems do still have an english timestamp
export LC_TIME="C";

# Note: there is no static assignment for ppp0 to PPTP and ppp1 to L2TP
#       therefore $1 isn't useful to differentiate VPN networks

# To debug, uncomment the line below
#echo "$(date +%c) : \$5=$5" >> /var/log/ppp.log

# Add your routing table corrections here
# note: 2>&1 will redirect errors to the standard output
case "$5" in
10.0.0.1) OUT=$(exec /sbin/route -n add -net 10.0.0.0/24 -interface "$1" 2>&1) ;;
10.0.1.1) OUT=$(exec /sbin/route -n add -net 10.0.1.0/24 -interface "$1" 2>&1) ;;
esac

# If standard output is not empty, log it prepended by a timestamp
[ ! -z "$OUT" ] && echo "$(date +%c) : $OUT" >>/var/log/ppp.log

# There is automatic route removal on ppp disconnect.
# So no need to manually remove the above route(s) in /etc/ppp/ip-down

Avec les remerciements pour l'idée de jalbrecht2000 à http://hints.macworld.com/article.php?story=20030906232648318

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X