visucius
Goto Top

Dyn. 802.1x, Mikrotik als Authenticator, vLAN defekt?

Moin in die Runde,

gerade stehe ich mal wieder auf dem Schlauch. Eigentlich hatte ich im Testsetup ein funktionierenden Testport für 802.1x (5), den ich dann nach dem Einbau in das Rack allerdings auf Port 1 (ether1) wechseln wollte.

Problem: Der Supplicant bekommt keine vLAN-Zuweisung. Allerdings ist es so, dass ich die OPNsense vom RouterOS überhaupt nicht pingen kann. Selbst wenn die Source-IP im vLAN99 ist. Die angeschlossenen Geräte an den anderen Ports funktionieren dabei allerdings tadellos und sind auch erreichbar. Ich kann auch vom CRS "dahinter" auf die OPNsense zugreifen.
Ich habe wohl nen Denkfehler beim vLAN (99/Mgmnt) Setup des Routers gemacht. Vielleicht könnt Ihr mir ja auf die Sprünge helfen, weil ich mittlerweile vermutlich mehr verschlimmbessere und den Wald vor Bäumen nicht mehr sehe face-wink

Ach ja. Und ne 2. Frage, die im Laufe des "Verschlimmbesserns" aufkam: Welche vLAN-Konfiguration wähle ich eigentlich auf dem Radius-Port (ether1)?

Allgemein:
Alle beteiligten Geräte up2date
OPNsense stellt vLANs
OPNsense stellt 802.1x-Server (Freeradius)

bildschirmfoto 2024-05-08 um 15.12.48

# 2024-05-08 14:35:24 by RouterOS 7.15rc2
# software id = CLR6-PH9G
#
# model = RB5009UPr+S+
/interface bridge
add igmp-snooping=yes name=bridge pvid=99 vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] comment=802.1x_TEST
set [ find default-name=ether2 ] comment=Bond_Server
set [ find default-name=ether3 ] comment="Bond Server"  
set [ find default-name=ether4 ] comment=Wifi-Trunk
set [ find default-name=ether5 ] comment=LTE-Modem
set [ find default-name=ether6 ] comment=DECT
set [ find default-name=ether7 ] comment="Bond Uplink"  
set [ find default-name=ether8 ] comment="Bond Uplink"  
/interface vlan
add interface=bridge name=vlan99_admin vlan-id=99
/interface bonding
add mode=802.3ad name=bond_server slaves=ether2,ether3 transmit-hash-policy=layer-3-and-4
add mode=802.3ad name=bond_uplink slaves=ether7,ether8 transmit-hash-policy=layer-3-and-4
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/interface bridge port
add bridge=bridge ingress-filtering=no interface=sfp-sfpplus1 pvid=99
add bridge=bridge ingress-filtering=no interface=bond_server pvid=99
add bridge=bridge ingress-filtering=no interface=bond_uplink pvid=99
add bridge=bridge ingress-filtering=no interface=ether4 pvid=99
add bridge=bridge ingress-filtering=no interface=ether5 pvid=99
add bridge=bridge ingress-filtering=no interface=ether1 pvid=99
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged interface=ether6 pvid=22
/interface bridge vlan
add bridge=bridge tagged=bond_server,bond_uplink,bridge,ether1,ether4,ether5,sfp-sfpplus1 vlan-ids=11
add bridge=bridge tagged=bond_server,bond_uplink,bridge,ether1,ether4,ether5,sfp-sfpplus1 untagged=ether6 vlan-ids=22
add bridge=bridge tagged=bond_server,bond_uplink,bridge,ether1,ether4,ether5,sfp-sfpplus1 vlan-ids=33
add bridge=bridge tagged=bond_server,bond_uplink,bridge,ether1,ether4,ether5,sfp-sfpplus1 vlan-ids=44
add bridge=bridge tagged=bond_uplink,bridge,ether1,ether4,ether5,sfp-sfpplus1 vlan-ids=99
/interface dot1x server
add auth-types=dot1x,mac-auth interface=ether1 radius-mac-format=xx-xx-xx-xx-xx-xx server-fail-vlan-id=99
/ip address
add address=10.11.99.5/26 interface=vlan99_admin network=10.11.99.0
/ip dns
set allow-remote-requests=yes servers=10.11.99.1
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=10.11.99.1 routing-table=main suppress-hw-offload=no
/ip ssh
set always-allow-password-login=yes forwarding-enabled=both
/radius
add address=10.11.99.1 require-message-auth=no service=ppp,dhcp,dot1x
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=router
/system note
set show-at-login=no
/system package update
set channel=testing
/system routerboard settings
set auto-upgrade=yes
/user group
add name=ssh policy=local,ssh,read,write,!telnet,!ftp,!reboot,!policy,!test,!winbox,!password,!web,!sniff,!sensitive,!api,!romon,!rest-api

