Routage ipv6

Routage ipv6 - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 17-09-2009 à 17:49:34    

Je suis en train d'essayer de mettre en place une machine virtuelle (virtualbox) sous windows avec l'hote qui forward les paquets, en ipv6. La machine virtuelle est configuree avec le reseau en "pont".
 
Situation : hote sous ubuntu, avec une interface eth2 (reseau ethernet) sur lequel un routeur ipv6 est connecte. Je peut depuis l'hote faire un ping sur ce routeur (vers sont adresse ipv6).
Je peut depuis l'hote pinguer en ipv6 vers l'interface brIPv6, interface virtuelle sur laquelle est connectee la machine virtuelle.
 
MAIS depuis mon guest, je ne peut pas pinguer vers l'exterieur. J'ai pourtant precise une adresse ipv6 dans le meme sous reseau, et une route ajoutee avec le meme sous reseau comme cela : netsh interface ipv6 add route fd04:0bd3:80e8:0001::/64 "<name interface>"
 
Toutes les adresses sont du type : fd04:0bd3:80e8:0001::X
eth2: X=3
brIPv6: X=4
guest: X=2
routeur ipv6: X=1
 
je pense que c'est du a un probleme de routage avec ip6tables, mais je galere vraiment a faire fonctionner les deux sens. Auriez-vous une idee de comment realiser cela ?
 
Je vous remercie


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 17-09-2009 à 17:49:34   

Reply

Marsh Posté le 17-09-2009 à 18:06:35    

un schéma est de rigueur :o

Reply

Marsh Posté le 17-09-2009 à 18:13:43    

Vite fait a l'arrache :
 
http://img30.imageshack.us/img30/6315/schemag.png


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 17-09-2009 à 18:19:15    

Il faut activer l'ip forwarding sur host je pense.

Reply

Marsh Posté le 17-09-2009 à 18:20:53    

paulez a écrit :

Il faut activer l'ip forwarding sur host je pense.


J'ai fait ca :

 

ip6tables -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT
ip6tables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT

 

Avec EXTIF = eth2 et INTIF=brIPv6

 

Mais l'hote seulement peut acceder a tout... d'ailleurs pas tout a fait, il faut pour pinger le guest, que je precise l'interface brIPV6 pour reussir a le pinger, sinon rien.

 

Exemple :

 
Code :
  1. ping6 fd04:0bd3:80e8:0001::2 -I brIPv6
  2. PING fd04:0bd3:80e8:0001::2(fd04:bd3:80e8:1::2) from fd04:bd3:80e8:1::3 brIPv6: 56 data bytes
  3. From fd04:bd3:80e8:1::3 icmp_seq=1 Destination unreachable: Address unreachable
  4. From fd04:bd3:80e8:1::3 icmp_seq=2 Destination unreachable: Address unreachable
  5. From fd04:bd3:80e8:1::3 icmp_seq=3 Destination unreachable: Address unreachable
  6. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=4 ttl=128 time=1.01 ms
  7. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=5 ttl=128 time=0.374 ms
  8. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=6 ttl=128 time=0.370 ms
  9. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=7 ttl=128 time=0.353 ms
  10. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=8 ttl=128 time=0.358 ms
  11. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=9 ttl=128 time=0.387 ms
  12. 64 bytes from fd04:bd3:80e8:1::2: icmp_seq=10 ttl=128 time=0.341 ms
 
