-
Notifications
You must be signed in to change notification settings - Fork 110
Removing Babel VLAN on ethernet interfaces inside br-lan #1210
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
base: master
Are you sure you want to change the base?
Removing Babel VLAN on ethernet interfaces inside br-lan #1210
Conversation
Ensure nftables netdev/ingress hooks are available at runtime. This module is required for the netdev table used to guard bat0 against Babel flooding (UDP/6696 + multicast) before bridging.
Configure Babel to run on br-lan with type=wired to enable wired optimizations
This simplifies the topology and aligns with running Babel on br-lan.
When kmod-batman-adv is installed, deploy a small nftables ruleset and fw4 include to drop Babel traffic arriving on bat0 before it reaches the bridge
|
Hi, thanks for this work Some minor changes:
[0] https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks#Hooks_by_family_and_chain_type |
|
Thanks for the corrections @a-gave ! I tested it in my routers and works great, please let me know if I need to change anything else |
packages/lime-proto-babeld/Makefile
Outdated
| CATEGORY:=LibreMesh | ||
| TITLE:=LiMe babeld proto support | ||
| DEPENDS:=+babeld +lime-system +luci-lib-nixio | ||
| DEPENDS:=+babeld +lime-system +luci-lib-nixio |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there is a leftover whitespace here
This is a replace of #631
This PR removes the legacy "VLAN-on-wlan" approach in
lime-proto-babeldand runs Babel directly on the base interfaces and on the LAN bridgebr-lan(marked astype=wired) for modern DSA devices.During validation, a side-effect (ghost neighbor) caused by bridging
bat0intobr-lanappeared; the PR also ships a nftables netdev/ingress guard onbat0to prevent L2 flooding of Babel traffic.br-lanwithtype=wiredgives wired links the expected low metric and behavior.bat0is bridged intobr-lan, L2 multicast flooding of Babel (UDP/6696) can trick peers into thinking a remote node is a direct wired neighbor. The netdev/ingress guard drops those frames atbat0before the bridge floods them.Two nodes, no cable (Wi‑Fi only)
Node LiMe-d5d63f:
No wired neighbor; costs reflect Wi‑Fi links only.
Plug Ethernet between the nodes
Same node LiMe-d5d63f:
Wired neighbor appears on
br-lanwith canonical cost 96 and becomes preferred.Guard counters
The guard actively drops Babel over
bat0before the bridge floods it.To activate the
babeldproto in LibreMesh (so the new behavior takes effect), addbabeld:0to the protocol list inlime-nodelike:IMPORTANT: This new changes does not support
swconfig, only routers withDSA, I can't test the first one, so you're invited to implement that part :)