Bug 85485

Summary: downloaded files in a systemd-nspawn container with --network-bridge are sometimes broken
Product: systemd Reporter: Leo von Klenze <mail>
Component: generalAssignee: systemd-bugs
Status: RESOLVED NOTOURBUG QA Contact: systemd-bugs
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=85464
Whiteboard:
i915 platform: i915 features:
Attachments: ethernet-config
home-br0.netdev
home-br0.network
home.network
home.netdev

Description Leo von Klenze 2014-10-26 14:28:01 UTC
I've the following setup:

- physical box with two network interfaces, eth0 and eth1. The following interfaces are created via systemd-networkd on that server:
-- home-br0: bridge interface
-- home: VLAN (id = 10), added to the bridge
-- eth0: configured to use VLAN home
- a router with openwrt that act as dhcp server for the vlan home
- a systemd container running with systemd-nspawn --network-bridge=home-br0

I've the following effect:
1) the interface host0 inside the container gets always a 169.254.* address after startup as well as an address from the dhcp server. After deleting the 169.254.* address the network went well exectp of
2) downloading files via wget/curl/... result sometimes in broken files if the file is big enough (> 50MB)

2)
Only some bytes a broken in the downloaded file. I've also watched the traffic in tcpdump on the router/physical box/container: sometimes the a packet from the internet contains already the broken bytes but the packet seems not to be rejected an resend afterwards.

I was not able to reproduce the problem starting the container without --network-bridge.

OS:
Arch Linux, 3.17.1, systemd-216

Thank you in advance,
   Leo
Comment 1 Leo von Klenze 2014-10-26 14:30:24 UTC
Created attachment 108451 [details]
ethernet-config
Comment 2 Leo von Klenze 2014-10-26 14:30:41 UTC
Created attachment 108452 [details]
home-br0.netdev
Comment 3 Leo von Klenze 2014-10-26 14:31:13 UTC
Created attachment 108453 [details]
home-br0.network
Comment 4 Leo von Klenze 2014-10-26 14:31:32 UTC
Created attachment 108454 [details]
home.network
Comment 5 Leo von Klenze 2014-10-26 14:31:59 UTC
Created attachment 108455 [details]
home.netdev
Comment 6 Leo von Klenze 2014-10-26 14:33:22 UTC
Container command:

    /usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --network-bridge=home-br0 --directory=/srv/container/radicale
Comment 7 Ed Tomlinson 2014-10-26 16:22:17 UTC
This is where the 169.254 ip4 local link address is being requested

[root@grover system]# cd /usr/lib/systemd/network
[root@grover network]# ls
80-container-host0.network  80-container-ve.network  99-default.link
[root@grover network]# cat 80-container-host0.network
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Match]
Virtualization=container
Name=host0

[Network]
DHCP=both
IPv4LL=yes
[root@grover network]#

Ed
Comment 8 Lennart Poettering 2014-12-09 00:29:19 UTC
nspawn does not touch network traffic at all. It will simply set up the kernel network configuration in a way, and the kernel is responsible for distributing packets. If the packet payload is corrupted then that's entirely outside of the realm of systemd, and is something to discuss with kernel folks. 

Sorry, but we cannot really help you with this from the systemd side much!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.