commit 3ccd316353532ff60326e91153677c308c032ecb
Author: Tom Gundersen <teg@jklm.no>
Date:   Thu Nov 19 01:23:24 2015 +0100

    sd-ndisc: drop RA packets from non-link-local addresses
    
    See https://tools.ietf.org/html/rfc4861#section-4.2. Some routers (dnsmasq) will send packets
    from global addresses, which would break the default route setup, so ignore those.
    
    This is also what the kernel does.

diff --git a/src/libsystemd-network/sd-ndisc.c b/src/libsystemd-network/sd-ndisc.c
index 6703d87..3bb06f6 100644
--- a/src/libsystemd-network/sd-ndisc.c
+++ b/src/libsystemd-network/sd-ndisc.c
@@ -508,6 +508,9 @@ static int ndisc_router_advertisment_recv(sd_event_source *s, int fd, uint32_t r
                 return 0;
         }
 
+        if (!in_addr_is_link_local(AF_INET6, (const union in_addr_union*) &router.in6.sin6_addr))
+                return 0;
+
         if (ra->nd_ra_type != ND_ROUTER_ADVERT)
                 return 0;
 
commit e5d44b34cca39a335b8976328a14f47e2d7ef3b9
Author: Christian Hesse <mail@eworm.de>
Date:   Wed Nov 25 08:46:43 2015 +0100

    networkd: link - do not drop config for loopback device
    
    Commit 5e5b137a (networkd: link - drop foreign config when configuring
    link) introduced a regression where addresses (including 127.0.0.1) are
    removed from loopback device.
    Do not handle loopback device when removing foreign configs.
    
    Signed-off-by: Christian Hesse <mail@eworm.de>

diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 64a4b74..a9d91b0 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -2040,9 +2040,13 @@ static int link_configure(Link *link) {
         assert(link->network);
         assert(link->state == LINK_STATE_PENDING);
 
-        r = link_drop_foreign_config(link);
-        if (r < 0)
-                return r;
+        /* Drop foreign config, but ignore loopback device.
+         * We do not want to remove loopback address. */
+        if (!(link->flags & IFF_LOOPBACK)) {
+                r = link_drop_foreign_config(link);
+                if (r < 0)
+                        return r;
+        }
 
         r = link_set_bridge_fdb(link);
         if (r < 0)
