docs: document the BusyBox ifup CIDR trap in the docker init path

BusyBox ifup — what runs in /gns3/init.sh unless the image ships its
own ifupdown — only brings up 'auto' stanzas and rejects CIDR notation
in the address line ("don't have all variables for <iface>/inet"),
leaving the interface unconfigured after a container restart.

Document the constraint next to the ifup call and in the generated
/etc/network/interfaces sample, where addressing gets written.
This commit is contained in:
YueGuobin 2026-08-28 23:26:24 +08:00
parent ae317608e8
commit c3cc067eea
No known key found for this signature in database
2 changed files with 10 additions and 0 deletions

View File

@ -511,6 +511,11 @@ class DockerVM(BaseNode):
f.write("""#
# This is a sample network config, please uncomment lines to configure the network
#
# NOTE: at boot /gns3/init.sh applies this file with BusyBox ifup ("ifup -a -f").
# BusyBox ifupdown only brings up "auto" stanzas and requires separate
# "address <ip>" and "netmask <mask>" lines: CIDR notation such as
# "address 10.0.0.1/24" is rejected and the interface stays unconfigured.
#
# Uncomment this line to load custom interface files
# source /etc/network/interfaces.d/*

View File

@ -87,6 +87,11 @@ sed -n 's/^ *\(eth[0-9]*\):.*/\1/p' < /proc/net/dev | while read dev; do
done
# configure network interfaces
# NOTE: unless the image ships its own ifupdown in /sbin this is BusyBox ifup,
# which only brings up 'auto' stanzas and does NOT understand CIDR notation:
# 'address <ip>' and 'netmask <mask>' must be separate lines, otherwise the
# stanza fails with "don't have all variables for <iface>/inet" and the
# interface comes up unconfigured.
ifup -a -f
# continue normal docker startup