如何使用 libvirt 创建虚拟网络?

如何使用 libvirt 创建虚拟网络?

我已经安装了 qemu/kvm 并尝试创建一些虚拟机并将它们联网。

我想要实现的是 2-3 台虚拟机在它们自己的私有网络中(例如 10.0.0.0/24),所有机器都应该能够访问外部网络,但只有 1 台机器应该获得可从外部访问的 IP。

External Network
  .                     +-----------------+
  |                     | VM 1            |
  |                  +--| IP: 10.0.0.11   |
+-----------------+  |  | IP: 82.130.y.y  |
| Host            |--|  +-----------------+
| IP: 82.130.x.x  |  |
+-----------------+  |  +-----------------+
                     |--| VM 2            |
                     |  | IP: 10.0.0.12   |
                     |  +-----------------+
                     |
                     |  +-----------------+
                     +--| VM 3            |
                        | IP: 10.0.0.13   |
                        +-----------------+

我尝试添加br0-bridgebrctl并用 桥接它eth0,但是这也会将我的主机的名称服务器设置为 192.168.1.1 并使其无法访问。

我该如何进行配置?

我当前的设置:

名称服务器:

# /etc/resolv.conf 
domain kyla.fi
search kyla.fi
nameserver 82.130.0.1
nameserver 82.130.63.1

接口和 IP 地址:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f4:6d:04:71:c4:1f brd ff:ff:ff:ff:ff:ff
    inet 82.130.x.x/26 brd 82.130.x.255 scope global eth0
       valid_lft forever preferred_lft forever

编辑: 添加了以下配置br0

# The primary network interface
#auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

刚刚virbr0失踪

答案1

你需要网络,而不只是一个。连接到两个网络的虚拟机必须具有两个虚拟网卡,每个虚拟网卡连接到其中一个网络。

External Network
  .                     +-----------------+
  |                br0  | VM 1            |
  |                  +--| IP: 82.130.y.y  |
+-----------------+  |  |   IP: 10.0.0.11 |--+
| Host            |--+  +-----------------+  |
| IP: 82.130.x.x  |                          |
+-----------------+     +-----------------+  |
                        | VM 2            |  |
                        | IP: 10.0.0.12   |--+  virbr1
                        +-----------------+  |
                                             |
                        +-----------------+  |
                        | VM 3            |  |
                        | IP: 10.0.0.13   |--+
                        +-----------------+

创建一个新的virsh 或 virt-manager 中的虚拟网络作为具有您希望的私有 IP 范围的隔离网络。

答案2

VM 1 不需要两个 NIC。我建议将 10.0.0.0/24 配置为“路由网络”,然后将路由器配置为通过 82.130.xx(主机的 IP)路由 10.0.0.0/24,并在主机中配置防火墙规则以允许目的地为 10.0.0.11 的传入数据包,然后阻止目的地为 10.0.0.0/24 的其余传入数据包。

如果要保留两个 NIC,您仍然必须将路由器配置为通过 82.130.xx 路由 82.130.yy,并且必须将 10.0.0.0/24 配置为“natted 网络”。

查看维基百科:

相关内容