NM-CLOUD-SETUP(8) Automatic Network Configuration NM-CLOUD-SETUP(8) (NAME) nm-cloud-setup - (OVERVIEW) . DHCP DHCP6 IPv6 autoconf . IP IP DHCP . . nm-cloud-setup NetworkManager . . " (SUPPORTED CLOUD PROVIDERS)" . (USE) nm-cloud-setup . ( " (ENVIRONMENT VARIABLES)" ) /usr/libexec/nm-cloud-setup . nm-cloud-setup.service . nm-cloud-setup.timer NetworkManager . (DETAILS) nm-cloud-setup (Metadata) . . DHCP IP . "no-auto-default" NetworkManager.conf NetworkManager . nmcli device connect "$DEVICE" nmcli connection add type ethernet ... . org.freedesktop.nm-cloud-setup.skip=yes nm-cloud-setup . nm-cloud-setup nmcli device modify . . /usr/libexec/nm-cloud-setup /usr/libexec/nm-cloud-setup . . " (ENVIRONMENT VARIABLES)" . . HTTP . . . . () nm-cloud-setup . (idempotent) . /usr/libexec/nm-cloud-setup . nm-cloud-setup ( ). nm-cloud-setup.service (nm-cloud-setup.service systemd unit) /usr/libexec/nm-cloud-setup systemctl restart nm-cloud-setup.service . . nm-cloud-setup . nm-cloud-setup (override) . systemctl edit nm-cloud-setup.service . nm-cloud-setup.timer (nm-cloud-setup.timer systemd timer) /usr/libexec/nm-cloud-setup . nm-cloud-setup.timer : systemctl enable --now nm-cloud-setup.timer /usr/lib/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh NetworkManager NetworkManager . nm-cloud-setup.timer . . systemctl enable nm-cloud-setup.service . (ENVIRONMENT VARIABLES) /usr/libexec/nm-cloud-setup . (drop-in) systemctl edit nm-cloud-setup.service [Service] Environment= systemd.exec(5) . o NM_CLOUD_SETUP_LOG: () . TRACE DEBUG INFO WARN ERR OFF . (stdout) WARN . journald journalctl . o NM_CLOUD_SETUP_AZURE: (boolean) . no . o NM_CLOUD_SETUP_EC2: (boolean) EC2 (AWS) . no . o NM_CLOUD_SETUP_GCP: (boolean) (Google GCP) . no . o NM_CLOUD_SETUP_ALIYUN: (boolean) (Aliyun) . no . o NM_CLOUD_SETUP_OCI: (boolean) (OCI) . no . (DEBUGGING) NM_CLOUD_SETUP_LOG TRACE . nm-cloud-setup systemctl edit nm-cloud-setup.service Environment=NM_CLOUD_SETUP_LOG=TRACE [Service] . journalctl (syslog) . NetworkManager(5) NetworkManager . NetworkManager nm-cloud-setup . NM-CLOUD-SETUP (EXAMPLE SETUP FOR CONFIGURING AND PREDEPLOYING NM-CLOUD-SETUP) nm-cloud-setup . . . nm-cloud-setup Amazon EC2 : dnf install -y NetworkManager-cloud-setup mkdir -p /etc/systemd/system/nm-cloud-setup.service.d cat > /etc/systemd/system/nm-cloud-setup.service.d/10-enable-ec2.conf << EOF [Service] Environment=NM_CLOUD_SETUP_EC2=yes EOF # systemctl enable nm-cloud-setup.service mkdir -p /etc/systemd/system/NetworkManager.service.wants/ ln -s /usr/lib/systemd/system/nm-cloud-setup.service /etc/systemd/system/NetworkManager.service.wants/nm-cloud-setup.service # systemctl enable nm-cloud-setup.timer mkdir -p /etc/systemd/system/timers.target.wants/ ln -s /etc/systemd/system/timers.target.wants/nm-cloud-setup.timer /usr/lib/systemd/system/nm-cloud-setup.timer # systemctl daemon-reload (SUPPORTED CLOUD PROVIDERS) Amazon EC2 (AWS) AWS http://169.254.169.254 . IPv4 IPv6 . : o http://169.254.169.254/latest/meta-data/ API . EC2 EC2 . o http://169.254.169.254/2018-09-24/meta-data/network/interfaces/macs/ . MAC . o http://169.254.169.254/2018-09-24/meta-data/network/interfaces/macs/$MAC/subnet-ipv4-cidr-block http://169.254.169.254/2018-09-24/meta-data/network/interfaces/macs/$MAC/local-ipv4s . IPv4 CIDR . o nm-cloud-setup IP . MAC . NetworkManager org.freedesktop.nm-cloud-setup.skip=yes . DHCP . . o IPv4 local-ipv4s subnet-ipv4-cidr-block . IP "172.16.5.3/24,172.16.5.4/24" . o 30400 + 0.0.0.0/0 . (gateway) IP CIDR . "0.0.0.0/0 172.16.5.1 10 table=30400" . 30200 + . . o (policy routing rule) : "priority 30200 from 172.16.5.3/32 table 30200, priority 30200 from 172.16.5.4/32 table 30200" "priority 30400 from 172.16.5.3/32 table 30400, priority 30400 from 172.16.5.4/32 table 30400" +30200 +30400 . : "priority 30350 table main suppress_prefixlength 0". (main) . +30400 . eth0 : nmcli device modify "eth0" ipv4.addresses "172.16.5.3/24,172.16.5.4/24" ipv4.routes "172.16.5.0/24 0.0.0.0 10 table=30200, 0.0.0.0/0 172.16.5.1 10 table=30400" ipv4.routing-rules "priority 30200 from 172.16.5.3/32 table 30200, priority 30200 from 172.16.5.4/32 table 30200, priority 20350 table main suppress_prefixlength 0, priority 30400 from 172.16.5.3/32 table 30400, priority 30400 from 172.16.5.4/32 table 30400". . . Google Cloud Platform (GCP) GCP http://metadata.google.internal/computeMetadata/v1/ HTTP "Metadata-Flavor: Google" . IPv4 IPv6 . : o http://metadata.google.internal/computeMetadata/v1/instance/id (GCP) . . o http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/ . . o http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$IFACE_INDEX/mac MAC . MAC . o MAC http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$IFACE_INDEX/forwarded-ips/ IP http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$IFACE_INDEX/forwarded-ips/$FIPS_INDEX . o ( MAC) IPv4 . NetworkManager . NetworkManager . NetworkManager org.freedesktop.nm-cloud-setup.skip=yes . IP "$FIPS_ADDR/32 0.0.0.0 100 type=local" . : nmcli device modify "$DEVICE" ipv4.routes "$FIPS_ADDR/32 0.0.0.0 100 type=local [,...]" Microsoft Azure http://169.254.169.254/metadata/instance URL "?format=text&api-version=2017-04-02" HTTP "Metadata:true" . IPv4 IPv6 . : o http://169.254.169.254/metadata/instance?format=text&api-version=2017-04-02 . . o http://169.254.169.254/metadata/instance/network/interface/?format=text&api-version=2017-04-02 . . o http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/macAddress?format=text&api-version=2017-04-02 MAC . MAC . o MAC http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/?format=text&api-version=2017-04-02 () IP . o IP http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/ipAddress/$ADDR_INDEX/privateIpAddress?format=text&api-version=2017-04-02 . http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/address/?format=text&api-version=2017-04-02 http://169.254.169.254/metadata/instance/network/interface/$IFACE_INDEX/ipv4/subnet/0/prefix/?format=text&api-version=2017-04-02 . o ( MAC) IPv4 . AWS / 30200/30400. Alibaba Cloud (Aliyun) (Aliyun) http://100.100.100.200 . IPv4 IPv6 . : o http://100.100.100.200/2016-01-01/meta-data/ API . Aliyun Aliyun . o http://100.100.100.200/2016-01-01/meta-data/network/interfaces/macs/ . MAC . o http://100.100.100.200/2016-01-01/meta-data/network/interfaces/macs/$MAC/vpc-cidr-block http://100.100.100.200/2016-01-01/meta-data/network/interfaces/macs/$MAC/private-ipv4s http://100.100.100.200/2016-01-01/meta-data/network/interfaces/macs/$MAC/netmask http://100.100.100.200/2016-01-01/meta-data/network/interfaces/macs/$MAC/gateway . IPv4 CIDR IPv4 . o nm-cloud-setup IP . MAC . NetworkManager org.freedesktop.nm-cloud-setup.skip=yes . IP . AWS / 30200/30400. AWS (gateway) IP . Oracle Cloud (OCI) OCI http://169.254.169.254 . IPv4 IPv6 . : o http://169.254.169.254/opc/v2/instance API . OCI OCI . o http://169.254.169.254/opc/v2/vnics (VNIC) MAC IP . o nm-cloud-setup . MAC . NetworkManager org.freedesktop.nm-cloud-setup.skip=yes . IP . AWS / 30200/30400. (SEE ALSO) NetworkManager(8) nmcli(1) NetworkManager 1.58.1 NM-CLOUD-SETUP(8)