Content-Key: 4311137101

Url: https://administrator.de/contentid/4311137101

Printed on: July 21, 2024 at 22:07 o'clock

Mitglied: 13034433319
Solution 13034433319 May 08, 2024 updated at 13:39:52 (UTC)
Goto Top
Du taggst ether1 in allen vlans, da hängt aber verm. ein Client dran der nix mit getaggten Paketen anfangen kann, in dem Fall also ether1 aus den VLANs unter "/interface bridge vlan" nehmen.

Auch musst du die Bridge selbst nur im vlan99_admin (99) taggen denn nur dort hat der Mikrotik selbst eine IP, in den anderen ist das taggen der Bridge überflüssig.

OPNSense Config zu VLAN-Zuweisung fehlt leider komplett.
Taggst du das MGMT VLAN an der Sense oder nutzt du das Bonding Interface selbst und uberträgst das MGMT ungetagged was die Regel ist?

Gruß h.
Member: aqui
Solution aqui May 08, 2024 updated at 13:49:08 (UTC)
Goto Top
dass ich die OPNsense vom RouterOS überhaupt nicht pingen kann.
Da das 10.11.99.er Management Netz per Layer 2 direkt an deiner OPNsense anliegt und man damit Routing Probleme ausschliessen kann, spricht alles dafür das du hier ein Layer 2 Problem hast. Sprich das dein Management Segment (VLAN 99) nicht an der OPNsense ankommt und vice versa.
Vermutlich kannst du dann auch von der OPNsense mit Ping und Auswahl der lokalen Absender IP 10.11.99.1 im Ping Tool die Management IP des RB5009 nicht pingen, richtig?

Am Mikrotik ist soweit alles korrekt was den LAG zur OPNsense anbetrifft. Das VLAN 99 ist als PVID VLAN, also untagged an den LAG (Bonding) zur OPNsense angebunden, kommt dort also UNtagged an.
Das impliziert dann das du das VLAN 99 auf der OPNsense auf dem Parent Interface, also auf dem physischen LAG Interface liegen haben musst. VLAN 99 darf dort NICHT auf einem VLAN Interface liegen, denn das würde dann mit ID 99 getagged und so würden die Komponenten nicht zueinander kommen im Layer 2. (Siehe dazu auch HIER)
Das du zusätzlich noch 99 taggest ist dann grundsätzlich falsch und widerspricht dem PVID Setting! Du kannst ja nicht gleichzeitig das PVID VLAN auf die ID setzen und es dann zusätzlich mit der gleichen ID auch noch taggen. Wie sollte das gehen?
Das ist der Kardinalsfehler in deinem Setup. Die Behandlung des VLAN 99 auf dem Bonding Link zur OPNsense hängt in entscheidendem Maße auch davon WIE du das Parent VLAN (PVID) dort gesetzt hast!

Leider fehlt oben wie Kollege @13034433319 schon sagt das entsprechende Port Setup Pendant des OPNsense LAG Interfaces so das man hier nur kristallkugeln kann. Aber irgendwo in der Layer 2 Kopplung hast du deinen Fehler.
Bevor du weitermachst solltest du wasserdicht checken das du aus ALLEN VLANs sowohl vom CRS als auch RB5009 die OPNsense pingen kannst. Das stellt sicher das deine zu routenden VLANs alle korrekt per L2 an der OPNsense anliegen.
Member: Visucius
Visucius May 08, 2024 updated at 16:19:13 (UTC)
Goto Top
@13034433319:

