OpenVZ Forum


Home » International » German » IPv6 - Route festlegen
IPv6 - Route festlegen [message #36001] Mon, 11 May 2009 17:14 Go to next message
Sven
Messages: 2
Registered: May 2009
Junior Member
Hi there!

Ich hätt' da gern mal ein Problem Wink

Das Grundproblem ist, dass keine IPv6-Routen beim hochfahren der einzelnen Container gesetzt werden, zumindest nicht bei mir.
Ich definiere die statische IPv6-Adresse in der config des containers, die Adresse wird auch zugeteilt, aber es werden keinerlei routen gesetzt.

Aktuell umgehe ich das Problem, indem ich auf dem Hostsystem nach dem hochfahren folgendes kleines script starte:
#! /bin/bash

for i in `seq 101 114`; do
        echo "Lege IPv6-Route in $i an..."
        /usr/sbin/vzctl exec $i /sbin/ip -6 route add ::/0 dev venet0
done
Finde das nur ein wenig unelegant, habe aber keine Möglichkeit gefunden, das Script sinnvoll in dem container starten zu lassen, da die IPv6-Adresse recht spät zugewiesen wird, und ich das somit nicht über das initsystem machen kann.
Gibts keine Möglichkeit die routen im Startvorgang der container anlegen zu können?

Dann habe ich das Problem, dass die conntrack-engine für die VPS ein wenig strubbelig zu sein scheint.
Zum grundsätzlichen Aufbau des Rulesets:
Ich werfe alles anhand des Eingans-Interfaces in verschiedene Chains und filtere dort weiter.
Pakete im Zustand RELATED und ESTABLISHED erlaube ich sehr früh (quasi als erstes, davor habe ich nur eine Chain um den Traffic zu zählen).

Die relevanten Teile meines ip6table-scriptes einmal:
# Accounting
$IPT -N ACCOUNTING
$IPT -A INPUT -j ACCOUNTING
$IPT -A OUTPUT -j ACCOUNTING
$IPT -A FORWARD -j ACCOUNTING

# aufgebaute erlauben
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

[...]

# Chains fuer die einzelnen If
$IPT -N REDIN
$IPT -A INPUT -i $RED -j REDIN
$IPT -A FORWARD -i $RED -j REDIN

[...]

$IPT -N VPSIN
$IPT -A INPUT -i $VPS -j VPSIN
$IPT -A FORWARD -i $VPS -j VPSIN


Zur weiteren Verdeutlichung:
# ip6tables -vnxL FORWARD
Chain FORWARD (policy DROP 21 packets, 22255 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
 4691726 3882606596 ACCOUNTING  all      *      *       ::/0                 ::/0                
 4655337 3879276130 ACCEPT     all      *      *       ::/0                 ::/0                state RELATED,ESTABLISHED 

[...]

   32764  3046910 VPSIN      all      venet0 *       ::/0                 ::/0 


Das Problem ist nun folgendes:
ip6tables erlaubt auf dem WAN-If ($RED) die Pakete im Zustand RELATED,ESTABLISHED. Problem ist - der Zustand ist auf dem Eingang des If venet0 scheinbar wieder unbekannt und wird dort verworfen. Der Kernel scheint diese als völlig neue Pakete zu behandeln (im Log werden diese als Eingangs- und Ausgangsinterface venet0 gelogt) - ich muss in der Chain für das If venet0 also auch alle Pakete mit der source-ip !$EIGENES_NETZ erlauben. Auch wenn ich in der Chain für venet0 nochmals alle Pakete im Zustand RELATED oder ESTABLISHED erlaube matchen diese nicht darauf; für die conntrack-engine sind es zu diesem Zeitpunkt Pakete im Zustand NEW, auch wenn die in den vorherigen Chains (Eingang auf dem WAN-If) richtig zugeordnet wurden.



Falls von Interesse:
Auf dem Hostsystem läuft der amd64 Debiankernel (2.6.26-2-openvz-amd64 #1 SMP Fri Mar 27 05:10:50 UTC 2009 x86_64 GNU/Linux), alle Gastsysteme sind Debian-lenny Systeme.
Keine Backports oder sonstige Fremdpakete installiert.

Das System selbst ist allerdings schon ein bissel älter (damals aufgesetzt unter woody und linux-vserver, dann "irgendwann" mal zu openvz migriert, da lief aber schon etch), falls das von Interesse sein sollte.
Re: IPv6 - Route festlegen [message #36324 is a reply to message #36001] Wed, 10 June 2009 06:05 Go to previous messageGo to next message
Sixtus is currently offline  Sixtus
Messages: 7
Registered: January 2009
Location: Germany
Junior Member

Moin Smile

Also, das Problem hatte ich anfangs auch, war aber ganz einfach zu lösen:
Nachdem das Hostsystem eine IPv6-Verbindung zu anderen Hosts herstellen konnte, habe ich im Container folgendes gemacht:
ip -6 route add ::/0 via $IPv6_ADRESSE_DES_ROUTERS dev venet0
Das ganze kann man ja gepflegt noch in /etc/network/interfaces eintragen (das ist jedoch bei mir noch ungetestet).

HTH und Gruss,
Sixtus
Re: IPv6 - Route festlegen [message #36327 is a reply to message #36324] Wed, 10 June 2009 14:32 Go to previous message
Sven
Messages: 2
Registered: May 2009
Junior Member
Moin! Smile
Sixtus wrote on Wed, 10 June 2009 08:05

ip -6 route add ::/0 via $IPv6_ADRESSE_DES_ROUTERS dev venet0

Das mache ich jetzt ja auch (allerdings vom Hostsystem aus - siehe das erste kleine bash-script). Die IPv6-Konnektivität ansich bekomme ich ja auch hin.
Quote:

Das ganze kann man ja gepflegt noch in /etc/network/interfaces eintragen (das ist jedoch bei mir noch ungetestet).


Eben das funktioniert ja nicht, da die IPv6-Adresse erst nach dem Abarbeiten der Startscripte zugewiesen wird.
Man könnte nun etwas crudes schreiben (beispielsweise ne while schleife, in der geprüft wird, ob die oder eine IPv6-Adresse zugewiesen wurde, und dann die Route anlegen) - aber elegant sieht anders aus Wink

Ich suche deshalb den Teil im Startscript der Container, der die IPv6-Adresse zuweist - dort müsste man direkt im Anschluß die Route einpflegen lassen.
Leider bin ich ganz augenscheinlich zu deppert, diese zu finden Sad

In meinen Augen ist das auch ein kleiner Bug - was nützt es eine Adresse zuzuweisen, wenn keine entsprechenden Routen dazu angelegt werden (können)? So wie es jetzt (zumindest in den Debian-Paketen) ist, sind IPv6-Adressen ja exakt nutzlos.


BTW:
Hast du auch ein ähnliches Problem bei der conntrack-engine?
Pakete über venet0 werden bei mir immer als neu erkannt, bzw. der Zustand wird nicht erkannt.



Gruß und Dank
Sven
Previous Topic: Probleme bei Installation auf Debian Etch
Next Topic: DRINGEND : Wie kann ich meinen Containern Internetzugriff geben für apt-get install ....
Goto Forum:
  


Current Time: Fri Nov 08 20:53:58 GMT 2024

Total time taken to generate the page: 0.03285 seconds