Назад | Перейти на главную страницу

KVM-мост с внешним IP-адресом с гостевым Windows Server 2012

В настоящее время я настраиваю гостевой сервер Windows с помощью kvm / qemu на хосте unbuntu 14.04 и мостовое сетевое соединение, чтобы сервер был доступен через Интернет.

Я пытаюсь дать своему серверу Windows тот же IP-адрес, что и моему хост-серверу Linux, этот 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, показывающее, что мой гость добавляется к мосту, который я назначил своему гостю с помощью virt-manager. vnet0 - мой гость.

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

Теперь я захожу в этот nic через драйверы virtio, которые правильно установлены на гостевой ОС.

Я ничего не могу получить от гостя, не упустил ли я здесь что-то важное? У меня тоже есть 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

Теперь их нужно сохранить, поскольку они теряются при перезагрузке.

Вы не можете дать двум машинам одинаковый IP-адрес и ожидать, что они будут работать.

Дайте гостю Windows другой IP-адрес.