!!! unvollständig !!!

Diese Anleitung basiert auf andere Anleitungen und beschreibt nur die Unterschiede von einen normalen Mesh-Server zu einen lokalen GatewayAlle angegebenen IPs, MACs, VLANs, Interfaces müssen passend zum System geändert werden!

DNS+DHCP

### DNS

# DNS Server
server=192.168.178.1
server=193.28.153.254
server=213.73.91.35
server=8.8.8.8
server=8.8.4.4

local=/ffggrz/
domain=ffggrz


### DHCP / RA
#dhcp-authoritative
# abschalten der Namensaufloesung fuer DHCP-Clients
dhcp-ignore-names
#quiet-dhcp
#quiet-dhcp6
quiet-ra

####IPv4
dhcp-range=10.181.11.2,10.181.12.254,1h
#dhcp-option=option:router,10.181.0.202
dhcp-option=option:dns-server,10.181.0.202
dhcp-option=option:ntp-server,10.181.0.202
dhcp-option=option:domain-search,ffggrz
# IP-Fragmentierung am Client um die batman-adv-Fragmentierung zu reduzieren
# 1406 (fastd) - 24 (batman-adv) - reserve = 1380
#dhcp-option-force=26,1350

####IPv6
# ra-stateless: A+O-Bit fuer stateless-Adressen aber DHCPv6 (DNS+NTP)
dhcp-range=set:v6,::,constructor:br-freifunk,slaac,ra-stateless,1h
# ohne IPv6 nimmt dnsmasq selbst eine der IPv6-Adressen vom Interface
dhcp-option=tag:v6,option6:dns-server,::
dhcp-option=tag:v6,option6:ntp-server,::
dhcp-option=tag:v6,option6:domain-search,ffggrz

enable-ra
####low Priority
#ra-param=br-freifunk,low,600,0
ra-param=br-freifunk,low,600,1800

batman-adv

allow-hotplug bat0
iface bat0 inet manual
  hwaddress ether de:ad:be:60:05:01
  up ip link set up dev $IFACE
  down ip link set down dev $IFACE
  post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

  post-up echo 60 > /sys/class/net/$IFACE/mesh/hop_penalty
  post-up echo 1 > /sys/class/net/$IFACE/mesh/bridge_loop_avoidance
  #post-up batctl gw client 45
  #post-up batctl orig_interval 5000
  post-up batctl gw server 96mbit/96mbit
  post-up batctl orig_interval 30000
  post-up batctl multicast_mode 0

Firewall+NAT

IPV4

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-N DEFAULT_EXIT
-A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8

-N BYPASS_exitVPN
-A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN
-A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN
-A BYPASS_exitVPN -d 10.0.0.0/8 -j RETURN
-A BYPASS_exitVPN -d 169.254.0.0/16 -j RETURN
-A BYPASS_exitVPN -d 172.16.0.0/12 -j RETURN
-A BYPASS_exitVPN -d 192.168.0.0/16 -j RETURN
-A BYPASS_exitVPN -d 100.64.0.0/10 -j RETURN
-A BYPASS_exitVPN -d 192.0.2.0/24 -j RETURN
-A BYPASS_exitVPN -d 198.51.100.0/24 -j RETURN
-A BYPASS_exitVPN -d 203.0.113.0/24 -j RETURN
-A BYPASS_exitVPN ! -s 10.181.0.0/16 -j RETURN
-A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT

-A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark

-A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark

-A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark
-A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN
-A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark
COMMIT

IPv6

*mangle

:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-N DEFAULT_EXIT
-A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8

-N BYPASS_exitVPN
-A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN
-A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN
-A BYPASS_exitVPN -d fdb5:078b:64cc::/48 -j RETURN
-A BYPASS_exitVPN -d 2a03:2260:100b::/48 -j RETURN
-A BYPASS_exitVPN -d fe80::/10 -j RETURN
-A BYPASS_exitVPN -d ff00::/8 -j RETURN
-A BYPASS_exitVPN ! -d 2000::/3 -j RETURN
-A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT

-A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark

-A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark

-A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark
-A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN
-A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark
COMMIT

Allgemein


*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -m connmark --mark 8 -j MASQUERADE
COMMIT

*filter
-A FORWARD -i br-freifunk -o br-freifunk -j ACCEPT
-A FORWARD -i eth0 -o br-freifunk -m connmark --mark 8 -j ACCEPT
-A FORWARD -i br-freifunk -o eth0 -m connmark --mark 8 -j ACCEPT
-A FORWARD -i eth0 -o br-freifunk -j DROP
-A FORWARD -i br-freifunk -o eth0 -j DROP
COMMIT

Probleme

  • fällt ein Gateway irgendwo aus verlieren zufällige Knoten ihre ganzen Gateway-Einträge, wodurch kein DHCP für eine kurze möglich ist.
  • kein intercity-VPN
  • nur bedingt IPv6 (falls überhaupt beim Uplink vorhanden)
  • statisches DHCP