我已经成功安装了 xen 并在 debian squeeze 上运行了 domU。
我已经按照本教程一步一步进行了这里。我可以通过 SSH 登录我的 domU,但是从 domU 我无法连接到除了 dom0 本身之外的任何东西。
有人能帮助我启用从我的 domU 到外部的网络吗?
这是我的 xend-config.sxp 文件:
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#
这是我的 domU.cfg 文件:
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]
我运行 ifconfig 时没有任何 xenbr:只有 eth0、peth0、lo 和 vif1.0
当我运行 tshark -f '!port 22' 时,我尝试 ping 除我的 dom0 之外的其他主机,但看不到任何响应,可以看到 ARP 请求。看起来这些 ARP 数据包卡在了 dom0 主机上。
以下是 iptables -L 输出:
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]
我太新手了,无法完全理解这个配置,但它看起来像是在启动时应用的。
我曾想过 dom0 可能不知道如何处理 domU 数据包,但 do0 应该充当桥梁!因此,它应该简单地在其 eth0 接口上中继这些数据包,让我的交换机在其他主机上中继它们……
感谢您的时间和帮助!
答案1
您确实有一个 xenbr,它只是称为 eth0。执行“brctl show”您就会看到。现在,这个问题可能是您的托管提供商只接受您的 dom0 的 mac。使用 arp 代理可能会有所帮助。
答案2
好的,现在可以了。
确实,服务器(dom0)连接到的交换机拒绝了未知的 MAC 地址;允许未知的 MAC 地址解决了该问题。
非常感谢您的回答!