Das klingt alles erschreckend logisch face-wink
Und nach Anpassung der Taggings und dem Neustart des Routers flutscht das.

Danke Dir, bzw. Euch beiden.

Noch ne Zwischenfrage: VLAN99 und "admit all" ist richtig auf dem 802.1x-Port am Mikrotik?

Was das tagging auf der OPNsense angeht. Habe ich zunächst einen lacp-Lagg "bond downlink" angelegt mit 3 RJ4-Ports (allerdings nur 2 davon aktuell belegt) und auf dem liegen dann die vLANs. Als DHCP läuft KEA und als DNS Unbound. Für mich sieht das so aus, als ob vLAN99 getagged aus der OPNsense kommt – genauso, wie alle anderen.

bildschirmfoto 2024-05-08 um 17.59.46
bildschirmfoto 2024-05-08 um 18.00.05
Mitglied: 13034433319
Solution 13034433319 May 08, 2024 updated at 16:48:10 (UTC)
Goto Top
Noch ne Zwischenfrage: VLAN99 und "admit all" ist richtig auf dem 802.1x-Port?
Nein, dort nur untagged traffic erlauben und die PVID auf 1 setzen wenn es ein Access Port ist. Das VLAN wird ja dynamisch durch den Mikrotik dem Port zugewiesen
(Sorry habe das "802.1x Port" falsch interpretiert, dachte zuerst das du damit den Bond Uplink zur Sense meintest)
Member: aqui
Solution aqui May 08, 2024 updated at 16:56:11 (UTC)
Goto Top
Das solltest du m.E. niemals machen, denn dann wäre der Port ja per Default im Management VLAN 99 was du im Normalfall an Nutzerports keinesfalls willst! Das Management VLAN gehört doch niemals auf Enduserports!
Es kommt hier jetzt drauf an was du machen willst...
  • Bei einer reinen .1x User Authentisierung ohne dynamischer VLAN Zuweisung setzt du die PVID statisch in das VLAN in dem der User arbeiten soll. Logisch, denn wenn die Info nicht vom Radius kommt musst du das statisch zuweisen. Das sollte dann tunlichst NICHT das Management VLAN sein!
  • Bei einer dynamischen VLAN Zuordnung am Port setzt du die PVID immer ins Default VLAN 1. Hier ist die Zuweisung letztlich egal, denn das VLAN wird ja dynamisch dort gesetzt. Sinnvollerweise nimmt man dann ein Allerwelts VLAN bzw. Standard VLAN in das alle User ohne Radius VLAN ID kommen. Denn falls sich da mal ein User ohne VLAN Radius Attribute authentisiert der dann in dieses VLAN fällt. Auch das sollte tunlichst aus guten Gründen niemals das Management VLAN sein! ­čĄö

Endgeräteports sind ja immer untagged und ein Radius Server weist in der Regel diese Ports ja auch untagged den dynamischen VLANs zu.
Nur einige wenige Hersteller können ein Tagging des dynamischen VLANs mitgeben wie z.B. Ruckus auf den ICX Switches.
Dort kann man mit "T:x" (x=VLAN ID) in der "Tunnel-Private-Group-ID" mitgeben das der Port tagged arbeiten soll für dieses VLAN. Komma getrennt dann auch für mehrere VLANs z.B. bei einem Trunk. Sowas ist ideal wenn man z.B. MSSID APs an einem Switchport authentisieren muss.
Bzw. "U:x" dann für untagged wobei das immer der Default ist wenn kein "T" vom Radius mitgegeben wird.
Viele andere Hersteller können dies aber nicht, dort ist ein dynamisches Tagging an .1x Ports nicht supportet. Mikrotik gehört leider dazu.
Folglich gehört dann auch kein "Admit-all" an diese .1x oder MAB Endgeräte Ports sondern immer ein "admin-only-UNtagged", denn Tagging will man an .1x Endgeräte Ports in der Regel nicht haben und wie oben schon gesagt klappt das eh nicht dynamisch.

