Open Vswitch Projekt: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „*Open Vswitch Projekt nmcli *Open Vswitch Projekt ifup/ifdown“)
Markierung: Ersetzt
Zeile 1: Zeile 1:
 
*[[Open Vswitch Projekt nmcli]]
 
*[[Open Vswitch Projekt nmcli]]
 
*[[Open Vswitch Projekt ifup/ifdown]]
 
*[[Open Vswitch Projekt ifup/ifdown]]
−
 
−
== Open vSwitch (OVS) als Cisco-ähnlicher L2-Switch mit Management-IP ==
 
−
 
−
== Ziel ==
 
−
In diesem Artikel wird beschrieben, wie man unter Linux mit Open vSwitch (OVS) eine Schulungsumgebung aufbaut, die einem Cisco Catalyst oder Nexus Switch ähnelt. 
 
−
Funktionen im ersten Schritt:
 
−
* bis zu 18 Interfaces (eth0–eth17)
 
−
* VLANs (1, 21, 22, 23)
 
−
* 1 Trunk-Port mit VLAN 1 (native untagged) + VLANs 21/22/23 getaggt
 
−
* mehrere Access-Ports (je ein VLAN)
 
−
* 1 Mirror-Port (SPAN)
 
−
* SNMPv3 zur Überwachung
 
−
* Management-IP im VLAN 1
 
−
 
−
== Voraussetzungen ==
 
−
* Debian 13
 
−
* Linux-VM mit ≥ 18 Netzwerkkarten (eth0–eth17)
 
−
* Root-Zugriff
 
−
* In VirtualBox/KVM: alle NICs auf '''Promiscuous Mode: Allow All'''
 
−
 
−
== Installation ==
 
−
<pre>
 
−
apt update
 
−
apt install openvswitch-switch snmpd network-manager
 
−
</pre>
 
−
 
−
NetworkManager als Standard-Renderer aktivieren:
 
−
<pre>
 
−
systemctl enable --now NetworkManager
 
−
</pre>
 
−
 
−
 
−
 
−
=== udev-Regel in der VM anlegen ===
 
−
Die Ausgabe die wir auf dem Hosts System produziert haben, in der VM unter '''/etc/udev/rules.d/10-ovs-nics.rules''' speichern.
 
−
 
−
=== Änderungen aktivieren ===
 
−
<pre>
 
−
udevadm control --reload-rules
 
−
reboot
 
−
</pre>
 
−
 
−
=== Kontrolle nach dem Reboot ===
 
−
<pre>
 
−
ip link show
 
−
</pre>
 
−
Erwartete Ausgabe: Interfaces '''eth1''' bis '''eth18''' sind sichtbar.
 
−
 
−
== Interfaces per nmcli konfigurieren ==
 
−
Die physischen Interfaces werden ausschließlich per '''nmcli''' aktiviert — kein Editieren von Konfigurationsdateien nötig. 
 
−
OVS übernimmt danach die komplette VLAN- und Bridge-Konfiguration.
 
−
 
−
Automatisch angelegte Profile von NetworkManager löschen und sauber neu anlegen:
 
−
<pre>
 
−
for i in $(seq 2 17); do
 
−
    nmcli con delete "Wired connection $i"
 
−
    nmcli con add type ethernet ifname eth$i con-name eth$i \
 
−
        ipv4.method disabled \
 
−
        ipv6.method ignore \
 
−
        connection.autoconnect yes
 
−
    nmcli con up eth$i
 
−
done
 
−
</pre>
 
−
 
−
== OVS-Bridge anlegen ==
 
−
<pre>
 
−
ovs-vsctl add-br sw0
 
−
</pre>
 
−
 
−
== Trunk-Port konfigurieren (z. B. Richtung OPNsense/Router) ==
 
−
<pre>
 
−
ovs-vsctl add-port sw0 eth1 tag=1 trunks=21,22,23 vlan_mode=native-untagged
 
−
</pre>
 
−
 
−
== Access-Ports konfigurieren ==
 
−
<pre>
 
−
ovs-vsctl add-port sw0 eth1  tag=1
 
−
ovs-vsctl add-port sw0 eth2  tag=21
 
−
ovs-vsctl add-port sw0 eth3  tag=22
 
−
ovs-vsctl add-port sw0 eth4  tag=23
 
−
ovs-vsctl add-port sw0 eth5  tag=1
 
−
ovs-vsctl add-port sw0 eth6  tag=1
 
−
ovs-vsctl add-port sw0 eth7  tag=1
 
−
ovs-vsctl add-port sw0 eth8  tag=1
 
−
ovs-vsctl add-port sw0 eth9  tag=1
 
−
ovs-vsctl add-port sw0 eth10 tag=1
 
−
ovs-vsctl add-port sw0 eth11 tag=1
 
−
ovs-vsctl add-port sw0 eth12 tag=1
 
−
ovs-vsctl add-port sw0 eth13 tag=1
 
−
ovs-vsctl add-port sw0 eth14 tag=1
 
−
ovs-vsctl add-port sw0 eth15 tag=1
 
−
ovs-vsctl add-port sw0 eth16 tag=1
 
−
</pre>
 
−
 
−
== Management-Interface im VLAN 1 ==
 
−
 
−
Internen OVS-Port für die Management-IP anlegen:
 
−
<pre>
 
−
ovs-vsctl add-port sw0 mgmt tag=1 -- set interface mgmt type=internal
 
−
</pre>
 
−
 
