Bonjour,
J'ai grandement besoin t'aide svp ...
J'ai un problème avec openvpn et interface de sortie,
j’espère trouver ici une réponse et merci pour votre aide.
Voici le schéma actuellement en place :
Host1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Host1 Host0 eth0 --\ /-- eth0 tap0 --- br0 <--> Internet <--> br0 --- tap0 Serveur br0 --/ \-- br0 tap1 --/
- br0 = 188.165.202.x
- tap0 = 10.8.0.2 tunnel openvpn (client)
- tap1 = 79.x.y.z Interface pour un vps qemu/kvm avec une IP du reseau de Host0
Host0 :
- br0 = 91.a.b.c
- tap0 = 10.8.0.1 tunnel openvpn (serveur)
Pour le test :
free.fr --> Internet -> serveur vpn -->client vpn --> serveur hote --> vps
Le problème :
Lors d'un ping l'interface de sortie n'est pas la bonne interface
donc pas de réponse au ping.
La requete vient de tap0 et sort par eth0
Ping depuis une connexion free :
Pas de réponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 free:~# ping 79.x.y.z PING 79.x.y.z (79.x.y.z) 56(84) bytes of data. ^C --- 79.x.y.z ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3003ms free:~# tcpdump -n icmp listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 14:46:16.430494 IP 192.168.0.2 > 79.x.y.z: ICMP echo request, id 60779, seq 4999, length 64 14:46:17.430450 IP 192.168.0.2 > 79.x.y.z: ICMP echo request, id 60779, seq 5000, length 64 14:46:18.429951 IP 192.168.0.2 > 79.x.y.z: ICMP echo request, id 60779, seq 5001, length 64
Serveur Openvpn :
La requête icmp est bien visible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 openvpn:~# tcpdump -n icmp -i tap0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on tap0, link-type EN10MB (Ethernet), capture size 96 bytes 15:51:46.739035 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 5156, length 64 15:51:47.739793 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 5157, length 64 15:51:48.740547 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 5158, length 64
Serveur Host1 Interface tap0 :
La requête icmp est bien visible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 root@ovh1:~# tcpdump -i tap0 -n icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on tap0, link-type EN10MB (Ethernet), capture size 65535 bytes 14:38:52.885329 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4528, length 64 14:38:53.885097 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4529, length 64 14:38:54.886386 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4530, length 64
Serveur Qemu/Kvm sur tap1 vps (qemu/kvm)
Ok, le VPS répond bien au ping
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 root@ns2001:~# tcpdump -n icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 15:33:55.471000 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4233, length 64 15:33:55.471532 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4233, length 64 15:33:56.472399 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4234, length 64 15:33:56.472517 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4234, length 64 15:33:57.488661 IP 82.236.ip.free > 79.x.y.z: ICMP echo request, id 60779, seq 4235, length 64 15:33:57.488796 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4235, length 64
Serveur Host1 Interface eth0 :
La réponse passe par ETH0, la route par defaut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 root@ovh1:~# tcpdump -i eth0 -n icmp tcpdump: WARNING: eth0: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 14:41:36.269280 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4691, length 64 14:41:37.280951 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4692, length 64 14:41:38.282116 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4693, length 64 14:41:39.286983 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4694, length 64 14:41:40.297008 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4695, length 64 14:41:41.298019 IP 79.x.y.z > 82.236.ip.free: ICMP echo reply, id 60779, seq 4696, length 64
Pourquoi elle ne passe pas par TAP0 ?
A la limite que ça passe par ETH0 c'est pas grave à partir du moment au j'ai une réponse au ping (chez free) mais ce n'est pas le cas
echo > /proc/sys/net/ipv4/ip_forward est bien à 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 root@host:~# route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 0.0.0.0 188.165.202.254 0.0.0.0 UG 0 0 0 br0 10.9.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 188.165.202.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
J'ai essayer MARK de iptable sans succès, ça sort toujours par eth0
Merci pour vos réponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 iptables -t mangle -A PREROUTING -i tap0 -j MARK --set-mark 1 ip route add table mytest default dev tap0 ip rule add fwmark 1 table mytest ip route flush cache
JP
Partager