A VXLAN Tunnel (IPv6, without inner VLAN tag) adds 70 bytes of overhead
to each packet. To support bridging our client interfaces with an MTU of
1500, VXLAN packets require a link with an MTU of 1570.
To avoid sending too large packets to peers over a link with an MTU less
than 1570, this patch adds filters to babel to ignore routes to peers
announced over small links.
Signed-off-by: Johannes Kimmel <fff@bareminimum.eu>
This avoids counting a single client multiple times.
Neighbours behind the vxlan device are actually local to another router
and should only be counted there.
Signed-off-by: Johannes Kimmel <fff@bareminimum.eu>
Easily span a layer 2 network over a small group of, not necessarily
adjacent, routers.
This patch introduces a new `vxmesh` configuration section. It takes
care of setting up a shared client network using vxlan among all
configured routers.
As a result, clients can finally roam between the routers of the mesh.
It integrates well with the underlying layer 3 routing to make best use
of the infrastructure available. This way the network is not depending
on a contiguous layer 2 spanning tree topology and can make use of all
fallback mechanisms of the layer 3 underlay.
This example config ...
```
config gateway
option peer_ip6 '2001:0db8::1' # required
...
config vxmesh
option proto 'vxlan|vxlan6' # required
option vid '42' # required
# ...
# any vxlan options can be included
# ...
# list of peers for headend replication
list peer '2001:0db8::1' # list can include the ip of the router
list peer '2001:0db8::2' # this way the complete config section
list peer '2001:0db8::3' # can be copied to all routers in the
list peer '2001:0db8::4' # group
...
```
... will generate ...
```
config interface client
...
# append and remove the vxmesh0 entry
# depending on whether a vxmesh is configured
ifname '... vxmesh0'
...
...
config interface 'vxmesh0'
option proto 'vxlan6'
option vid '42'
config vxlan_peer
option vxlan 'vxmesh0'
option dst '2001:0db8::2'
config vxlan_peer
option vxlan 'vxmesh0'
option dst '2001:0db8::3'
config vxlan_peer
option vxlan 'vxmesh0'
option dst '2001:0db8::4'
```
It will also take care and configure the
`dhcp.@dnsmasq[0].authoritative` setting depending on whether a vxmesh
is enabled or not.
Signed-off-by: Johannes Kimmel <fff@bareminimum.eu>