−
Management-IP per Hand setzen setzen:
 
−
<pre>
 
−
cat >> /etc/network/interfaces << 'EOF'
 
−
 
−
auto mgmt
 
−
iface mgmt inet static
 
−
    address 172.26.56.2/26
 
−
    gateway 172.26.56.1
 
−
    dns-nameservers 172.26.56.1
 
−
    dns-search it2XX.int
 
−
EOF
 
−
 
−
ifup mgmt
 
−
</pre>
 
−
 
−
== Mirror-Port konfigurieren (SPAN) ==
 
−
<pre>
 
−
ovs-vsctl -- --id=@m create Mirror name=mirror0 \
 
−
    select-vlan=1,21,22,23 \
 
−
    output-port=eth17 \
 
−
    -- set Bridge sw0 mirrors=@m
 
−
</pre>
 
−
 
−
=== Kontrolle ===
 
−
<pre>
 
−
ovs-vsctl list Mirror
 
−
</pre>
 
−
 
−
Erwartete Ausgabe (gekürzt):
 
−
* name: mirror0
 
−
* select-vlan: [1,21,22,23]
 
−
* output-port: eth17
 
−
 
−
=== Nutzung ===
 
−
* An '''eth17''' 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
 
−
 
−
== SNMPv3 konfigurieren ==
 
−
Datei '''/etc/snmp/snmpd.conf''' anpassen:
 
−
<pre>
 
−
createUser ovsuser SHA "MeinGeheimesPasswort" AES "NochGeheimer"
 
−
rouser ovsuser authPriv
 
−
</pre>
 
−
 
−
SNMP-Dienst neu starten:
 
−
<pre>
 
−
systemctl restart snmpd
 
−
</pre>
 
−
 
−
Test der SNMPv3-Abfrage:
 
−
<pre>
 
−
snmpwalk -v3 -u ovsuser -l authPriv -a SHA -A MeinGeheimesPasswort -x AES -X NochGeheimer localhost ifDescr
 
−
</pre>
 
−
 
−
== Wichtige Befehle ==
 
−
 
−
=== OVS-Diagnose ===
 
−
 
−
Zeigt die komplette OVS-Bridge-Konfiguration (Bridges, Ports, VLAN-Tags).
 
−
* '''ovs-vsctl show'''
 
−
 
−
Listet alle Ports, die an der Bridge ''sw0'' hängen.
 
−
* '''ovs-vsctl list-ports sw0'''
 
−
 
−
Zeigt Details zum Port ''eth1'' (inklusive VLAN-Tag).
 
−
* '''ovs-vsctl list interface eth1'''
 
−
 
−
Zeigt, welche VLANs auf dem Trunk-Port ''eth0'' erlaubt sind.
 
−
* '''ovs-vsctl get port eth0 trunks'''
 
−
 
−
Zeigt den Zustand der Datenebene (DPIF-Interfaces, OpenFlow).
 
−
* '''ovs-dpctl show'''
 
−
 
−
Zeigt die Forwarding Database (FDB), ähnlich wie ''show mac address-table'' auf Cisco.
 
−
* '''ovs-appctl fdb/show sw0'''
 
−
 
−
Zeigt vorhandene SPAN/Mirror-Konfigurationen.
 
−
* '''ovs-appctl mirror/list sw0'''
 
−
 
−
=== nmcli-Diagnose ===
 
−
 
−
Zeigt alle aktiven Verbindungen.
 
−
* '''nmcli con show --active'''
 
−
 
−
Zeigt den Status eines bestimmten Interface.
 
−
* '''nmcli dev status'''
 
−
 
−
=== VLAN-Konfiguration ändern ===
 
−
 
−
Setzt ''eth1'' als Access-Port im VLAN 10 (untagged).
 
−
* '''ovs-vsctl set port eth1 tag=10'''
 
−
 
−
Setzt ''eth2'' als Trunk-Port für VLAN 10, 20 und 30 (getagged).
 
−
* '''ovs-vsctl set port eth2 trunks=10,20,30'''
 
−
 
−
Setzt ''eth2'' als Trunk-Port, VLAN 10 untagged (native), VLAN 20 und 30 getagged.
 
−
* '''ovs-vsctl set port eth2 tag=10 trunks=20,30'''
 
−
 
−
Entfernt VLAN-Zuweisung von ''eth1'' bzw. VLAN 20 von ''eth2''.
 
−
* '''ovs-vsctl remove port eth1 tag'''
 
−
* '''ovs-vsctl remove port eth2 trunks 20'''
 
−
 
−
== Ergebnis ==
 
−
* '''eth0''' = Trunk (VLAN 1 native untagged, VLAN 21/22/23 getaggt)
 
−
* '''eth1–eth16''' = Access-Ports (je VLAN, untagged) — 14 für VMs, 2 Reserve
 
−
* '''eth17''' = Mirror/SPAN-Ausgang + DHCP-Uplink
 
−
* '''mgmt''' = Management-Port im VLAN 1 mit IP 172.26.56.2/26
 
−
* '''SNMPv3''' = Überwachung aller Interfaces möglich
 
−
* Kein Editieren von Konfigurationsdateien nötig
 
−
 
−
== Nächste Schritte ==
 
−
* Weitere VLANs hinzufügen
 
−
* Layer-3 Routing mit OVS oder FRRouting ergänzen
 
−
* VXLAN/EVPN mit OVN erproben
 

Version vom 2. Mai 2026, 09:06 Uhr