[linux-l] Virtuelle Maschinen und IPv6

Peter Ross Peter.Ross at bogen.in-berlin.de
Mo Aug 26 02:26:40 CEST 2013


Hi Volker,

Ich vermute, daß Du mit tap (eine pro VM) auf dem richtigen Weg bist, Du 
kannst im NDP-Server (unter Linux radvd?) sicher auch sagen, was Du auf 
welchem Interface rausschickst.

FreeBSD hat interface-spezifische Optionen, wie die Manpage beschreibt:

http://www.unix.com/man-page/freebsd/8/NDP/

Das sollte auch unter Linux möglich sein.

Auch sind VLANs möglich. Dann kann eine VM auch nichts anders kriegen als 
darüber konfiguriert.

Wenn man will, kann man das sicher auch noch mittels ip6tables 
festklopfen.

Wenn Du das dann entsprechend skriptest, hast Du alles:

# new_vm address .. andere parameter
new_device=`create_device`          # epair unter FreeBSD (Linux tap)
create_vlan $new_device             # Neues VLAN mit Interface
add_ndp ${device} ${address}        # As immer Linux NDP braucht
add_ip6tables ${device} ${address}  # Paketfilter für die Bridge
create_vm ${device}                 # Neue VM an dieser Bridge

Und die VM holt sich dann die IPv6-Adresse via NDP.

Leider kann ich Dir das Ganze nicht mundgerecht für Linux liefern. Ich 
habe es so mit Linux noch nie gemacht und habe wenig aktuelle Erfahrung 
mit KVM (müßte also mehr googlen und Manpages lesen)

Unter FreeBSD kenne ich zumindest alle Bestandteile, um so etwas zu 
konfigurieren, und habe es auch fast alles mit FreeBSD-Jails (Version 2 
mit eigenem Netzwerk-Stack) am laufen,

nur mit fester IP-Adresse innerhalb der "VM", da ich der auch vertraue und 
die VM-Netzwerk-Konfiguration zur Generations-Zeit mitkonfiguriere, und 
ohne Paketfilter.

Beides könnte ich jederzeit hinzufügen, ich sehe da kein Problem (ndp und 
ipfw wären die Programme, die geskriptet werden müßten).

Aber dank VLANs können die Jails selbst dann nicht ganz in die Wildnis, 
wenn jemand die knackt und "verkonfiguriert".

Für FreeBSD-Interessierte werde ich das auf Nachfrage die nächsten Tage 
was ins Netz stellen (als "write up" eines Mailinglisten-Beitrags, siehe 
http://lists.de.freebsd.org/archive/de-bsd-questions/de-bsd-questions.201308/0092.html, 
ignoriere ersten Teil;-)

an Deiner Linux-Lösung wäre ich interessiert;-)

Es grüßt
Peter

On Sun, 25 Aug 2013, Volker Grabsch wrote:

> Liebe Liste,
>
> ich suche eine möglichst einfache Lösung für folgendes
> Problem. Ich weiß, wie ich es in der IPv4-Welt löse [1],
> aber bin mir unschlüssig, wie man das für IPv6 angeht:
>
> Ich habe einen Server (Hostsystem) mit einem IPv6-Subnet,
> in dem mehrere VMs (Gastsysteme) laufen. Jede VM
> bekommt eine permanente IPv6-Adresse aus diesem Subnet,
> und das Hostsystem stellt sicher, dass der Traffic
> entsprechend geroutet wird.
>
> Schwierigkeitsgrad: Das Hostsystem soll sicherstellen,
> dass jede VM jeweils nur ihre IPv6-Adresse geroutet
> bekommt und sonst nichts!
>
> Dabei geht es nicht um absurdes "host-based security",
> sondern darum, dass keine VM ausversehen der anderen
> die IPv6-Adresse wegnehmen kann. Dies soll weder durch
> Fehlkonfiguration innerhalb der VM möglich sein, noch
> dadurch, dass eine VM aus einer anderen als Klon hervor-
> gegangen ist.
>
> Idealerweise sollte es sogar möglich sein, dass zwei
> VMs die gleiche virtuelle MAC-Adresse haben, und trotzdem
> alles läuft. (Dieses Feature ist jedoch optional.)
>
> Außerdem wäre es super, wenn die VMs nicht auf ihre
> IPv6-Adresse konfiguriert werden müssten, sondern sich
> diese Info vom Hostsystem holen. Falls möglich per NDP,
> sonst per DHCPv6.
>
> Hat jemand von euch solch ein Setup am Laufen, oder
> kann mir grob skizzieren, wie das aussehen muss?
> Gibt es bekannte Fallstricke, die man beachten muss?
>
> Für jeden Tipp wäre ich dankbar.
>
>
> Gruß
> Volker
>
>
>
> [1] Mit IPv4 mache ich das so:
>
> Auf dem Hostsystem gibt's für jede VM ein eigenes
> TAP-Device, an dem nur diese VM hängt. Entsprechende
> IPTables/Routing-Einträge sorgen dafür, dass Traffic
> für die entsprechenden IP-Adressen ins richtige TAP-
> Device geroutet wird. Zudem läuft auf dem Hostsystem
> ein DHCP-Server, der die entsprechende IP-Adresse zurück
> liefert, jenachdem von welchem TAP-Device die Anfrage
> kam. Die VMs sind dann so einfach konfiguriert wie nur
> möglich: ein einziges Netzwerk-Device, das auf DHCP
> konfiguriert ist.
>
> Ich bezweifle jedoch, dass ich dieses 1:1 auf ein
> IPv6-Setup übertragen kann. Zudem hoffe ich, dass
> in der Welt von IPv6 vielleicht einfachere Wege gibt,
> eventuell über eine Netzwerk-Bridge, wo sich dann aber
> die Frage stellt, wie man verhindert, dass sich eine
> fehlkonfigurierte VM eine fremde IP-Adresse schnappt.
>
> -- 
> Volker Grabsch
> ---<<(())>>---
> _______________________________________________
> linux-l mailing list
> linux-l at mlists.in-berlin.de
> Die Mailingliste der BeLUG (Berliner Linux User Group)
>
> Wenn du diese Mailingliste  abbestellen willst, gehe bitte auf
> https://mlists.in-berlin.de/mailman/listinfo/linux-l-mlists.in-berlin.de
> und trage dich dort bitte aus
>


Mehr Informationen über die Mailingliste linux-l