Mehrere IPs auf einer Xen-VM mit Bridging

Mehrere IPs auf einer Xen-VM mit Bridging

Obwohl ich mit XEN noch relativ neu bin (unter Ubuntu 14.04), hatte ich bisher keine wirklichen Probleme. Ich habe mein Netzwerk mit Bridging eingerichtet und das hat bisher für viele verschiedene Maschinen gut funktioniert. Normalerweise kann ich meine Antworten irgendwo finden, aber dieses Mal bin ich nicht weitergekommen und suche nach Hilfe.

Ich versuche, eine Client-VM (DomU) mit einer großen Anzahl von IPs einzurichten, was mir viel Ärger bereitet. Hier ist das Setup:

Der Hostcomputer verfügt über zwei Netzwerkkarten, eine wird für privates (10.10.10.x) xenbr0 verwendet und die andere ist nur für öffentliches IPS (z. B. xyz*) xenbr1 überbrückt:

Unten ist meine /etc/networking/interfacesDatei vom Host:

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

In der Client-VM werden außerdem zwei überbrückte Netzwerkkarten verwendet /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.    

In meiner Xen-Konfigurationsdatei habe ich: vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

Ich habe vor, die lokalen IPs aus der VM zu entfernen, sobald alles eingerichtet und funktionsfähig ist.

Ich verwende Aliase, da ich versuche, dies von einer Bare-Metal-Maschine auf eine VM zu verschieben. Irgendwann wird die übermäßige Nutzung von IPS behoben, aber aus verschiedenen Gründen kann ich das noch nicht tun. Wie auch immer, wenn ich die VM boote, sind nur einige der IPs pingbar, es sei denn, ich mache ein arping -U -I eth1 x.y.z.162, etc. für jede IP-Adresse. Dann scheinen die Dinge zumindest zu reagieren, aber das Routing funktioniert nicht wirklich richtig. Ich kann per SSH zu den IPs über http browsen, aber virtuelle Sites funktionieren nicht richtig (d. h. es schickt mich nur zu einer und ignoriert die anderen) und ein Neustart von Bind und einigen anderen Diensten reagiert nicht richtig. Es ist, als ob das Routing nicht richtig eingerichtet ist und während die IPs antworten, ist es nicht wirklich die angeforderte IP, die antwortet, sondern eine andere IP.
Dies ist jedoch nur bei EINIGEN der zusätzlichen IPS der Fall. Wenn ich neu starte, geht das Routing, das der ARP-Befehl behoben hat, verloren. Dann funktionieren Bind und einige andere Dienste auf der VM nicht. Ich mache den ARP-Befehl und alles funktioniert wieder.
Ich denke, das Arping ist nur ein Pflaster, behebt aber nicht das eigentliche Problem. Da genau dasselbe System auf einer Bare-Metal-Maschine funktioniert, bin ich fast sicher, dass das Problem an meiner XEN-Netzwerkkonfiguration liegt und nicht an der Switch-Konfiguration oder dem Betriebssystem, das ich migrieren möchte.

Um das Problem weiter einzugrenzen, habe ich einen sauberen Ubuntu 14.04-Gast mit mehreren IPs eingerichtet und dabei das modernere (und nicht veraltete IP-Aliasing-)Setup verwendet, das unten in der VMs- /etc/networking/interfacesDatei angezeigt wird:

 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

Alles mit dem gleichen Ergebnis. Was übersehe ich? Für jede Hilfe wäre ich dankbar.

Antwort1

Ich habe herausgefunden, was mein Problem war, und poste es hier, falls jemand auf ein ähnliches Problem stößt.

In meiner Xen-Konfiguration habe ich keine MAC-Adresse eingegeben. Im IE hatte ich:

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

Als ich etwas brauchte wie:

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

Das Routing für die MAC-Adresse lief nicht sofort ab, daher wurde das Routing durch Ausführen dieses ARP-Befehls für jede IP behoben: arping -U -I eth1 x.y.z.162

Ich vermute, dass die VM bei jedem Hochfahren eine neue MAC-Adresse hatte und nur einige der Routing-Tabellen beim Hochfahren der VM aktualisiert wurden.

Da sich die MAC-Adresse nicht ändert, ist alles gut.

Antwort2

Versuchen Sie, die Schnittstellenkonfigurationen in DomU auszutauschen. Entsprechend Ihrer Dom0-Konfiguration sollten Sie eth0 für private und eth1 für öffentliche IPs in Ihrem DomU verwenden.

verwandte Informationen