!!! 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