使用一个 NIC 进行联网并访问互联网和虚拟机

使用一个 NIC 进行联网并访问互联网和虚拟机

我已经安装了 opennebula 并且已经关注教程。不幸的是,我无法通过 ssh 连接到似乎处于运行状态且已经拥有 IP 的虚拟机。问题可能是我只有一个 NIC,虽然我读到我应该使用桥接,但我不确定这是否可行以及如何使用。

brctl show 命令输出是

bridge name    bridge id            STP enabled    interfaces
br0            8000.50e549b5e2aa    no             eth0
                                                   vnet0
virbr0         8000.000000000000    yes       

vnet0 是虚拟机的接口。如果我构建一个虚拟机来使用虚拟网桥 virbr0,我也会遇到同样的问题。

我的接口文件是

iface br0 inet static
address X.X.X.172
netmask 255.255.255.0
gateway X.X.X.200
pre-up ifconfig eth0 down
pre-up brctl addbr br0
pre-up brctl addif br0 eth0
pre-up ifconfig eth0 up
post-down ifconfig eth0 down
post-down brctl delif br0 eth0

iface eth0 inet manual

在 ifconfig 中,br0 被分配了在接口中定义的 IP(公共 IP),而 vnet0 似乎发送了数据(TX 字节 > 0),但从未接收(RX 字节 = 0)。我遗漏了什么吗?是否可以通过 ssh 连接到具有一个 NIC 的虚拟机,或者我需要第二个 NIC?

答案1

OpenNebula 在其文档中假设的内容这里主机使用两个物理接口,一个用于专用网络,一个用于互联网连接。当然,如果主机只有一个接口,它只能连接到其中一个网络。为了不丢失互联网连接,我尝试的解决方案是更改接口文件,以便 br0 接口由 DHCP 自动分配 IP

iface br0 inet dhcp

我还更改了网络定义文件,使其包含未由 dhcp 分配的公共 IP 地址租约。我实例化的虚拟机已成功分配公共 IP。虽然我能够通过 ssh 连接到该虚拟机,但互联网上的任何人都可以,所以我不会保留此配置。

相关内容