Bonjour,
J'ai grandement besoin t'aide svp ...
J'ai un problème avec openvpn et interface de sortie,
jespere trouver ici une réponse et merci pour votre aide.
Voici le shema actuelement en place,
Host1 Host0
eth0 --\ /-- eth0
tap0 --- br0 <--> Internet <--> br0 --- tap0 Serveur
br0 --/ \-- br0
tap1 --/
Host1 :
- 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
-------------------------------
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
Pas de réponse
---------------
Serveur Openvpn
---------------
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
La requete icmp est bien visible
----------------------------
Serveur Host1 Interface TAP0
----------------------------
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
La requete icmp est bien visible
----------------------------------------
Serveur Qemu/Kvm sur tap1 vps (qemu/kvm)
----------------------------------------
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
Ok, le VPS repond bien au ping
----------------------------
Serveur Host1 Interface ETH0
----------------------------
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
La réponse passe par ETH0, la route par defaut.
Pourqoui 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 reponse au ping (chez free) mais ce n'est pas le cas
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
echo > /proc/sys/net/ipv4/ip_forward est bien à 1
J'ai essayer MARK de iptable sans succès, ça sort toujours par eth0
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
Merci pour vos réponses.
JP