Public bug reported:

[Description]

When attaching multiple IPs on secondary interface the routing policy rules do 
not
apply for all IPs.
The rules that are applied after restarting networkd are random.

The issue has been reported and addressed upstream.

[Test Case]

Attach multiple IPs to secondary interface, config file:

$ cat /etc/systemd/network/ens8.network 
[Match]
Name=ens8

[Network]
Address=172.31.28.195/20
Address=172.31.24.151/20
Address=172.31.24.152/20
Address=172.31.24.153/20

[Route]
Destination=0.0.0.0/0
Gateway=172.31.16.1
Table=1000

[Route]
Destination=172.31.24.153
Gateway=0.0.0.0
Scope=link
Table=1000

[Route]
Destination=172.31.28.195
Gateway=0.0.0.0
Scope=link
Table=1000

[Route]
Destination=172.31.24.151
Gateway=0.0.0.0
Scope=link
Table=1000

[Route]
Destination=172.31.24.152
Gateway=0.0.0.0
Scope=link
Table=1000

[RoutingPolicyRule]
From=172.31.24.153
Table=1000

[RoutingPolicyRule]
From=172.31.28.195
Table=1000

[RoutingPolicyRule]
From=172.31.24.152
Table=1000

[RoutingPolicyRule]
From=172.31.24.151
Table=1000


$ ip rule show
0:      from all lookup local 
0:      from 172.31.24.151 lookup 1000 
32766:  from all lookup main 
32767:  from all lookup default 

- restart networkd

$ sudo systemctl restart systemd-networkd

$ ip rule show
0:      from all lookup local 
0:      from 172.31.24.151 lookup 1000 
0:      from 172.31.24.153 lookup 1000 
0:      from 172.31.28.195 lookup 1000 
32766:  from all lookup main 
32767:  from all lookup default 

- restart again

$ sudo systemctl restart systemd-networkd

$ ip rule show
0:      from all lookup local 
0:      from 172.31.24.151 lookup 1000 
0:      from 172.31.24.152 lookup 1000 
32766:  from all lookup main 
32767:  from all lookup default

The behaviour is random

[Other]

Affects Disco and Bionic (probably Cosmic as well, but haven't tested it
yet).

Upstream bug : https://github.com/systemd/systemd/issues/11280
Upstream fix : https://github.com/systemd/systemd/pull/11795/commits


$ lsb_release -rd
Description:    Ubuntu Disco Dingo (development branch)
Release:        19.04

Systemd version :
systemd:
  Installed: 240-6ubuntu1
  Candidate: 240-6ubuntu1
  Version table:
 *** 240-6ubuntu1 500
        500 http://gb.archive.ubuntu.com/ubuntu disco/main amd64 Packages
        100 /var/lib/dpkg/status

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1818282

Title:
  systemd-networkd - RoutingPolicyRule does not apply correctly

Status in systemd package in Ubuntu:
  New

Bug description:
  [Description]

  When attaching multiple IPs on secondary interface the routing policy rules 
do not
  apply for all IPs.
  The rules that are applied after restarting networkd are random.

  The issue has been reported and addressed upstream.

  [Test Case]

  Attach multiple IPs to secondary interface, config file:

  $ cat /etc/systemd/network/ens8.network 
  [Match]
  Name=ens8

  [Network]
  Address=172.31.28.195/20
  Address=172.31.24.151/20
  Address=172.31.24.152/20
  Address=172.31.24.153/20

  [Route]
  Destination=0.0.0.0/0
  Gateway=172.31.16.1
  Table=1000

  [Route]
  Destination=172.31.24.153
  Gateway=0.0.0.0
  Scope=link
  Table=1000

  [Route]
  Destination=172.31.28.195
  Gateway=0.0.0.0
  Scope=link
  Table=1000

  [Route]
  Destination=172.31.24.151
  Gateway=0.0.0.0
  Scope=link
  Table=1000

  [Route]
  Destination=172.31.24.152
  Gateway=0.0.0.0
  Scope=link
  Table=1000

  [RoutingPolicyRule]
  From=172.31.24.153
  Table=1000

  [RoutingPolicyRule]
  From=172.31.28.195
  Table=1000

  [RoutingPolicyRule]
  From=172.31.24.152
  Table=1000

  [RoutingPolicyRule]
  From=172.31.24.151
  Table=1000

  
  $ ip rule show
  0:    from all lookup local 
  0:    from 172.31.24.151 lookup 1000 
  32766:        from all lookup main 
  32767:        from all lookup default 

  - restart networkd

  $ sudo systemctl restart systemd-networkd

  $ ip rule show
  0:    from all lookup local 
  0:    from 172.31.24.151 lookup 1000 
  0:    from 172.31.24.153 lookup 1000 
  0:    from 172.31.28.195 lookup 1000 
  32766:        from all lookup main 
  32767:        from all lookup default 

  - restart again

  $ sudo systemctl restart systemd-networkd

  $ ip rule show
  0:    from all lookup local 
  0:    from 172.31.24.151 lookup 1000 
  0:    from 172.31.24.152 lookup 1000 
  32766:        from all lookup main 
  32767:        from all lookup default

  The behaviour is random

  [Other]

  Affects Disco and Bionic (probably Cosmic as well, but haven't tested
  it yet).

  Upstream bug : https://github.com/systemd/systemd/issues/11280
  Upstream fix : https://github.com/systemd/systemd/pull/11795/commits

  
  $ lsb_release -rd
  Description:  Ubuntu Disco Dingo (development branch)
  Release:      19.04

  Systemd version :
  systemd:
    Installed: 240-6ubuntu1
    Candidate: 240-6ubuntu1
    Version table:
   *** 240-6ubuntu1 500
          500 http://gb.archive.ubuntu.com/ubuntu disco/main amd64 Packages
          100 /var/lib/dpkg/status

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1818282/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to