Test entre interface physique et interface virtuelle

Bonjour,

Je vous explique mon petite soucis.
Je suis actuellement sur une Debian 2.6.32-5-686 qui tourne sur une virtual box.
Je souhaite pouvoir faire des tests entre une interface physique et une interface virtuelle tout en passant par un routeur.
Pour cela, j’ai configuré mon interface physique en DHCP et j’ai attribué une IP fixe à l’interface virtuelle. Voici une partie du fichier “interfaces”

[code]auto eth0
iface eth0 inet dhcp

auto eth0:0
iface eth0:0 inet static
address 10.1.8.2
netmask 255.255.255.0
gateway 10.1.8.254[/code]

L’interface eth0 a ceci :

10.8.1.1/24 gw 10.1.8.254

Je souhaite donc tester un lien en utilisant l’adresse de eth0:0 en IP destination et je souhaite que les requêtes passe par le routeur qui est en 10.1.8.254. J’ai donc ajouté une route et voici ce que j’obtiens avec route -n:

Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
10.1.8.2        10.1.8.254      255.255.255.255 UGH   0      0        0 eth0    ####route ajoutée
10.1.8.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         10.1.8.254      0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.1.8.254      0.0.0.0         UG    0      0        0 eth0

Pour voir si les requêtes sortent et se dirigent vers le routeur, je fait un simple ping de 10.1.8.2 vers 10.1.8.1. Cependant j’ai l’impression que je viens juste de simuler une sorte d’adresse de loopback.

Je souhaiterais donc savoir s’il est possible de diriger les requêtes de eth0:0 vers eth0 en passant par le routeur en 10.1.8.254.

Je souhaite donc avoir ceci (désolé pour le schéma)
eth0 ----------------------------------------------------------->|routeur|
eth0:0<----------------------------------------------------------|routeur|

J’espère avoir été clair dans mes explications. Si ce n’est pas le cas dites le moi.

Merci

Bob

bonjour,
au vue de la présentation, ceci est réalisé par virtualbox,
conseil gratuit, travailler avec des IPs fixes
exemple:
routeur: 192.168.1.x
ordinateur 192.168.1.yy
Debian Wheezy 64 bits sur VirtualBox 4.2.x.y-zzz :10.0.2.15 3.2.04-amd64,
dommage j’aurais préféré plus ressent, on verra plus tard

ifconfig -a coté ordinateur et coté VB
A+
JB1

eth0:0 n’est pas une interface virtuelle. C’est juste un artifice facultatif et obsolète pour configurer une adresse IP supplémentaire sur l’interface eth0 avec la commande ifconfig. La commande ip addr n’a pas besoin de cet artifice. Tu remarqueras que dans la table de routage eth0:0 n’apparaît pas, ce qui est normal : le routage n’utilise que des “vraies” interfaces, qu’elles soient physiques ou virtuelles. Même chose pour iptables au passage.

Donc en fait, la machine a une interface eth0 avec deux adresses, 10.1.8.1 et 10.1.8.2.

En effet, si l’adresse de destination appartient à la machine, alors le routage reste local via l’interface de loopback lo. Tu auras beau ajouter toutes les routes du monde, le routage local aura la priorité.

De eth0 vers eth0, plutôt, par l’intermédiaire du routeur.
Réponse courte : non.
Réponse longue : oui, mais c’est compliqué, il faut ajouter du NAT source et destination et des entrées ARP.

Quel est l’objectif ultime ?

Merci pour vos réponses.

Pour jb1:
La VM est lancée sur une machine équipée de Windows XP, la machine obtient une adresse via un DHCP. Virtual box est configuré en ‘pont’ pour que la VM puisse avoir une IP dynamique et puisse accéder au routeur.
Voici ce que j’ai sur la machine virtuelle en faisant un ‘ifconfig -a’

eth0      Link encap:Ethernet  HWaddr **:**:**:**:**:**  
          inet adr:10.1.8.1  Bcast:10.1.8.255  Masque:255.255.255.0
          adr inet6: fe80::****:**ff:fe**:****/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:47 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:4795 (4.6 KiB)  TX bytes:8087 (7.8 KiB)

eth0:0    Link encap:Ethernet  HWaddr **:**:**:**:**:**  
          inet adr:10.1.8.2  Bcast:10.1.8.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Boucle locale  
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          RX bytes:560 (560.0 B)  TX bytes:560 (560.0 B)

pan0      Link encap:Ethernet  HWaddr **:**:**:**:**:**  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Pour PascalHambourg:
Le but est faire une boucle d’un côté du réseau et tester cette boucle en utilisant un seul et unique ordinateur. En gros, utiliser Iperf sur un PC en tant que client et serveur en passant par une passerelle pour tester le lien.

d’accord, la couche 3 est plutôt logique,
la couche 2 et 1 nous dirons physique
A+
JB1

question:
le M$ est une machine 64 bits multicores?

Non c’est une machine en 32bits double coeur :unamused:

A mon avis ce n’est pas une bonne idée, mais c’est toi qui vois.
Voici une méthode pour forcer le trafic vers le routeur.
Il faut que le routeur permette d’ajouter des routes d’hôte statiques et soit capable de rerouter le trafic entrant par une interface vers la même interface de sortie.

Définir deux adresses virtuelles de destination VIPDST et source VIPSRC, en dehors de la plage DHCP de préférence pour éviter tout conflit. La machine enverra du trafic vers VIPDST et le verra revenir de VIPSRC.
Executer les commandes suivantes sur la machine.

[code]# adresse virtuelle de destination
VIPDST=10.1.8.2

adresse virtuelle source

VIPSRC=10.1.8.3

adresse du routeur

GW=10.1.8.254

NAT source en sortie des paquets destines a VIPDST

iptables -t nat -A POSTROUTING -d $VIPDST -j SNAT --to $VIPSRC

NAT destination en entree des paquets destines a VIPDST

iptables -t nat -A PREROUTING -d $VIPDST -j REDIRECT

routes

ip route add $VIPDST via $GW
ip route add $VIPSRC via $GW

bloquer les ICMP Redirect par precaution

iptables -I INPUT -p icmp --icmp-type redirect -j DROP[/code]
Sur le routeur, ajouter deux routes statiques pour VIPSRC et VIPDST avec comme passerelle l’adresse réelle de la machine, 10.8.1.1.
Envoyer du trafic à VIPDST.

Merci, je vais tester cela sur la maquette que j’ai (elle est faite pour ça) :smiley:

Une petite question, comme faits-tu pour savoir tout cela? :open_mouth: