带有外部 IP 和 Windows Server 2012 Guest 的 KVM Bridge

带有外部 IP 和 Windows Server 2012 Guest 的 KVM Bridge

我目前正在 unbuntu 14.04 主机上设置带有 kvm/qemu 的客户 Windows 服务器,并采用桥接网络连接,以允许服务器通过互联网公开。

我正在尝试为我的 Windows 服务器提供与 Linux 主机服务器相同的 IP,该 IP 是服务器的外部 IP 地址。

我对此还很陌生,因此我在 Ubuntu 14.04 上使用此命令设置了我的网桥

virsh iface-bridge eth0 br0

我当前创建的桥接器如下(编辑外部服务器ip,用字母替换)。

br0       Link encap:Ethernet  HWaddr 38:60:77:26:4a:b3
          inet addr:aaa.bb.ccc.137  Bcast:aaa.bb.ccc.255  Mask:255.255.255.0
          inet6 addr: aaaa:bbbb:8:e89::1/128 Scope:Global
          inet6 addr: aaaa::bbbb:cccc:fe26:4ab3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1607000 errors:0 dropped:42 overruns:0 frame:0
          TX packets:1458574 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3860135693 (3.8 GB)  TX bytes:164453268 (164.4 MB)

eth0      Link encap:Ethernet  HWaddr 38:60:77:26:4a:b3
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5629010 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2998492 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:8133304283 (8.1 GB)  TX bytes:446483217 (446.4 MB)
          Interrupt:20 Memory:fe500000-fe520000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:50169 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:12576653 (12.5 MB)  TX bytes:12576653 (12.5 MB)

virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:402 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:67355 (67.3 KB)  TX bytes:50853 (50.8 KB)

这是使用上述命令创建的 /etc/network/interfaces。

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
   address aaa.bb.ccc.137
   netmask 255.255.255.0
   gateway aaa.bb.ccc.254
   bridge_ports eth0
   bridge_stp on
   bridge_fd 0
iface br0 inet6 static
   address aaaa:bbbb:8:E89::1
   netmask 128

这是我的 brctl show,显示我的客人正在被添加到我使用 virt-manager 为我的客人分配的桥接器中。vnet0 是我的客人。

root@ns388356:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.386077264ab3       yes             eth0
                                                        vnet0
virbr0          8000.000000000000       yes

现在我通过正确安装在客户操作系统上的 virtio 驱动程序访问此 nic。

我在客户机上什么都得不到,我是不是错过了什么重要信息?我也有 ipv6 地址,是否可以只将其用于客户机操作系统?

更新:

最后,我最终保留了默认的 nat 网络接口,然后仅使用 iptables 将特定端口上的外部连接转发到内部等效端口。没有什么特别的,而且我对它如此简单感到很尴尬。

这是我使用的命令。

iptables -t nat -A PREROUTING -p tcp -d (external ip) --dport 3389 -j DNAT --to-destination 192.168.122.202:3389

这将规则添加到防火墙

iptables -t nat -D PREROUTING -p tcp -d (external ip) --dport 3389 -j DNAT --to-destination 192.168.122.202=:3389

如果需要的话,这将删除它(dhcp 分配新的内部 ip)

然后我只是刷新 iptables

iptables --flush

现在需要保存这些内容,因为重启时它们会丢失。

答案1

您不能赋予两台机器相同的 IP 地址并期望它们能够正常工作。

为 Windows 客户机提供不同的 IP 地址。

相关内容