Ausnahme ist wenn du tagged Ports authentisieren willst die mit statischem Tagging gesetzt sind.
Hier ist dann wieder die Kardinalsfrage ob das Endgerät dann auch die EAPoL Frames tagged oder nicht und ob das gegenüber das akzeptiert oder nicht. Das muss man im Zweifel testen wenn man tagged Ports authentisieren will weil es Hersteller spezifisch ist.
Member: Visucius
Visucius May 09, 2024 updated at 09:34:15 (UTC)
Goto Top
Das solltest du m.E. niemals machen, denn dann wäre der Port ja per Default im Management VLAN 99 was du im Normalfall an Nutzerports keinesfalls willst! Das Management VLAN gehört doch niemals auf Enduserports!
Ja, diese Gedanken hatte ich eben auch. Deshalb hatte ich nachgefragt. Ich glaube, dass ist mir im Rahmen meiner missglückten "Fehlersuche" passiert, weil ich mich irgendwann fragte, ob der Port überhaupt den Radius erreichen könne, bzw. warum ich keine Zuweisung erhalte.


Danke Euch. Dann bin ich schon mal vom Verständnis ein Stückchen weiter.

Wie ich das 99/Mgmnt untagged auf der OPNsense definiere, habe ich glaube ich hier gerade gefunden:
https://forum.opnsense.org/index.php?topic=28297.0
Member: aqui
Solution aqui May 09, 2024 updated at 10:07:48 (UTC)
Goto Top
"Der" Port muss niemals den Radius erreichen sondern nur die Management IP des Switches. Der Port selber hat ja auch keine IP Adresse, zumindestens nicht als Switchport. Das war vermutlich dein Denkfehler im Eifer des Gefechts. face-wink
Wie ich das 99/Mgmnt untagged auf der OPNsense definiere, habe ich glaube ich hier gerade gefunden:
Dafür musst du gar nicht in die Ferne schweifen sondern das steht auch HIER im LAG Tutorial! Bzw. ist so oder so grundlegender Standard bei allen OPNsense / pfSense Interfaces. Wurde dir aber auch schon mehrfach gesagt und ist eigentlich mit einer kinderleichten Logik hinterlegt:

Als alter OPNsense Hase weisst du ja auch schon seit langem das das IP Netz was direkt auf einem Interface wie z.B. dem LAG Interface bei dir liegt (hier dein Parent Interface für deine VLAN Interfaces!) automatisch immer das PVID VLAN ist und so dessen Traffic immer UNgetagged gesendet wird.
Die physischen Interfaces oder Parent Interfaces sind also damit immer das PVID VLAN Netz.
Sprich wenn du bei dir das VLAN 99 direkt auf dem LAG Interface konfigurierst wird es untagged von der OPNsense gesendet.
Sollte der Switch am LAG/Bonding Port dann ebenfalls PVID 99 gesetzt haben wird dieser Traffic dann erwartungsgemäß ins VLAN 99 geforwardet.
Ggf. noch einem die VLAN Schnellschulung lesen die das alles noch einmal explizit sogar mit bunten Bildern erklärt! ­čśë

Fazit:
Es kommt also IMMER darauf an WIE du das Parent Interface der OPNsense behandelst.
  • Hast du da gar keine IP Adresse konfiguriert wird es nicht benutzt und ist inaktiv
  • Mit IP Adressierung wird dieser Netztraffic untagged gesendet und empfangen = PVID VLAN
  • Auf dem Gegenüber (Switch etc.) bestimmt dann das PVID Setting (native VLAN) in welches VLAN dieser Traffic geforwardet wird. Bei dir würde man den Bonding Port auf PVID 99 setzen wenn du dem LAG eine VLAN 99 IP vergeben hast.

Wie du das handhabst ist dann persönliche Gescmackssache... face-wink