[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Xen 4 + Debian Squeeze + VM1 en mode route et VM2 en mode nat.



Bonsoir,

J'ai installé sur un serveur dédié une debian squeeze avec xen 4, une VM principale qui tourne en mode route avec une IP failover ainsi qu'une autre VM de etst tournant en NAT.

Je voulais donc mixer le mode route et nat, et j'ai effectué la config suivante: 

- contenu de mon xend-config.sxp :

(network-script 'network-route netdev=eth0')
(vif-script     vif-route)

vu que c'est ma 1ere VM en mode route la plus importante.

Pour la seconde VM en nat, j'ai mis ceci dans le fichier de config:

vif         = [ 'ip=192.168.1.2,mac=00:16:3E:xxxx:xx, script=vif-nat,
vifname=vif-debianTest' ]

J'ai modifié un peu le script vif-nat :

routing_ip()
{
  #echo $(echo $1 | awk -F. '{print $1"."$2"."$3"."$4 + 127}')
  echo $(echo $1 | awk -F. '{print $1"."$2"."$3"."254}')
}

pour avoir toujours la même ip statique en gateway pour la VM2, et pour pouvoir mettre cette IP dans la config réseau du domU correspondant.

Je peux pinguer VM2 depuis mon dom0, j'ai internet depuis ma VM2 mais impossible de faire un port mapping.
On dirait que rien ne forward entre mes interfaces 

Par exemple, je voulais rediriger le port 2222 de mon dom0 vers le 22 de VM2 ;

Voici mes règles  :

# iptables -L -v | more

Chain INPUT (policy DROP 860 packets, 95727 bytes)
 pkts bytes target     prot opt in     out     source               destination

   18  2185 ACCEPT     all  --  lo     any     anywhere             anywhere

    8   792 ACCEPT     icmp --  any    any     anywhere             anywhere

 1065 83852 ACCEPT     tcp  --  eth0   any     lev92-4-88-164-133-124.fbx.proxad
.net  anywhere            tcp dpt:ssh
    5   544 ACCEPT     all  --  eth0   any     anywhere             anywhere
        state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  vif2.0 any     anywhere             anywhere

    0     0 ACCEPT     all  --  vif-debianTest any     anywhere             anyw
here

Chain FORWARD (policy DROP 11 packets, 528 bytes)
 pkts bytes target     prot opt in     out     source               destination

 1517  322K ACCEPT     all  --  eth0   any     anywhere             anywhere
        state RELATED,ESTABLISHED
   10   496 ACCEPT     all  --  eth0   any     anywhere             88-190-238-1
64.rev.dedibox.fr
 1605  143K ACCEPT     all  --  vif2.0 any     anywhere             anywhere

    0     0 ACCEPT     all  --  vif-xenwinxp any     anywhere             anywhe
re
    0     0 ACCEPT     all  --  vif-debianTest any     anywhere             anyw
here
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere
        state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif-debianTest
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere
        PHYSDEV match --physdev-in vif-debianTest udp spt:bootpc dpt:bootps
    0     0 ACCEPT     all  --  any    any     anywhere             anywhere
        state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif-debianTest
    0     0 ACCEPT     all  --  any    any     xenDebianTest        anywhere
        PHYSDEV match --physdev-in vif-debianTest


Chain OUTPUT (policy ACCEPT 886 packets, 129K bytes)
 pkts bytes target     prot opt in     out     source               destination

   24  2946 ACCEPT     all  --  any    lo      anywhere             anywhere


# iptables -L -t nat -v | more
Chain PREROUTING (policy ACCEPT 1265 packets, 132K bytes)
 pkts bytes target     prot opt in     out     source               destination

   11   528 DNAT       tcp  --  eth0   any     anywhere             anywhere
        tcp dpt:2222 to:192.168.1.2:22

Chain POSTROUTING (policy ACCEPT 27 packets, 1850 bytes)
 pkts bytes target     prot opt in     out     source               destination

  110  7826 SNAT       all  --  any    eth0    88-190-238-164.rev.dedibox.fr  an
ywhere            to:88.190.238.164
    0     0 SNAT       all  --  any    any     192.168.0.2          anywhere
        to:88.190.15.135
    0     0 SNAT       all  --  any    any     xenDebianTest        anywhere
        to:88.190.15.135

Chain OUTPUT (policy ACCEPT 21 packets, 1538 bytes)
 pkts bytes target     prot opt in     out     source               destination


# tcpdump -i eth0 tcp port 2222
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:54:02.662761 IP lev92-4-88-164-133-124.fbx.proxad.net.21384 >
sd-xxxx.dedibox.fr.2222: Flags [S], seq 2030026446, win 65535, options
[mss 1460,nop,nop,sackOK], length 0
19:54:05.681658 IP lev92-4-88-164-133-124.fbx.proxad.net.21384 >
sd-xxxx.dedibox.fr.2222: Flags [S], seq 2030026446, win 65535, options
[mss 1460,nop,nop,sackOK], length 0
...

Rien n'est donc forwardé entre eth0 et vif-debianTest

Pourtant :

# cat /proc/sys/net/ipv4/ip_forward
1

# cat /proc/sys/net/ipv4/conf/eth0/forwarding
1

# cat /proc/sys/net/ipv4/conf/all/forwarding
1


# cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.proxy_arp=1


 # ifconfig vif-debianTest

vif-debianTest Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          inet adr:192.168.1.254  Bcast:0.0.0.0  Masque:255.255.255.255
          adr inet6: fe80::fcff:ffff:feff:ffff/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 lg file transmission:32
          RX bytes:196 (196.0 B)  TX bytes:160 (160.0 B)

# ip route show
88.190.238.164 dev vif2.0  scope link  src 88.190.15.135
192.168.1.2 dev vif-debianTest  scope link  src 192.168.1.254
88.190.15.0/24 dev eth0  proto kernel  scope link  src 88.190.15.135
default via 88.190.15.1 dev eth0

 
J'ai testé avec mon laptop. Au début ca ne fonctionnait pas non plus, et depuis que j'ai une seule fois redemarré en mode nat par défaut dans le xend-config.sxp, ca marche. Même en remettant le mode route par défaut.

Une idée?

Merci :-)


Reply to: