Étant donné un server VPN distant (centralisé) avec une configuration StrongSwan IKEv2 avec une adresse IP statique externe:
Et deux passerelles faisant NAT pour les réseaux internes:
Les passerelles sont connectées à un server centralisé utilisant également StrongSwan.
La connection fonctionne parfaitement des passerelles au server et du server aux passerelles: ping fonctionne, access aux services sur le server / les passerelles. Les périphériques derrière les passerelles peuvent également accéder au server sans problèmes.
Le problème commence lorsque j'essaie d'accéder à des ordinateurs entre différentes passerelles.
centralisé:
conn base keyexchange = ikev2 keyingsortinges = %forever forceencaps = yes compress = no left = centralized leftid = @centralized leftauth = pubkey leftca = "..." leftcert = centralized.crt leftupdown = sudo -E ipsec _updown iptables leftsubnet = 192.168.1.65 right = %any rightauth = pubkey rightauth2 = psk rightca = %same conn gateway-first auto = add rightid = @gateway-first rightcert = gateway-first.crt rightsubnet = 192.168.1.32/27 rightsourceip = 192.168.1.66 also = base conn gateway-second auto = add rightid = @gateway-second rightcert = gateway-second.crt rightsubnet = 192.168.1.0/27 rightsourceip = 192.168.1.67 also = base
passerelle d'abord:
conn gateway-first auto = route dpdaction = restart closeaction = restart keyexchange = ikev2 keyingsortinges = %forever forceencaps = yes compress = no rightid = @centralized right = centralized rightauth = pubkey rightca = "..." rightcert = centralized.crt rightsubnet = 192.168.1.65,192.168.1.0/27 leftid = @gateway-first left = %defaultroute leftauth = pubkey leftauth2 = psk leftca = %same leftcert = gateway-first.crt leftupdown = sudo -E ipsec _updown iptables leftsubnet = 192.168.1.32/27 leftsourceip = %config4
passerelle-seconde:
conn gateway-second auto = route dpdaction = restart closeaction = restart keyexchange = ikev2 keyingsortinges = %forever forceencaps = yes compress = no rightid = @centralized right = centralized rightauth = pubkey rightca = "..." rightcert = centralized.crt rightsubnet = 192.168.1.65,192.168.1.32/27 leftid = @gateway-second left = %defaultroute leftauth = pubkey leftauth2 = psk leftca = %same leftcert = gateway-second.crt leftupdown = sudo -E ipsec _updown iptables leftsubnet = 192.168.1.1/27 leftsourceip = %config4
En essayant de passer la passerelle-seconde de l'ordinateur derrière la passerelle d'abord (IP de l'ordinateur source est 192.168.1.40) et en cours d'exécution tcpdump sur le server centralisé dans le même time montre:
tcpdump -i eth0 host 192.168.1.1 -n error : ret -1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listning on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 21:27:49.030650 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 35, length 64 21:27:50.026652 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 36, length 64 21:27:51.031805 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 37, length 64 21:27:52.041165 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 38, length 64 21:27:53.029530 IP 192.168.1.40 > 192.168.1.1: ICMP echo request, id 9721, seq 39, length 64
Donc, selon ce log packages sont arrivés au server centralisé , mais jamais transmis à la 192.168.1.1 .
Sur le server centralisé et les deux passerelles, j'ai activé le transfert:
net.ipv4.ip_forward = 1
Table de routing sur server centralisé:
# ip route default via yy.yy.yy.yy dev eth0 proto static zz.zz.zz.zz dev eth0 proto kernel scope link src xx.xx.xx.xx 192.168.1.64/27 via 192.168.1.65 dev eth1 proto static
Et aussi router la table # 220 (VPN):
# ip route show table 220 192.168.1.0/27 via 5.189.141.1 dev eth0 proto static src 192.168.1.65 192.168.1.32/27 via 5.189.141.1 dev eth0 proto static src 192.168.1.65
Des idées pour activer le transfert entre deux tunnels différents?
Essayez d'append les sous-réseaux des deux passerelles à leftsubnet
sur le server central. Même si rightsubnet
sur chaque passerelle inclut le sous-réseau opposé respectif, le sélecteur de trafic sera réduit à ce qui est configuré sur le server central comme leftsubnet
(c.-à-d. 192.168.1.65
). Vous devriez voir cela dans la sortie de ipsec statusall
. Vous pouvez aussi configurer leftsubnet=0.0.0.0/0
sur le server central, alors il acceptera tout ce que les passerelles proposent comme leur rightsubnet
.