[Pkg-iscsi-maintainers] Bug#866213: open-iscsi: iBFT network setup does not populate PROTO (e.g. PROTO=dhcp, or static) in /run/net-*.conf

Trent Lloyd trent.lloyd at canonical.com
Wed Jun 28 11:35:02 UTC 2017

Source: open-iscsi
Severity: normal
Tags: patch

When booting with iBFT, the network configuration is performed by
open-iscsi as part of initramfs.local-top instead of by klibc-ipconfig
as it would be during for example a PXE boot.  This includes populating
/run/net-*.conf which is consumed among other things, by cloud-init.

Currently no attempt to determine PROTO is made, and PROTO=none is hard
coded into the file which cloud-init does not recognise and crashes out.

Recent versions of open-iscsi (such as that currently in unstable)
correctly export this information from "iscsistart -f" so I am attaching
a patch to export that information into /run/net-*.conf

The approach I took is simply to take the output from iscsistart (which
as best I can tell will be either 'dhcp' or 'static' and then pipe it
through 'tr' to lowercase it to match the output created by
klibc-ipconfig.  I could not find a specific standard on the format of
/run/net-*.conf so that was the best I could go with.  It works at least
for the 2 most likely situations of dhcp/static.

This requires a new-ish (last couple years) version of open-iscsi but
that is already in debian unstable [would only matter if someone
attempted to backport this functionality, probably irrelevant for this

If you want to test this, it is possible to simulate an iBFT environment
using qemu & iPXE with a "kernel command line" or manually entering a
script similar to the following:

ifconf -c dhcp && set username x && set password x && sanhook --drive
0x80 iscsi: ||
prompt ; autoboot


-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.11.0-8-generic (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
-------------- next part --------------
diff -Nru open-iscsi-2.0.874/debian/extra/initramfs.local-top open-iscsi-2.0.874/debian/extra/initramfs.local-top
--- open-iscsi-2.0.874/debian/extra/initramfs.local-top	2017-05-10 00:23:32.000000000 +0800
+++ open-iscsi-2.0.874/debian/extra/initramfs.local-top	2017-06-23 16:32:53.000000000 +0800
@@ -159,6 +159,7 @@
 				iface.primary_dns)   IPV4DNS0="${v}" ;;
 				iface.secondary_dns) IPV4DNS1="${v}" ;;
 				iface.net_ifacename) DEVICE="${v}" ;;
+				iface.bootproto)     PROTO="$(echo ${v} | tr '[:upper:]' '[:lower:]')" ;;

More information about the Pkg-iscsi-maintainers mailing list