Fedora – Interne Bridge vmbr0 mit NAT: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:
 
* Bridge vmbr0 mit 192.168.16.254/24
 
* Bridge vmbr0 mit 192.168.16.254/24
 
* Internes Netz 192.168.16.0/24
 
* Internes Netz 192.168.16.0/24
* Permanenter Carrier über Kernel-dummy
+
* Permanenter Carrier über dummy0
* NAT unabhängig vom verwendeten Uplink (LAN, WLAN, etc.)
+
* NAT unabhängig vom aktiven Uplink
 +
* Vollständig NetworkManager-konform
 +
* Keine ip-link-Manipulation
  
== Dummy beim Boot laden (wie Debian) ==
+
== Dummy-Modul beim Boot laden ==
 
*echo dummy > /etc/modules-load.d/dummy.conf
 
*echo dummy > /etc/modules-load.d/dummy.conf
 
*echo "options dummy numdummies=1" > /etc/modprobe.d/dummy.conf
 
*echo "options dummy numdummies=1" > /etc/modprobe.d/dummy.conf
 
*modprobe dummy numdummies=1
 
*modprobe dummy numdummies=1
 +
 +
== Alte Reste entfernen (optional bei Neuaufbau) ==
 +
*nmcli connection delete vmbr0 2>/dev/null
 +
*nmcli connection delete dummy0 2>/dev/null
 +
*nmcli connection delete bridge-slave-dummy0 2>/dev/null
 +
*ip link delete vmbr0 2>/dev/null
 +
*ip link delete dummy0 2>/dev/null
 +
 +
== Dummy über NetworkManager erstellen ==
 +
*nmcli connection add type dummy ifname dummy0 con-name dummy0
 +
*nmcli connection up dummy0
  
 
== Bridge erstellen ==
 
== Bridge erstellen ==
 
*nmcli connection add type bridge ifname vmbr0 con-name vmbr0
 
*nmcli connection add type bridge ifname vmbr0 con-name vmbr0
*nmcli connection modify vmbr0 ipv4.addresses 192.168.16.1/24
+
*nmcli connection modify vmbr0 ipv4.addresses 192.168.16.254/24
 
*nmcli connection modify vmbr0 ipv4.method manual
 
*nmcli connection modify vmbr0 ipv4.method manual
 
*nmcli connection modify vmbr0 ipv6.method ignore
 
*nmcli connection modify vmbr0 ipv6.method ignore
 +
 +
== Dummy als Bridge-Port anbinden ==
 +
*nmcli connection add type bridge-slave ifname dummy0 master vmbr0
 +
 +
== Bridge aktivieren ==
 
*nmcli connection up vmbr0
 
*nmcli connection up vmbr0
 
== Dummy als Bridge-Port anhängen (Kernel-seitig) ==
 
*ip link set dummy0 master vmbr0
 
*ip link set dummy0 up
 
  
 
== Kontrolle ==
 
== Kontrolle ==
Zeile 34: Zeile 48:
 
*sysctl --system
 
*sysctl --system
  
== firewalld – Zonenmodell ==
+
== Zonen über NetworkManager setzen ==
;Bridge als internes Netz definieren
+
;Bridge als internal
*firewall-cmd --permanent --zone=internal --add-interface=vmbr0
+
*nmcli connection modify vmbr0 connection.zone internal
 +
*nmcli connection up vmbr0
 +
 
 +
;Uplink (Beispiel WLAN XINUX-LAN) als public
 +
*nmcli connection modify XINUX-LAN connection.zone public
 +
*nmcli connection up XINUX-LAN
  
;Masquerading global für public aktivieren
+
== NAT konfigurieren ==
 
*firewall-cmd --permanent --zone=public --add-masquerade
 
*firewall-cmd --permanent --zone=public --add-masquerade
 
;Forwarding von internal nach public erlauben
 
 
*firewall-cmd --permanent --zone=internal --add-forward
 
*firewall-cmd --permanent --zone=internal --add-forward
 
;Regeln laden
 
 
*firewall-cmd --reload
 
*firewall-cmd --reload
  
 
== Ergebnis ==
 
== Ergebnis ==
*vmbr0 hat permanent state UP
+
*vmbr0 permanent state UP
 
*192.168.16.0/24 wird genattet
 
*192.168.16.0/24 wird genattet
*Egal welches Interface in Zone public aktiv ist
+
*NAT funktioniert mit jedem Interface in Zone public
*Kein Interface-Ermitteln notwendig
+
*Keine Kernel-Manipulation notwendig

Version vom 2. März 2026, 11:14 Uhr

Fedora – Interne Bridge vmbr0 mit generischem NAT

Ziel

  • Bridge vmbr0 mit 192.168.16.254/24
  • Internes Netz 192.168.16.0/24
  • Permanenter Carrier über dummy0
  • NAT unabhängig vom aktiven Uplink
  • Vollständig NetworkManager-konform
  • Keine ip-link-Manipulation

Dummy-Modul beim Boot laden

  • echo dummy > /etc/modules-load.d/dummy.conf
  • echo "options dummy numdummies=1" > /etc/modprobe.d/dummy.conf
  • modprobe dummy numdummies=1

Alte Reste entfernen (optional bei Neuaufbau)

  • nmcli connection delete vmbr0 2>/dev/null
  • nmcli connection delete dummy0 2>/dev/null
  • nmcli connection delete bridge-slave-dummy0 2>/dev/null
  • ip link delete vmbr0 2>/dev/null
  • ip link delete dummy0 2>/dev/null

Dummy über NetworkManager erstellen

  • nmcli connection add type dummy ifname dummy0 con-name dummy0
  • nmcli connection up dummy0

Bridge erstellen

  • nmcli connection add type bridge ifname vmbr0 con-name vmbr0
  • nmcli connection modify vmbr0 ipv4.addresses 192.168.16.254/24
  • nmcli connection modify vmbr0 ipv4.method manual
  • nmcli connection modify vmbr0 ipv6.method ignore

Dummy als Bridge-Port anbinden

  • nmcli connection add type bridge-slave ifname dummy0 master vmbr0

Bridge aktivieren

  • nmcli connection up vmbr0

Kontrolle

  • ip link show vmbr0
Erwartet
  • state UP
  • kein NO-CARRIER

IP-Forwarding dauerhaft aktivieren

  • echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-ipforward.conf
  • sysctl --system

Zonen über NetworkManager setzen

Bridge als internal
  • nmcli connection modify vmbr0 connection.zone internal
  • nmcli connection up vmbr0
Uplink (Beispiel WLAN XINUX-LAN) als public
  • nmcli connection modify XINUX-LAN connection.zone public
  • nmcli connection up XINUX-LAN

NAT konfigurieren

  • firewall-cmd --permanent --zone=public --add-masquerade
  • firewall-cmd --permanent --zone=internal --add-forward
  • firewall-cmd --reload

Ergebnis

  • vmbr0 permanent state UP
  • 192.168.16.0/24 wird genattet
  • NAT funktioniert mit jedem Interface in Zone public
  • Keine Kernel-Manipulation notwendig