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

Несколько IP-адресов на виртуальной машине Xen с мостом

Хотя я новичок в XEN (работающем под Ubuntu 14.04), до сих пор у меня не было серьезных проблем. Я установил свою сеть с использованием моста, и до сих пор это хорошо работало на многих разных машинах. Обычно я где-то могу найти ответы, но на этот раз я не справился и ищу помощь.

У меня есть клиентская виртуальная машина (DomU), которую я пытаюсь настроить с большим количеством IP-адресов, и это сильно меня огорчает. Вот установка:

Хост-компьютер имеет два сетевых адаптера, один используется для частного (10.10.10.x) xenbr0, а другой просто соединен мостом для общедоступного IPS (скажем, x.y.z. *) xenbr1:

Ниже мой /etc/networking/interfaces файл с хоста:

iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
    bridge_ports eth0
    address 10.10.10.112
    netmask 255.255.255.0
    network 10.10.10.0
    broadcast 10.10.10.255
    gateway 10.10.10.1

auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
       bridge_ports eth1
       bridge_maxwait 1

В клиентской ВМ также используются два мостовых ник /etc/networking/interfaces:

auto eth0
iface eth0 inet  static
    address x.y.z.170
    netmask 255.255.255.240
    broadcast x.y.z.175
    gateway x.y.z.161

auto eth1
iface eth1 inet static
    address 10.10.10.155
    netmask 255.255.255.0
    broadcast 10.10.10.255
auto eth0:1                    
iface eth0:1 inet static       
        address x.y.z.162      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:2                    
iface eth0:2 inet static       
        address x.y.z.163      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:3                    
iface eth0:3 inet static       
        address x.y.z.164      
        netmask 255.255.255.240
        broadcast x.y.z.175    
etc…. up to 8 alaises.    

В моем конфигурационном файле xen у меня есть: vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

Я планирую удалить локальные IP-адреса из виртуальной машины, когда все будет настроено и заработает.

Я использую псевдонимы, так как пытаюсь перенести это с голого компьютера на виртуальную машину. В конце концов, чрезмерное использование IPS будет решено, но по разным причинам я пока не могу этого сделать. В любом случае, когда я загружаю виртуальную машину, только несколько IP-адресов доступны для проверки связи, если я не arping -U -I eth1 x.y.z.162и т. д. для каждого IP-адреса. Тогда вроде бы хоть что-то отреагировало, но маршрутизация на самом деле не работает. Я могу использовать ssh и просматривать IP-адреса через http, но виртуальные сайты работают некорректно (т.е. он отправляет меня только на один и игнорирует другие) и перезапуск привязки, а некоторые другие службы не отвечают правильно. Это как если бы маршрутизация настроена неправильно, и пока IP-адреса отвечают, на самом деле отвечает не запрошенный IP-адрес, а другой IP-адрес.
Однако это только НА НЕКОТОРЫХ дополнительных IPS. Когда я перезагружаюсь, маршрутизация, исправленная командой arp, теряется. Тогда Bind и несколько других сервисов на виртуальной машине перестанут работать. Я выполняю команду arp, и все снова работает.
Я думаю, что арпинг - это просто пластырь, но он не решает реальной проблемы. Поскольку одна и та же система работает на «голом железе», я почти уверен, что проблема связана с настройкой моей сети XEN, а не с настройкой коммутатора или ОС, которую я пытаюсь перенести.

Чтобы еще больше изолировать проблему, я установил чистый гостевой Ubuntu 14.04 с несколькими IP-адресами, используя более современную (а не устаревшую настройку псевдонимов IP-адресов), показанную ниже на виртуальных машинах. /etc/networking/interfaces файл:

 auto eth0
allow-hotplug eth0
iface eth0 inet static
      address x.y.z.110
      netmask 255.255.255.240
      broadcast x.y.z.175
      gateway x.y.z.161
iface eth0 inet static
      address x.y.z 162
      netmask 255.255.255.240
      broadcast x.y.z.175
iface eth0 inet static
      address x.y.z 163
      netmask 255.255.255.240
      broadcast x.y.z.175
   and on with the other IPS

Все с одинаковыми результатами. Что мне не хватает? Любая помощь будет оценена.

Я выяснил, в чем была моя проблема, и размещу ее здесь, если кто-то столкнется с аналогичной проблемой.

В моей конфигурации Xen я не указывал MAC-адрес. IE у меня было:

vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

Когда мне понадобилось что-то вроде:

vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]

Маршрутизация для MAC-адреса не истекла сразу, поэтому выполнение этой команды ARP для каждого IP-адреса исправило маршрутизацию: arping -U -I eth1 x.y.z.162

Я предполагаю, что каждый раз, когда виртуальная машина загружалась, у нее был новый MAC-адрес, и только некоторые таблицы маршрутизации обновлялись при загрузке виртуальной машины.

Теперь, когда MAC-адрес не меняется, все в порядке.

Попробуйте поменять местами конфигурации интерфейса в DomU. Согласно вашей конфигурации Dom0, вы должны использовать eth0 для частного и eth1 для общедоступного IP-адреса в вашем DomU.