diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index ef11d92..478a0c2 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -387,6 +387,36 @@ EOF
     inst "$_netif_allowlist_nm_conf" "/etc/NetworkManager/conf.d/10-kdump-netif_allowlist.conf"
 }
 
+_get_nic_driver() {
+    ethtool -i "$1" | sed -n -E "s/driver: (.*)/\1/p"
+}
+
+kdump_install_nic_driver() {
+    local _netif _driver _drivers
+
+    _drivers=()
+
+    for _netif in $1; do
+        _driver=$(_get_nic_driver "$_netif")
+        if [[ -z $_driver ]]; then
+            derror "Failed to get the driver of $_netif"
+            exit 1
+        fi
+
+        if [[ $_driver == "802.1Q VLAN Support" ]]; then
+            # ethtool somehow doesn't return the driver name for a VLAN NIC
+            _driver=8021q
+        elif [[ $_driver == "team" ]]; then
+            # install the team mode drivers like team_mode_roundrobin.ko as well
+            _driver='=drivers/net/team'
+        fi
+
+        _drivers+=("$_driver")
+    done
+
+    instmods "${_drivers[@]}"
+}
+
 kdump_setup_bridge() {
     local _netdev=$1
     local _dev
@@ -582,6 +612,7 @@ kdump_install_net() {
         kdump_install_nmconnections
         apply_nm_initrd_generator_timeouts
         kdump_install_nm_netif_allowlist "$_netifs"
+        kdump_install_nic_driver "$_netifs"
     fi
 }
 
diff --git a/mkdumprd b/mkdumprd
index 98a7b9a..bc80667 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -27,7 +27,7 @@ SAVE_PATH=$(get_save_path)
 OVERRIDE_RESETTABLE=0
 
 extra_modules=""
-dracut_args=(--add kdumpbase --quiet --hostonly --hostonly-cmdline --hostonly-i18n --hostonly-mode strict -o "plymouth resume ifcfg earlykdump")
+dracut_args=(--add kdumpbase --quiet --hostonly --hostonly-cmdline --hostonly-i18n --hostonly-mode strict --hostonly-nics '' -o "plymouth resume ifcfg earlykdump")
 
 MKDUMPRD_TMPDIR="$(mktemp -d -t mkdumprd.XXXXXX)"
 [ -d "$MKDUMPRD_TMPDIR" ] || perror_exit "dracut: mktemp -p -d -t dracut.XXXXXX failed."