ubuntuusers.de

VLAN Tagging unter Ubuntu 22.04 und kvm funktioniert nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

inoculator

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 44

Moin zusammen,

folgender Aufbau: physikalische Maschine mit einem Netzwerkadapter Ubuntu 22.04 als OS (nennen wir sie "Obelix") Rolle: Hypervisor unter KVM.

Das angeschlossene Netzwerk ist auf der physikalischen Switch als VLAN 200 getaggt. Aktuell bin ich dabei, meine physischen Maschinen zu virtualisieren. Dabei ist u.a. ein Voip Server, dessen NIC auf zwei VLANs geschaltet ist: VLAN 200 und VLAN 400 Auf dem 400er liegen alle VOIP Geräte. Das 200er ist mein "feld-wald-und-wiesen-Netzwerk". Auf dem VOIP Server läuft auch ein "isc-dhcp-server", der alle VLANs bedient. Um das zu realisieren habe ich die gängige Methode mit Modprobe 8021q und die Benennung "eth0.200" und "eth0.400" gewählt. Das funktioniert seit Jahren so.

Nun möchte ich den DHCP Dienst auf die physische Maschine Obelix verlegen. Obelix hat eine Bridge mit dem einzigen NIC als Port. Sieht in der "interfaces" so aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 10.10.10.243
gateway 10.10.10.254
netmask 255.255.255.224
dns-nameservers 10.10.10.242
dns-search abinsnetz.local
hwaddress ether 40:8d:5c:bd:3c:06
bridge_ports eth0
bridge_stp off
bridge_fd 0

Das funktioniert soweit. ich kann VMs einrichten, komme mit PING, SSH und co überall hin, keine Einschränkungen.

Wenn ich nun den DHCP auf Obelix verlege und auf dem Voip Server den "ISC-DHCP-Relay" Service einrichte, bekommen die VOIP Clients im VLAN 400 keine IP Addressen. Das VLAN 200 wird versorgt. Auf Obelix sehe ich den DHCPRequest und den DHCPOffer, und dann nichts mehr. Der DHCPOffer kommt auf dem Relay schon gar nicht mehr an.

Soweit ich mir das nun angelesen habe, hat es etwas damit zu tun, daß auf Obelix kein VLAN Tagging eingerichtet ist. Also habe ich versucht, dieses einzurichten. Außer, daß meine Frau mich fast umgebracht hat, als der DHCP Dienst gar nicht mehr erreichbar war und sie mitten im Spiel nicht mehr ins Netz kam, habe ich nichts erreicht. Zwar startet Obelix als wenn nichts wäre, aber es geht kein Ping oder sonst was rein oder raus. Nur der Zugriff auf die physische Konsole hilft weiter.

Hier mein Versuch mit VLAN:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
auto eth0
iface eth0 inet manual


# VLAN 200
auto eth0.200
iface eth0.200 inet manual
vlan-raw-device eth0

## PROD Bridge to VLAN 200
auto br0.200
iface br0.200 inet static
address 10.10.10.243
gateway 10.10.10.254
netmask 255.255.255.224
dns-nameservers 10.10.10.242
dns-search abinsnetz.local
hwaddress ether 40:8d:5c:bd:3c:06
bridge_ports eth0.200
bridge_stp off
bridge_fd 0

Wo liegt mein Gedankenfehler?

Gruss carsten

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17525

Tagged/Untagged gleichzeitig am selben Port ist immer ein bisschen spannend wenn man auch DHCP will.

inoculator

(Themenstarter)

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 44

encbladexp schrieb:

Tagged/Untagged gleichzeitig am selben Port ist immer ein bisschen spannend wenn man auch DHCP will.

Den verstehe ich jetzt nicht ganz. Wieso beides am gleichen Port gleichzeitig in dieser Konfiguration?

Ich will, daß der br0 mit VLAN 200 redet und nichts anderers. eth0 ist dabei -nach meinem Verständnis; eth0.200 untergeordnet und dieses wiederum der br0.200.

Damit "redet" eth0 nicht in eigenregie und der host obelix müsste via des bridge ports mit der Welt sprechen, also auch als VLAN 200 getagged.

Wo ist der "untagged" port in dieser Konfiguration?

DHCP in diesem Zusammenhang nichts als client sondern als server auf Obelix.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17525

