Dynamic Trunking Protocol
Abkürzung: DTP
Was ist das Dynamic Trunking Protocol?
Das Dynamic Trunking Protocol, abgekürzt DTP, ist ein proprietäres Netzwerkprotokoll von Cisco zur automatischen Aushandlung von Trunk-Verbindungen zwischen Switches. Ein Trunk ist eine Ethernet-Verbindung, die Datenpakete mehrerer VLANs gleichzeitig überträgt. DTP ermöglicht es, solche Trunks ohne manuelle Konfiguration dynamisch einzurichten und den Trunk-Modus zwischen zwei Geräten auszuhandeln. Das Protokoll arbeitet auf Layer 2 und verwendet reservierte Multicast-Adressen, um DTP-Nachrichten zwischen benachbarten Ports auszutauschen. DTP wurde für Cisco-Umgebungen entwickelt und funktioniert nur zwischen Geräten, die das Protokoll unterstützen.
Funktionsweise von DTP
DTP sendet periodisch sogenannte DTP-Advertisements an die reservierte MAC-Adresse 01:00:0C:CC:CC:CC. Diese Pakete enthalten Informationen über den gewünschten Trunk-Modus des sendenden Ports, den verwendeten Trunk-Typ (ISL oder 802.1Q) und die administrative Domäne. Der empfangende Switch wertet die DTP-Nachricht aus und vergleicht seine eigene Port-Konfiguration mit den angebotenen Optionen. Aus diesem Abgleich ergibt sich der tatsächlich geschaltete Modus der Verbindung.
DTP unterscheidet fünf verschiedene Port-Modi, die das Verhalten des Ports beim Trunk-Aushandeln bestimmen.
- Access: Der Port agiert dauerhaft als Access-Port und gehört zu einem einzigen VLAN. Er sendet keine DTP-Pakete und wird niemals zu einem Trunk.
- Trunk: Der Port ist dauerhaft als Trunk konfiguriert und überträgt Daten für alle erlaubten VLANs. Er sendet DTP-Pakete, um dem Nachbarn diesen Status mitzuteilen, der Port bleibt jedoch unabhängig von der Antwort im Trunk-Modus.
- Dynamic Desirable: Der Port wünscht aktiv eine Trunk-Verbindung und sendet DTP-Pakete, um die Aushandlung einzuleiten. Er geht in den Trunk-Modus, wenn der Nachbarport auf Trunk, Dynamic Desirable oder Dynamic Auto konfiguriert ist.
- Dynamic Auto: Der Port ist bereit, Trunk zu werden, initiiert die Aushandlung aber nicht selbst. Er reagiert nur auf ankommende DTP-Anfragen. Ein Trunk kommt nur zustande, wenn der Nachbarport auf Trunk oder Dynamic Desirable eingestellt ist. Zwei Dynamic-Auto-Ports bilden keinen Trunk, sondern bleiben im Access-Modus.
- No Negotiate: Der Port ist als Trunk konfiguriert, sendet aber keine DTP-Pakete. Dieser Modus wird verwendet, wenn die Gegenseite kein DTP unterstützt oder die Aushandlung aus Sicherheitsgründen unterbunden werden soll.
DTP und VLAN-Trunking-Protokolle
DTP verhandelt den Trunk-Modus, trifft aber keine Aussage über das Trunking-Protokoll selbst. Der Switch unterstützt zwei Trunk-Encapsulations: das ältere, proprietäre ISL (Inter-Switch Link) und das standardisierte IEEE 802.1Q. Moderne Cisco-Switches verwenden fast ausschließlich 802.1Q. DTP kann die Encapsulation nicht aushandeln; diese muss entweder manuell gesetzt oder über einen separaten Aushandlungsprozess mit dem Befehl switchport trunk encapsulation negotiate ermittelt werden.
DTP und VTP
DTP ist eng mit dem VLAN Trunking Protocol (VTP) verwandt, aber nicht identisch. VTP verteilt VLAN-Konfigurationen über Trunk-Verbindungen und nutzt dazu dieselbe reservierte Multicast-Adresse wie DTP. Beide Protokolle arbeiten auf Layer 2, VTP behandelt die VLAN-Datenbank, DTP die Trunk-Aushandlung. Ein Port, der als Trunk konfiguriert ist, überträgt sowohl VTP- als auch DTP-Nachrichten. Die administrative VTP-Domäne, die ein Switch angehört, wird auch in den DTP-Nachrichten mitgeführt und kann die Trunk-Aushandlung beeinflussen, wenn die Domänen nicht übereinstimmen.
Sicherheitsrisiken durch DTP
Die automatische Trunk-Aushandlung mit DTP birgt erhebliche Sicherheitsrisiken. Ein Angreifer, der physischen Zugang zu einem Switch-Port hat, kann einen eigenen Switch oder ein mit einem Laptop simuliertes Gerät anschließen und DTP-Pakete senden. Der Port verhandelt daraufhin einen Trunk und gewährt dem Angreifer Zugang zu allen VLANs, die über diesen Port laufen. Man-in-the-Middle-Angriffe, VLAN-Hopping und unautorisierte Zugriffe auf Management- und Produktions-VLANs sind die Folge.
Aus diesem Grund empfehlen Sicherheitsrichtlinien, DTP auf allen Ports, insbesondere auf unbekannten Endgeräteports, vollständig zu deaktivieren. Dies geschieht durch die Konfiguration des Ports in den statischen Access- oder Trunk-Modus mit dem Zusatz switchport nonegotiate, der das Senden von DTP-Paketen vollständig unterbindet. Auch ungenutzte Ports sollten in den Access-Modus gesetzt und einem unbenutzten VLAN zugewiesen werden.
Konfiguration und Deaktivierung
Die Konfiguration von DTP ist eng mit der Einstellung des Switch-Port-Modus verbunden. Ein Administrator kann DTP deaktivieren, indem er den Port manuell als statischen Access-Port oder statischen Trunk-Port mit Nonegotiate-Zusatz definiert. Ein Access-Port wird mit switchport mode access gesetzt, ein Trunk-Port ohne DTP mit switchport mode trunk und switchport nonegotiate. Die aktuelle DTP-Konfiguration lässt sich mit show dtp oder show interfaces interface-id switchport anzeigen.
Grenzen und Best Practices
DTP war in den frühen Jahren von Cisco-Netzwerken ein nützliches Werkzeug, um die Einrichtung von Trunks zu automatisieren. Heute gilt die automatische Aushandlung als überholt und riskant. In modernen, sicherheitsbewussten Netzen wird DTP grundsätzlich deaktiviert. Die manuelle Konfiguration von Trunks und Access-Ports sorgt für Klarheit, verhindert Fehlkonfigurationen und schließt Angriffsvektoren. Switches von anderen Herstellern unterstützen DTP nicht; in heterogenen Umgebungen ist die manuelle Konfiguration von Trunks nach IEEE 802.1Q die einzig sichere und funktionsfähige Methode. In reinen Cisco-Umgebungen, die auf dynamische Topologien angewiesen sind, kann DTP in kontrollierten Bereichen weiterhin zum Einsatz kommen, jedoch niemals an Ports, die zu öffentlichen oder nicht administrierten Bereichen führen.