我无法理解 KVM 如何与我设置的 Windows 2008 Server 客户机进行网络连接。我的问题如下:
我有一台专用的根服务器,还有一台客户机(Win 2k8 服务器)。我在虚拟机中安装了 ISO 映像中的以太网驱动程序。因此适配器是这个 RedHat VirtIO 东西。这在客户机中已成功完成。配置使用 virtio 作为 NIC,我将桥接设置为virbr0:
virbr0 Link encap:Ethernet HWaddr fe:54:00:0e:68:af
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16231 errors:0 dropped:0 overruns:0 frame:0
TX packets:3279 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2637216 (2.5 MiB) TX bytes:705652 (689.1 KiB)
还有另一个界面:
vnet0 Link encap:Ethernet HWaddr fe:54:00:0e:68:af
inet6 addr: fe80::fc54:ff:fe0e:68af/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2529 errors:0 dropped:0 overruns:0 frame:0
TX packets:44561 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:571094 (557.7 KiB) TX bytes:2366159 (2.2 MiB)
我想要的是为客户机提供网络连接,并能够使用 rdesktop(所以我猜端口需要转发)。我尽量避免使用任何 iptables 魔法,因为在防火墙上处理它没有多大意义。如何从客户机获得双向网络访问权限。
如果 192.168.122.1 是桥接器,我该如何访问虚拟机?对于 rdesktop 还是其他什么?实际上,我想从 eth0 左右访问 rdesktop 端口,这是具有可访问 IP 地址的外部接口。
更新:
路线:
target gateway source proto scope dev tbl
10.8.0.2 10.8.0.1 kernel link tun0
217.11.52.0/ 24 217.11.52.231 kernel link eth0
10.8.0.0/ 24 10.8.0.2 tun0
192.168.122.0/ 24 192.168.122.1 kernel link virbr0
default 217.11.52.1 eth0
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
10.8.0.1 local 10.8.0.1 kernel host tun0 local
217.11.52.0 broadcast 217.11.52.231 kernel link eth0 local
217.11.52.231 local 217.11.52.231 kernel host eth0 local
217.11.52.230 local 217.11.52.231 kernel host eth0 local
192.168.122.1 local 192.168.122.1 kernel host virbr0 local
192.168.122.0 broadcast 192.168.122.1 kernel link virbr0 local
217.11.52.233 local 217.11.52.231 kernel host eth0 local
217.11.52.232 local 217.11.52.231 kernel host eth0 local
217.11.52.255 broadcast 217.11.52.231 kernel link eth0 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
192.168.122.255 broadcast 192.168.122.1 kernel link virbr0 local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
fe80::/ 64 kernel eth0
fe80::/ 64 kernel virbr0
fe80::/ 64 kernel vnet0
default unreachable kernel lo unspec
::1 :: none lo local
fe80::21b:21ff:fe95:a4f :: none lo local
fe80::fc54:ff:fe0e:68af :: none lo local
ff00::/ 8 eth0 local
ff00::/ 8 virbr0 local
ff00::/ 8 vnet0 local
default unreachable kernel lo unspec
brctl 显示
bridge name bridge id STP enabled interfaces
virbr0 8000.fe54000e68af yes vnet0
答案1
我认为你的桥梁设置不正确。
要在 Debian 服务器上设置网桥,您需要使用 IP 和网络(您有)定义网桥。然后,您将获得网桥的路由。您尚未向我们显示您的路由表。您可以使用以下命令从 Debian 服务器查看该路由表
route
您的问题可能是您的路由表,因此请用该路由表更新您的问题。另外,我觉得您的桥接 IP 是 192.168.122.1 很奇怪,因为这通常是网关 IP。
设置好桥接器后,您需要向其中添加接口。KVM 应自动进入访客接口。检查您是否已将 Debian 服务器的接口(您提供了吗?)放置在桥接器上。您可以使用以下命令执行此操作:
brctl show
如果您可以使用该命令的结果更新您的问题,这将有助于我们确定是否一切都已设置好。
更新
路由命令的输出显示您有一个名为 eth0 的接口,我假设它是您的 Debian 机器的网络接口。您需要使用以下命令将 eth0 添加到网桥:
brctl addif virbr0 eth0
您从哪里获得网桥的 IP 192.168.122.1?通常,eth0 上没有 IP,将我分配给 eth0 的 IP 分配给网桥,然后使用上述命令将 eth0 添加到网桥。之后,我会检查默认路由是否正确,然后尝试从 Debian 框 ping 8.8.8.8 以检查此时的网络。KVM 应该将虚拟客户网络设备添加到网桥,而无需您进行进一步配置。通过启动客户机来确认这一点,然后使用命令brctl show
并查看连接到网桥的内容。