réseau instable dans tun/tap

Le
Bastien Durel
Bonjour,

j'ai une machine virtuelle KVM sur un serveur debian/etch[1], cette VM
fait tourner un OpenBSD 4.3.

Le réseau passe par une interface TAP, le trafic est routé[2] par
l'interface créée par kvm.

Je peux accéder à la VM par ssh, et l'administrer simplement ; par
contre, dès que je tente de faire un transfert un peu lourd, je perds la
connexion. Cala arrive, par example, quand je tente de synchroniser les
sources via cvs up dans /usr/src. Ou quand je tente d'uploader un
fichier de plus de 2Mo via scp[3].
Cela arrive aussi si je compile un noyau, par example, après un temps
le listing cesse ce bouger et la connexion ssh timeout.

Si je me connecte en ssh depuis la VM et que je fais un ls -lR /, la
connexion gèle après quelques centaines de lignes. Si je redirige la
sortie vers un fichier, ça avance jusqu'à un certain point, puis ça
gèle, puis ça reprend, mais ça finit par arriver au bout. Je n'ai pas
non plus de problème pour télécharger des paquets, même un peu gros.

tcpdump me signale que des paquets sont tronqués :
bastien@arrakeen:/tmp$ sudo tcpdump -vv -i openbsd host anoncvs.skyrock.com
tcpdump: listening on openbsd, link-type EN10MB (Ethernet), capture size
96 bytes
20:34:45.231312 IP (tos 0x0, ttl 50, id 9524, offset 0, flags [DF],
proto: TCP (6), length: 144) 88.191.49.240.ssh > spice.geekwu.org.10797:
P 1482796299:1482796363(64) ack 22241618 win 17524 <nop,nop,timestamp
2452052866 0,nop,nop,sack 3 {14829:14989}{9437:12133}{5393:6741}>
20:34:45.427546 IP (tos 0x8, ttl 64, id 7325, offset 0, flags [DF],
proto: TCP (6), length: 52) spice.geekwu.org.10797 > 88.191.49.240.ssh:
., cksum 0xbae4 (correct), 14989:14989(0) ack 64 win 16384
<nop,nop,timestamp 2609221548 2452052866>
20:35:43.888889 IP truncated-ip - 700 bytes missing! (tos 0x8, ttl 64,
id 42915, offset 0, flags [none], proto: TCP (6), length: 1400)
spice.geekwu.org.10797 > 88.191.49.240.ssh: . 1:1349(1348) ack 64 win
16384 <nop,nop,timestamp 2609221665 2452052866>

Je ne vois pas passer ces paquets (truncated-ip) sur eth0.

En ipv6, le comportement est encore plus étrange, je peux me connecter
en ssh/ipv6, mais pas faire un ping depuis l'extérieur vers la vm.
bastien@arrakeen:/tmp$ sudo tcpdump -vv -i openbsd ip6
tcpdump: listening on openbsd, link-type EN10MB (Ethernet), capture size
96 bytes
20:43:16.184607 IP6 (hlim 62, next-header: ICMPv6 (58), length: 64)
sietchtabr.geekwu.org > spice.geekwu.org: ICMP6, echo request, length
64, seq 1
20:43:16.184950 IP6 truncated-ip6 - 12846 bytes missing!(class 0x42,
flowlabel 0x0c448, hlim 0, next-header: unknown (3), length: 12862)
809:a0b:c0d:e0f:1011:1213:1415:1617 >
1819:1a1b:1c1d:1e1f:2021:2223:2425:2627: ip-proto-3 12862

Par contre, un ping6 depuis la VM vers l'extérieur fonctionne.

Avez-vous une idée, un début de piste ?
Je poste sur fcolc, fcob, et fcr.ip, follow-up to fcolc par défaut,
n'hésitez-pas à le changer si vous pensez qu'il existe un newsgroup plus
approprié.
Je peux fournir des .pcap ou d'autres informations si vous en avez besoin.

Merci d'avance,

[1] Linux arrakeen 2.6.26.3-grsec #2 SMP Fri Sep 5 12:07:28 CEST 2008
i686 GNU/Linux

[2] l'interface est gérée par le script suivant :
bastien@arrakeen:~$ cat /service/openbsd/qemu-ifup
#!/bin/sh
echo "Configure $1 interface"
sudo /sbin/ip link set $1 up
sudo /sbin/ifconfig $1 10.42.1.1 broadcast 10.42.1.255 netmask 255.255.255.0
echo "1" >> /proc/sys/net/ipv4/ip_forward
sudo /sbin/ip route add 10.42.1.2/32 via 10.42.1.1 dev $1

[3]
# scp obj/bsd.gz root@fremen:/flash/bsd.gz.new
root@fremen's password:
bsd.gz 31% 2064KB 1.1MB/s - stalled -
^CKilled by signal 2.
#

--
Bastien
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bastien Durel
Le #16764941
On 07/09/2008 20:51, Bastien Durel wrote:
Bonjour,

j'ai une machine virtuelle KVM sur un serveur debian/etch[1], cette VM
fait tourner un OpenBSD 4.3.

Le réseau passe par une interface TAP, le trafic est routé[2] par
l'interface créée par kvm.



Bonjour,

Avec une autre interface émulée (pcnet -> e1000), plus de problème.
Désolé pour le bruit ;)

--
Bastien
Pascal Hambourg
Le #16766061
Bastien Durel a écrit :

j'ai une machine virtuelle KVM sur un serveur debian/etch[1], cette VM
fait tourner un OpenBSD 4.3.

Le réseau passe par une interface TAP, le trafic est routé[2] par
l'interface créée par kvm.



Avec une autre interface émulée (pcnet -> e1000), plus de problème.



Donc il y aurait une incompatibilité entre l'émulation du contrôleur
pcnet dans KVM et le pilote correspondant dans OpenBSD ?

Désolé pour le bruit ;)



Au contraire, c'est bon à savoir.
Bastien Durel
Le #16772181
On 09/09/2008 17:57, Pascal Hambourg wrote:
Bastien Durel a écrit :

j'ai une machine virtuelle KVM sur un serveur debian/etch[1], cette VM
fait tourner un OpenBSD 4.3.

Le réseau passe par une interface TAP, le trafic est routé[2] par
l'interface créée par kvm.



Avec une autre interface émulée (pcnet -> e1000), plus de problème.



Donc il y aurait une incompatibilité entre l'émulation du contrôleur
pcnet dans KVM et le pilote correspondant dans OpenBSD ?



Ça se pourrait. Ou alors, il y a un truc qui m'échappe. À noter que dans
une VM qemu "nu", le problème se posait pareillement.

Désolé pour le bruit ;)



Au contraire, c'est bon à savoir.


C'est quand même pour ça que j'ai posté la "solution" :)
Publicité
Poster une réponse
Anonyme