Network Interfaces & Brige Utilities¶
Installation¶
apt install bridge-utils
Kernel Parameter¶
Folgende Kernel Parameter einstellen und speichern.
sysctl -w net.ipv4.ip_forward="1"
sysctl -w net.ipv4.conf.default.rp_filter="0"
sysctl -w net.ipv4.conf.all.rp_filter="0"
sysctl -w net.ipv6.conf.all.forwarding="1"
sysctl -w net.ipv6.conf.all.autoconf="0"
sysctl -w net.ipv6.conf.default.autoconf="0"
sysctl -w net.ipv6.conf.all.accept_ra="0"
sysctl -w net.ipv6.conf.default.accept_ra="0"
Schnittstellen¶
Vorsicht
In der Datei /etc/network/interfaces
sollte der Eintrag source /etc/network/interfaces.d/*
stehen!
Netzwerk Brücke /etc/network/interfaces.d/bridge
.
# This file is managed by Salt, do not edit.
auto {{ bridge }}
iface {{ bridge }} inet static
{%- if pillar['network']['bridge']['bridge_ports'] is defined %}
bridge_ports {{ pillar['network']['primary']['interface'] }}
{%- endif %}
hwaddress {{ hwaddress }}
address {{ address }}
netmask {{ netmask }}
pre-up brctl addbr $IFACE
up ip address add {{ address6mask }} dev $IFACE
post-down brctl delbr $IFACE
B.A.T.M.A.N. Schnittstelle /etc/network/interfaces.d/batman
.
# This file is managed by Salt, do not edit.
allow-hotplug {{ batman }}
iface {{ batman }} inet6 manual
pre-up modprobe batman-adv
post-up brctl addif {{ bridge }} $IFACE
post-up batctl -m $IFACE it 10000
# post-up batctl -m $IFACE vm server # Error - The installed batctl version and kernel module don't have vis support. The vis functionality
post-up batctl -m $IFACE gw server 96mbit/96mbit
pre-down brctl delif {{ bridge }} $IFACE || true
Mesh Schnittstelle (fastd) /etc/network/interfaces.d/mesh
.
# This file is managed by Salt, do not edit.
allow-hotplug {{ mesh }}
iface {{ mesh }} inet6 manual
hwaddress {{ pillar['network']['mesh']['hwaddress'] }}
pre-up modprobe batman-adv
post-up batctl -m {{ batman }} if add $IFACE
post-up ip link set dev {{ batman }} up
Netzwerk Brücke¶
Mit dem Befehl ifup {{ bridge }}
die Netzwerk Brücke starten, falls diese nicht vorhanden ist.
Salt State File¶
network.sls
# Network Interfaces & Brige Utilities
{% set bridgeutils = salt['grains.filter_by']({
'Debian': {'pkg': 'bridge-utils'},
}, default='Debian') %}
{{ bridgeutils.pkg }}:
pkg.installed:
- name: {{ bridgeutils.pkg }}
# {#% if grains['os'] == 'Ubuntu' and grains['osrelease'] == '18.04' %#}
{% set ifupdown = salt['grains.filter_by']({
'Debian': {'pkg': 'ifupdown'},
}, default='Debian') %}
{{ ifupdown.pkg }}:
pkg.installed:
- name: {{ ifupdown.pkg }}
{% set resolvconf = salt['grains.filter_by']({
'Debian': {'pkg': 'resolvconf'},
}, default='Debian') %}
{{ resolvconf.pkg }}:
pkg.installed:
- name: {{ resolvconf.pkg }}
# {#% endif %#}
# Interfaces
{% if grains['os_family'] == 'Debian' %}
# /etc/network/interfaces:
# file.managed:
# - name: /etc/network/interfaces
# - srouce: salt://etc/network/interfaces-{#{ grains['nodename'] }#}
# /etc/network/interfaces.d/br0:
# file.managed:
# - name: /etc/network/interfaces.d/br0
# - source: salt://gateway/etc/network/interfaces.d/br0
# - template: jinja
# - defaults:
# address: {#{ pillar['network']['bridge']['ipv4']['address'] }#}
# netmask: {#{ pillar['network']['bridge']['ipv4']['netmask'] }#}
# address6: {#{ pillar['network']['bridge']['ipv6']['address'] }#}
# netmask6: {#{ pillar['network']['bridge']['ipv6']['netmask'] }#}
# - user: root
# - group: root
# - mode: 644
# /etc/network/interfaces.d/bat0:
# file.managed:
# - name: /etc/network/interfaces.d/bat0
# - source: salt://gateway/etc/network/interfaces.d/bat0
# - user: root
# - group: root
# - mode: 64
{% if not pillar['testing'] is defined %}
/etc/resolvconf/resolv.conf.d/head:
file.managed:
- name: /etc/resolvconf/resolv.conf.d/head
- source: salt://gateway/etc/resolvconf/resolv.conf.d/head
{% endif %}
/etc/network/interfaces:
file.append:
- name: /etc/network/interfaces
- text: |
source /etc/network/interfaces.d/*
/etc/network/interfaces.d:
file.directory:
- name: /etc/network/interfaces.d
- makedirs: True
/etc/network/interfaces.d/bridge:
file.managed:
- name: /etc/network/interfaces.d/bridge
- source: salt://gateway/etc/network/interfaces.d/bridge
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
primary: {{ pillar['network']['primary']['interface'] }}
bridge: {{ pillar['network']['bridge']['interface'] }}
hwaddress: {{ pillar['network']['bridge']['hwaddress'] }}
address: {{ pillar['network']['bridge']['address'] }}
netmask: {{ pillar['network']['bridge']['netmask'] }}
address6mask: {{ pillar['network']['bridge']['address6mask'] }}
cmd.run:
- name: ifup {{ pillar['network']['bridge']['interface'] }}
- unless: test -n "$(ifconfig | grep {{ pillar['network']['bridge']['interface'] }})"
{% if pillar['fastd']['secret'] is defined %}
/etc/network/interfaces.d/batman:
file.managed:
- name: /etc/network/interfaces.d/batman
- source: salt://gateway/etc/network/interfaces.d/batman
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
primary: {{ pillar['network']['primary']['interface'] }}
bridge: {{ pillar['network']['bridge']['interface'] }}
batman: {{ pillar['network']['batman']['interface'] }}
{% endif %}
{% if pillar['network']['mesh']['hwaddress'] is defined %}
/etc/network/interfaces.d/mesh:
file.managed:
- name: /etc/network/interfaces.d/mesh
- source: salt://gateway/etc/network/interfaces.d/mesh
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
primary: {{ pillar['network']['primary']['interface'] }}
batman: {{ pillar['network']['batman']['interface'] }}
mesh: {{ pillar['network']['mesh']['interface'] }}
hwaddress: {{ pillar['network']['mesh']['hwaddress'] }}
{% endif %}
{% if pillar['exit'] is defined and pillar['exit']['provider'] == 'ffrl' %}
/etc/network/interfaces.d/ffrl:
file.managed:
- name: /etc/network/interfaces.d/ffrl
- source: salt://gateway/etc/network/interfaces.d/ffrl
- user: root
- group: root
- mode: 644
- template: jinja
{% endif %}
{% endif %}
# Forwarding
# IPv4
# Affects: /etc/sysctl.d/99-salt.conf
# Validate: sysctl net.ipv4.ip_forward
net.ipv4.ip_forward:
sysctl.present:
- value: 1
# Sven
net.ipv4.conf.default.rp_filter:
sysctl.present:
- value: 0
net.ipv4.conf.all.rp_filter:
sysctl.present:
- value: 0
# IPv6
# Affects: /etc/sysctl.d/99-salt.conf
# Validate: sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding:
sysctl.present:
- value: 1
# Sven
net.ipv6.conf.all.autoconf:
sysctl.present:
- value: 0
net.ipv6.conf.default.autoconf:
sysctl.present:
- value: 0
# net.ipv6.conf.eth0.autoconf:
# sysctl.present:
# - value: 0
net.ipv6.conf.all.accept_ra:
sysctl.present:
- value: 0
net.ipv6.conf.default.accept_ra:
sysctl.present:
- value: 0
# net.ipv6.conf.eth0.accept_ra:
# sysctl.present:
# - value: 0
# % if grains['kernelrelease'] < '3.18' %}
# /etc/resolv.conf