Fedora – dnsmasq für vmbr0: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Fedora – dnsmasq für vmbr0 (192.168.16.0/24) = == Ziel == * DHCP und DNS für das interne Netz 192.168.16.0/24 * Gateway: 192.168.16.1 (vmbr0) == Instal…“) |
|||
| (12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = Fedora – | + | = Fedora – Interne Bridge vmbr0 mit generischem NAT (firewalld) = |
== Ziel == | == Ziel == | ||
| − | * | + | * Bridge vmbr0 mit 192.168.16.1/24 |
| − | * | + | * Internes Netz 192.168.16.0/24 |
| + | * Permanenter Carrier über dummy0 | ||
| + | * DHCP/DNS über dnsmasq | ||
| + | * NAT unabhängig vom verwendeten Uplink (LAN, WLAN, etc.) | ||
| + | * NAT über firewalld (kein iptables, kein rc.local) | ||
| − | == | + | == Bugfix für noarp == |
| + | *vi /etc/NetworkManager/dispatcher.d/pre-up.d/dummy.sh | ||
| + | <pre> | ||
| + | #!/bin/bash | ||
| + | if test "$1" = "dummy0" | ||
| + | then | ||
| + | ip link set dummy0 arp on | ||
| + | fi | ||
| + | </pre> | ||
| + | *chmod +x /etc/NetworkManager/dispatcher.d/pre-up.d/dummy.sh | ||
| + | |||
| + | == Bridge und Dummy Device == | ||
| + | ;Modul laden und persistent machen | ||
| + | *modprobe dummy | ||
| + | *echo "dummy" > /etc/modules-load.d/dummy.conf | ||
| + | |||
| + | ;Netzwerkbrücke erstellen | ||
| + | *nmcli con add type bridge autoconnect yes con-name vmbr0 ifname vmbr0 | ||
| + | *nmcli con modify vmbr0 ipv4.addresses 192.168.16.1/24 | ||
| + | *nmcli con up vmbr0 | ||
| + | |||
| + | ;Dummy-Device zur Brücke hinzufügen | ||
| + | *nmcli con add type dummy con-name dummy0 ifname dummy0 master vmbr0 | ||
| + | *nmcli con modify dummy0 connection.autoconnect yes | ||
| + | *nmcli con up dummy0 | ||
| + | |||
| + | == Forwarding == | ||
| + | ;IP-Forwarding aktivieren | ||
| + | *echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ipforward.conf | ||
| + | *sysctl --system | ||
| + | |||
| + | == FIREWALL-KONFIGURATION == | ||
| + | ;Funktioniert mit JEDEM WLAN und LAN ohne weitere Änderungen | ||
| + | |||
| + | ;Bridge dauerhaft internal | ||
| + | *nmcli connection modify vmbr0 connection.zone internal | ||
| + | |||
| + | ;WLAN dauerhaft external | ||
| + | *firewall-cmd --permanent --zone=external --add-interface=wlp0s20f3 | ||
| + | |||
| + | ;Optional: weiteres LAN-Interface external | ||
| + | *firewall-cmd --permanent --zone=external --add-interface=enp2s0f1 | ||
| + | |||
| + | ;Masquerading auf dem WAN (external) | ||
| + | *firewall-cmd --permanent --zone=external --add-masquerade | ||
| + | |||
| + | ;Inter-Zone-Policy: internal → external erlauben | ||
| + | *firewall-cmd --permanent --new-policy int2ext | ||
| + | *firewall-cmd --permanent --policy int2ext --add-ingress-zone internal | ||
| + | *firewall-cmd --permanent --policy int2ext --add-egress-zone external | ||
| + | *firewall-cmd --permanent --policy int2ext --set-target ACCEPT | ||
| + | |||
| + | ;Regeln laden | ||
| + | *firewall-cmd --reload | ||
| + | |||
| + | ;FERTIG | ||
| + | |||
| + | == dnsmasq == | ||
| + | ;Installation | ||
*dnf install dnsmasq -y | *dnf install dnsmasq -y | ||
| − | + | ;Konfiguration | |
| − | |||
| − | |||
| − | |||
*vi /etc/dnsmasq.d/vmbr0.conf | *vi /etc/dnsmasq.d/vmbr0.conf | ||
| − | |||
<pre> | <pre> | ||
interface=vmbr0 | interface=vmbr0 | ||
| Zeile 28: | Zeile 86: | ||
</pre> | </pre> | ||
| − | + | ;Dienst aktivieren | |
*systemctl enable --now dnsmasq | *systemctl enable --now dnsmasq | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Kontrolle == | == Kontrolle == | ||
| − | * | + | *ip addr show vmbr0 |
| − | * | + | *ip addr show dummy0 |
| − | + | *firewall-cmd --list-all --zone=internal | |
| − | + | *reboot | |
| − | * | ||
| − | |||
| − | |||
Aktuelle Version vom 19. Februar 2026, 21:03 Uhr
Fedora – Interne Bridge vmbr0 mit generischem NAT (firewalld)
Ziel
- Bridge vmbr0 mit 192.168.16.1/24
- Internes Netz 192.168.16.0/24
- Permanenter Carrier über dummy0
- DHCP/DNS über dnsmasq
- NAT unabhängig vom verwendeten Uplink (LAN, WLAN, etc.)
- NAT über firewalld (kein iptables, kein rc.local)
Bugfix für noarp
- vi /etc/NetworkManager/dispatcher.d/pre-up.d/dummy.sh
#!/bin/bash if test "$1" = "dummy0" then ip link set dummy0 arp on fi
- chmod +x /etc/NetworkManager/dispatcher.d/pre-up.d/dummy.sh
Bridge und Dummy Device
- Modul laden und persistent machen
- modprobe dummy
- echo "dummy" > /etc/modules-load.d/dummy.conf
- Netzwerkbrücke erstellen
- nmcli con add type bridge autoconnect yes con-name vmbr0 ifname vmbr0
- nmcli con modify vmbr0 ipv4.addresses 192.168.16.1/24
- nmcli con up vmbr0
- Dummy-Device zur Brücke hinzufügen
- nmcli con add type dummy con-name dummy0 ifname dummy0 master vmbr0
- nmcli con modify dummy0 connection.autoconnect yes
- nmcli con up dummy0
Forwarding
- IP-Forwarding aktivieren
- echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ipforward.conf
- sysctl --system
FIREWALL-KONFIGURATION
- Funktioniert mit JEDEM WLAN und LAN ohne weitere Änderungen
- Bridge dauerhaft internal
- nmcli connection modify vmbr0 connection.zone internal
- WLAN dauerhaft external
- firewall-cmd --permanent --zone=external --add-interface=wlp0s20f3
- Optional
- weiteres LAN-Interface external
- firewall-cmd --permanent --zone=external --add-interface=enp2s0f1
- Masquerading auf dem WAN (external)
- firewall-cmd --permanent --zone=external --add-masquerade
- Inter-Zone-Policy
- internal → external erlauben
- firewall-cmd --permanent --new-policy int2ext
- firewall-cmd --permanent --policy int2ext --add-ingress-zone internal
- firewall-cmd --permanent --policy int2ext --add-egress-zone external
- firewall-cmd --permanent --policy int2ext --set-target ACCEPT
- Regeln laden
- firewall-cmd --reload
- FERTIG
dnsmasq
- Installation
- dnf install dnsmasq -y
- Konfiguration
- vi /etc/dnsmasq.d/vmbr0.conf
interface=vmbr0 bind-interfaces domain=lab.local expand-hosts dhcp-range=192.168.16.100,192.168.16.200,12h dhcp-option=option:router,192.168.16.1 dhcp-option=option:dns-server,192.168.16.1 listen-address=192.168.16.1
- Dienst aktivieren
- systemctl enable --now dnsmasq
Kontrolle
- ip addr show vmbr0
- ip addr show dummy0
- firewall-cmd --list-all --zone=internal
- reboot