【问题标题】:How to use the same IP for dom0 and one domU in XEN如何在 XEN 中为 dom0 和一个 domU 使用相同的 IP
【发布时间】:2014-02-01 15:56:39
【问题描述】:

我目前在 debian wheezy dom0 上有一个 Xen。我有 6 个(公共)IP,我想设置 6 个虚拟机(每个虚拟机使用一个 IP)。

为了保持对 dom0 的访问,我希望 dom0 ssh 绑定到一个 IP 端口(比如说 4444)。我真的不知道从哪里开始。有什么指点吗?

【问题讨论】:

    标签: xen


    【解决方案1】:

    所以,我终于想出了一个解决方案,我将详细说明:

    在这个例子中,我们有一个物理网络接口 (eth0)、3 个 IP 和 3 个虚拟机:

    • a.a.a.a(将由 dom0 和一个名为 VM_A 的 domU 共享)
    • b.b.b.b(用于一个 domU VM_B
    • b.b.b.c(用于一个 domU VM_C

    dom0 /etc/network/interface:

    auto xenbr0 
    iface xenbr0 inet static
        bridge_ports eth0
        address a.a.a.a
        netmask 255.255.255.0
        network a.a.a.0
        broadcast a.a.a.255
        gateway a.a.a.254
    

    /etc/xen/xend-config.sx 中使用的默认 vif 脚本将是 (vif-script vif-bridge)。这是给VM_BVM_C 的,它们有自己的IP。

    对于VM_BVM_C的配置脚本(/etc/xen/VM_[BC].cfg)我们会有:

    vif = [ 'ip=b.b.b.b,mac=XX:XX:XX:XX:XX:XX' ]
    

    对于VM_A (/etc/xen/VM_A.cfg) 的配置脚本,我们将有:

    vif = [ 'ip=192.168.0.1,script=vif-nat']
    

    我们必须添加 iptables 规则才能使VM_A 对 Internet 可见:

    iptables -t nat -A POSTROUTING -s 192.168.0.1 -o xenbr0  -j MASQUERADE
    # One rule for each port that need to be forwarded to `VM_A`
    iptables -t nat -A PREROUTING -p tcp -d a.a.a.a --dport 22 -j DNAT --to 192.168.0.1:22
    iptables -t nat -A PREROUTING -p tcp -d a.a.a.a --dport 80 -j DNAT --to 192.168.0.1:80
    

    还需要开启包转发(/etc/sysctl.conf):

    net.ipv4.ip_forward=1
    net.ipv4.conf.eth0.proxy_arp=1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      相关资源
      最近更新 更多