VLAN mit Linux und Open vSwitch: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 118: | Zeile 118: | ||
ovs-vsctl -- --id=@p get port port17 \ | ovs-vsctl -- --id=@p get port port17 \ | ||
-- --id=@m create Mirror name=mirror0 \ | -- --id=@m create Mirror name=mirror0 \ | ||
| + | select-all=true \ | ||
select-vlan=1,21,22,23 \ | select-vlan=1,21,22,23 \ | ||
output-port=@p \ | output-port=@p \ | ||
-- set Bridge sw0 mirrors=@m | -- set Bridge sw0 mirrors=@m | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | |||
=== Kontrolle === | === Kontrolle === | ||
| − | + | <pre> | |
| − | + | ovs-vsctl list Mirror | |
| + | </pre> | ||
Erwartete Ausgabe (gekürzt): | Erwartete Ausgabe (gekürzt): | ||
| − | *name: mirror0 | + | * name: mirror0 |
| − | * | + | * select_all: true |
| − | * | + | * select_vlan: [1, 21, 22, 23] |
| + | * output_port: port17 | ||
=== Nutzung === | === Nutzung === | ||
| − | *An '''port17''' wird ein IDS oder ein Analyse-System (z. B. Wireshark/tcpdump) angeschlossen | + | * An '''port17''' wird ein IDS oder ein Analyse-System (z. B. Wireshark/tcpdump) angeschlossen |
| − | *Dort ist der gesamte Traffic der VLANs 1, 21, 22 und 23 sichtbar | + | * Dort ist der gesamte Traffic der VLANs 1, 21, 22 und 23 sichtbar |
| + | |||
| + | === Test === | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | tcpdump -ni port17 | ||
| + | </syntaxhighlight> | ||
| + | Bei korrekter Konfiguration ist sofort Traffic sichtbar. | ||
== Cheat-Sheet: ovs-vsctl == | == Cheat-Sheet: ovs-vsctl == | ||
| Zeile 256: | Zeile 264: | ||
*systemctl restart kea-dhcp4-server.service | *systemctl restart kea-dhcp4-server.service | ||
==Testen== | ==Testen== | ||
| + | Was muss man testen? | ||
| + | ==Todo== | ||
| + | ;Nameserver | ||
| + | *ovs.it2XX.int IN A 172.27.2XX.2 im Nameserver anlegen. | ||
| + | ;Vom CLient aus Key hinterlegen | ||
| + | *ssh-copy-id ovs | ||
| + | ;Vom CLient aus einlogen | ||
| + | *ssh ovs | ||
Aktuelle Version vom 13. Mai 2026, 12:44 Uhr
Wir brauchen einen Open vSwitch
- Dozent sagt wo ihr die runterladen könnt
- Anleitung wie man die Maschine aufsetzt findet ihr hier:
- Open Vswitch
Zielbeschreibung
| Port | VLAN | Modus |
|---|---|---|
| port1 | 1 (native), 21, 22, 23 (tagged) | trunk native-untagged |
| port2 | 21 | access |
| port3 | 21 | access |
| port4 | 21 | access |
| port5 | 21 | access |
| port6 | 21 | access |
| port7 | 21 | access |
| port8 | 21 | access |
| port9 | 21 | access |
| port10 | 22 | access |
| port11 | 22 | access |
| port12 | 22 | access |
| port13 | 22 | access |
| port14 | 23 | access |
| port15 | 23 | access |
| port16 | 23 | access |
| port17 | alle | Mirror (SPAN) |
| VLAN | Netz | Bezeichnung |
|---|---|---|
| 1 | 172.27.2XX.0/24 | MGMT |
| 21 | 10.88.2XX.0/24 | DMZ |
| 22 | 172.26.2XX.0/24 | LAN |
| 23 | 10.2XX.1.0/24 | SERVER |
Plan
Zum Open vSwitch
ssh localhost -p 2222
oder im Notfall
nc localhost 2323
- Logindaten
- user: kit
- pass: kit
- root: mit sudo -i
Ports auflisten
ovs-vsctl show
VLAN zuordnen
- Trunk
ovs-vsctl set port port1 tag=1 trunks=21,22,23 vlan_mode=native-untagged
- DMZ (VLAN 21)
ovs-vsctl set port port2 tag=21 ovs-vsctl set port port3 tag=21 ovs-vsctl set port port4 tag=21 ovs-vsctl set port port5 tag=21 ovs-vsctl set port port6 tag=21 ovs-vsctl set port port7 tag=21 ovs-vsctl set port port8 tag=21 ovs-vsctl set port port9 tag=21
- LAN (VLAN 22)
ovs-vsctl set port port10 tag=22 ovs-vsctl set port port11 tag=22 ovs-vsctl set port port12 tag=22 ovs-vsctl set port port13 tag=22
- SERVER (VLAN 23)
ovs-vsctl set port port14 tag=23 ovs-vsctl set port port15 tag=23 ovs-vsctl set port port16 tag=23
VLAN-Interfaces anlegen
ovs-vsctl add-port sw0 mgmt tag=1 -- set interface mgmt type=internal ovs-vsctl add-port sw0 dmz tag=21 -- set interface dmz type=internal ovs-vsctl add-port sw0 lan tag=22 -- set interface lan type=internal ovs-vsctl add-port sw0 server tag=23 -- set interface server type=internal
MGMT-IP setzen
- Ergänzen
nano /etc/network/interfaces auto mgmt iface mgmt inet static address 172.27.2XX.2/24 gateway 172.27.2XX.1 dns-nameservers 10.88.2XX.21 dns-search it2XX.int
- Hochfahren
ifup mgmt
- Kontrolle
ip addr show mgmt
Mirror-Port konfigurieren (SPAN)
port17 dient als Mirror-Ausgang — dort kann ein IDS oder Wireshark angeschlossen werden:
ovs-vsctl -- --id=@p get port port17 \
-- --id=@m create Mirror name=mirror0 \
select-all=true \
select-vlan=1,21,22,23 \
output-port=@p \
-- set Bridge sw0 mirrors=@m
Kontrolle
ovs-vsctl list Mirror
Erwartete Ausgabe (gekürzt):
- name: mirror0
- select_all: true
- select_vlan: [1, 21, 22, 23]
- output_port: port17
Nutzung
- An port17 wird ein IDS oder ein Analyse-System (z. B. Wireshark/tcpdump) angeschlossen
- Dort ist der gesamte Traffic der VLANs 1, 21, 22 und 23 sichtbar
Test
tcpdump -ni port17
Bei korrekter Konfiguration ist sofort Traffic sichtbar.
Cheat-Sheet: ovs-vsctl
| Befehl | Beschreibung |
|---|---|
ovs-vsctl show |
Gesamte OVS-Konfiguration anzeigen |
ovs-vsctl list-br |
Alle Bridges anzeigen |
ovs-vsctl list-ports sw0 |
Alle Ports der Bridge sw0 anzeigen |
ovs-vsctl add-br sw0 |
Bridge sw0 anlegen |
ovs-vsctl del-br sw0 |
Bridge sw0 löschen |
ovs-vsctl add-port sw0 port1 |
Port hinzufügen |
ovs-vsctl del-port sw0 port1 |
Port löschen |
ovs-vsctl set port port1 tag=22 |
Port in VLAN 22 setzen (Access) |
ovs-vsctl set port port1 trunks=21,22,23 |
Trunk-VLANs setzen |
ovs-vsctl set port port1 vlan_mode=native-untagged |
VLAN-Modus setzen |
ovs-vsctl clear port port1 tag |
VLAN-Tag entfernen |
ovs-vsctl clear port port1 trunks |
Trunks entfernen |
ovs-vsctl list port port1 |
Details zu einem Port anzeigen |
ovs-vsctl list interface port1 |
Interface-Details anzeigen |
ovs-vsctl list Mirror |
Mirror-Konfiguration anzeigen |
ovs-vsctl clear Bridge sw0 mirrors |
Mirror löschen |
ovs-appctl fdb/show sw0 |
MAC-Tabelle anzeigen |
ovs-ofctl dump-flows sw0 |
OpenFlow-Flows anzeigen |
Auf der Firewall
- VLAN-Paket installieren
apt install vlan
- VLAN-Modul laden
modprobe 8021q
- Modul beim Booten automatisch laden
echo 8021q | tee -a /etc/modules
/etc/network/interfaces
# MGMT
auto enp0s8
iface enp0s8 inet static
address 172.27.2XX.1/24
# DMZ
auto enp0s8.21
iface enp0s8.21 inet static
address 10.88.2XX.1/24
vlan-raw-device enp0s8
# LAN
auto enp0s8.22
iface enp0s8.22 inet static
address 172.26.2XX.1/24
vlan-raw-device enp0s8
# SERVER
auto enp0s8.23
iface enp0s8.23 inet static
address 10.2XX.1.1/24
vlan-raw-device enp0s8
Abschluss
- Maschine ausschalten
- In Virtualbox die Schnittstellen 3 und 4 deaktiveren
- Maschnine wieder hochfahren
Kontrolle
- ip a s
Kabel umstecken
| VM | Interface | Port |
|---|---|---|
| fw | enp0s8 | port1 |
| www | enp0s3 | port2 |
| enp0s3 | port3 | |
| ns | enp0s3 | port4 |
| proxy | enp0s3 | port5 |
| client | enp0s3 | port10 |
| smb | enp0s3 | port14 |
| ldap | enp0s3 | port15 |
TODO
Firewall
- Variablen ändern
/etc/nfttables-vars.conf
define WANDEV = enp0s3 define MGMTDEV = enp0s8 define DMZDEV = enp0s8.21 define LANDEV = enp0s8.22 define SERVERDEV = enp0s8.23
- Neu starten
- nft -f /etc/nftables.conf
DHCP-Server
- Interface ändern
/etc/nfttables-vars.conf
"interfaces": [ "enp0s8.22" ]
- Neu starten
- systemctl restart kea-dhcp4-server.service
Testen
Was muss man testen?
Todo
- Nameserver
- ovs.it2XX.int IN A 172.27.2XX.2 im Nameserver anlegen.
- Vom CLient aus Key hinterlegen
- ssh-copy-id ovs
- Vom CLient aus einlogen
- ssh ovs
