[Cerowrt-devel] SQM in mainline openwrt, fq_codel considered for fedora default

Tom Gundersen teg at jklm.no
Thu Dec 4 10:05:03 EST 2014


Hi Toke,

On Wed, Oct 22, 2014 at 1:18 AM, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
> Tom Gundersen <teg at jklm.no> writes:
>
>> I have now subscribed to cerowrt-devel (long overdue), and I would
>> very much appreciate any comments you guys may have on our networking
>> work in systemd. In particular, if there are any more tweaks like
>> making fq_codel the deafult, which would be the reasonable choice for
>> 95% of users (most of whom don't know about these things and would
>> otherwise never touch them), we are very open to suggestions.
>
> One thing that has gone into openwrt recently but is not supported in
> systemd-networkd is source-specific routing. Since I got an internet
> connection too fast for the WNDR to keep up, I've transitioned to an x86
> box running Arch Linux for that link. It uses systemd-networkd to setup
> most of the networking (which works very well!), but one thing missing
> is support for source-specific routing.
>
> Right now, I have a systemd unit to set up my IPv6 tunnel with this in
> it:
>
> ExecStart=/usr/bin/ip tunnel add he-ipv6 mode sit remote 216.66.80.90 ttl 255 dev enp2s0
> ExecStart=/usr/bin/ip link set he-ipv6 up
> ExecStart=/usr/bin/ip addr add 2001:470:xx::2/64 dev he-ipv6
> ExecStart=/usr/bin/ip route add default via 2001:470:xx::1 from 2001:470:yy::/48 proto static
> ExecStart=/usr/bin/ip route add default via 2001:470:xx::1 from 2001:470:xx::2/128 proto static
> ExecStart=/usr/bin/ip route add default from ::/128 dev he-ipv6
>
> The top three lines I can replace by a file in /etc/systemd/network, but
> not the bottom three.

I finally got around to have a look at this, and I now added support
for source routing. It appears to work for me (current git) with:


wireless.network ---8<-----------------------

[Match]
Name=wlp3s0

[Network]
DHCP=yes
Tunnel=he

he.netdev ---8<-----------------------------------------

[NetDev]
Name=he
Kind=sit

[Tunnel]
Remote=222.333.444.555
TTL=255

he.network ---8<-----------------------------------------

[Match]
Name=he-ipv6

[Network]
Address=2001:470:11::2/64

[Route]
Gateway=2001:470:11::1
Source=2001:470:22::/48

[Route]
Gateway=2001:470:11::1
Source=2001:470:11::2/128

[Route]
Source=::/128

---8<-----------------------------------------

Let me know if you experience any issues!

> Also, having a way to make systemd units depend on network interface
> availability (and configuration state) would be neat; to do things like
> start up a VPN daemon when the WAN connection becomes available. :)

We don't have a nice solution for this yet, but it is something we are
keeping in mind and will have to solve somehow (much of the common
things will be integrated with networkd directly).

Cheers,

Tom



More information about the Cerowrt-devel mailing list