Code :
  1. ip6tables
  2. ip6tables v1.4.1.1: no command specified
  3. Try `ip6tables -h' or 'ip6tables --help' for more information.
  4. root@xglurb-desktop:~/scripts/vbox_bridge# ip6tables -L
  5. Chain INPUT (policy ACCEPT)
  6. target     prot opt source               destination       
  7. Chain FORWARD (policy ACCEPT)
  8. target     prot opt source               destination       
  9. ACCEPT     all      anywhere             anywhere           
  10. ACCEPT     all      anywhere             anywhere           
  11. Chain OUTPUT (policy ACCEPT)
  12. target     prot opt source               destination


Message édité par guepe le 17-09-2009 à 18:22:53

---------------
Un blog qu'il est bien
Reply

Marsh Posté le 17-09-2009 à 18:22:12    

Cela s'active comme ceci :  
sysctl -w net.ipv6.conf.all.forwarding=1

Reply

Marsh Posté le 17-09-2009 à 18:25:22    

Avec ca j'ai aussi besoin de mes regles ip6tables ? Je viens de rajouter cela, mais rien n'a change : l'hote s'en sort pas trop mal, pas le guest.

 

Pour recapituler : depuis l'hote je ping sans soucis le router ipv6, pour pinger la machine windows il me faut preciser passer par l'interface brIPv6
Depuis le guest, je peut pinger l'interface brIPv6 (addresse :4 finale), mais rien d'autre (ah si lui meme, en :2)


Message édité par guepe le 17-09-2009 à 18:28:39

---------------
Un blog qu'il est bien
Reply

Marsh Posté le 18-09-2009 à 10:41:31    

Tu dois activer l'ip_forward, ip6tables n'est pas utile ici.
 
Par contre tu peux pas avoir toutes les machine dans le meme subnet, unquement les machines qui sont sur le cable. tu dois par exemple avoir fd04:0bd3:80e8:0001::/64 et fd04:0bd3:80e8:0002::/64 sur les 2 interfaces de host et la machine directement connecté sur l'interface doit etre dans le meme subnet
 
A moins que ce que tu veux faire c'est que host simule un switch dans ce ca tu dois utiliser brctl


Message édité par Bigon le 18-09-2009 à 10:41:39
Reply

Marsh Posté le 18-09-2009 à 15:52:57    

J'ai essaye : c'est pareil, les deux sous-reseaux n'arrivent pas a communiquer. Faut-il ajouter une route particuliere dans le guest ? J'ai essaye mais idem.
 
Au final cote hote je configure comme cela :
 

Code :
  1. tunctl -t tapIPv6 -u $USER
  2. ip link set up dev tapIPv6
  3. # create the bridge
  4. brctl addbr brIPv6
  5. brctl addif brIPv6 tapIPv6
  6. # set the IP address and routing
  7. ip link set up dev brIPv6
  8. #set ip address to eth2
  9. ip -6 addr add fd04:0bd3:80e8:0001::3/64 dev eth2
  10. ip -6 addr add fd04:0bd3:80e8:0002::4/64 dev brIPv6 #br interface has address 4
  11. ip -6 route add fd04:0bd3:80e8:0002::/64 dev brIPv6 #route packets !
  12. sysctl -w net.ipv6.conf.all.forwarding=1


 
Cote guest j'ai :
 

Code :
  1. netsh interface ipv6 add address "Local Network 2" fd04:0bd3:80e8:0002::2
  2. netsh interface ipv6 add route fd04:0bd3:80e8:0002::/64 "Local Network 2"
  3. netsh interface ipv6 add route fd04:0bd3:80e8:0001::/64 "Local Network 2"


 
Mais cela fait exactement la meme chose : le guest ne peut acceder au sous reseau :0001  :(


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 18-09-2009 à 15:59:18    

guepe a écrit :

J'ai essaye : c'est pareil, les deux sous-reseaux n'arrivent pas a communiquer. Faut-il ajouter une route particuliere dans le guest ? J'ai essaye mais idem.
 


Si tu fais du routage, sur le guest, il te faut au minimum une route par défaut qui pointe sur l'adresse IPv6 du host (adresse se situant dans le même plan d'adressage réseau que le host)

Message cité 1 fois
Message édité par l0ky le 18-09-2009 à 16:00:38
Reply

Marsh Posté le 18-09-2009 à 15:59:18   

Reply

Marsh Posté le 18-09-2009 à 16:58:04    

l0ky a écrit :


Si tu fais du routage, sur le guest, il te faut au minimum une route par défaut qui pointe sur l'adresse IPv6 du host (adresse se situant dans le même plan d'adressage réseau que le host)


C'est le cas, la preuve (message precedent) :  
 

Code :
  1. netsh interface ipv6 add route fd04:0bd3:80e8:0001::/64 "Local Network 2"


 
Local Network 2 etant l'interface reseau windows connectee en ipv6 avec l'adresse fd04:0bd3:80e8:0002::2


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 22-09-2009 à 04:46:51    

Bon ca n'est toujours pas fonctionnel :-(
Voici ou j'en suis :
 
Host:

Code :
  1. eth2      Link encap:Ethernet  HWaddr 4c:00:10:51:f9:e8 
  2.           adr inet6: fd04:bd3:80e8:1::3/64 Scope:Global
  3.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  4.           Packets reçus:176 erreurs:0 :0 overruns:0 frame:0
  5.           TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
  6.           collisions:0 lg file transmission:1000
  7.           Octets reçus:17776 (17.7 KB) Octets transmis:12762 (12.7 KB)
  8.           Interruption:17 Adresse de base:0xcc00
  9. brIPv6    Link encap:Ethernet  HWaddr 22:25:10:55:6f:ed 
  10.           adr inet6: fd04:bd3:80e8:3::4/64 Scope:Global
  11.           adr inet6: fe80::2025:10ff:fe55:6fed/64 Scope:Lien
  12.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  13.           Packets reçus:259 erreurs:0 :0 overruns:0 frame:0
  14.           TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
  15.           collisions:0 lg file transmission:0
  16.           Octets reçus:21096 (21.0 KB) Octets transmis:8156 (8.1 KB)
  17. tapIPv6   Link encap:Ethernet  HWaddr 22:25:10:55:6f:ed 
  18.           adr inet6: fd04:bd3:80e8:3::3/64 Scope:Global
  19.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  20.           Packets reçus:0 erreurs:0 :0 overruns:0 frame:0
  21.           TX packets:0 errors:0 dropped:238 overruns:0 carrier:0
  22.           collisions:0 lg file transmission:500
  23.           Octets reçus:0 (0.0 B) Octets transmis:0 (0.0 B)


 
brIPv6 est connecte a la machine virtuelle au travers de tapIPv6, et eth2 au routeur ipv6 sur fd04:0bd3:80e8:0001::1
 
J'ai les routes suivantes sur le host :
 

Code :
  1. fd04:bd3:80e8:1::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
  2. fd04:bd3:80e8:1::/64 dev eth2  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295
  3. fd04:bd3:80e8:2::/64 dev eth2  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295
  4. fd04:bd3:80e8:3::/64 dev brIPv6  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
  5. fd04:bd3:80e8:3::/64 dev tapIPv6  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295


 
Si je construit un pont entre tapIPv6 et eth2, via  
brctl addif brIPv6 tapIPv6
brctl addif brIPv6 eth2
 
Depuis l'hote, je ne peut plus pinger le routeur. Par contre les paquets venant de tapIPv6 sont ensuite envoyes a eth2 (verifies avec wireshark) _mais_ cela ne fonctionne pas.
Voici la capture wireshark d'un ping du guest vers le routeur (fd04:bd3:80e8:1::1)
 
30 29.452822 fd04:bd3:80e8:3::2 fd04:bd3:80e8:1::1 ICMPv6 Echo request
 
Et ainsi de suite... sans aucune reponse. Que ces Echo request qui arrivent du guest, passent par tapIPv6, brIPv6, eth2... et se perdent !
 
Si j'enleve le bridge, avec brctl delif brIPv6 eth2 puis depuis le host tente de pinger le routeur sur l'adresse 1::1 ca marche tout de suite !
 
Des idees/commentaires ? Je commence a comprendre un peu ce que je fais, mais c'est pas encore ca.


---------------
Un blog qu'il est bien
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed