# Automatische Prefix Delegation im Layer 3 Netzwerk

**URL:** <https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340>\
**Category:** Technik\
**Created:** [11. Oktober 2020 um 09:35 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340 "2020-10-11T09:35:27Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [11. Oktober 2020 um 09:35 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/1 "2020-10-11T09:35:28Z")

</div>

Nachdem ich jetzt auch endlich zu Babel bin, standen wir vor dem Problem, dass wir Prefixe im Layer 3 Netzwerk verteilen müssen, die sich jeden Tag ändern.

Ich bin erstaunt wie einfach das mit Babel und Source-Routing geht. In einer Nacht habe ich mit einem Freund ein Konzept entwickelt und umgestzt, welches Prefixe im Netz verteilt.

Es werden einfach die Source-Specific default Routen genommen und alle anderen babel routen. Wir iterieren dann einfach durch eine Permutation der noch nicht announcten Prefixe der default routen durch, bis wir nen freien haben und assignen uns den selber. Es läuft bei uns im Backbone schon erfolgreich (bis jetzt nur 3 Nodes…^^).

> **[GitHub - Freifunk-Spalter/dice-prefix: Script that allows to autoconfigure...](https://github.com/Freifunk-Spalter/dice-prefix)**
>
> Script that allows to autoconfigure prefixes for source specific routing - Freifunk-Spalter/dice-prefix

**ToDo:**

- Mehr Randomizierung
- Collision Detection mit Auflösung
- `assign_prefixes` und `removes_prefixes` noch ohne uci (openwrt unabhängigkeit)
- Prefix-Größen und Längen Konfigurierbar machen
- Skripte schöner machen

Ist noch von dem PR abhängig:  
[https://github.com/openwrt/packages/pull/13617](https://github.com/openwrt/packages/pull/13617)

Aufbau:

```bash
config interface 'wan6'
	option ifname '@wan'
	option proto 'dhcpv6'
	option reqprefix '57'

```

```auto
  +----------+ +-------+ +------------+ +-----------+
  | Fritz!Box+-----+OpenWrt+-----+ Mesh|Hop|1 +----+Mesh|Hop|2 |
  +----------+ +-------+ +------------+ +-----------+

```

Edit:  
Es empifehlt sich für den DHCP-Server folgendes zu setzen:

```auto
    option dhcpv6 'server'
    option ra 'server'
    option leasetime '3m'
    option ra_useleasetime '1'

```

Leider sind die Clients so „doof“ und erkennen nicht, dass macher Prefix deprecated ist. 😕

---

<div class="post-metadata">

**Author:** ![mutant](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/m/f4b2a3/32.png) [@mutant](https://forum.freifunk.net/u/mutant)\
**Post date:** [16. Oktober 2020 um 10:52 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/2 "2020-10-16T10:52:11Z")

</div>

> [@Polynomialdivision](#):
>
> Leider sind die Clients so „doof“ und erkennen nicht, dass macher Prefix deprecated ist.

Das hat Bieringer schon 2013 in seinem Paper zur IPv6-Konferenz-Frankfurt bemängelt:

> Nachgeschalteter Netgear Router (OpenWRT)  
> Fritz!Box verteilt /62 Subnetze via DHCP an nachgelagerten  
> Router  
> keine Signalisierung bei Präfix-Wechsel  
> =\> Netzwerk hinter OpenWRT-Router offline

Anscheinend ist das durch liftime settings nicht mal eben zu beheben.

- Ist das systemimmanent?
- Was ist hier die tiefere Ursache??  
(Fragt ein Laie, den das seit längerem nervt…)

Was meinst Du?

Zitiertes Paper:

> **[2014-IPv6-Konferenz-Frankfurt-PeterBieringer-ipv6calc.pdf](https://www.bieringer.de/pb/lectures/2014-IPv6-Konferenz-Frankfurt-PeterBieringer-ipv6calc.pdf)**
>
> 1163.68 KB

Erfahrungen mit einem nativen IPv6-Zugang, Dr. Peter Bieringer, IPv6-Kongress Frankfurt/Main, 06. - 07. Juni 2013

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [16. Oktober 2020 um 19:47 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/3 "2020-10-16T19:47:14Z")

</div>

> [@mutant](#):
>
> Anscheinend ist das durch liftime settings nicht mal eben zu beheben.

Bei mir funktionierts? Ich hatte überlegt nen neuen Assoc über hostapd zu erzwingen.  
Wir könnten vll unterschiedliche Metriken pushen? Ich muss mal gucken.

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [23. Oktober 2020 um 21:16 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/4 "2020-10-23T21:16:43Z")

</div>

Können wir nicht nen Router Advertisement aktiv an den Client senden?

---

<div class="post-metadata">

**Author:** ![Skeptiker](https://forum.freifunk.net/user_avatar/forum.freifunk.net/skeptiker/32/22516_2.png) [@Skeptiker](https://forum.freifunk.net/u/Skeptiker)\
**Post date:** [11. November 2020 um 09:16 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/5 "2020-11-11T09:16:56Z")

</div>

Das wäre auch meine erste Frage. Ich bin mir nicht sicher, ob ich das Scenario und dessen Anforderungen richtig verstehe, aber wenn es offenbar „nur“ darum geht, Prefixe und default-Routen zu verteilen, warum nimmt man da DHCP? Router Advertisement ist da viel robuster und einfacher. Ich glaube, es ist bei DHCP einfach nicht vorgesehen, dass der server sagt „Deine Adresse ist deprecated“. Das geht immer vom Client aus, und solange die Lifetime nicht abgelaufen ist, geht der davon aus, dass noch alles gültig ist.

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [28. Dezember 2020 um 11:51 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/7 "2020-12-28T11:51:57Z")

</div>

Ich bin gerade wieder bei der Situation wo ich das brauche, ich muss mal gucken wie ich die Prefixe an den Client mit aufsteigender Metrik vergebe. 🙂

---

<div class="post-metadata">

**Author:** ![Skeptiker](https://forum.freifunk.net/user_avatar/forum.freifunk.net/skeptiker/32/22516_2.png) [@Skeptiker](https://forum.freifunk.net/u/Skeptiker)\
**Post date:** [28. Dezember 2020 um 13:48 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/8 "2020-12-28T13:48:50Z")

</div>

> [@Polynomialdivision](#):
>
> Wir sind im Layer3, wo man leider nicht einfach DHCP nutzen kann?

Hä??? Ist das jetzt ne Frage oder eine Antwort? Ich bin doch nicht derjenige, der DHCP ins Spiel gebracht hat.

> [@mutant](#):
>
> Nachgeschalteter Netgear Router (OpenWRT)  
> Fritz!Box verteilt /62 Subnetze via DHCP an nachgelagerten  
> Router  
> keine Signalisierung bei Präfix-Wechsel  
> =\> Netzwerk hinter OpenWRT-Router offline

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [28. Dezember 2020 um 21:38 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/9 "2020-12-28T21:38:33Z")

</div>

Whups, hab deine Antwort falsch gelesen.  
Hast du ne ahnung ob ich da eine Metrik irgendwie mit advertisen kann?

---

<div class="post-metadata">

**Author:** ![Skeptiker](https://forum.freifunk.net/user_avatar/forum.freifunk.net/skeptiker/32/22516_2.png) [@Skeptiker](https://forum.freifunk.net/u/Skeptiker)\
**Post date:** [28. Dezember 2020 um 21:53 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/10 "2020-12-28T21:53:19Z")

</div>

> [@Polynomialdivision](#):
>
> Hast du ne ahnung ob ich da eine Metrik irgendwie mit advertisen kann

Es gibt die Möglichkeit, die default Route mit einer „Preference“ zu versehen, die aber nur drei Werte annehmen kann, siehe RFC 4191

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [29. Dezember 2020 um 09:44 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/11 "2020-12-29T09:44:35Z")

</div>

Super danke, ich guck mal wie ich das machen kann!

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [31. Dezember 2020 um 17:02 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/12 "2020-12-31T17:02:14Z")

</div>

@Skeptiker  
Ich hab nochmal ein bisschen nachgelesen auch im Source-Selection RFC. Dort gibt es z.B. die Möglichkeit „deprecated“ addresses zu haben, auf denen trotzdem noch Traffic empfangen werden kann. Ich frage mich dann manchmal wie das so ist bei Netflix, wenn meine IPv6 Addresse dann deprecated wird, was dann passiert.

Ich frage mich noch so ein bisschen wie ich das alles konfigurieren kann. Es gibt dabei sehr wichtige Unterschiede zwischen **valid\_lft** und **preferred\_lft**. Läuft die preferred\_lft ab, wird die Source-Addresse als deprecated makiert und nichtmehr zum Senden bevorzugt benutzt (kann sie aber noch).

Es gibt bei OpenWrt aber eig nur die config option:

```
ra_lifetime: Advertised router lifetime (in seconds) 

```

und

```
ra_useleasetime: Limit the preferred and valid lifetimes of the prefixes in the RA messages to the configured DHCP leasetime 

```

und die kann man durch `leasetime` verändern.

Ich hab mal angefangen das in OpenWrt hinzuzufügen:  
[https://github.com/PolynomialDivision/odhcpd/commit/80dd1637553bf0b692b82c8ef46e55e3c2883781](https://github.com/PolynomialDivision/odhcpd/commit/80dd1637553bf0b692b82c8ef46e55e3c2883781)

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [31. Dezember 2020 um 18:16 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/13 "2020-12-31T18:16:11Z")

</div>

Ich hab hier nochmal mehr dazu geschrieben, was ich vorhabe:

> **[IPv6: Influence Source Address Selection if Multiple Prefixes Involved?](https://forum.openwrt.org/t/ipv6-influence-source-address-selection-if-multiple-prefixes-involved/83929)**
>
> I can have multiple Prefixes on an Interface: list ip6prefix 'A' list ip6prefix 'B' list ip6prefix 'C' If that are global prefixes, I would like to influence the preferred address that is used to access internet services. In RFC6724 is defined...

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [1. Januar 2021 um 20:49 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/14 "2021-01-01T20:49:24Z")

</div>

Ich hab heute mal geadded, dass wir die preferred\_lft viel geringer setzen können, als die valid\_time:  
[http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033033.html](http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033033.html)

Nach meiner Vorstellung kann ich nun aus der Kombination mit filter\_prefix und einem geringen preferred\_lft, ohne probleme schnelle prefix-wechsel durchfühen.

---

<div class="post-metadata">

**Author:** ![anon88999732](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/a/8edcca/32.png) [@anon88999732](https://forum.freifunk.net/u/anon88999732)\
**Post date:** [7. Januar 2021 um 11:43 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/15 "2021-01-07T11:43:43Z")

</div>

@Polynomdivision Dein Ansatz sieht interessant aus. Mach doch mal ein Issue in Gluon als RFC auf. Wir (Christof, Sargon) hatten uns ja schon Gedanken darum gemacht. Unser Ansatz sieht etwas anders aus, aber vielleicht lässt sich da was zusammenbauen.

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [7. Januar 2021 um 12:02 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/16 "2021-01-07T12:02:00Z")

</div>

Ich hab noch mehr Code in der Hinterhand. 😉 Ich release das mal bald und linke das. Muss mal aufräumen.

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [7. Januar 2021 um 12:06 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/17 "2021-01-07T12:06:29Z")

</div>

Was ich auch noch gerne hätte, wäre sowas:  
[https://github.com/PolynomialDivision/odhcpd/commit/306080cb34fa0f9e11e97f0cfd6d06c0c7452d72](https://github.com/PolynomialDivision/odhcpd/commit/306080cb34fa0f9e11e97f0cfd6d06c0c7452d72)

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [30. Januar 2021 um 16:36 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/18 "2021-01-30T16:36:13Z")

</div>

Mal fertig implementiert:  
[http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033590.html](http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033590.html)

---

<div class="post-metadata">

**Author:** ![Polynomialdivision](https://forum.freifunk.net/letter_avatar_proxy/v4/letter/p/919ad9/32.png) [@Polynomialdivision](https://forum.freifunk.net/u/Polynomialdivision)\
**Post date:** [30. Januar 2021 um 18:27 UTC](https://forum.freifunk.net/t/automatische-prefix-delegation-im-layer-3-netzwerk/22340/19 "2021-01-30T18:27:39Z")

</div>

Ich kann jetzt jetzt das hier machen ohne einen Tunnel aufrecht zu erhalten zum Gateway:

 ![ul3c](https://forum.freifunk.net/uploads/default/original/3X/d/d/ddbe0880cb13dd95ec96d2c1a132355dffb0db30.jpeg)

Um direkt automatisch die Prefix Delegation zu machen kann man auch direkt mit shell (zum Beispiel 60s addieren):

```
date '+%d %b %Y %T' --date="@$(($(date +%s)+60))"

```
