Your message dated Sun, 25 Feb 2018 15:02:18 +0000
with message-id <[email protected]>
and subject line Bug#878162: fixed in systemd 232-25+deb9u2
has caused the Debian Bug report #878162,
regarding systemd-networkd ignores MTU from RA
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
878162: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=878162
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: systemd
Version: 232-25+deb9u1
Severity: important
Tags: patch ipv6
Hi,
A customer of mine reported a regression by switching from jessie to
stretch: /etc/systemd/network/eth.network is configured to only set up
IPv4, and systemd in jessie used to do only that, and not to touch IPv6
at all:
| [Match]
| Name=eth0
| [Network]
| Address=192.168.42.202/24
| Gateway=192.168.42.1
| DNS=192.168.42.200
Anyway: accept_ra_mtu defaults to true, is set to true on the target
system, but systemd doesn't honour MTU settings, and defaults to the
interface's MTU for the IPv6 routes it sets up.
This is fixed upstream between 232 and 233:
| commit d6fceaf1f7ff765bdc3b135f3d3676ec689da312
| Author: Susant Sahani <[email protected]>
| Date: Thu Nov 24 03:02:19 2016 +0530
|
| networkd: handle MTU field in IPv6 RA (#4719)
|
| This patch handles the custom MTU field in IPv6 RA.
|
| fixes RFE #4464
I haven't checked that the Debian packages in buster/unstable indeed
avoid running into this issue, but I've confirmed that cherry-picking
this patch on top of the stretch package fixes this issue. I'm attaching
the source debdiff which was successfully tested.
Thanks for considering a fix through stretch-proposed-updates.
Cheers,
--
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/
diff -Nru systemd-232/debian/changelog systemd-232/debian/changelog
--- systemd-232/debian/changelog 2017-07-05 20:31:25.000000000 +0000
+++ systemd-232/debian/changelog 2017-10-10 15:07:14.000000000 +0000
@@ -1,3 +1,10 @@
+systemd (232-25+deb9u2) stretch; urgency=medium
+
+ * networkd-handle-MTU-field-in-IPv6-RA-4719.patch: Cherry-pick commit
+ d6fceaf1f7 to handle MTU field in IPv6 RA.
+
+ -- Cyril Brulebois <[email protected]> Tue, 10 Oct 2017 15:07:14 +0000
+
systemd (232-25+deb9u1) stretch; urgency=medium
[ Dimitri John Ledkov ]
diff -Nru systemd-232/debian/patches/networkd-handle-MTU-field-in-IPv6-RA-4719.patch systemd-232/debian/patches/networkd-handle-MTU-field-in-IPv6-RA-4719.patch
--- systemd-232/debian/patches/networkd-handle-MTU-field-in-IPv6-RA-4719.patch 1970-01-01 00:00:00.000000000 +0000
+++ systemd-232/debian/patches/networkd-handle-MTU-field-in-IPv6-RA-4719.patch 2017-10-10 15:04:02.000000000 +0000
@@ -0,0 +1,133 @@
+From d6fceaf1f7ff765bdc3b135f3d3676ec689da312 Mon Sep 17 00:00:00 2001
+From: Susant Sahani <[email protected]>
+Date: Thu, 24 Nov 2016 03:02:19 +0530
+Subject: [PATCH] networkd: handle MTU field in IPv6 RA (#4719)
+
+This patch handles the custom MTU field in IPv6 RA.
+
+fixes RFE #4464
+---
+ src/libsystemd/sd-netlink/netlink-types.c | 27 ++++++++++++++++++++++++---
+ src/network/networkd-ndisc.c | 8 ++++++++
+ src/network/networkd-route.c | 14 ++++++++++++++
+ src/network/networkd-route.h | 1 +
+ 4 files changed, 47 insertions(+), 3 deletions(-)
+
+diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
+index 1c10dd55a..0f8b0cc70 100644
+--- a/src/libsystemd/sd-netlink/netlink-types.c
++++ b/src/libsystemd/sd-netlink/netlink-types.c
+@@ -500,6 +500,28 @@ static const NLTypeSystem rtnl_address_type_system = {
+ .types = rtnl_address_types,
+ };
+
++/* RTM_METRICS --- array of struct rtattr with types of RTAX_* */
++
++static const NLType rtnl_route_metrics_types[] = {
++ [RTAX_MTU] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_WINDOW] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_RTT] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_RTTVAR] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_SSTHRESH] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_CWND] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_ADVMSS] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_REORDERING] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_HOPLIMIT] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_INITCWND] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_FEATURES] = { .type = NETLINK_TYPE_U32 },
++ [RTAX_RTO_MIN] = { .type = NETLINK_TYPE_U32 },
++};
++
++static const NLTypeSystem rtnl_route_metrics_type_system = {
++ .count = ELEMENTSOF(rtnl_route_metrics_types),
++ .types = rtnl_route_metrics_types,
++};
++
+ static const NLType rtnl_route_types[] = {
+ [RTA_DST] = { .type = NETLINK_TYPE_IN_ADDR }, /* 6? */
+ [RTA_SRC] = { .type = NETLINK_TYPE_IN_ADDR }, /* 6? */
+@@ -508,9 +530,8 @@ static const NLType rtnl_route_types[] = {
+ [RTA_GATEWAY] = { .type = NETLINK_TYPE_IN_ADDR },
+ [RTA_PRIORITY] = { .type = NETLINK_TYPE_U32 },
+ [RTA_PREFSRC] = { .type = NETLINK_TYPE_IN_ADDR }, /* 6? */
+-/*
+- [RTA_METRICS] = { .type = NETLINK_TYPE_NESTED },
+- [RTA_MULTIPATH] = { .len = sizeof(struct rtnexthop) },
++ [RTA_METRICS] = { .type = NETLINK_TYPE_NESTED, .type_system = &rtnl_route_metrics_type_system},
++/* [RTA_MULTIPATH] = { .len = sizeof(struct rtnexthop) },
+ */
+ [RTA_FLOW] = { .type = NETLINK_TYPE_U32 }, /* 6? */
+ /*
+diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
+index 70283e534..5320592f7 100644
+--- a/src/network/networkd-ndisc.c
++++ b/src/network/networkd-ndisc.c
+@@ -56,6 +56,7 @@ static void ndisc_router_process_default(Link *link, sd_ndisc_router *rt) {
+ struct in6_addr gateway;
+ uint16_t lifetime;
+ unsigned preference;
++ uint32_t mtu;
+ usec_t time_now;
+ int r;
+ Address *address;
+@@ -116,6 +117,12 @@ static void ndisc_router_process_default(Link *link, sd_ndisc_router *rt) {
+ return;
+ }
+
++ r = sd_ndisc_router_get_mtu(rt, &mtu);
++ if (r < 0) {
++ log_link_warning_errno(link, r, "Failed to get default router MTU from RA: %m");
++ return;
++ }
++
+ r = route_new(&route);
+ if (r < 0) {
+ log_link_error_errno(link, r, "Could not allocate route: %m");
+@@ -128,6 +135,7 @@ static void ndisc_router_process_default(Link *link, sd_ndisc_router *rt) {
+ route->pref = preference;
+ route->gw.in6 = gateway;
+ route->lifetime = time_now + lifetime * USEC_PER_SEC;
++ route->mtu = mtu;
+
+ r = route_configure(route, link, ndisc_netlink_handler);
+ if (r < 0) {
+diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
+index f78e10699..bde26a42d 100644
+--- a/src/network/networkd-route.c
++++ b/src/network/networkd-route.c
+@@ -605,6 +605,20 @@ int route_configure(
+ if (r < 0)
+ return log_error_errno(r, "Could not append RTA_OIF attribute: %m");
+
++ r = sd_netlink_message_open_container(req, RTA_METRICS);
++ if (r < 0)
++ return log_error_errno(r, "Could not append RTA_METRICS attribute: %m");
++
++ if (route->mtu > 0) {
++ r = sd_netlink_message_append_u32(req, RTAX_MTU, route->mtu);
++ if (r < 0)
++ return log_error_errno(r, "Could not append RTAX_MTU attribute: %m");
++ }
++
++ r = sd_netlink_message_close_container(req);
++ if (r < 0)
++ return log_error_errno(r, "Could not append RTA_METRICS attribute: %m");
++
+ r = sd_netlink_call_async(link->manager->rtnl, req, callback, link, 0, NULL);
+ if (r < 0)
+ return log_error_errno(r, "Could not send rtnetlink message: %m");
+diff --git a/src/network/networkd-route.h b/src/network/networkd-route.h
+index d4e4dbac0..02f0b2767 100644
+--- a/src/network/networkd-route.h
++++ b/src/network/networkd-route.h
+@@ -37,6 +37,7 @@ struct Route {
+ unsigned char tos;
+ uint32_t priority; /* note that ip(8) calls this 'metric' */
+ uint32_t table;
++ uint32_t mtu;
+ unsigned char pref;
+ unsigned flags;
+
+--
+2.11.0
+
diff -Nru systemd-232/debian/patches/series systemd-232/debian/patches/series
--- systemd-232/debian/patches/series 2017-07-05 20:31:25.000000000 +0000
+++ systemd-232/debian/patches/series 2017-10-10 15:04:13.000000000 +0000
@@ -97,3 +97,4 @@
debian/Let-graphical-session-pre.target-be-manually-started.patch
debian/Add-env-variable-for-machine-ID-path.patch
cryptsetup-generator-run-cryptsetup-service-before-swap-u.patch
+networkd-handle-MTU-field-in-IPv6-RA-4719.patch
--- End Message ---
--- Begin Message ---
Source: systemd
Source-Version: 232-25+deb9u2
We believe that the bug you reported is fixed in the latest version of
systemd, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Michael Biebl <[email protected]> (supplier of updated systemd package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sun, 03 Dec 2017 15:03:50 +0100
Source: systemd
Binary: systemd systemd-sysv systemd-container systemd-journal-remote
systemd-coredump libpam-systemd libnss-myhostname libnss-mymachines
libnss-resolve libnss-systemd libsystemd0 libsystemd-dev udev libudev1
libudev-dev udev-udeb libudev1-udeb
Architecture: source
Version: 232-25+deb9u2
Distribution: stretch
Urgency: medium
Maintainer: Debian systemd Maintainers
<[email protected]>
Changed-By: Michael Biebl <[email protected]>
Description:
libnss-myhostname - nss module providing fallback resolution for the current
hostname
libnss-mymachines - nss module to resolve hostnames for local container
instances
libnss-resolve - nss module to resolve names via systemd-resolved
libnss-systemd - nss module providing dynamic user and group name resolution
libpam-systemd - system and service manager - PAM module
libsystemd-dev - systemd utility library - development files
libsystemd0 - systemd utility library
libudev-dev - libudev development files
libudev1 - libudev shared library
libudev1-udeb - libudev shared library (udeb)
systemd - system and service manager
systemd-container - systemd container/nspawn tools
systemd-coredump - tools for storing and retrieving coredumps
systemd-journal-remote - tools for sending and receiving remote journal logs
systemd-sysv - system and service manager - SysV links
udev - /dev/ and hotplug management daemon
udev-udeb - /dev/ and hotplug management daemon (udeb)
Closes: 873708 878162 880026 880158
Changes:
systemd (232-25+deb9u2) stretch; urgency=medium
.
* networkd: Handle MTU field in IPv6 RA (Closes: #878162)
* shared: Add a linker script so that all functions are tagged @SD_SHARED
instead of @Base.
This helps prevent symbol collisions with other programs and libraries.
In particular, because PAM modules are loaded into the process that is
creating the session, and systemd creates PAM sessions, the potential
for collisions is high. (Closes: #873708)
* resolved: Fix loop on packets with pseudo dns types.
CVE-2017-15908 (Closes: #880026)
* machinectl: Don't output "No machines." with --no-legend option
(Closes: #880158)
Checksums-Sha1:
c51af34709d940d95b192fc94c3cb7d56a2b4ae9 4797 systemd_232-25+deb9u2.dsc
9d7cd25032d69732ea7eec033741cd168a349228 208020
systemd_232-25+deb9u2.debian.tar.xz
73a71af26b669e7a8a3405ee9096c7dac5b84c81 9841
systemd_232-25+deb9u2_source.buildinfo
Checksums-Sha256:
b7ece44451fb73451500098920ed203609974d37f532efb59d1564c2c16711e5 4797
systemd_232-25+deb9u2.dsc
dc7f04b51f5b68c6c104a5dcf6c39862575820a2498791555928fa1c0375e14f 208020
systemd_232-25+deb9u2.debian.tar.xz
5cc6aa73620af170213bd29b305647b8c8b5721d6c68cfafac7ace358371dc20 9841
systemd_232-25+deb9u2_source.buildinfo
Files:
0fbf47f360f670e75c57a84b9edafc2c 4797 admin optional systemd_232-25+deb9u2.dsc
67d8747fa89152fd2ed3f9b2c736b6e6 208020 admin optional
systemd_232-25+deb9u2.debian.tar.xz
89711f906442d1b7aeb815a2a28312fe 9841 admin optional
systemd_232-25+deb9u2_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEECbOsLssWnJBDRcxUauHfDWCPItwFAlqQYyEACgkQauHfDWCP
Itykxw/+LD3ee2gAzPUwTm1xuTsy7ovZ/JmwG9w3GKvKZW3h3HpjNjCNzX+rMFgi
87sNruZ7K6i+w6spGuotFpGFykT8uFJJuud0siRY0exIV4HN8mb+7ef/ylQJPu3I
i8s4D0ZkyPvu5TQt7qPP4c7GslyBgyA2/GSuaNxtFyUMjVWIoa/Ap8N4zB1EEdar
L0HBZ138qLjaeZK7OR/vVPGli3xbwGGqIq3gShkBooM4t2W8xGoXOavoPPvMA6t9
6aKteUsNyuKxbhUAYukGzeV9B+d+dC//Tz378PkvmGIS/tJyn5ugdjdZnX/g1RQN
h4f6dIBH2xMNvs3RL/M+ukwl/HagN8nIHtLo2Ah4EKD7pXxSoyUi2RPxsiIlCWHn
LYuEV+wuZ72V3Q0EyChgAkyAzcAx3MKvBg6OwM0rh7l5GxebUO9Y6jVDv5CuOB8U
hqvuCX+JRz76iakwLg0hBNjUF70XgxdzOCZ+7dbO0C/hA9mGL7LqeI5AptMtvUy2
jrJnUiLqr+5mXUFTGqqh4sPXqh/cOwM04H1ez56rBeAfQvBJCT5T7mxmeETK2z8j
dcppOr9h2koKgFdtvfj7otpvPPQt66W0xfoF+P5TEvPL+SW4+ihaQMA96bXmZLYD
f7DYrbAofeCmeRdUxBsxmRE8ZWiPbdPxjWnsLg4TDN7mpF0tLe4=
=hyBM
-----END PGP SIGNATURE-----
--- End Message ---
_______________________________________________
Pkg-systemd-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-systemd-maintainers