Jul
27

Microsoft TMG 2010, HP Server und VLAN Tagging – Beschreibung eines “unglaublichen” Problems

Filed Under (Consulting, PSAG) by on 27-07-2012 and tagged , , , , , ,

Letzte Woche gelang die Lösung eines Problems, welches mich bei einem Kunden schon fast ein Jahr beschäftigt. Es ist eines der Probleme aus der Gattung “das kann so aber garnicht sein” und hat sich daher lange gegen eine Lösung gewehrt. Wir konnten es auch nicht zum Support eines Geräteherstellers eskalieren, die Beteiligten schoben sich gegenseitig die Schuld zu, denn die Beteiligten sind:

  • Ein Windows 2008 R2 Server von Microsoft mit Microsoft Threat Management Gateway (TMG) 2010 als Proxy-Server und Firewall zum Internet
  • Der läuft auf einem Hewlett Packard ProLiant DL 350 Server mit originalen HP Netzwerkkarten
  • Zum Backbone und zu den VLANs angeschlossen per Cisco Switches
  • Zum Internet direkt am Router des Providers

Da war für unser Problem natürlich keiner zuständig und “das kann so aber garnicht sein” habe ich öfter gehört. Nun aber zu diesem völlig unglaublichen Problem:

Der Proxy verbindet mehrere “fremde” Netzwerke im Haus mit dem Backbone und läßt den Zugriff auf ausgewählte Rechner dort und aufs Internet zu. Diese “fremden” Netzwerke werden immer mehr und uns gingen die Ports am Server aus. Ich möchte in ein Gerät, das seit einem Jahr superstabil läuft, keine neue Netzwerkkarte einbauen. Also stellten wir einen der Ports am Switch als VLAN Trunk ein mit dem Ziel, die Pakete der einzelnen VLANs auf diesem Port via VLAN Tagging abzugreifen. Der HP Server generiert dazu für jedes VLAN, das man anmeldet eine eigene Netzwerkkarte, so daß man diese im TMG eintragen kann und die Pakete ganz gewohnt routen oder NATen kann.

So weit, so gut, die Konfiguration war schnell eingetragen, vom Firewall konnte man auch munter alle Geräte in den VLANs anpingen, man konnte von überall her aus ins Internet, man konnte vom Backbone Geräte in den “fremden” Netzwerken anpingen, der Reply kam aber nie zurück. Der Netzwerksniffer zeigt, daß der Ping auf dem Backbone Adapter ankommt, vom Firewall weitergeleitet wird, im “fremden” Netzwerk ausgeliefert wird, dort der Reply zurückkommt, vom Firewall wieder weitergeleitet und auf dem Backbone Adapter abgeliefert wird. Im Sniffier auf dem Backbone Switch kommen die Pakete aber nie an. Wo gehen sie verloren?

Zurückgeswitcht auf Portbasierte VLANS flutschen die Pakete sofort wieder und alles ist wieder gut (bis auf die Tatsache, daß uns die Ports ausgehen). Der Backbone Port des Proxy ist sowieso nur auf portbasiertes VLAN eingestellt und das VLAN Tagging ist im Netzwerkadapter abgeschaltet:

VLAN Tagging off

Alles stellte sich so dar, als ob die Pakete, wenn sie aus dem VLAN zurückkommen, vom Backbone Switch einfach nicht mehr akzeptiert würden. Da sitzt man natürlich zwischen den Stühlen. Microsoft verweist darauf, daß TMG 2010 tagged VLANS einwandfrei unterstützen würde, der Betreuer des Netzwerkswitches verweist darauf, daß das Paket auf seinem Switch nicht ankommen würde (mit einem gewissen Unterton, der so etwa klingt wie “man nimmt auch keine Microsoft Produkte zum Routen her“), HP schließlich verweist darauf, daß die tagged VLANs erstklassig funktionieren und man schließlich vom Proxy aus PINGen könnte.

Eine Idee war, man könnte zwischen den Backbone Switch und den Proxy einen Switch von HP schalten, die haben wir aber wieder verworfen, weil das sind bei HP ja auch zwei verschiedene Abteilungen.

Also muß man grundlagentheoretisch an das Problem rangehen:

  • PINGt man vom Backbone ins “fremde” Netzwerk, kann man das Paket jeweils sehen: auf dem Backbone Adapter des Proxy, auf dem Adapter fürs “fremde” Netzwerk auf dem Proxy, am Endgerät, dann wieder auf dem Adapter fürs “fremde” Netzwerk auf dem Proxy, dann nochmal auf dem Backbone Adapter des Proxy, dann ists weg.
  • PINGt man vom Endgerät in den Backbone sieht man das Paket am Endgerät, dann wieder auf dem Adapter fürs “fremde” Netzwerk auf dem Proxy, dann nochmal auf dem Backbone Adapter des Proxy, dann ists weg.

Das Problem kann also begrenzt werden auf Pakete, die aus einem tagged VLAN in das untagged VLAN geroutet werden. In der Netzwerktheorie gehen wir natürlich davon aus, daß die 802.1Q Headers im Frame beim Routing über Layer 3 aus den Paketen entfernt werden. Was wäre aber, wenn nicht? Wenn das Paket aus dem VLAN nach dem Routing durch den TMG 2010 sein VLAN Tag immer noch behalten hätte? Dann müßten wir folglich auf den Backbone Switch ein Paket sehen, wenn wir den Port auf Trunk stellen und mit dem Sniffer genau das VLAN abgreifen aus dem wir auch PINGen.

