ASN 65433 (Autonomes System)
siehe: https://wiki.freifunk.net/IC-VPN
Öffentliche IPv6-Adressen: 2001:bf7:70::/44
die 70
ist entsprechend Wahlkreis 70
„Pinneberg“ vergeben worden.
Transfernetz IPv6: fec0:a:cf:1e
Registrieren bei NOC Berlin: mailto:noc@berlin.freifunk.net
Konfiguration unter https://github.com/freifunk-pinneberg/icvpn-meta/blob/master/pinneberg, die Daten dort müssen vor Inbetriebnahme aktualisiert werden.
Informationen zu den einzelnen am ICVPN teilnehmenden Communities.
Die Metadaten werden in /var/lib/icvpn-meta
gespeichert.
Der Ursprung ist ein Git-Repository, die Aktualisierung
erfolgt durch ein Script mit Cron-Job (s.u.).
Es gibt eine Sammlung von Scripts für ICVPN: icvpn-scripts
.
Voraussetzung und Installation
aptitude install python3 python3-yaml cd /opt git clone https://github.com/freifunk/icvpn-scripts
Das folgende Script wird mittels eines Cron-Jobs (in cron.daily) täglich ausgeführt, in dieser Version allerdings nur vom Master-Gateway. Die übrigen Systeme bekommen die Daten über lsync weiterverteilt.
#!/bin/sh # # Freifunk Intercity VPN: Daten aktualisieren # OWN_COMMUNITY=pinneberg ICVPN_META_DIR=/var/lib/icvpn-meta BIRD_CONF=/etc/bird/bird.d/icvpn.conf NAMED_CONF=/etc/bind/named.conf.icvpn-zones # Basisdaten über Git aktualisieren cd /etc/tinc/icvpn git pull -q cd $ICVPN_META_DIR git pull -q # Konfigurationsdateien aus den neuen Daten erzeugen /opt/icvpn-scripts/mkbgp -f bird -4 -s $ICVPN_META_DIR -d peers -x $OWN_COMMUNITY > $BIRD_CONF /opt/icvpn-scripts/mkdns -f bind -s $ICVPN_META_DIR -x $OWN_COMMUNITY > $NAMED_CONF
tinc.conf
erhöhen hilft ggf. bei Packet losts?Infos von tinc erfragen
kill -USR1 <tinc pid>
- dumps the connection listkill -USR2 <tinc pid>
- dumps virtual network statistics
Wir konfigurieren die Protokollierung etwas anders als in den übrigen
Anleitungen, da ggf. viele Meldungen ausgegeben werden.
Ins Syslog kommen nur die wichtigen Nachrichten, alles übrige wird in
andere Dateien unter /var/log/bird/
geschrieben
[...] log syslog { auth, fatal, bug }; log "/var/log/bird/default.log" { debug, trace, info, remote, warning }; log "/var/log/bird/error.log" { error }; [...]
Sinnvollerweise sollten die Protokolldateien rotiert werden, wir wollen die Logdateien für eine Woche vorhalten, für jeden Tage eine:
/var/log/bird/*.log { daily rotate 7 missingok compress create 0640 bird bird sharedscripts postrotate [ -e /var/run/bird/bird.ctl ] && invoke-rc.d bird reload >/dev/null endscript }
Übertragung des Routings an die anderen Gateways:
protocol bgp gate03 from locals { neighbor 10.137.12.1 as 65433; } protocol bgp gate04 from locals { neighbor 10.137.13.1 as 65433; } protocol bgp gate05 from locals { neighbor 10.137.14.1 as 65433; }
Die Konfiguration kann mit birdc
überprüft werden. Das Programm kann ohne Parameter aufgerufen werden, dann ist es im interaktiven Modus. Mit ?
bekommt man die Hilfe angezeigt.
Alternativ können befehle auch direkt abgesetzt werden:
birdc show protocols
birdc configure check
- überprüft die Konfigurationsdateibirdc configure
- lädt die Konfigurationsdatei (z.B. nach einer Änderung) neu einAnscheinend ist dies ein komplizierteres Thema.
Zusammenfassung, wer mit welche Adressen im Protokoll auftaucht kann man mit dem folgenden Befehl erhalten:
grep "Invalid NEXT_HOP" /var/log/syslog | cut -f 7,13 -d "> " | sort | uniq -c | sort -n | tail
Ziel ist es, daß die Namen anderer Communities aufgelöst werden.
Testen bzw. zu Ende konfigurieren
[...] include "/etc/bind/named.conf.icvpn-zones";
Wenn der folgende Wert auf auto
steht (Standardeinstellung),
dann funktioniert die Namensauflösung im ICVPN nicht. Deshalb:
dnssec-validation no;
Die ICVPN-Metadaten werden auf die übrigen Gateways übertragen. Momentan ist Gate03 konfiguriert.
#!/bin/sh # # Freifunk Intercity VPN: DNS aktualisieren # OWN_COMMUNITY=pinneberg ICVPN_META_DIR=/var/lib/icvpn-meta NAMED_CONF=/etc/bind/named.conf.icvpn-zones # Konfigurationsdatei neu schreiben /opt/icvpn-scripts/mkdns -f bind -s $ICVPN_META_DIR -x $OWN_COMMUNITY > $NAMED_CONF # Nameserverdaten neu laden /usr/sbin/rndc reload