libvirt/qemu ipv4/ipv6 Dual Stack

Moin,

unter link hatte der martin.s eine Dual Stack Anleitung gepostet, leider ist mir diese viel zu umständlich

anyway, libvirt/qemu kann auch dual stack von ganz alleine, wir brauchen dafür nur die basic pakete

aptitude install libvirt-bin qemu qemu-kvm

danach noch fix die /etc/network/interfaces anpassen

iface eth0 inet6 static
address foobar:gna
netmask 128
gateway fe80::1

nun legen wir unter /etc/libvirt/qemu/networks eine xml Konfiguration an, welche von libvirt verwaltet wird

z.b touch br0.xml && uuid-gen

<network>
  <name>br0</name>
  <uuid>()</uuid>
  <forward dev='eth0' mode='route'>
    <interface dev='eth0'/>
  </forward>
  <bridge name='br0' stp='on' delay='0'/>
  <mac address='()'/>
  <ip address='()' netmask='255.255.255.()'>
  </ip>
  <ip family='ipv6' address='():3a' prefix='64'>
  </ip>
</network>

die () sollten nun nach und nach ersetzt werden, bei der IPv4 Adresse die erste verwendbare aus dem zugeteilten subnetz verwenden, da diese von libvirt als bridge verwendet wird. Bei der IPv6 Adresse einfach die nächste verwendbare nehmen.

danach reicht ein

virsh net-define br0.xml

und ein

virsh net-start br0

ifconfig br0
br0       Link encap:Ethernet  HWaddr () 
          inet addr:()  Bcast:()  Mask:255.255.255.240
          inet6 addr: () Scope:Link
          inet6 addr: ()3a/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:157221868 errors:0 dropped:0 overruns:0 frame:0
          TX packets:148160196 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:151210249254 (151.2 GB)  TX bytes:34342903306 (34.3 GB)


 /etc/libvirt/qemu/networks # ip route
default via ().193 dev eth0 
()/27 via ().193 dev eth0 
()/27 dev eth0  proto kernel  scope link  src ().214 
().144/28 dev br0  proto kernel  scope link  src ().145 

 /etc/libvirt/qemu/networks # ip -6 route
()::2 dev eth0  proto kernel  metric 256 
()::/64 dev br0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev br0  proto kernel  metric 256 
default via fe80::1 dev eth0  metric 1024 


alles andere wie z.b IP forwarding (/etc/sysctl.conf) wird auch von libvirt gemacht und automatisch auf die entsprechenden werte gesetzt. Innerhalb der KVM bekommt diese automatisch über dnsmasq (kommt als abhänigkeit) eine IPv6 Adresse zugewiesen mit entsprechenden Routen etc. Will man diese auch noch fest setzen einfach die interfaces der KVM bearbeiten.

iface eth0 inet6 static
	address (zugewiesen:von:Hetzner):(mac:adresse:der:kvm)
	netmask 64

ifdown eth0 && ifup eth0

und schon sind die KVM Server im Dual Stack erreichbar (DNS Einträge nicht vergessen/Mailserver Konfiguration anpassen…)