je suis en train de me monter un petit serveur, et comme je ne suis pas avare de défi, je me suis dit "pourquoi ne pas faire un peu de xen, pour voir a quoi cela ressemble ?".
Sauf que comme je suis maso, je choisi une config un peu particuliere, et je n'arrive pas à m'en sortir.
Mon but : avoir plein de petit domU dans un sous réseau (mettons en 10.0.0.0/24), qu'ils puissent accéder au grand Ternet, et que je puisse les atteindre avec des machines située dans un autre sous réseau privée (10.0.1.0/24) facilement.
Mes contraintes : je n'ai qu'une seule interface physique (et un vpn de tps en tps)
Voici comment je pensais faire :
- eth0 --> mon IP publique
- dummy0 --> mon IP privée (10.0.0.254)
- xenbr0 un bridge entre mes domU et dummy0
jusque la, pas de soucis. Je lance un domU, je lui attribue une IP (10.0.0.1), avec en passerelle 10.0.0.254.
Il arrive bien a pinger le sous réseau local, c'est impécable. Par contre, impossible d'aller sur le grand Ternet.
J'active le nat, et bam.. ca marche toujours pas :(
Qu'ais je donc pu oublier ?
Mon xend-config.sxp
(logfile /var/log/xen/xend.log)
(loglevel DEBUG)
(xend-http-server no)
(xend-unix-server no)
(xend-tcp-xmlrpc-server no)
(xend-relocation-server no)
#(xend-unix-path /var/lib/xend/xend-socket)
(console-limit 1024)
(network-script network-dummy)
(vif-script vif-bridge)
(dom0-min-mem 196)
(dom0-cpus 0)
(enable-dump no)
Mon script network-dummy (un peu crade je sais)
#!/bin/sh
case $1 in
start)
/etc/xen/scripts/network-bridge start vifnum=0 bridge=xenbr0 netdev=dummy0
;;
stop)
/etc/xen/scripts/network-bridge stop vifnum=0 bridge=xenbr0 netdev=dummy0
;;
restart)
/etc/xen/scripts/network-bridge start vifnum=0 bridge=xenbr0 netdev=dummy0
/etc/xen/scripts/network-bridge stop vifnum=0 bridge=xenbr0 netdev=dummy0
;;
esac
exit 0
Mon nat :
#!/bin/bash
iptables=/sbin/iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
$iptables -t nat -F
$iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Histoire de routes
Posté par totof2000 . Évalué à 3.
[^] # Re: Histoire de routes
Posté par Toto . Évalué à 1.
Normalement, la configuration en routeur est déjà faite par le echo 1 > /proc/sys/net/ipv4/ip_forward non ?
sinon, voici mes ifconfigs et route :
sur l'hote:
# ifconfig
dummy0 Link encap:Ethernet HWaddr CA:C9:8C:46:D9:B0
inet addr:10.0.0.254 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:258 (258.0 b)
eth0 Link encap:Ethernet HWaddr AA:BB:CC:DD:EE:FF
inet addr:11.11.11.11 Bcast:11.11.11.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:3057 errors:0 dropped:0 overruns:0 frame:0
TX packets:1662 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:318320 (310.8 KiB) TX bytes:271341 (264.9 KiB)
Interrupt:20 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4130 (4.0 KiB) TX bytes:4130 (4.0 KiB)
pdummy0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:1822 (1.7 KiB)
vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:258 (258.0 b) TX bytes:0 (0.0 b)
vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP 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 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:216 (216.0 b) TX bytes:0 (0.0 b)
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 dummy0
11.11.11.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 11.11.11.254 0.0.0.0 UG 0 0 0 eth0
et sur mon domU
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:19:EC:3F
inet addr:10.0.0.1 Bcast:10.99.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42 (42.0 b) TX bytes:356 (356.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:272 (272.0 b) TX bytes:272 (272.0 b)
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.00.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 eth0
# tap ?
Posté par Kerro . Évalué à 3.
Ca fait plus de 6 mois que je n'ai pas touché à Xen, mais de tête c'était avec tap.
Et là, pas besoin de faire du NAT: chaque machine virtuelle est vue comme si elle était sur le réseau indépendament des autres. Tu peux tout de même utiliser ebtables et iptables sur ton br0 pour mettre en place des sécurités.
[^] # Re: tap ?
Posté par Toto . Évalué à 1.
Je viens de tester avec tap, et j'ai la même chose : mes paquets passent de ma machine virtuelle à l'hote, mais impossible d'en sortir par eth0 (tcpdump ne me les montre meme pas :( )
Pour iptables et ebtables j'y pense, mais je les mettrais une fois que ma config marchera, ca serait bete de tester des trucs et de m'apercevoir que ca ne marche pas car je me suis tiré une balle dan sle pied
[^] # Re: tap ?
Posté par totof2000 . Évalué à 2.
Essaie aussi de faire un nat sur dummy0.
[^] # Re: tap ?
Posté par Toto . Évalué à 1.
Et un nat sur dummy0 m'empecherais d'avoir accès à mes hotes directement à partir d'un autre sous réseau non ?
J'aimerais que mes domU sois accessible d'internet par eth0, qui ne dispose que d'une ip publique, et par mon VPN (monté de temps en temps), qui lui sera dans le même réseau privé que mes domU.
[^] # Re: tap ?
Posté par Toto . Évalué à 1.
J'ai toujours la meme regles iptables qu'auparavant, qui normalement doit me faire mon nat.
Une petite idée ?
Merci
[^] # Re: tap ?
Posté par totof2000 . Évalué à 3.
[^] # Re: tap ?
Posté par Toto . Évalué à 1.
Mais bon c'est vrai que c'est étrange, je ne vois pas pourquoi cela ne marcherais pas. Cela me parait quand même pas si tordu comme utilisation.
En tout cas, merci pour tes tests
[^] # XEN + bridge + Nat
Posté par Chapellon Alexandre . Évalué à 1.
Totof2000 a raison ... tu dois paramétrer ton dom0 comme routeur... dans proc comme tu l'a dit mais aussi dans la conf den /etc/xen/xend-config.sxp (les paramètres network-script et vif-script) et surtout pas de bridging.... ca devrait marcher un pe mieux comme ca...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.