Ein Service von Siegrist SystemLösungen

IPv6 bridging, routing und proxy_ndp mit OpenVZ veth-Devices

 

Uebersicht

Konfiguration eines Netzes mit vit virtuellen Servern. Es können so mehrere unterschiedliche /64 Subnetze unabhängig über mehrere Bridgen betrieben werden. Das folgende Beispiel zeigt ein Subnetz im gleichen Netz wie wie der Hostnode.
Weil eine IPv6 Bridge, resp. die dahinter liegenden Hosts, unter OpenVZ nicht auf 'neighbor solicitation' Nachrichten antworten, muss mittles NDP Proxy ( entsprechend etwa dem 'proxy arp' in IPv4 ) auf dem Hostnode die Adressen der VM's stellvertretend bekannt gemacht werden.

Diese Konfiguration sollte mit KVM genauso nutzbar sein.

 

.----------. 2001:1:2:3::1/48     .---------------. 
|   IPv6   |______________________|     Server    | 2001:2:3:4::100/64
|  Router  |                  eth0|     openvz    |
*----------*                      *---------------*
                                           | 2001:2:3:4::100/64
                                       vzbridge
                                        /    \
                                veth1 |        | veth2
                                      |        |
                   2001:2:3:4::101/64 |        | 2001:2:3:4::102/64
                                      |        |
                                 eth0 |        | eth0
                                    [VM 1]   [VM 2]

OpenVZ ctid.conf

OpenVZ kann mit den venet-Devices weder mit Bridges noch mit IPv6 sauber umgehen. Darum muss für die Gastsysteme die Konfiguration von venet- auf veth-Devices umgestellt werden.
Dafür in der Gastkonfig den Parameter "IP_ADDRESS=" entfernen und mit folgenden Parametern erweitern:

[VM 1]

FEATURES="sit:on "
CAPABILITY="NET_ADMIN:on "
CONFIG_CUSTOMIZED="yes"
VETH_IP_ADDRESS="192.168.X.X"
NETIF="ifname=eth0,mac=00:XX:XX:XX:XX:X,host_ifname=veth1,host_mac=00:XX:XX:XX:XX:XX"

[VM 2]

FEATURES="sit:on "
CAPABILITY="NET_ADMIN:on "
CONFIG_CUSTOMIZED="yes"
VETH_IP_ADDRESS="192.168.X.X"
NETIF="ifname=eth0,mac=00:XX:XX:XX:XX:X,host_ifname=veth2,host_mac=00:XX:XX:XX:XX:XX"

Die MAC-Adressen sowie die IPv4 Adresse (falls benötigt) natürlich entsprechend ersetzen.

Bridge

Bridge einrichten, Devices zuordnen und eine Adresse für die Bridge vergeben.

# /sbin/brctl addbr vzbridge
# /sbin/brctl addif vzbridge veth1
# /sbin/brctl addif vzbridge veth2
# /sbin/ifconfig vzbridge up
# /sbin/ip -6 addr add 2001:2:3:4::100 dev vzbridge

Routing

Routen der VM's über die Bridge.

# sysctl -w net.ipv6.conf.all.forwarding=1
# sysctl -w net.ipv6.conf.default.forwarding=1
# /sbin/ip -6 route add 2001:1:2:3::101 dev vzbridge
# /sbin/ip -6 route add 2001:1:2:3::102 dev vzbridge

proxy_ndp:

Host openvz agiert als Proxy für 2001:1:2:3::101 und 2001:1:2:3::102 in Richtung Interface eth0.

# sysctl -w net.ipv6.conf.all.proxy_ndp=1
# sysctl -w net.ipv6.conf.default.proxy_ndp=1
# ip -6 neigh add proxy 2001:1:2:3:101 dev eth0
# ip -6 neigh add proxy 2001:1:2:3:102 dev eth0

Das "dev eth0" ist etwas verwirrend, stimmt aber, weil in dieser Kontellation das dev auf das Interface verweist, auf welchem der Hostnode auf 'neighbor solicitation' Anfragen antworten soll.

 

Mit den Tools auf IPv6Tech.ch können Sie Ihre Konfiguration testen: Ping-Test , Traceroute , TCP-Portscan und UDP-Portscan.

 

ipversion test

Ihre IP ist:
[54.80.137.168]

IPv6 Besucher: 46596
IPv4 Besucher: 163203


IPv6 Certification Badge for psiegrist



Ein Cisco Switch Management Tool



Ein Cisco Configuration Backup Tool

1