Dies ist eine alte Version des Dokuments!
Mit dem IC-VPN vernetzen sich die verschiedenen Freifunker aus Deutschland und auch anderen Ländern untereinander. Technisch geschieht dies mit Tinc, per BGP werden dann die eigenen Subnetze bekannt gegeben.
Damit es zu keinen Überschneidungen bei den Subnetzen kommt, existieren im Freifunkwiki mehrere Seiten:
Name = bielefeld1 PrivateKeyFile = /etc/tinc/icvpn/rsa_key.priv Mode = Switch PingTimeout = 30 Port = 655 Hostname = yes ConnectTo = augsburg1 ConnectTo = luebeck1 ConnectTo = gronau1
!/bin/sh ip link set dev icvpn up ip addr add dev icvpn 10.207.0.59/16 broadcast 10.207.255.255 ip -6 addr add dev icvpn fec0::a:cf:0:59/96 ip rule add from all table icvpn prio 32764 ip -6 rule add from all table icvpn prio 32764
#!/bin/sh ip del dev icvpn 10.207.0.59/16 broadcast 10.207.255.255 ip -6 addr del dev icvpn fec0::a:cf:0:59/96 ip link set dev icvpn down ip rule del prio 32764 ip -6 rule del prio 32764
zusätzliche Zeile mit
200 icvpn
log "/var/log/bird.log" all; log syslog all; router id 10.29.132.192; define myas = 65529; table icvpn; ### filters and functions ### function net_martian() { return net ~ [ 169.254.0.0/16+, 127.0.0.0/8+, 224.0.0.0/4+, 240.0.0.0/4+, 0.0.0.0/0{0,7}, 192.168.0.0/16+ ]; } function net_local() { return net ~ [ 10.29.0.0/16+]; } function export_all() { if net_martian() then return false; return true; } function import_all() { if net_martian() || net_local() then return false; return true; } filter bgp_out { if ! export_all() then reject; accept; } filter bgp_in { if ! import_all() then reject; accept; } protocol kernel { scan time 10; table icvpn; kernel table 200; import none; export filter { krt_prefsrc = 10.29.132.192; # edit: own ip accept; }; }; protocol device { scan time 10; } protocol static { route 10.29.0.0/16 via "br-mesh"; table icvpn; } template bgp PEERS { local as myas; import filter bgp_in; export filter bgp_out; route limit 10000; rs client; table icvpn; }; template bgp bgp_ibgp { table icvpn; local as myas; source address 10.29.132.192; #edit: own ip import filter bgp_in; export filter bgp_out; gateway direct; next hop self; }; ### iBGP ### ### vpn1 #### protocol bgp vpn1 from bgp_ibgp { neighbor 10.29.131.187 as 65529; }; ### eBGP ### ### Leipzig1 ### protocol bgp Leipzig1 from PEERS { description "Leipzig1"; neighbor 10.207.0.1 as 65041; } ...
Siehe bird.conf, Router-ID spielt keine Rolle
openvpn.conf
remote fidelity.techel.net mode p2p lport 50001 rport 50009 proto udp dev-type tun dev dn42 comp-lzo secret secret.psk user nobody group nogroup persist-key persist-tun ifconfig 10.207.0.59 172.22.119.194
Zum Starten zusammen mit tinc, folgende Zeile in tinc-up
openvpn --daemon --config openvpn.conf
/etc/bird.conf
protocol bgp R64753x1 from PEERS { description "dn42 AS64753"; neighbor 172.22.119.194 as 64753; }