Ich ging davon aus das du am Obelix (Server) ein weiteres VLAN haben willst, und das durch die Bridge muss. Ist dies nicht der Fall? Ist das VLAN einfach das Default VLAN vom Port, also untagged? Wenn ja: Dann brauchst du keine magie mit Bridge und VLANs machen.

eth0 sieht, allen Traffic. Ein Dienst mit RAW Socket (z.B. DHCP) sieht auf diesem Port untagged traffic, also das Default VLAN, aber auch tagged Traffic (weitere VLANs). Eine Bridge kommt erst im Anschluss.

Ich meine auch explizit DHCP als Server an einer tagged/untagged Konfiguration, Client ist eine andere Story.

Klarstellung: Was für VLANs liegen wie an dem Interface (Switch!) an?

inoculator

(Themenstarter)

Anmeldungsdatum:
14. Oktober 2010

Beiträge: 44

Der physikalische Switchport ist mit VLAN 200 getagged.

Auf Obelix soll auf dem Host (also nicht im Kontext einer VM) ein DHCP Server laufen.

Herausforderung: Dieser soll auch das entfernte VLAN 400 versorgen.

Dazu habe ich auf dem VOIP Server ein DHCP Relay eingerichtet. Dieses nimmt auch die DHCPDiscover aus dem VLAN 400 an und sendet sie an den DHCP im VLAN 200 auf Obelix. Obelix empfängt dieses und sendet ein DHCPOffer. Das kommt aber nicht am DHCP Relay an.

Ich habe nun Artikel gefunden, welche andeuten, daß das Problem ein untagged Interface auf dem DHCP Server ist. Daher der Versuch, die Bridge zu taggen (VLAN 200). Sobald ich das aber wie im Beispiel einrichte, fällt die gesamte Netzwerkverbindung auf Obelix aus.

Hier ein Beispiel mit einem guten Bild in der Erklärung. https://serverfault.com/questions/472680/dhcpdiscover-dhcpoffer-but-no-dhcpack

Aus diesem resultiert mein Versuch, das VLAN tagging auf dem Interface einzurichten.

*[Anmerkung]: DHCPRequest ist hier im Eingang falsch gewesen, ich spreche natürlich vom DHCPDiscover als erster Schritt auf den dann der DHCPOffer erfolgt.

[EDIT]: bei der Switch handelt es sich um eine alte Cisco 3560G. Ich habe mittlerweile eine monitor session laufen lassen und konnte auf Obelix die ARP Packete bis zum eth0 sehen, aber auf dem Port der Switch kamen diese nicht an. Das heißt, in dem moment, wo auf Obelix das VLAN konfiguriert ist, geht physisch nichts mehr zum Adapter raus oder rein. Als wenn der Kernel blocken würde. (Monitor Setup: "monitor session 1 source [gi port von Obelix)"; "monitor session 1 destination [gi port eines Windows Clients mit Wireshark]") Quelle: https://networkengineering.stackexchange.com/questions/640/how-can-i-capture-traffic-on-cisco-ios-switches

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17525

Gut, du musst damit das DHCP Relay funktioniert nichts mit VLANs Taggen auf dem Server oder so. In Firmen hat der DHCP Server auch nur ein Netz, der Rest kommt per Relay. Effektiv macht ein DHCP Relay ja nur aus Broadcast ein Unicast, bekommt die Antwort zurück und packt es aus. Das macht im Idealfall der Switch direkt.

In deiner Antwort auf Serverfault wurde ein Tag am Trunk/Uplink vertauscht, daher die genannten Probleme.

Warum ist der VOIP Server das DHCP Relay, und nicht der Switch? Haben wir hier einen primitiven Switch, oder einen der auch IP Helper / DHCP Relay machen kann? Das DHCP Relay zeigt auf die IP vom DHCP Server (Obelix, Whatever,...), richtig? Hat dieser auch eine zum VLAN 400 passende Subnet definition?

Effektiv schickt das DHCP Relay das Subnet mit, der DHCP Server mapt das gegen seine Config und antwortete dem Relay.

Wohin geht denn (tcpdump ist dein Freund), die DHCP offer zurück? Was sagt das Log vom DHCP Server? Und was sagt uns die config vom DHCP Server?

Antworten |