** Changed in: systemd
       Status: New => Fix Released

-- 
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/2049247

Title:
  Broken IPv4 support on IPv6-preferring networks (v255)

Status in systemd:
  Fix Released
Status in systemd package in Ubuntu:
  New

Bug description:
  I noticed a bug in systemd version 255 which is currently available in
  noble-proposed (255.2-3ubuntu1).

  I have already reported to upstream at
  https://github.com/systemd/systemd/issues/30891 but there's no fix
  available yet as of today.

  I'm still reporting the bug here anyways because this bug can, under
  some conditions, result in the loss of IPv4 network connectivity in a
  completely standard Ubuntu 24.04 installation just by updating to
  systemd 255. I'm hoping that that's okay even though it's a bug caused
  by upstream not by Ubuntu; just because it could have a bad impact if
  this version ends up in 24.04 as it is.

  ---

  In systemd version 255, a feature has been added to "support" the
  IPv6-only DHCP option 108 defined in RFC8925. I'm putting "support" in
  quotation marks because one functionality that this RFC marks as a
  requirement is not implemented in systemd yet.

  To summarize: Option 108 can be sent by a DHCPv4 client to signal to
  the DHCPv4 server: "Hey, if (and only if) your network has proper IPv6
  support and a working NAT64 gateway, I don't really need my own IPv4
  address, I can handle it using 464XLAT and NAT64". The point of that
  option is to be able to run a Dual Stack network, where only clients
  that really need IPv4 (older Linux, Windows, etc.) will receive an
  IPv4 from DHCP, and clients that don't need IPv4 (Android, MacOS,
  Linux with systemd >=255, etc.) won't receive one from DHCP and
  instead set up a 464XLAT for outgoing IPv4 connectivity.

  This new code in systemd is enabled by default (the option
  "IPv6OnlyMode" defaults to "yes"). However, systemd does not actually
  have code to set up a 464XLAT yet (which violates the RFC).

  This means that systemd signals to the DHCPv4 server "Hey, I don't
  need IPv4, I'll just use 464XLAT and NAT64" but then it doesn't
  actually do that. Updating systemd on an Ubuntu 24.04 installation
  (where systemd-networkd is used) will result in the loss of the DHCP-
  assigned IPv4 address, breaking network connectivity for all IPv4-only
  applications.

  ---

  Information on how to reproduce this issue can be found in detail in
  the github bug report linked above, but to summarize:

  1. Have a Dual Stack network that announces a NAT64 through RAs or through 
DNS (or, ideally, both)
  2. Configure your DHCPv4 server to hand out option 108 ("v6-only-preferred")
  3. Connect an Ubuntu machine with systemd < 255.
  4. Notice that IPv4 connectivity is working fine.
  5. Update to systemd = 255.
  6. Notice that there's no IPv4 connectivity anymore and IPv4-only apps break.

  ---

  The proper fix for this issue to make systemd conform to the RFC would
  be to implement a 464XLAT. However that's not an easy task and most
  certainly not something that would end up as a hotfix / patch release.
  A good workaround for this bug would be, in my opinion, to change the
  default value for the "IPv6OnlyMode" to "no" when compiling systemd.

  That way, the RFC-violating code doesn't run by default, and if a user
  does set up a 464XLAT on their machine in some other way (outside of
  systemd) they can just change their config to include
  "IPv6OnlyMode=yes" and it'll be working as intended.

  ProblemType: Bug
  DistroRelease: Ubuntu 24.04
  Package: systemd 255.2-3ubuntu1
  ProcVersionSignature: Ubuntu 6.6.0-14.14-generic 6.6.3
  Uname: Linux 6.6.0-14-generic x86_64
  ApportVersion: 2.27.0-0ubuntu6
  Architecture: amd64
  CasperMD5CheckResult: pass
  Date: Sat Jan 13 07:05:42 2024
  InstallationDate: Installed on 2024-01-12 (0 days ago)
  InstallationMedia: Ubuntu-Server 23.10 "Mantic Minotaur" - Release amd64 
(20231011)
  Lsusb:
   Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
   Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
  Lsusb-t:
   /:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=ohci-pci/12p, 12M
       |__ Port 001: Dev 002, If 0, Class=Human Interface Device, 
Driver=usbhid, 12M
  MachineType: {report['dmi.sys.vendor']} {report['dmi.product.name']}
  ProcEnviron:
   LANG=C.UTF-8
   PATH=(custom, no user)
   SHELL=/bin/bash
   TERM=linux
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-6.6.0-14-generic 
root=UUID=b5e6aabf-881a-4589-85ae-688f41df0be7 ro
  SourcePackage: systemd
  UpgradeStatus: Upgraded to noble on 2024-01-12 (0 days ago)
  dmi.bios.date: 12/01/2006
  dmi.bios.vendor: innotek GmbH
  dmi.bios.version: VirtualBox
  dmi.board.name: VirtualBox
  dmi.board.vendor: Oracle Corporation
  dmi.board.version: 1.2
  dmi.chassis.type: 1
  dmi.chassis.vendor: Oracle Corporation
  dmi.modalias: 
dmi:bvninnotekGmbH:bvrVirtualBox:bd12/01/2006:svninnotekGmbH:pnVirtualBox:pvr1.2:rvnOracleCorporation:rnVirtualBox:rvr1.2:cvnOracleCorporation:ct1:cvr:sku:
  dmi.product.family: Virtual Machine
  dmi.product.name: VirtualBox
  dmi.product.version: 1.2
  dmi.sys.vendor: innotek GmbH

To manage notifications about this bug go to:
https://bugs.launchpad.net/systemd/+bug/2049247/+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