Brücken bauen mit Hindernissen

Einrichten einer Bridge unter Debian-Linux.

/etc/network/interfaces editieren
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Setting all being part of the bridge to manual to avoid configuration conflicts

iface enp1s0 inet manual
iface enp2s0 inet manual
iface enp3s0 inet manual
iface enp4s0 inet manual
iface enp5s0 inet manual
iface enp6s0 inet manual

# Bridge config
auto br0
iface br0 inet static
	bridge_ports enp1s0 enp2s0 enp3s0 enp4s0 enp5s0 enp6s0
	address 192.168.178.183
	broadcast 192.168.178.255
	gateway 192.168.178.1
	netmask 255.255.255.0

# The primary network interface
#allow-hotplug enp1s0
#iface enp1s0 inet dhcp
  • Zeile 3-8 verhindern das die Interfaces durch irgendeinen Dienst aktiviert werden

  • Zeile 11 definiert das br0 (das Bridge-Interface) automatisch aktiviert wird

  • Zeile 12-17 definiert die Netzwerkschnittstellen die Teil der Bridge werden und die IP-Adresse die die br0 bekommen soll

    • br0 ist im Prinzip das virtuelle Netzwerkinterface über welchen der Host (also das System selbst) Zugang zum Netzwerk bekommt

  • Zeile 19 ist die ursprüngliche (kommentierte) Netzwerkkonfiguration des Systems

Danach hat man wahrscheinlich das Problem das man zwar das System erreichen kann, aber die Bridge nicht funktioniert.
Das liegt daran das für Bridge-Interfaces per Default in neueren Kernel-Versionen Netfilter (die Firewall in Linux) aktiv ist und das weiterleiten verhindert.

/etc/sysctl.conf hinzufügen
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0

Danach wird es wahrscheinlich immer noch nicht funktionieren und man wird folgendes im syslog finden:

Mar 12 20:05:34 vp-2 systemd-sysctl[273]: Couldn't write '0' to 'net/bridge/bridge-nf-call-arptables', ignoring: No such file or directory
Mar 12 20:05:34 vp-2 systemd-sysctl[273]: Couldn't write '0' to 'net/bridge/bridge-nf-call-ip6tables', ignoring: No such file or directory
Mar 12 20:05:34 vp-2 systemd-sysctl[273]: Couldn't write '0' to 'net/bridge/bridge-nf-call-iptables', ignoring: No such file or directory

Der Grund ist das zum Zeitpunkt wo sysctl aufgerufen wird um die Parameter zu setzen das Netzwerk noch nicht gestartet wurde.
Dadurch sind die Module bridge und br_netfilter noch nicht geladen und daher existieren die Dateien (in /proc/net/bridge-nf-call usw.) nicht.

/etc/modules hinzufügen
bridge
br_netfilter

Obiges lädt die Module bridge und br_netfilter beim Systemstart und damit vor sysctl und damit sind die entsprechenden Dateien beim Aufruf von sysctl vorhanden.