Freifunk-Gateway aufsetzen/xlat464: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Zeile 4: Zeile 4:
Zuerst benötigen wir eine weitere ULA IPv6 Adresse. Diese Adresse darf an kein Interface gebunden sein, muss aber ins Babel announced werden. Dies können wir mit einer route in der fff table erledigen:
Zuerst benötigen wir eine weitere ULA IPv6 Adresse. Diese Adresse darf an kein Interface gebunden sein, muss aber ins Babel announced werden. Dies können wir mit einer route in der fff table erledigen:


<code>
<pre>
ip -6 ro replace fd43:5602:29bd:ffff::deine_res_ip/128 dev lo proto static table fff
ip -6 ro replace fd43:5602:29bd:ffff::deine_res_ip/128 dev lo proto static table fff
</code>
</pre>


Für diese IP müssen wir zwingend in die main table gucken da dort später clatd eine route ablegt (priority kann angepasst werden, die rule sollte aber sehr bald greifen!):
Für diese IP müssen wir zwingend in die main table gucken da dort später clatd eine route ablegt (priority kann angepasst werden, die rule sollte aber sehr bald greifen!):


<code>
<pre>
ip -6 ru add from all to fd43:5602:29bd:ffff::deine_res_ip/128 lookup main priority 10
ip -6 ru add from all to fd43:5602:29bd:ffff::deine_res_ip/128 lookup main priority 10
</code>
</pre>


Danach installieren wir clatd nach Anleitung https://github.com/toreanderson/clatd:
Danach installieren wir clatd nach Anleitung https://github.com/toreanderson/clatd:


<code>
<pre>
cd ~
cd ~
git clone https://github.com/toreanderson/clatd
git clone https://github.com/toreanderson/clatd
sudo make -C clatd install installdeps
sudo make -C clatd install installdeps
</code>
</pre>


Wir müssen die config ein klein wenig erweitern:
Wir müssen die config ein klein wenig erweitern:
Zeile 26: Zeile 26:
/etc/clatd.conf
/etc/clatd.conf


<code>
<pre>
dns64-servers=fd43:5602:29bd:ffff:1:1:1:64
dns64-servers=fd43:5602:29bd:ffff:1:1:1:64
v4-conncheck-enable=no
v4-conncheck-enable=no
clat-v6-addr=fd43:5602:29bd:ffff::deine_res_ip
clat-v6-addr=fd43:5602:29bd:ffff::deine_res_ip
</code>
</pre>


In der ersten Zeile wird der DNS64 Server für das 64:ff9b::/96 Subnetz angegeben. In der 2. Zeile wird der IPv4 Check deaktiviert (das Gateway hat in den meisten Fällen eine IPv4 Adresse, so das dieser Check sonst den Abbruch bedeutet) und in der 3. Zeile wird die IP Adresse angegeben die wir oben bereits entsprechend geroutet haben.
In der ersten Zeile wird der DNS64 Server für das 64:ff9b::/96 Subnetz angegeben. In der 2. Zeile wird der IPv4 Check deaktiviert (das Gateway hat in den meisten Fällen eine IPv4 Adresse, so das dieser Check sonst den Abbruch bedeutet) und in der 3. Zeile wird die IP Adresse angegeben die wir oben bereits entsprechend geroutet haben.
Zeile 36: Zeile 36:
Danach kann man clatd starten:
Danach kann man clatd starten:


<code>
<pre>
systemctl restart clatd
systemctl restart clatd
</code>
</pre>


Den Status ob alles geklappt hat mit  
Den Status ob alles geklappt hat mit  


<code>
<pre>
systemctl status clatd
systemctl status clatd
</code>
</pre>


angucken.
angucken.
Zeile 50: Zeile 50:
Danach müssen noch die Freifunk Netze auf das clat Interface geroutet und genNATet werden:
Danach müssen noch die Freifunk Netze auf das clat Interface geroutet und genNATet werden:


<code>
<pre>
ip ro replace default dev clat table fff
ip ro replace default dev clat table fff
iptables -t nat -A POSTROUTING -o clat -j SNAT --to-source 192.0.0.1
iptables -t nat -A POSTROUTING -o clat -j SNAT --to-source 192.0.0.1
</code>
</pre>


Es können somit in den Hoods auch IPv4 Adressen verwendet werden, die nicht im Freifunk reserviert sind, z.b. aus dem 192.168.0.0/16 Netz (z.b. für jede Hood ein /23 aus diesem Netz)
Es können somit in den Hoods auch IPv4 Adressen verwendet werden, die nicht im Freifunk reserviert sind, z.b. aus dem 192.168.0.0/16 Netz (z.b. für jede Hood ein /23 aus diesem Netz)

Version vom 19. Januar 2021, 16:14 Uhr

Erklärung

Vorraussetzung

Zuerst benötigen wir eine weitere ULA IPv6 Adresse. Diese Adresse darf an kein Interface gebunden sein, muss aber ins Babel announced werden. Dies können wir mit einer route in der fff table erledigen:

ip -6 ro replace fd43:5602:29bd:ffff::deine_res_ip/128 dev lo proto static table fff

Für diese IP müssen wir zwingend in die main table gucken da dort später clatd eine route ablegt (priority kann angepasst werden, die rule sollte aber sehr bald greifen!):

ip -6 ru add from all to fd43:5602:29bd:ffff::deine_res_ip/128 lookup main priority 10

Danach installieren wir clatd nach Anleitung https://github.com/toreanderson/clatd:

cd ~
git clone https://github.com/toreanderson/clatd
sudo make -C clatd install installdeps

Wir müssen die config ein klein wenig erweitern:

/etc/clatd.conf

dns64-servers=fd43:5602:29bd:ffff:1:1:1:64
v4-conncheck-enable=no
clat-v6-addr=fd43:5602:29bd:ffff::deine_res_ip

In der ersten Zeile wird der DNS64 Server für das 64:ff9b::/96 Subnetz angegeben. In der 2. Zeile wird der IPv4 Check deaktiviert (das Gateway hat in den meisten Fällen eine IPv4 Adresse, so das dieser Check sonst den Abbruch bedeutet) und in der 3. Zeile wird die IP Adresse angegeben die wir oben bereits entsprechend geroutet haben.

Danach kann man clatd starten:

systemctl restart clatd

Den Status ob alles geklappt hat mit

systemctl status clatd

angucken.

Danach müssen noch die Freifunk Netze auf das clat Interface geroutet und genNATet werden:

ip ro replace default dev clat table fff
iptables -t nat -A POSTROUTING -o clat -j SNAT --to-source 192.0.0.1

Es können somit in den Hoods auch IPv4 Adressen verwendet werden, die nicht im Freifunk reserviert sind, z.b. aus dem 192.168.0.0/16 Netz (z.b. für jede Hood ein /23 aus diesem Netz)

Wenn man kein IPv4 mehr routen möchte kann im babeld IPv4 komplett deaktivieren und auf den Gateway alle IPv4 Adressen auf allen peering Interfaces verwerfen. Seiteneffekte sind noch ungeprüft und muss u.U. beachtet werden!

Einrichtung