Ich führe eine Anwendung in Ubuntu12.04 aus, die ich geschrieben habe und die eine Remote-Switch-Verwaltung durchführt. Ich habe nur eine einzige Netzwerkkarte mit dem Netzwerk der verwalteten Switches verbunden, eth0, die auf IPv4 10.0.0.1/24 eingestellt ist. Diese IPv4-Adresse ist die einzige Adresse, die dieser Ubuntu-Rechner verwenden kann, da dies die einzige „global“ routbare Adresse ist, die dem Ubuntu-Rechner zugewiesen wurde (aufgrund einer Netzwerkverwaltung, nicht aufgrund technischer Probleme ...)
Ich brauche den Switch-Management-Verkehr (NetConf über SSH, unter Verwendung von UDP-Port 830), um beim Senden der NetConf-Frames ein 802.1q-VLAN-Tag mit VLAN-ID 444 einzuschließen, und die Antworten werden auch mit diesem Tag empfangen. Der gesamte andere Verkehr (http, ftp, dhcp, snmp usw.) verwendet eth0 ohne das VLAN-Tag.
Ich habe versucht, eine VLAN-Schnittstelle eth0.444 auf eth0 zu verwenden, aber es scheint, dass der gesendete Datenverkehr das VLAN-Tag nicht enthält.
Kann (und wie) kann ich ebtables/iptables verwenden, um einem bestimmten UDP-Port-Verkehr ein bestimmtes VLAN-Tag hinzuzufügen? Funktioniert die ebtables/iptables-Lösung auch für den Empfangspfad?
Danke schön!
David
Antwort1
iptablesund ebtableskann keine VLAN-Tags auf Paketen festlegen. Dafür gibt es VLAN-Subschnittstellen.
Dort ist einArtikel im Ubunut-Wiki, der VLANs diskutiertdie Sie wahrscheinlich überprüfen sollten. Zusammenfassend möchten Sie jedoch:
Stellen Sie sicher, dass das 802.1q-Modul mit einem geladen ist
modprobe 8021q.Erstellen Sie die VLAN-Subschnittstelle mit
vconfig add eth0 444.Fügen Sie eine IP-Adresse und eine Subnetzmaske aus dem in VLAN 444 verwendeten Subnetz zur
eth0.444Subschnittstelle hinzu mitip addr add x.x.x.x/z dev eth0.444
Sie müssen außerdem den Switch-Port, an den der Server angeschlossen ist, so konfigurieren, dass er getaggte Frames für VLAN 444 akzeptiert. Sie erwähnen die Marke Ihres Switches nicht, daher kann ich Ihnen dazu nicht viel sagen, aber Sie suchen wahrscheinlich entweder nach einem „Trunk“- oder „allgemeinen“ Port, der als getaggtes Mitglied von VLAN 444 und als ungetaggtes Mitglied des VLAN konfiguriert ist, das vom der eth0Schnittstelle zugewiesenen Subnetz verwendet wird.
Beachten Sie, tcpdumpdasshabe Probleme bei der Anzeige der VLAN-TagsGehen Sie also nicht unbedingt davon aus, dass Frames nicht markiert werden, wenn Sie nur tcpdumpauf dem Host selbst überprüfen, ob Frames markiert sind.
Bearbeiten:
Normalerweise besteht eine Eins-zu-eins-Beziehung zwischen VLANs und IP-Subnetzen. Es wäre äußerst untypisch, wenn der Switch eine Verwaltungsschnittstelle in VLAN 444 hätte, die dasselbe IP-Subnetz wäre wie das VLAN, eth0in dem sich Ihr aktueller Port befindet.
Antwort2
Das 802.1Q-Tag wird in den MAC-Header eingefügt und der Kernel kann es nicht dekodieren, wenn Ihre Schnittstelle nicht VLAN-getaggt ist. Selbst wenn Sie also ausgehende Pakete verstümmeln könnten, würde eingehender Datenverkehr mit VLAN-Tag ignoriert werden.
Sie müssen wie oben beschrieben eine VLAN-getaggte Schnittstelle erstellen und ihr eine IP im selben Bereich hinzufügen, in dem sich die Switch-IP befindet, auf die Sie zugreifen möchten.