Ich könnte nicht behaupten, daß wir uns irre gefreut haben, als wir das Paket sahen. Aber es ist tatsächlich so. Pakete, die von Microsoft TMG auf einem HP ProLiant Server aus einem tagged VLAN in ein untagged VLAN geroutet werden, behalten ihr VLAN Tag bei! Das ist für mich völlig widersinnig, ich konnte aber keine Dokumentation irgendwo finden (bis jetzt), die das bestätigen oder widerlegen würde. Ich kann nur theoretisch entscheiden, daß es beim Routing absolut keinen Sinn macht, ein VLAN Tag mitzugeben, denn selbst, wenn das Zielnetz VLAN Tags besitzt, sind die sicher nicht die gleichen, wie im Quellnetz.

Oder macht es vielleicht doch Sinn?

Sieht man sich den 802.1Q Header genau an, dann transportiert der nicht nur das VLAN Tag, sondern auch die Priority aus der Class of Service (CoS):

802.1Q

Egal, ob das Sinn macht, oder nicht, Priority hatte ich schon mal gesehen – an den Adaptersettings des HP Netzwerkadapters. Genau im Zusammenhang mit den Erweiterten Einstellungen für die VLANs kann man zusätzlich die Priority deaktivieren. Tut man das, wird anscheinend der gesamte 802.1Q Header aus allen Paketen auf diesem Adapter entfernt, denn auf einmal funktioniert das Routing einwandfrei!

Priority and VLAN disabled

Und die Moral von der Geschichte: Man stelle jeden HP Server Netzwerkadapter, der nicht an einem VLAN Port Trunk hängt auf “Priority & VLAN disabled” ein.

Noch ein Nachtrag: Auch wenn der Microsoft TMG 2010 als Proxyserver gerne belächelt wird – er ist stabil und ohne weitere Zusatzprodukte in der Lage, Internetbenutzer anhand ihres Logins im Active Directory zu identifizieren und den Namen des Benutzers ganz einfach ins Log zu schreiben.




coded by nessus


5 Responses to “Microsoft TMG 2010, HP Server und VLAN Tagging – Beschreibung eines “unglaublichen” Problems”

  1.   Springo Says:

    Hallo, die NIC 382T ist eine Broadcom 5709c und diese kann VLAN Tagging ! http://www.broadcom.com/collateral/pb/5709C-PB02-R.pdf. Habt Ihr mal im ITRC einen thread aufgemacht ! Waere doch gelacht, wenn HP das. Thema nicht gefixt gekommt. Aber ab und an schicken die auch Dick & Doof zum Kunden .
    Gruss

  2.   Christian Pohle Says:

    Die Netzwerkkarten i und t können beide VLAN Tagging, das ist nicht ganz das Problem gewesen. Die Frage ist, ob es in Ordnung ist, wenn das VLAN Tag ein Layer 3 Routing überlebt, was es gemäß Netzwerktheorie nicht sollte. Insofern denke ich, es ist ein Bug im TMG oder im Win2008, daß das VLAN Tag das Routing überlebt und es ist ein kleinerer Bug im Treiber der Netzwerkkarte, daß das VLAN Tag nicht entfernt wird, wenn man auf “Priority enabled” stellt. Ich gebe aber zu, daß die Aufgabenstellung irgendwie auch recht speziell ist. Bin mal gespannt, ob sich noch irgendwann jemand meldet, der das gleiche Problem hat…

  3.   Springo Says:

    Hallo, mein Ansatz waere es zu einem HP Problem zu machen und im ITRC einen Supportcase aufzumachen. Da sitzten doch die ganz klugen Leute der HP. Hp Server haben einen marketshare von ueber 60%. Wenn mit nicht alles taeuscht, ist es auch der groesste Microsoftpartner weltweit. Dient doch nur deren Qualitaets-
    management. Gruss

  4.   Christian Pohle Says:

    Ich stimm Dir ja zu, das sollte zu einem Problem von Microsoft oder HP gemacht werden.

    Fakt ist aber, daß ich dazu bereits eine Anfrage bei HP hatte und eine bei M$. Die haben mich zusammen etwa 7 Stunden Arbeit gekostet. Wenn ich das nun nochmal eskaliere, bin ich für Datensammlung, Beschreibung und Betreuung von Dick und Doof nochmal gute 2 Manntage unterwegs. Und wozu? Damit HP oder M$ seine Qualität verbessert. Mein Kunde wird mir das nicht mehr bezahlen und wir haben auch schon für die bisher erbrachte Dienstleistung in diesem Fall, es waren 47 Arbeitsstunden eine für meinen Kunden sehr akzeptable Abrechnungslösung gefunden – schließlich habe ich ja darauf bestanden, keine weitere Netzwerkkarte einzubauen und ich betreue auch den Proxy und hatte TMG2010 empfohlen. 

    Wer möchte kann sich gerne mit meinem Blog Artikel an M$ oder HP wenden und die ganze Sache im eigenen Labor nachstellen. Mir ist es das nicht wert, noch mehr Zeit da reinzuballern. 

  5.   Springo Says:

    Hallo, da gebe ich Dir recht. Die Eskalationen sind aufwendig. War nur ein Ansatz- aber dass weder Hp noch Microsoft dies vernuenftigt gefixed bekommt, zeigt uns doch mal wieder, dass zuviel Marketing draussen ist. TMG 2010 und Hp Proliant sind gute Loesungen. Ein Kunde bezahlt ungern solche Bugs-kenne ich zu gut.

Leave a Reply