diff --git a/ansible/group_vars/all/bifrost b/ansible/group_vars/all/bifrost
index 1b9f5f245cf447c918bf5e97031ed79b02c1ab34..b513671990d1ea8740955ff94dbb39e7ee40832a 100644
--- a/ansible/group_vars/all/bifrost
+++ b/ansible/group_vars/all/bifrost
@@ -43,6 +43,7 @@ kolla_bifrost_dib_init_element: "cloud-init-datasources"
 
 # DIB default environment variables.
 kolla_bifrost_dib_env_vars_default:
+  DIB_BOOTLOADER_DEFAULT_CMDLINE: "nofb nomodeset gfxpayload=text net.ifnames=1"
   DIB_CLOUD_INIT_DATASOURCES: "ConfigDrive"
 
 # DIB additional environment variables.
diff --git a/doc/source/configuration/reference/bifrost.rst b/doc/source/configuration/reference/bifrost.rst
index 15d718ba9fb6274ab47587c8a604cf8bb6b70d66..b6dc7a5774e004a0ec62b852897712d360c48eb3 100644
--- a/doc/source/configuration/reference/bifrost.rst
+++ b/doc/source/configuration/reference/bifrost.rst
@@ -80,7 +80,8 @@ configuration drive built by Bifrost, rather than the Bifrost default of
     releases.*
 
     DIB default environment variables. Default is
-    ``{"DIB_CLOUD_INIT_DATASOURCES": "ConfigDrive"}``.
+    ``{DIB_BOOTLOADER_DEFAULT_CMDLINE: "nofb nomodeset gfxpayload=text
+    net.ifnames=1", "DIB_CLOUD_INIT_DATASOURCES": "ConfigDrive"}``.
 ``kolla_bifrost_dib_env_vars_extra``
     *Added in the Train release. Use kolla_bifrost_dib_env_vars in earlier
     releases.*
diff --git a/etc/kayobe/bifrost.yml b/etc/kayobe/bifrost.yml
index 85d018d35926dedc59f78728eb96535099453b10..275d80bc859731a160809af1f875fe639c243647 100644
--- a/etc/kayobe/bifrost.yml
+++ b/etc/kayobe/bifrost.yml
@@ -39,8 +39,10 @@
 # DIB init element. Default is "cloud-init-datasources".
 #kolla_bifrost_dib_init_element:
 
-# DIB default environment variables. Default is {"DIB_CLOUD_INIT_DATASOURCES":
-# "ConfigDrive"}.
+# DIB default environment variables. Default is
+# {DIB_BOOTLOADER_DEFAULT_CMDLINE:
+# "nofb nomodeset gfxpayload=text net.ifnames=1",
+# "DIB_CLOUD_INIT_DATASOURCES": "ConfigDrive"}.
 #kolla_bifrost_dib_env_vars_default:
 
 # DIB additional environment variables. Default is none.
diff --git a/releasenotes/notes/dib-consistent-network-device-naming-e0edec5d5fdf83e2.yaml b/releasenotes/notes/dib-consistent-network-device-naming-e0edec5d5fdf83e2.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9a348fc0d7be0bf77e0154ba56a7ae34fbedd0cd
--- /dev/null
+++ b/releasenotes/notes/dib-consistent-network-device-naming-e0edec5d5fdf83e2.yaml
@@ -0,0 +1,11 @@
+---
+upgrade:
+  - |
+    Consistent network device naming is now enabled by default in overcloud
+    root disk images, by setting ``net.ifnames=1`` on the kernel command line.
+    This is performed using the ``DIB_BOOTLOADER_DEFAULT_CMDLINE``
+    diskimage-builder environment variable, which is set to ``nofb nomodeset
+    gfxpayload=text net.ifnames=1`` to preserve diskimage-builder defaults. To
+    restore existing behaviour, set ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` to
+    ``nofb nomodeset gfxpayload=text net.ifnames=0`` in the
+    ``kolla_bifrost_dib_env_vars_extra`` dictionary.