Xen domU can’t have access to outside dom0

linux-networkingxen

I have successfully installed xen and run a domU on a debian squeeze.

I have followed step by step this tutorial here. I can log in my domU by SSH but from the domU I can't connect to anything but the dom0 itself.

Can anyone help me to enable network from my domU to the ouside?

Here is my xend-config.sxp file:

    root@dom0:/etc/xen# grep -Evn "^#|^$" xend-config.sxp 
    145:(network-script 'network-bridge')
    176:(vif-script vif-bridge)
    193:(dom0-min-mem 196)
    197:(enable-dom0-ballooning yes)
    207:(total_available_memory 0) 
    211:(dom0-cpus 0)
    226:(vncpasswd '')
    root@dom0:/etc/xen#

Here is my domU.cfg file:

root@dom0:/etc/xen# cat domU.cfg 
#  Kernel + memory size
kernel      = '/boot/vmlinuz-2.6.32-5-xen-686'
ramdisk     = '/boot/initrd.img-2.6.32-5-xen-686'

vcpus       = '1'
memory      = '128'

#  Disk device(s).
root        = '/dev/xvda2 ro'
disk        = [
      'file:/data/xen/domains/domU.telergos.net/disk.img,xvda2,w',
      'file:/data/xen/domains/domU.telergos.net/swap.img,xvda1,w',
          ]

#  Physical volumes

#  Hostname
name        = 'namaka-vm.telergos.net'

#  Networking
vif         = [ 'ip=172.23.154.105,mac=00:16:3E:04:8E:7A']
#  Behaviour
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'[/CODE]

I don't have any xenbr when I run ifconfig:
only eth0, peth0, lo and vif1.0

When I run tshark -f '!port 22' I can see ARP requests when I try to ping others hosts than my dom0 but no answer. It looks like these ARP packets ar stuck in the dom0 host.

Here is iptables -L output:

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif1.0 
ACCEPT     udp  --  anywhere             anywhere            PHYSDEV match --physdev-in vif1.0 udp spt:bootpc dpt:bootps 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif1.0 
ACCEPT     all  --  domU  anywhere            PHYSDEV match --physdev-in vif1.0[/CODE]

I am ways too newbie to fully understand this configuration, but it looks like it is applied at boot time.

I have thought that dom0 may not know what to do with domU packets, but do0 is supposed to act as a bridge! So, it should simply relay these packets on its eth0 interface, letting my switch relay them on the others hosts…

Thank you for your time and help!

Best Answer

YOU DO have a xenbr, it's just called eth0. Do "brctl show" and you will see. Now, this issue might well be your hosting provider accepting only the mac of your dom0. Using an arp proxy might help.