Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement IPv4 Route Policy to prefer babel routes #965

Merged
merged 1 commit into from
Sep 22, 2024
Merged

Conversation

spolack
Copy link
Member

@spolack spolack commented Sep 12, 2024

Implement following changes which are preparing the migration towards using babel also for IPv4 - #964

  • Add new Routing Tables to avoid babel routes compete with olsrd, which could lead to routing loops. We have to ensure that the routes get installed only in the appropriate tables, never in the default/main.

    babel-default # Contains default routes from babel
    babel-ff # Contains freifunk routes (hna) from babel
    olsr-default # Contains default routes from olsr
    olsr-ff #  Contains freifunk routes (hna) from olsr
    
  • Setup routing policy in following order:

    babel-ff -> olsrd-ff -> babel-default -> olsrd-default
    
  • Ensure that olsrd and babeld install IPv4 routes only in the appropriate tables. Unfortunately babeld is not able to install routes in different policies, therefore routes are installed in "intermediate" table babel-src, from which they are leaked conditionally into babel-ff and babel-default using bird2. In addition it has to be ensured that the babel-src table is also used to lookup IPv6 targets.

With these changes in place we have ensured that babeld and olsrd routes never compete and babel is prefered whenever a route is there, but if not it is routed using olsr.

@spolack spolack mentioned this pull request Sep 12, 2024
Copy link
Member

@Noki Noki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Installed it on w38b-core an also my test router noki-core, so far without any issues. Seems to work exactly the same as before.

@spolack
Copy link
Member Author

spolack commented Sep 13, 2024

@Noki can you confirm the route policy and routing tables are filled accordingly to the scheme?

ip rule
ip -6 rule

ip route show table babel-ff
ip route show table olsr-ff
ip route show table babel-default
ip route show table olsr-default

@Noki
Copy link
Member

Noki commented Sep 13, 2024

@Noki can you confirm the route policy and routing tables are filled accordingly to the scheme?

ip rule
ip -6 rule

ip route show table babel-ff
ip route show table olsr-ff
ip route show table babel-default
ip route show table olsr-default

Yes, from my understanding that is the case. Looks good to me. Looking forward for a first babel-default route for IPv4 ;-)

@spolack
Copy link
Member Author

spolack commented Sep 13, 2024

I'd propose to depoloy that change to a few high traffic nodes like

  • Sama
  • Zwingli
  • RHNK

in order to check for sideeffects we might have overseen yet at our stub sites.

@Noki
Copy link
Member

Noki commented Sep 20, 2024

Deployed to:

  • w38b
  • rhnk
  • zwingli
  • sama
  • dorfplatz
  • gruni73
  • scharni

@PolynomialDivision
Copy link
Contributor

If you look at the babel neighbours, we see that there is no ipv4 neighbours but ipv4 routes. Is that intended?

@Noki
Copy link
Member

Noki commented Sep 21, 2024

If you look at the babel neighbours, we see that there is no ipv4 neighbours but ipv4 routes. Is that intended?

@PolynomialDivision you might have spotted the routes from the f2a nodes etc. setup by patrick. They were in there before...

@spolack spolack merged commit 7df84d9 into main Sep 22, 2024
9 checks passed
@spolack spolack deleted the softmigration branch September 22, 2024 16:44
@PolynomialDivision
Copy link
Contributor

@spolack what about announcing the default ipv4 via babeld?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants