Freifunk-Gateway aufsetzen/radvd: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== radvd == radvd wird verwendet damit Freifunk Clients eine fd43 Adresse bekommen. Er muss somit die fd43 der Hood in das batX Interface pusten. Damit radvd…“) |
(Anycast bevorzugt) |
||
(24 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== | == Funktion == | ||
radvd wird verwendet um Router Advertisements mit den passenden Parametern für SLAAC in das Batman-Netz zu senden. | |||
Damit können sich Freifunk Clients informieren, welche Router es gibt und sich Adressen zuweiswen. | |||
radvd | == Installation == | ||
=== Debian 10 und 11 === | |||
Ab Debian 10 wird per <pre>apt-get install radvd</pre> installiert. Debian 10 installiert die Version 2.17, Debian 11 die Version 2.18. | |||
=== andere/ältere Versionen === | |||
Damit radvd nicht die fe80::1 als Source-IP verwendet (geht ziemlich kaputt), muss mindestens Version 2.16 installiert sein. Das kann man so überprüfen: | Damit radvd nicht die fe80::1 als Source-IP verwendet (geht ziemlich kaputt), muss mindestens Version 2.16 installiert sein. Das kann man so überprüfen: | ||
Zeile 12: | Zeile 20: | ||
In den Debian 9 Packetquellen wird leider noch 2.15 ausgeliefert. | In den Debian 9 Packetquellen wird leider noch 2.15 ausgeliefert. | ||
Man kann radvd aber aus Debian 10 (aktuell testing) backporten. | Man kann radvd aber aus Debian 10 (aktuell testing) backporten. | ||
Damit nicht alle Pakete auf die buster-Version aktualisiert werden: | Damit nicht alle Pakete auf die buster-Version aktualisiert werden: | ||
Zeile 37: | Zeile 46: | ||
</pre> | </pre> | ||
== Beispiel Konfiguration == | |||
radvd muss dann in jeder Hood Router Advertisements senden und die entsprechende ULA als Autonomous Prefix announcen: | radvd muss dann in jeder Hood Router Advertisements senden und die entsprechende ULA als Autonomous Prefix announcen: | ||
/etc/radvd.conf | /etc/radvd.conf | ||
<pre> | <pre> | ||
interface | interface bat-nuernberg { | ||
AdvSendAdvert on; | |||
AdvDefaultLifetime 0; | AdvDefaultLifetime 0; | ||
AdvRASrcAddress { | |||
fe80::IRGENDWAS; | |||
}; | |||
prefix fd43:5602:29bd:x::/64 { | |||
AdvOnLink on; | AdvOnLink on; | ||
AdvAutonomous on; | AdvAutonomous on; | ||
}; | |||
route fc00::/7 { | |||
}; | |||
}; | }; | ||
</pre> | </pre> | ||
'''ACHTUNG:''' Die fe80:: die bei AdvRASrcAddress eingetragen ist muss fest an das batX Interface gebunden werden. (siehe [[Freifunk-Gateway_aufsetzen/Batman-adv#IPv6_Link_Local_f.C3.BCr_das_Senden_von_Router_Advertisements]]). | |||
''' | Die Adresse sollte zufällig generiert sein, die Adressen '''müssen''' in jeder Hood eindeutig sein. | ||
AdvRASrcAddress ist nötig, damit die Router Advertisements nicht von der fe80::1 gesendet werden. Denn wenn zwei Gateways verschiedene Router Advertisements von der gleichen Link Local Adresse senden, sind die Clients verwirrt und es kommt | AdvRASrcAddress ist nötig, damit die Router Advertisements nicht von der fe80::1 gesendet werden. Denn wenn zwei Gateways verschiedene Router Advertisements von der gleichen Link Local Adresse senden, sind die Clients verwirrt und es kommt zu Verbindungsabbrüchen. | ||
Weiterhin sollten [[DNS#Andere_DNS_Server_nutzen|DNS-Server]] mitgeliefert werden. Das geht innerhalb des Interface-Blocks mit "RDNSS". | |||
Die Option sollte nicht mehrfach angegeben werden, sondern stattdessen können in einer Angabe bis zu 3 [[DNS#Andere_DNS_Server_nutzen|DNS-Server]] definiert werden. | |||
<pre> | |||
RDNSS fd43:5602:29bd:ffff:1:1:1:1 { | |||
}; | |||
</pre> | |||
Danach radvd neu starten, damit die Konfiguration übernommen wird: | |||
<pre> | <pre> | ||
systemctl restart radvd | systemctl restart radvd | ||
</pre> | </pre> | ||
=== Public IPv6 === | |||
Wenn man auch Public IPv6 Adressen verteilen möchte, muss folgendes noch geändert werden: | |||
Zuerst darf AdvDefaultLifetime nicht 0 sein, damit eine default Route mit ausgegeben wird. | |||
Solange es keinen Grund dagegen gibt, sollte der Default verwendet werden, indem die Option weggelassen wird. | |||
Weiterhin muss das Subnetz auch explizit als prefix mit angegeben werden, wie wir es bei den ULA Adressen schon machen. Der Abschnitt könnte dann z.b. so aussehen: | |||
<pre> | |||
prefix 2001:db8:aaaa:bbbb::/64 { | |||
AdvOnLink on; | |||
AdvAutonomous on; | |||
}; | |||
</pre> | |||
== Testen der Konfiguration == | |||
*Kann erst nach Abschluss der Konfiguration getestet werden! | |||
Es muss sich auf einen Knoten der in der Hood ist verbunden werden und ein Client (z.b. Laptop) muss sich in das WLAN einbuchen. Danach muss geprüft werden ob der Client eine fd43 Adresse aus dem Subnetz bekommen hat. |
Aktuelle Version vom 3. April 2023, 02:57 Uhr
Funktion
radvd wird verwendet um Router Advertisements mit den passenden Parametern für SLAAC in das Batman-Netz zu senden. Damit können sich Freifunk Clients informieren, welche Router es gibt und sich Adressen zuweiswen.
Installation
Debian 10 und 11
Ab Debian 10 wird per
apt-get install radvd
installiert. Debian 10 installiert die Version 2.17, Debian 11 die Version 2.18.
andere/ältere Versionen
Damit radvd nicht die fe80::1 als Source-IP verwendet (geht ziemlich kaputt), muss mindestens Version 2.16 installiert sein. Das kann man so überprüfen:
radvd -v
In den Debian 9 Packetquellen wird leider noch 2.15 ausgeliefert.
Man kann radvd aber aus Debian 10 (aktuell testing) backporten.
Damit nicht alle Pakete auf die buster-Version aktualisiert werden:
/etc/apt/preferences.d/limit-buster
Package: * Pin: release n=buster Pin-Priority: 150
Dann die buster Packetquellen einfügen:
/etc/apt/sources.list.d/buster.list
deb http://ftp.de.debian.org/debian/ buster main
Und radvd installieren:
apt-get update apt-get -t buster install radvd
Beispiel Konfiguration
radvd muss dann in jeder Hood Router Advertisements senden und die entsprechende ULA als Autonomous Prefix announcen:
/etc/radvd.conf
interface bat-nuernberg { AdvSendAdvert on; AdvDefaultLifetime 0; AdvRASrcAddress { fe80::IRGENDWAS; }; prefix fd43:5602:29bd:x::/64 { AdvOnLink on; AdvAutonomous on; }; route fc00::/7 { }; };
ACHTUNG: Die fe80:: die bei AdvRASrcAddress eingetragen ist muss fest an das batX Interface gebunden werden. (siehe Freifunk-Gateway_aufsetzen/Batman-adv#IPv6_Link_Local_f.C3.BCr_das_Senden_von_Router_Advertisements).
Die Adresse sollte zufällig generiert sein, die Adressen müssen in jeder Hood eindeutig sein.
AdvRASrcAddress ist nötig, damit die Router Advertisements nicht von der fe80::1 gesendet werden. Denn wenn zwei Gateways verschiedene Router Advertisements von der gleichen Link Local Adresse senden, sind die Clients verwirrt und es kommt zu Verbindungsabbrüchen.
Weiterhin sollten DNS-Server mitgeliefert werden. Das geht innerhalb des Interface-Blocks mit "RDNSS". Die Option sollte nicht mehrfach angegeben werden, sondern stattdessen können in einer Angabe bis zu 3 DNS-Server definiert werden.
RDNSS fd43:5602:29bd:ffff:1:1:1:1 { };
Danach radvd neu starten, damit die Konfiguration übernommen wird:
systemctl restart radvd
Public IPv6
Wenn man auch Public IPv6 Adressen verteilen möchte, muss folgendes noch geändert werden:
Zuerst darf AdvDefaultLifetime nicht 0 sein, damit eine default Route mit ausgegeben wird. Solange es keinen Grund dagegen gibt, sollte der Default verwendet werden, indem die Option weggelassen wird.
Weiterhin muss das Subnetz auch explizit als prefix mit angegeben werden, wie wir es bei den ULA Adressen schon machen. Der Abschnitt könnte dann z.b. so aussehen:
prefix 2001:db8:aaaa:bbbb::/64 { AdvOnLink on; AdvAutonomous on; };
Testen der Konfiguration
- Kann erst nach Abschluss der Konfiguration getestet werden!
Es muss sich auf einen Knoten der in der Hood ist verbunden werden und ein Client (z.b. Laptop) muss sich in das WLAN einbuchen. Danach muss geprüft werden ob der Client eine fd43 Adresse aus dem Subnetz bekommen hat.